CCJK 技能系统:扩展你的 AI 助手能力
探索如何在 CCJK 中使用、创建和分享自定义技能。将重复性任务转化为一键解决方案。
C
CCJK 团队2025年1月8日
18 分钟阅读
1,145 次阅读
CCJK 技能系统:扩展你的 AI 助手能力
技能系统是将 CCJK 从简单的 AI 助手转变为强大、可定制开发平台的关键。技能是可重用的提示模板,它们封装了最佳实践、强制执行标准,并自动化复杂的工作流程。
理解技能
什么是技能?
技能是一个预定义的提示模板,它:
- 封装领域专业知识
- 提供一致、可重复的结果
- 可以接受参数进行自定义
- 与你的开发工作流程集成
内置技能
CCJK 自带 22+ 预置技能:
| 技能 | 命令 | 描述 |
|---|---|---|
| 代码审查 | /review | 全面的代码审查 |
| 提交 | /commit | 生成语义化提交消息 |
| 测试 | /test | 生成单元测试 |
| 文档 | /doc | 生成文档 |
| 重构 | /refactor | 建议重构改进 |
| 安全 | /security | 安全漏洞扫描 |
| 性能 | /perf | 性能分析 |
| 调试 | /debug | 系统化调试辅助 |
使用内置技能
/review 技能
执行全面的代码审查:
hljs bash# 审查暂存的更改
/review
# 审查特定文件
/review src/components/UserProfile.tsx
# 带焦点区域的审查
/review --focus security src/auth/
输出包括:
- 严重问题(必须修复)
- 建议(应该考虑)
- 小问题(可选改进)
- 正面观察
/commit 技能
生成有意义的提交消息:
hljs bash# 从暂存更改自动生成
/commit
# 带作用域
/commit --scope auth
# 约定式提交格式
/commit --conventional
示例输出:
feat(auth): 实现 JWT 刷新令牌轮换
- 添加带安全轮换的刷新令牌端点
- 实现令牌族追踪以检测重用
- 添加 Redis 存储刷新令牌元数据
- 包含全面的测试覆盖
BREAKING CHANGE: 刷新令牌现在单次使用后过期
/test 技能
生成全面的测试:
hljs bash# 为文件生成测试
/test src/utils/validation.ts
# 指定测试框架
/test --framework vitest src/hooks/useAuth.ts
# 生成特定类型的测试
/test --type integration src/api/users.ts
创建自定义技能
技能文件结构
技能以 YAML 格式定义在 .claude/skills/ 目录中:
hljs yaml# .claude/skills/api-endpoint.yaml
name: api-endpoint
description: 生成新的 REST API 端点
version: 1.0.0
author: 你的名字
# 用户可以提供的参数
parameters:
- name: resource
description: 资源名称(如 users, products)
required: true
- name: operations
description: 要包含的 CRUD 操作
default: [create, read, update, delete]
- name: auth
description: 认证要求
default: required
# 提示模板
prompt: |
为 {{resource}} 资源创建 REST API 端点。
要求:
- 操作:{{operations}}
- 认证:{{auth}}
- 遵循 RESTful 约定
- 使用 Zod 进行输入验证
- 添加适当的错误处理
- 生成 OpenAPI 文档
- 包含单元测试
参考 src/api/ 中的现有模式。
使用自定义技能
hljs bash# 使用技能
/api-endpoint --resource products --auth optional
# 或交互式
/api-endpoint
> 资源名称:products
> 操作:create, read, update
> 认证:required
高级技能特性
条件逻辑
hljs yamlprompt: |
{{#if typescript}}
使用启用严格模式的 TypeScript。
{{else}}
使用带 JSDoc 类型注解的 JavaScript。
{{/if}}
{{#each operations}}
- 实现 {{this}} 操作
{{/each}}
文件模板
hljs yamlname: component
description: 生成 React 组件
templates:
- path: "src/components/{{pascalCase name}}/index.tsx"
content: |
import React from 'react';
import styles from './{{pascalCase name}}.module.css';
interface {{pascalCase name}}Props {
// 属性定义
}
export function {{pascalCase name}}({ }: {{pascalCase name}}Props) {
return (
<div className={styles.container}>
{{pascalCase name}} 组件
</div>
);
}
- path: "src/components/{{pascalCase name}}/{{pascalCase name}}.module.css"
content: |
.container {
/* 样式定义 */
}
- path: "src/components/{{pascalCase name}}/{{pascalCase name}}.test.tsx"
content: |
import { render, screen } from '@testing-library/react';
import { {{pascalCase name}} } from './index';
describe('{{pascalCase name}}', () => {
it('正确渲染', () => {
render(<{{pascalCase name}} />);
// 添加断言
});
});
钩子和生命周期
hljs yamlname: database-migration
description: 创建并运行数据库迁移
hooks:
before:
- command: "npm run db:check"
description: "验证数据库连接"
after:
- command: "npm run db:migrate"
description: "运行迁移"
confirm: true
- command: "npm run db:seed"
description: "填充测试数据"
condition: "{{env}} === 'development'"
技能开发最佳实践
1. 单一职责
每个技能应该做好一件事:
hljs yaml# ✅ 好:专注的技能
name: generate-dto
description: 生成数据传输对象
# ❌ 差:范围太广
name: generate-everything
description: 生成 DTO、服务、控制器和测试
2. 合理的默认值
提供适用于大多数情况的默认值:
hljs yamlparameters:
- name: format
description: 输出格式
default: typescript # 最常见的选择
options: [typescript, javascript]
3. 清晰的文档
包含示例和说明:
hljs yamlname: api-client
description: |
为 REST 端点生成类型安全的 API 客户端。
示例:
/api-client --url https://api.example.com/users
/api-client --swagger ./openapi.yaml
生成的客户端包括:
- 完整的 TypeScript 类型
- 错误处理
- 请求/响应拦截器
- 自动重试逻辑
4. 验证
在执行前验证参数:
hljs yamlparameters:
- name: name
required: true
pattern: "^[a-zA-Z][a-zA-Z0-9]*$"
error: "名称必须以字母开头,只能包含字母和数字"
分享技能
发布到 CCJK 注册表
hljs bash# 登录注册表
ccjk registry login
# 发布技能
ccjk skill publish .claude/skills/my-skill.yaml
# 发布特定版本
ccjk skill publish --version 2.0.0 .claude/skills/my-skill.yaml
安装社区技能
hljs bash# 搜索技能
ccjk skill search "react component"
# 安装技能
ccjk skill install @community/react-component
# 安装特定版本
ccjk skill install @community/react-component@2.0.0
技能集合
将相关技能组合在一起:
hljs yaml# .claude/skills/collection.yaml
name: react-toolkit
description: 完整的 React 开发工具包
version: 1.0.0
skills:
- ./component.yaml
- ./hook.yaml
- ./context.yaml
- ./test.yaml
实际技能示例
示例 1:PR 描述生成器
hljs yamlname: pr-description
description: 生成全面的 PR 描述
version: 1.0.0
parameters:
- name: base
description: 基础分支
default: main
prompt: |
分析 {{base}} 和当前分支之间的更改。
生成包含以下内容的 PR 描述:
## 摘要
此 PR 完成内容的简要概述
## 更改
- 具体更改的要点列表
## 测试
- 如何测试这些更改
- 添加的特定测试用例
## 截图
(如适用)
## 检查清单
- [ ] 测试通过
- [ ] 文档已更新
- [ ] 无破坏性更改(或已记录)
## 相关问题
链接任何相关问题
示例 2:数据库模式生成器
hljs yamlname: db-schema
description: 从描述生成数据库模式
version: 1.0.0
parameters:
- name: database
description: 数据库类型
default: postgresql
options: [postgresql, mysql, sqlite]
- name: orm
description: 使用的 ORM
default: prisma
options: [prisma, typeorm, drizzle]
prompt: |
使用 {{orm}} 创建 {{database}} 数据库模式。
根据用户的描述,生成:
1. 模式定义文件
2. 迁移文件
3. 开发用的种子数据
4. TypeScript 类型(如适用)
遵循以下约定:
- 使用 UUID 作为主键
- 包含 created_at 和 updated_at 时间戳
- 添加适当的索引
- 定义外键关系
- 在适当的地方包含软删除
调试技能
详细模式
hljs bash# 查看技能正在做什么
/my-skill --verbose
# 调试参数解析
/my-skill --debug-params
测试技能
hljs bash# 不执行的干运行
/my-skill --dry-run
# 使用示例输入测试
ccjk skill test my-skill.yaml --input test-cases.json
总结
技能系统将 CCJK 转变为一个与团队一起成长的平台。从掌握内置技能开始,然后逐步为你的特定工作流程创建自定义技能。
记住:
- 技能封装专业知识和最佳实践
- 好的技能是专注的、有文档的、经过验证的
- 分享技能可以在团队中倍增其价值
下一步:
继续阅读
相关文章
#vscode#ide#集成
Claude Code 入门指南:终极 AI 编程助手
学习如何安装、配置和掌握 Claude Code 进行 AI 辅助开发。本指南涵盖从基础设置到高级工作流程的所有内容。
Jan 10, 202512 min
942#claude-code#安装#入门
CCJK 入门指南:你的 AI 编程助手
学习如何安装和配置 CCJK(Claude Code 金库),用 AI 驱动的助手提升你的开发效率。
Jan 10, 20258 min
1447#入门#安装#配置
