自学教程

Claude Code Skills 使用实例

简介

本文通过完整可直接复制的技能定义 + 调用示例,演示如何编写、配置、调用 Claude Code Skills(智能体技能)。
技能文件存放路径:.claude/skills/,后缀为 .md,一个文件对应一个技能。

实例1:代码评审技能 code-review.md

文件路径:.claude/skills/code-review.md

# Skill:code-review
## 技能描述
对指定源码文件进行代码评审,检查类型错误、安全隐患、代码规范、冗余代码。## 输入参数
- files:待评审文件路径,支持单个或多个文件 ## 执行步骤
1. 读取传入的源码文件
2. 从4个维度检查:类型安全、业务逻辑、性能、代码规范
3. 按严重等级划分:严重 / 一般 / 优化建议
4. 输出评审报告:文件路径、行号、问题描述、修复建议
## 约束
1. 仅输出评审报告,不修改任何代码
2. 必须遵守项目 CLAUDE.md 编码规范
3. 不擅自新增、删除业务逻辑

调用示例

调用技能 code-review,评审 @src/utils/request.ts
调用技能 code-review,评审 @src/components/Form.vue @src/api/user.ts

实例2:单元测试生成技能 test-generator.md

文件路径:.claude/skills/test-generator.md

# Skill:test-generator
## 技能描述
根据目标源码,生成配套单元测试用例,覆盖正常场景、边界值、异常场景。## 输入参数
- targetFile:待编写测试的源码文件路径
- testFramework:测试框架,默认 vitest ## 执行步骤
1. 读取目标源码,提取函数、入参、返回值
2. 梳理业务场景:正常输入、空参数、异常输入
3. 编写单元测试代码,增加注释说明用例目的
4. 输出完整测试文件代码,并说明执行测试命令
## 约束
1. 测试代码风格与项目保持一致
2. 不修改原有业务源码
3. 优先覆盖核心业务逻辑,不必过度追求100%覆盖率

调用示例

调用技能 test-generator,targetFile=@src/utils/validator.ts
调用技能 test-generator,targetFile=@src/service/user.ts,testFramework=jest

实例3:接口文档生成技能 api-docs.md

文件路径:.claude/skills/api-docs.md

# Skill:api-docs
## 技能描述
读取接口TS类型定义,自动生成Markdown格式接口文档。## 输入参数
- apiFile:接口类型定义文件 ## 执行步骤
1. 读取接口请求、响应类型
2. 提取接口地址、请求方法、请求参数、返回字段
3. 输出Markdown文档,包含字段说明、字段类型、是否必填
4. 补充调用示例
## 约束
1. 文档简洁清晰,使用标准markdown表格
2. 不修改源码文件

调用示例

调用技能 api-docs,apiFile=@src/api/types.ts

技能管理操作

/skill list          # 查看项目所有可用技能
/skill describe code-review   # 查看code-review技能完整定义
/skill reload        # 修改技能文件后,重载技能配置

完整实操流程

  1. 在项目 .claude/skills/ 目录新建 code-review.md,粘贴上面技能内容
  2. 保存文件
  3. 在 Claude Code 会话输入 /skill reload 重载技能
  4. 调用技能:调用技能 code-review,评审 @src/main.ts
  5. Claude Code 加载技能定义,按照技能内定义的步骤执行任务

✅ 修改技能文件后,必须 /skill reload 或者 /clear 新建会话才能生效。

技能组合示例(技能 + 子代理)

调用子代理 lint-reviewer,然后调用技能 code-review,审查 src 目录全部接口文件

主代理先唤起子代理做静态检查,再调用代码评审技能,合并两份报告。

常见使用误区

  1. 技能文件放错目录:必须放在 .claude/skills/,文件名即为调用名称
  2. 修改技能后直接调用:没有执行 /skill reload,仍然读取旧技能定义
  3. 技能职责写得太杂:不要同时让技能“评审代码+修改代码+写文档”,建议拆分成多个单一技能
  4. 在技能内写入密钥:禁止存放任何敏感信息

最佳实践

  1. 技能尽量保持通用,可以在多个项目复用
  2. 输出格式在技能内固定,每次调用输出结构统一,方便阅读
  3. 高频重复的开发任务,优先封装成技能
  4. .claude/skills 目录提交Git,团队成员共享技能库

0 条笔记