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 frontmatter 和 Markdown 正文。
Frontmatter 字段
---
name: review
description: 按照团队规范做代码审查,检查安全性、性能和可维护性
allowed-tools:
- Read
- Glob
- Grep
disable-model-invocation: false
---
各字段含义:
| 字段 | 必填 | 说明 |
|---|---|---|
name | 是 | 命令名,输入 /name 触发 |
description | 是 | 描述这个 Skill 做什么,也是 Claude 判断是否自动触发的依据 |
allowed-tools | 否 | Skill 激活时自动授权的工具列表,免去逐次确认 |
disable-model-invocation | 否 | 设为 true 则 Claude 不会自动触发,只能手动 /name 调用 |
name:变成 /斜杠命令。比如 name: review,调用时就是 /review。
description:这个字段很关键。Claude 会读取所有 Skill 的描述,判断当前任务是否匹配某个 Skill。写得好,Claude 能在合适的时机自动帮你调用。
allowed-tools:Skill 运行时自动放行的工具。比如一个只读类的审查 Skill,可以授权 Read、Glob、Grep,这样 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.md、component.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 只做读取和分析,把 Read、Glob、Grep 加到 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 效率。
更多同类文章
- 我做了个机器人,让团队在飞书里用 Claude Code
- Claude Code /fast:同样的 Opus,两倍速——值不值?
- Claude Code /init:10 秒自动生成 CLAUDE.md
- Claude Code MCP:让 AI 连接 GitHub、数据库等一切工具
- Claude Code /model:Opus、Sonnet、Haiku 怎么选?
- Claude Code 使用指南:从安装到实战,一篇就够(2026)
- Claude 全家桶:从聊天到写代码到自动办公,一文讲清楚
- CCBot - 研发提效 24 倍
- 震惊!程序员用这个工具,4分钟干完95分钟的活!效率暴涨24倍
- Claude Code /add-dir:被低估的 Monorepo 神器
- Claude Code /compact:释放上下文,不丢进度
- Claude Code /btw 命令详解:不打扰主线的快问快答
- Claude Code /stats:看看 AI 到底帮你写了多少代码
- Claude Code /status 命令详解:一眼看清会话全貌
- AI-first 创业公司,为什么只需要一种编程语言?
- Claude Code 引用外部知识的最佳实践:GitHub MCP + Context7
- Claude Code 省 Token 小技巧:感叹号的妙用
- Claude Code /resume 命令详解:别让对话白聊
- Claude Code /usage 命令详解:你的额度还剩多少
- Claude Code /tasks 命令详解:后台任务尽在掌控
- Claude Code /plan 详解:先想清楚再动手
- Claude Code /memory 详解:让 AI 真正记住你的项目
- cc-ping:一行命令 Ping 所有 Claude Code 配置