Claude Code Skills:打造你的专属 AI 工作流 · Lesson 5 of 6

第 5 课:实战案例:构建代码审查 Skill

学习目标:

  • 学习如何组织多步骤工作流
  • 理解检查清单模式的应用
  • 掌握 supporting files 的使用
  • 创建一个生产可用的复杂 Skill

前置要求:<< 第 4 课 | 下一课 第 6 课 >>

为什么选择代码审查作为案例

代码审查是典型的结构化工作流:1

  • 步骤固定:检查规范、查找问题、提出建议
  • 标准可量化:每个检查项都能明确判断通过或不通过
  • 重复性高:每次 PR 都要审查
  • 适合 Skill:把团队的审查标准写进 Skill,保证每次审查质量一致

这个案例会展示:

  • 如何把复杂工作流拆解成清晰的步骤
  • 如何用检查清单组织 instructions
  • 如何处理多个输出维度

第 1 步:明确审查范围

开始写之前,先确定这个 Skill 要检查什么。

我们的代码审查 Skill 检查三个维度:

  1. 代码规范:命名、格式、注释
  2. 潜在问题:错误处理、边界情况、安全风险
  3. 可维护性:重复代码、函数长度、逻辑复杂度

不检查的内容:

  • 具体业务逻辑是否正确(这需要深入了解需求)
  • 算法效率(需要性能测试)
  • UI/UX 设计(不在代码审查范围)

第 2 步:创建目录结构

这次我们用 supporting files 来组织审查规则:2

为什么要拆分文件:

  • SKILL.md 保持简洁,只写核心流程
  • 详细的检查规则放在单独文件里,按需加载2
  • 团队可以独立维护各个 checklist,不用改主文件

第 3 步:编写主 SKILL.md

第 4 步:编写 supporting files

checklists/naming.md:

checklists/error-handling.md:

第 5 步:测试复杂场景

准备一段有多个问题的代码:

调用 Skill:

/code-review
[粘贴上面的代码]

预期输出应该包含:

  • ⚠️ 命名问题:process, data, x, y 都太泛化
  • ⚠️ 使用 var 而不是 const/let
  • ⚠️ 使用 == 而不是 ===
  • ⚠️ 没有检查 data 是否为 null 或不是数组
  • ⚠️ 没有检查 item.value 是否存在
  • 建议:函数可以拆分成更小的纯函数

第 6 步:迭代改进

第一次运行可能会发现:

  • 漏报(有些问题没检测到) → 补充检查规则
  • 输出太冗长 → 调整输出格式,只报告重要问题
  • 误报(把正常代码标记为问题) → 加"需确认"类别

持续改进:

  1. 每次审查后,记录哪些问题被漏掉了
  2. 更新 checklists
  3. 重新测试
  4. 一个月后,这个 Skill 会变得相当精准3

小结

  • 代码审查是 Skill 的典型应用场景:步骤固定、可量化、重复性高
  • 用检查清单组织审查流程:代码规范、错误处理、潜在问题、可维护性
  • supporting files 让 Skill 更易维护:主文件保持简洁,详细规则拆分到独立文件
  • 输出分级很重要:通过、需注意、必须修复,让审查者知道优先级
  • 持续迭代改进:每次审查后补充遗漏的检查项,一个月后会相当精准

下一课,我们学习进阶技巧:personal vs project skills、版本控制、团队协作。

>> 第 6 课:进阶技巧

Footnotes

  1. Anthropic 工程博客:Agent Skills 实战指南 — https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills

  2. Anthropic Platform 文档:Agent Skills 概述 — https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview 2

  3. Claude Code Skills:.NET 工作流与可复用提示 — https://codewithmukesh.com/blog/skills-claude-code/

Exercises

01

选择一个你熟悉的领域(前端代码、API 设计、SQL 查询、文档写作),创建一个审查 Skill。

Level 1:创建你自己的审查 Skill

要求:

  1. 至少包含 3 个检查维度
  2. 每个维度有 3-5 个具体检查项
  3. 输出格式清晰(通过、需注意、必须修复)
  4. 测试至少 2 个实际案例
Done criteria · checked locally
02

- URL 是否使用名词而不是动词(✓ /users ✗ /getUsers)

1. RESTful 规范
  • HTTP 方法是否正确(GET 查询、POST 创建、PUT 更新、DELETE 删除)
  • 状态码是否合理(200/201/400/404/500)
03

- 参数命名是否清晰(用 snake_case 或 camelCase,统一风格)

2. 参数设计
  • 必需参数和可选参数是否明确
  • 参数验证规则是否文档化
04

- 是否有统一的错误响应格式

3. 错误处理
  • 错误信息是否包含足够的上下文
  • 是否有错误码便于客户端判断

输出格式

05

- [检查项]

✅ 符合规范
06

- 问题:[具体问题]

⚠️ 建议改进
  • 建议:[如何改进]
07

- 问题:[具体问题]

🔴 违反规范
  • 影响:[为什么这是严重问题]
  • 修复:[必须如何改]

08

选一段代码,分别用:

Level 2:对比人工审查和 Skill 审查
  1. 你自己手动审查
  2. 用 code-review Skill 审查

对比两者发现的问题,记录:

  • Skill 发现了哪些你遗漏的问题
  • 你发现了哪些 Skill 遗漏的问题
  • 哪些是误报(Skill 认为是问题但实际不是)
Done criteria · checked locally

My note

Jot down thoughts, sticking points, things you didn't get. Written to this course's appendix only — the lesson file is never touched.