第 03 模块 · 2 节

自定义技能开发实战

《Claude Code 进阶实战》03 技能系统 · 本节时长 40 分钟

从「你重复的活」里找技能

写技能的第一步不是「学怎么定义」,而是找出值得固化的那件事。最好的候选,就是你反复让 Claude Code 做、规则又固定的那件事。

回顾一下你最近让它干的活:哪件你教过不止一次?那件就是最好的技能素材。

对 codex-review,这个「重复的活」你已经在前面模块做熟了:每次评审都要手打「并行三路」的指令、手打「评审计划模板」、手打「三档输出 + 对账」的约定。 这就是最标准的技能候选——你重复做了、规则固定、值得固化。

贯穿项目这一节把 codex-review 的「评审规则」真正封装成一个技能。你要写的不是通用教程里那个「代码审查」例子,而是我们的专属技能:它自带逻辑 / 安全 / 风格三路并行、三档输出、冲突对账这些约定。

技能长什么样

以一个「代码审查」技能为例。技能通常放在一个目录里,用 Markdown 描述:

skills/
  code-review/
    SKILL.md        # 技能说明

SKILL.md 是技能的核心,一般包含:描述(做什么/何时用)、执行步骤输出规范

---
description: 按团队规范做一次代码审查
---

# 代码审查

触发时机:提交前、合并前,对改动做审查时。

执行步骤:
1. 读取本次改动的文件清单
2. 检查:逻辑错误、边界情况、异常处理、可读性、性能
3. 不要修改代码,只给出审查意见

输出规范:
按「必须改 / 建议改 / 可不改」三档列出,
每条一句话,指出位置 + 问题 + 修改建议。
注意技能的存放目录和格式,不同版本/配置略有差异。以你所用版本文档为准,核心是「一个技能 = 描述 + 步骤 + 规范」。

开发一个技能的五步法

  1. 选一件事:你反复做、规则固定的那件事
  2. 写出步骤:它该按什么顺序、做什么
  3. 定输出规范:结果长什么样、什么格式
  4. 存成技能:放到技能目录,写好 SKILL.md
  5. 真用一次:在真实任务里调用,验证效果

落地实战:把 codex-review 写成技能

我们把五步法套到 codex-review 上,走一遍完整开发。

第 1 步,选事:把「评审一次改动」固化。

第 2 步,写步骤:仿照前两个模块,把评审流程的每一步写清。

第 3 步,定输出规范:按三档输出、必须做冲突对账。

第 4 步,存成技能,得到这个 SKILL.md

---
description: 用 codex-review 工作台并行评审一次代码改动,覆盖逻辑、安全、风格三类问题,按三档输出并做冲突对账。用于提交前、合并前审查改动。
---

# codex-review 评审

触发时机:审查一次代码改动、评审一个分支或 PR 时。

执行步骤:
1. 获取本次改动的文件清单与 diff 范围
2. 并行派三个子 Agent 评审,各自输出三档清单:
   - 逻辑:业务正确性、边界情况、异常处理、数据一致性
   - 安全:注入、越权、硬编码密钥、日志与敏感信息
   - 风格:命名、格式、重复代码、可读性
3. 汇总三路结论,并单独做「冲突对账」一节
4. 按「必须改」优先级整理成修复清单

输出规范:
- 每条结论必须含「位置 + 问题 + 修改建议」
- 按「必须改 / 建议改 / 可不改」三档归类
- 必须有「冲突对账」一节,列出被多路提到的位置及其结论是否矛盾
- 不修改代码,只输出评审报告

第 5 步,真用一次:跑一次真实评审,验证它是否按技能执行、输出是否达标。


让技能真正被触发

SKILL.md 写好还不够,要让「描述」能可靠触发它。两点关键:

  • 写清「何时用」:描述里明确「提交前、合并前、审查改动」这类触发语境,AI 才会在该用的时候用它。
  • 写清「何时不用」:比如「小改动、一眼能看明白的,不用走完整评审」。写清边界,避免它滥用。
触发提示技能里明确写一句「触发时机」和「不适用场景」,能大幅提升触发的准确性。codex-review 技能里写上「小改动不用走完整三路评审」,能避免它为 1 个文件也大动干戈。

写完别急着宣布成功

技能写出来要在真实任务里验证:它输出的东西是你想要的吗?有偏差就回去改 SKILL.md。技能是迭代出来的,不是一次写成的。

对 codex-review,验证尤其要看三点:

  • 三路真的并行了吗:还是只输出了一份综合意见?
  • 输出按三档了吗:还是自由发挥成一大段?
  • 做冲突对账了吗:还是只把三份贴一起?

哪一点没做到,就回 SKILL.md 把那条约定写得更强制。


落地练习

练习① 三步走:第 1 步,在项目的技能目录里建 codex-review/SKILL.md,把上面的内容抄进去(可再加你的自定义检查点);第 2 步,找一个真实分支,触发这个技能跑一次完整评审;第 3 步,对照「三路并行、三档输出、冲突对账」三点验证输出,有问题就改 SKILL.md 再跑。

② 怎么判断做对了:触发一次就能自动完成「派三路 → 三档输出 → 冲突对账」整套流程,不再需要你手打任何并行指令或模板;输出里「冲突对账」一节是完整的。

③ 卡住了怎么办:如果技能没被触发,检查描述里的「触发时机」够不够明确,或显式说「用 codex-review 技能」;如果某路结论太薄,回 SKILL.md 把该路的检查点写得更细再跑。

常见坑:步骤写得太「像人话」,AI 自由发挥

很多技能把步骤写成「认真审查代码、确保质量」,结果 AI 执行时自由发挥——想查什么查什么、输出格式随心。这种技能和没有一样。

技能的步骤必须是程序化的指令:明确「派几路、每路查哪些具体检查点、输出必须含什么字段、必须按什么格式」。越具体,AI 执行越稳定。含糊的步骤 = 自由的 AI。

做法codex-review 技能里,每个子 Agent 的检查点都写成一串可勾选的具体项(如「安全:注入、越权、硬编码密钥」),而不是「认真检查安全问题」。输出规范里把「必须含位置+问题+建议」「必须按三档」写死。这样技能才有可执行性。

小结

  1. 候选 = 你反复做、规则固定的事
  2. 技能 = 描述 + 步骤 + 输出规范
  3. 五步法:选事 → 写步骤 → 定规范 → 存技能 → 实测
  4. 在真实任务里验证并迭代
  5. codex-review 技能已可触发,下一节学怎么共享给团队

下一节,学怎么把技能共享给团队——让 codex-review 成为团队共同的评审标准。