Claude Code skills 让你保存一份反复贴进聊天的评审清单。每个 skill 都是包含 SKILL.md 文件的目录。请求与它的描述相符时,Claude 可以使用它,你也可以用 /review-notes 这样的命令自己启动。
把 Claude 在每次对话开始时需要的项目信息写进 CLAUDE.md,例如测试命令和编码约定。把有多个步骤的特定任务写成 skill,例如评审改动或准备部署。skill 的完整指示在这项任务需要时才会读取。
自定义命令已经并入 skill。.claude/commands/deploy.md 和 .claude/skills/deploy/SKILL.md 都会创建 /deploy。已有的命令文件仍可用。新工作请写成 skill:可以带辅助文件、控制是你还是 Claude 来调用,并在相关时自己加载。
放在哪里
- 项目:
.claude/skills/<name>/SKILL.md,提交后团队都能用 - 个人:
~/.claude/skills/<name>/SKILL.md,这台机器上的所有项目,但不包括 Cowork 或 cloud 会话 - 嵌套:
<subdir>/.claude/skills/<name>/SKILL.md,只适用于那里的工作。在该目录之上启动的会话,会在 Claude 处理那里的文件时加载这个 skill
在项目或个人 skill 中,目录名就是你输入的斜杠命令,frontmatter 的 name 是列表中的显示名;示例故意让两者相同。文件开头的 YAML frontmatter 告诉 Claude 何时使用,下面的 markdown 是步骤。
先写一个只做评审的 skill
只做汇报的第一个 skill,第一次用更放心。它读取当前文件与最后一次 Git 提交之间的差异,然后写评审笔记。示例里的四条指示让模型只做汇报;它们不会收回文件编辑或 git 工具。
要保存的是下面这份英文正文。各行让 Claude 做的事如下。
description:对尚未提交的改动写一篇短评。用户问改了什么、提交前要笔记、或要风险清单时使用;只汇报,不改文件、不创建提交。!`git diff HEAD`:Claude Code 会运行git diff HEAD,并在 Claude 看到指示之前,用命令输出替换这一!行。这个例子需要一个已有提交的 Git 项目。命令只把 Git 已经跟踪的文件和那次提交比较,尚未加入 Git 的新文件不会包含在内。如果注入的命令被拒绝或失败,skill 会在 Claude 看到它之前中止。- 第 1 条:用不超过三条要点概括改动。
- 第 2 条:列出风险:缺测试、机密信息、或看起来像误改的行为。
- 第 3 条:如果没有改动,如实说明并停止。
- 第 4 条:不改文件。不运行会写入仓库的 git 命令。
把这份英文存成 .claude/skills/review-notes/SKILL.md:
---
name: review-notes
description: Write a short review of the current diff. Use when the user asks what changed, wants notes before a commit, or asks for a risk list. Report only; do not edit files or create a commit.
---
## Diff
!`git diff HEAD`
## Instructions
1. Summarize the change in three bullets or fewer.
2. List risks: missing tests, secrets, or behavior that looks accidental.
3. If the diff is empty, say so and stop.
4. Do not edit files. Do not run git write commands.
在仓库里启动 Claude,输入 /review-notes,或在描述足够时问「我改了什么?」。! 那一行会在正文之前插入和最近一次提交相比的 diff,笔记按这个 diff 来写。确认你看到的是短摘要和风险清单。
指示应紧扣这项任务。一旦加载,skill 会留在对话里,并占用模型可用上下文的一部分。若只在你明确要求时运行,把 disable-model-invocation: true 加在 --- 标记之间的 YAML frontmatter 里、description 旁边,然后用 /review-notes 启动。