教程

CCJK 技能系统:扩展你的 AI 助手能力

探索如何在 CCJK 中使用、创建和分享自定义技能。将重复性任务转化为一键解决方案。

C
CCJK 团队2025年1月8日
18 分钟阅读
1,145 次阅读
CCJK 技能系统:扩展你的 AI 助手能力

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 yaml
prompt: | {{#if typescript}} 使用启用严格模式的 TypeScript。 {{else}} 使用带 JSDoc 类型注解的 JavaScript。 {{/if}} {{#each operations}} - 实现 {{this}} 操作 {{/each}}

文件模板

hljs yaml
name: 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 yaml
name: 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 yaml
parameters: - name: format description: 输出格式 default: typescript # 最常见的选择 options: [typescript, javascript]

3. 清晰的文档

包含示例和说明:

hljs yaml
name: api-client description: | 为 REST 端点生成类型安全的 API 客户端。 示例: /api-client --url https://api.example.com/users /api-client --swagger ./openapi.yaml 生成的客户端包括: - 完整的 TypeScript 类型 - 错误处理 - 请求/响应拦截器 - 自动重试逻辑

4. 验证

在执行前验证参数:

hljs yaml
parameters: - 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 yaml
name: pr-description description: 生成全面的 PR 描述 version: 1.0.0 parameters: - name: base description: 基础分支 default: main prompt: | 分析 {{base}} 和当前分支之间的更改。 生成包含以下内容的 PR 描述: ## 摘要 PR 完成内容的简要概述 ## 更改 - 具体更改的要点列表 ## 测试 - 如何测试这些更改 - 添加的特定测试用例 ## 截图 (如适用) ## 检查清单 - [ ] 测试通过 - [ ] 文档已更新 - [ ] 无破坏性更改(或已记录) ## 相关问题 链接任何相关问题

示例 2:数据库模式生成器

hljs yaml
name: 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 转变为一个与团队一起成长的平台。从掌握内置技能开始,然后逐步为你的特定工作流程创建自定义技能。

记住:

  • 技能封装专业知识和最佳实践
  • 好的技能是专注的、有文档的、经过验证的
  • 分享技能可以在团队中倍增其价值

下一步

标签

#ccjk#技能#自定义#自动化#生产力

分享文章

继续阅读

相关文章