如果你发现自己反复把同一段要求粘给 Claude Code——比如「提交前先检查敏感信息和调试代码」「按固定模板发周报」「新文件先补测试」——就值得把它做成一个 Skill。Claude Code 的 Skill 就是放在固定目录里的一个 SKILL.md:正文只在被用到时才加载,所以可以写得比 CLAUDE.md 更详细,而不会每轮对话都占用上下文。
第一步:判断什么适合做成 Skill
- 适合:多步骤、有固定流程、你希望 Claude 严格按顺序执行的操作(检查、生成、转换、复盘)
- 不太适合:一两句话的偏好(放 CLAUDE.md 即可)、需要实时问答的内容
- 官方判断标准:当「你发现自己在重复粘贴同一段指令」或「CLAUDE.md 里某段已经从事实说明长成了操作流程」时,就该拆出来
第二步:建目录,写第一个 SKILL.md
Skill 是一个目录加一个 SKILL.md。项目级技能放在 .claude/skills/<技能名>/SKILL.md,会跟着仓库走、方便团队共享;个人级技能放在 ~/.claude/skills/<技能名>/SKILL.md,所有项目都能用。下面以「提交前自检」为例:
# 在项目里建一个技能目录
mkdir -p .claude/skills/pre-commit-check
# 写入 SKILL.md(内容如下)---
name: pre-commit-check
description: 在提交前对当前 git 改动做一轮自检:lint、测试、敏感信息与残留调试代码,输出问题清单和是否可提交的判断。
---
# 提交前自检
1. 用 git diff 找出本次改动的文件与内容
2. 逐项检查并记录:
- 是否混入 API Key、Token、密码等敏感信息
- 是否残留 console.log / print 调试输出或临时文件
- 是否还有未处理的 TODO / FIXME
- 新增文件是否配套了最小测试
3. 若项目配置了 lint 或测试命令,运行并汇总结果
4. 输出表格:问题 | 文件 | 修改建议;最后明确给出「可以提交」或「先修复以下问题」的判断frontmatter 里的 name 会成为技能名,description 写得越具体,Claude 越能在合适的场景自动想起它;正文则是真正被执行的操作步骤。按 Agent Skills 开放标准,这套结构在 Claude Code、Codex 等支持该标准的工具间可以通用。
第三步:装上并验证
- Claude Code 会监听 skills 目录,新增目录后无需重启即可识别
- 输入 / 查看命令列表,应能看到 pre-commit-check;直接输入 /pre-commit-check 即可手动执行
- 也可以什么都不输,直接说「提交前帮我自检一下」,让 Claude 根据 description 判断是否调用
# 在 Claude Code 会话里验证
/pre-commit-check
# 或者用自然语言触发
帮我跑一遍提交前自检第四步:从一次性的指令升级成能复用的技能
- 加参考文件:在技能目录里放 references/、templates/ 等子目录,正文用相对路径引用它们,适合放检查清单、代码模板等长内容
- 写失败分支:在正文里写明「找不到 diff 时提示先 git add」「lint 命令不存在时跳过并说明」
- 沉淀为团队规范:把写好的 .claude/skills 提交进仓库,队友 clone 后即用
- 保持克制:一个技能只做一件事,正文超过一屏就考虑拆成多个技能或把细节挪进参考文件
Skill 的价值不在写得多华丽,而在把「你每次都记得做、却每次都靠手粘」的那件事固化下来。官方文档:code.claude.com/docs/en/skills