Logo Vincent
返回文章列表

Claude Code Skills 详解:打造你的专属命令库

Claude
Claude Code Skills 详解:打造你的专属命令库

为什么需要 Skills

用 Claude Code 开发,你迟早会遇到这些场景:

每次做代码审查,都要打一大段提示词告诉 Claude 该看什么、怎么看。每次写博客,都要重新描述格式、风格、目录结构。每次写测试,都要解释一遍项目的测试规范。

同样的话说了十遍,你不烦,Claude 也不累,但你的时间在流失。

更头疼的是团队协作——你摸索出了一套高效的 Claude 使用方式,但团队里其他人还在各玩各的。知识没法沉淀,效率没法拉齐。

这时候你需要 Skills。

Skills 是什么

Skills 是 Claude Code 的自定义斜杠命令功能。简单说,就是把你常用的提示词写成一个 Markdown 文件,然后用 /命令名 一键调用。

比如你创建了一个叫 review 的 Skill,之后只需要输入:

/review

Claude 就会按照你预设的规则做代码审查——不用每次重新描述,不用担心遗漏步骤。

Skills 的本质就是:可复用、可共享、可版本管理的提示词模板。

关于历史:Claude Code 早期有两个概念——commands(命令)和 skills(技能),分别放在不同目录。现在它们已经合并了,统一叫 Skills,但旧的 .claude/commands/ 目录仍然兼容。

目录结构与作用域

Skills 有两个作用域:项目级个人级

项目级 Skills

放在项目的 .claude/skills/ 目录下,跟随代码仓库一起版本管理,团队所有人共享:

项目根目录/
  .claude/
    skills/
      review/
        SKILL.md        # Skill 定义文件
      gen-test/
        SKILL.md
        template.ts     # 辅助文件

每个 Skill 是一个文件夹,文件夹名就是命令名。核心文件是 SKILL.md,其他文件都是可选的辅助材料。

个人级 Skills

放在 ~/.claude/skills/ 目录下,只有你自己能用,不会提交到代码仓库:

~/.claude/
  skills/
    my-style/
      SKILL.md
    daily-report/
      SKILL.md

适合放一些个人习惯相关的命令,比如你偏好的代码风格、日报模板等。

优先级

当项目级和个人级存在同名 Skill 时,项目级优先。这很合理——项目规范应该覆盖个人偏好。

SKILL.md 文件格式

每个 SKILL.md 由两部分组成:YAML frontmatterMarkdown 正文

Frontmatter 字段

---
name: review
description: 按照团队规范做代码审查,检查安全性、性能和可维护性
allowed-tools:
  - Read
  - Glob
  - Grep
disable-model-invocation: false
---

各字段含义:

字段必填说明
name命令名,输入 /name 触发
description描述这个 Skill 做什么,也是 Claude 判断是否自动触发的依据
allowed-toolsSkill 激活时自动授权的工具列表,免去逐次确认
disable-model-invocation设为 true 则 Claude 不会自动触发,只能手动 /name 调用

name:变成 /斜杠命令。比如 name: review,调用时就是 /review

description:这个字段很关键。Claude 会读取所有 Skill 的描述,判断当前任务是否匹配某个 Skill。写得好,Claude 能在合适的时机自动帮你调用。

allowed-tools:Skill 运行时自动放行的工具。比如一个只读类的审查 Skill,可以授权 ReadGlobGrep,这样 Claude 执行时不会每次都弹确认框。

disable-model-invocation:默认 false,即 Claude 可以根据上下文自动触发。设为 true 后,只有你手动输入 /命令名 才会执行。敏感操作建议开启。

Markdown 正文

Frontmatter 下面就是给 Claude 的指令,用 Markdown 写:

## 审查步骤

1. 先用 Grep 搜索本次改动涉及的文件
2. 逐个文件检查以下内容:
   - 是否存在安全漏洞(SQL 注入、XSS 等)
   - 是否有性能问题(N+1 查询、不必要的渲染等)
   - 命名是否清晰,逻辑是否可维护
3. 输出审查报告,按严重程度排列问题

## 输出格式

用表格列出问题,包含:文件名、行号、严重程度、问题描述、修复建议

把 frontmatter 和正文组合起来,就是一个完整的 SKILL.md

辅助文件

SKILL.md 所在的文件夹里,可以放额外的辅助文件来增强 Skill 的能力:

文件类型用途示例
模板文件让 Claude 按模板填充内容template.mdcomponent.tsx
示例输出告诉 Claude 期望的输出格式example-output.md
脚本文件让 Claude 执行特定脚本run-check.sh
参考文档提供领域知识或规范说明style-guide.md

