跳转到内容

Skill 体系

进阶

内容验证于 2026-06-24适用 Claude Code CLI v2.1

前置要求:

Skill 是可复用的任务指令。比如你每次提交代码都要说“分析变更、分组、生成规范的中文 commit message”,把它写成一个 Skill,下次直接 /commit 就行。

Skill 像厨房里的预制菜包——把“切菜、调味、控制火候”这些每次都重复的步骤打包好。你不用每次都从头描述流程,只需要说一个关键词(比如 /commit/render),AI 就知道该执行哪套完整流程。

  • CLAUDE.md 和 settings.json 已经配置好(参考核心配置
  • 你发现自己在重复输入相同类型的 prompt

Skill 文件放在 .claude/skills/~/.claude/skills/ 目录下,是普通的 markdown 文件:

---
name: my-skill
description: 简短描述这个 Skill 做什么
---
# Skill 标题
当用户说 X 时触发。
步骤:
1. 做 A
2. 做 B
3. 做 C

以 Jason 的 commit skill 为例。日常使用中,提交代码是最频繁的操作,一个好的 commit skill 能省下大量重复劳动。

这个 skill 支持 4 种工作模式:

用户输入模式行为
/commit分组模式(默认)分析所有变更,按主题自动分组,逐个提交
/commit single合并模式所有变更合为一个提交
/commit amend追加模式追加到上一个提交
/commit <路径>指定模式只提交指定的文件或目录

Skill 文件的结构(简化版展示关键设计):

---
name: commit
description: 分析 git 变更,按主题自动分组,逐个创建原子化提交
---
## 模式识别
根据用户输入选择执行模式(见上表)
## 执行步骤
### Step 1: 收集变更信息
git status + git diff --stat 看有哪些变更
### Step 2: 按主题分组
关联文件(同一目录/同一功能)合为一个提交
### Step 3: 展示分组方案,等待确认
⚠️ 必须暂停等用户确认,不直接提交
### Step 4: 执行提交
逐组 git add + git commit
### Step 5: 最终确认
git log --oneline 展示新提交

注意几个设计要点:

  1. 模式表格放在最前面 — Claude 先判断用哪种模式,不会选错
  2. 确认步骤不可跳过 — 提交是不可逆操作,必须等用户说“ok”
  3. 安全检查内置 — 提交前检查敏感文件、跳过临时文件
  4. 提交信息规范 — 定义清晰的格式:动词 + 对象:说明

这个 skill 比最开始的基本格式(5 步操作)复杂很多,但它解决的是真实问题:每天提交代码时不用重复输入“分析变更、分组、生成中文 commit message”。

在 Claude Code 对话中输入 /commit(对应 skill 的 name 字段)。

  • 显式调用:用户输入 /skill-name
  • 关键词触发:Skill 描述中的关键词匹配用户输入
  • 自动加载~/.claude/skills/ 下的 Skill 所有会话自动可用

动手试一试:从零创建你的第一个 Skill

Section titled “动手试一试:从零创建你的第一个 Skill”

不需要很复杂。我们来做一个“代码审查”Skill——你写完代码后输入 /review,Claude 自动帮你做检查。

在你的项目目录下创建文件(如果目录不存在,先 mkdir -p):

Terminal window
mkdir -p .claude/skills

然后创建 .claude/skills/review.md,写入以下内容:

---
name: review
description: 审查最近的代码变更,检查常见问题
---
# 代码审查
当用户输入 /review 时执行以下步骤:
## 步骤
1. 运行 `git diff --stat` 查看有哪些文件被改动
2. 对每个改动文件,检查:
- 是否有未处理的 TODO 或 FIXME
- 变量命名是否清晰
- 是否有重复代码可以提取
3. 用表格格式输出审查结果
4. 如果发现问题,给出具体修改建议

在 Claude Code 中输入:

/review

Claude 会读取你的 Skill 文件并按步骤执行。如果没触发,检查文件路径是否正确——必须在 .claude/skills/ 目录下。

第一版跑通后,根据实际使用中遇到的情况逐步增强。比如加上“忽略 node_modules”的规则、或者“只看最后一次 commit 的变更”。好的 Skill 是迭代出来的,不是一次写完的。

  1. 你创建了一个 Skill 叫 /format,但输入后 Claude 没反应。你会检查什么?
  2. 你想让一个 Skill 在所有项目中都能用,而不是只在当前项目。文件应该放在哪里?
  • Skill 不触发:检查文件在 .claude/skills/ 下(不是子目录的深层位置)。确认 frontmatter 的 name 字段没有和已有 Skill 冲突。
  • Skill 太泛化:描述太模糊会误触发。描述写清楚触发条件。
  • Skill 间冲突:多个 Skill 匹配同一输入时,Claude Code 会问你选哪个。
  • Skill 示例太简单学不到东西:教程里的示例通常是 5 步基础操作。真实 Skill 需要处理多种模式、异常情况和安全检查。先让最简单的版本跑通,再逐步加功能——不要一开始就写一个 200 行的 Skill。