如果你一直把同一份清单往聊天里贴,这段文字适合做成 skill(可复用的说明书,也称技能包)。Skill 是带 SKILL.md 的目录。Claude 把它加入可用工具,描述对上时使用,或你用 /skill-name 直接调用。

CLAUDE.md 的作用正好相反。每个会话开头都加载,所以只留每个会话都要用的短信息:常用命令、约定、怎样算做完。Skill 正文用到才加载。长参考资料在用到之前几乎不占对话上下文(token)。

自定义命令已经并入 skill。.claude/commands/deploy.md.claude/skills/deploy/SKILL.md 都会得到 /deploy。已有的命令文件仍可用。新工作请写成 skill:可以带辅助文件、控制是你还是 Claude 来调用,并在相关时自己加载。

放在哪里

  • 项目:.claude/skills/<name>/SKILL.md,提交后团队都能用
  • 个人:~/.claude/skills/<name>/SKILL.md,这台机器上的所有项目
  • 嵌套:一个仓库里有多个包的 monorepo 中,放在某个包下面,只适用于那里的工作

目录名就是你输入的命令。文件开头 --- 之间的 YAML 设置告诉 Claude 何时使用,下面的 markdown 是步骤。

先写一个只做评审的 skill

只汇报、不改文件的第一个 skill,第一次用更放心。它读尚未提交的改动(diff),写笔记,不改文件、不创建提交。

要保存的是下面这份英文正文。各行让 Claude 做的事如下。

  • description:对尚未提交的改动写一篇短评。用户问改了什么、提交前要笔记、或要风险清单时使用;只汇报,不改文件、不创建提交。
  • !`git diff HEAD` :在读其余指示之前,把当前尚未提交的改动插入正文。
  • 第 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,或在描述足够时问「我改了什么?」。! 那一行会在正文之前插入当前尚未提交的改动,笔记按这些改动来写。确认你看到的是短摘要和风险清单。

Skill 一旦加载,会留在之后的对话里并占用 token,所以只写步骤、少写原因。若不想让它自己触发,设 disable-model-invocation: true,只用 /review-notes 调用。

来源