SKILL.md 正文里引用这些文件即可:

## 模板

请参考同目录下的 `template.tsx` 作为组件模板。

## 示例

期望的输出格式见 `example-output.md`

这样 Claude 就知道去读取这些文件,按照模板和示例来执行任务。

实际使用场景

场景一:代码审查 Skill

团队统一的代码审查标准,所有人用同一个命令:

.claude/skills/review/SKILL.md
---
name: review
description: 按照团队标准审查代码变更,检查安全性、性能和代码质量
allowed-tools:
  - Read
  - Glob
  - Grep
  - Bash
---
## 任务

审查当前分支相对于 main 的所有变更。

## 检查项

1. **安全性**:注入攻击、敏感信息泄露、权限检查
2. **性能**:N+1 查询、大量数据加载、不必要的重渲染
3. **代码质量**:命名规范、函数长度、重复代码
4. **测试覆盖**:新增逻辑是否有对应测试

## 输出

按严重程度输出问题列表,每个问题包含文件、行号和修复建议。

团队里任何人输入 /review,都能得到一致标准的代码审查。

场景二:博客写作 Skill

把你写博客的规范固化成 Skill:

.claude/skills/blog/SKILL.md
---
name: blog
description: 按照项目规范写中文博客文章
allowed-tools:
  - Read
  - Glob
  - Write
disable-model-invocation: true
---
## 任务

根据用户提供的主题写一篇中文博客。

## 规范

- 文件位置:src/data/blog/zh/<slug>.md
- frontmatter 必填:title, description, date, tags, lang: zh
- 风格:口语化,第二人称,多用加粗强调关键点
- 结构:为什么需要 → 是什么 → 怎么用 → 实际场景 → 技巧 → 总结

以后写博客,/blog 一键启动,格式、风格全部自动对齐。

场景三:测试生成 Skill

项目的测试有特定的写法和规范,用 Skill 固化下来:

.claude/skills/gen-test/SKILL.md
---
name: gen-test
description: 为指定文件生成单元测试,遵循项目测试规范
allowed-tools:
  - Read
  - Glob
  - Grep
  - Write
---
## 任务

为用户指定的源文件生成单元测试。

## 规范

- 测试框架:Jest
- 文件命名:<原文件名>.test.ts
- 每个导出函数至少 3 个测试用例:正常输入、边界值、异常输入
- 使用 describe/it 嵌套结构
- Mock 外部依赖,不要发真实网络请求

输入 /gen-test src/utils/format.ts,Claude 自动按规范生成测试。

实用技巧

技巧一:善用 allowed-tools 免确认

如果一个 Skill 只做读取和分析,把 ReadGlobGrep 加到 allowed-tools 里。这样 Claude 执行时不会反复弹确认框,体验丝滑很多。

但要注意:写入类工具(Write、Edit)谨慎授权,尤其是会修改代码的 Skill,保留人工确认更安全。

技巧二:用 disable-model-invocation 防误触

有些 Skill 的 description 写得比较宽泛,Claude 可能在不该触发的时候自动触发了。把 disable-model-invocation 设为 true,确保只有你手动输入 /命令名 才会执行。

经验法则:只读类的 Skill 可以让 Claude 自动触发,写入类或敏感操作的 Skill 建议手动触发。

技巧三:利用 Anthropic 官方 Skills 仓库

Anthropic 在 GitHub 上维护了一个官方 Skills 仓库(anthropics/skills),里面有不少开箱即用的 Skill,比如 skill-creator——一个专门帮你创建新 Skill 的 Skill。

可以直接复制到你的项目里,或者参考它们的写法来创建自己的 Skill。

技巧四:注意上下文预算

Claude 会把所有 Skill 的名称和描述加载到上下文中。如果 Skill 太多,描述会被截断。默认预算是上下文窗口的 1%,可以通过环境变量调整:

export SLASH_COMMAND_TOOL_CHAR_BUDGET=16000

所以 description 要写得精炼有效——用最少的字说清楚这个 Skill 干什么、什么时候该用。

写在最后

Skills 解决的问题很简单:把你的经验变成可复用的命令。

用 Claude Code 做开发,每个人都会积累出一套自己的”最佳实践”——怎么审查代码、怎么写测试、怎么做重构。但如果这些经验只存在你的脑子里,每次都靠手打提示词来传达,那它就是不可扩展的。

把它写成 Skill,团队共享,版本管理,一个 /命令 就能调用。个人经验变成团队能力,一次沉淀永久复用。

一个文件夹,一个 SKILL.md,撬动整个团队的 AI 效率。

© 2026 vincentqiao.com . 保留所有权利。