这是Claude Code通关手册第七篇,这一篇让我们学习ClaudeCode的新功能Skills,从"每次重新教"到"一次封装,处处复用",这才是 AI 助手的正确打开方式
先来一个扎心的场景
你已经能够熟练的使用Claude Code:权限设置、CLAUDE.md、自定义命令、子代理、MCP......Claude Code 被你调教得越来越顺手。
但你有没有遇到过这种情况:
让 Claude 帮你 review 一段代码,它给出了一些建议------有些很中肯,有些完全不符合你们团队的习惯。你又得补充:"我们团队 review 代码时,重点关注可维护性和测试覆盖,性能问题先放一放,除非有明显的瓶颈。"
它记住了,这次 review 按你的要求来了。但下次你又让它 review,它又忘了这些约定。
更让人抓狂的是,你明明已经把代码审查规范写在了 CLAUDE.md 里,但它还是经常漏掉重点。问题出在哪?
你缺的不是"规范",而是 "技能"。
CLAUDE.md 是规则("应该做什么"),Skills 是能力("应该怎么做")。 规则是死的,技能是活的------它包含了工作流、脚本、判断逻辑,甚至是可执行的代码。
Skills 是什么?------30 秒讲清楚
Skills 是 Claude Code 里最容易被低估的功能。 很多人把它和 Commands 混为一谈,但它俩完全是两码事。
Skill 本质上是一个结构化的"能力包",里面可以包含:
- 专门的任务指令(告诉 Claude 怎么干活)
- 可执行的脚本(Python、JavaScript 等)
- 参考文档和数据
- 模板文件
Skill 最大的特点是按需加载------Claude 启动时只加载 Skill 的名字和描述,直到你提到相关任务,才会把完整指令加载进来。这意味着你可以装几十个 Skill,而上下文窗口几乎不受影响。
一句话:Skill = 给 Claude 的"岗位培训手册 + 工具箱",用的时候才打开。
为什么需要 Skills?
在上一篇文章里,我们聊了 MCP ------ 它是 Claude 的"外设接口",用来连接外部世界(数据库、GitHub、API 等)。但光有工具不够,你还得教 Claude 怎么用这些工具。
Skills 就是来填补这个空白的。 MCP 负责"能做什么",Skills 负责"该怎么做"。
举个例子:你给 Claude 装上了 GitHub MCP,它能访问 GitHub 了,但它不知道你团队是怎么管理 PR 的------标题格式是什么、描述里必须包含什么信息、需要 @ 谁。你把这些规则写成一个 pr-manager Skill,Claude 一遇到 PR 相关任务,就会自动按你的流程来办。
再看 Subagents(子代理) ------ 它们是"独立工位上的专家",有自己的上下文窗口。而 Skills 是"主 Agent 脑子里的知识模块",在主对话中运行,按需激活。两者的定位完全不同
至于 Commands(自定义命令) ------ 在 Claude Code 的最新版本中,Commands 已经被 Skills 体系吸收了。你现在创建的每个 Skill,都可以通过 /skill-name 的方式被手动调用。这也是为什么官方现在统一使用 Skills 这个名称来涵盖"可复用能力"这个概念。
从设计哲学上说,Commands、Skills 和 Agents 并非"进阶路径",而是不同协作粒度的互补机制。Commands 用于即时操作,Skills 封装可复用的专业能力,Agents 承担目标导向的自主任务------三者构成"协作三角",核心是扩展而非替代人类能力。
Skills 怎么用?
第一步:创建 Skill 目录
Skills 分为两种存储位置:
-
个人 Skills :
~/.claude/skills/------ 你自己的工具箱,所有项目都能用 -
项目 Skills :
.claude/skills/------ 跟着项目走,可以提交 Git,团队共享
每个 Skill 对应一个独立的目录,目录名就是 Skill 的名字。例如:
bash
mkdir -p .claude/skills/code-review
第二步:编写 SKILL.md 文件
每个 Skill 目录下必须有一个 SKILL.md 文件,
markdown
---
name: code-review
description: 按照团队规范进行代码审查。适用于用户请求 review 代码、检查 PR 或评估代码质量时。
---
# 代码审查技能
你是团队的代码审查专家。当被要求审查代码时,请遵循以下流程:
## 审查维度(按优先级排序)
1. **可维护性**:代码是否易于理解?是否有重复逻辑?
2. **测试覆盖**:关键路径是否有单元测试?
3. **安全性**:是否有明显的安全漏洞(SQL 注入、XSS 等)?
4. **性能**:仅当有明显瓶颈时才提出,否则忽略。
## 输出格式
- 严重问题(必须修复):用 ❌ 标记
- 建议改进:用 💡 标记
- 优秀实践:用 ✅ 标记
## 禁止事项
- 不要纠结命名风格(已在 CLAUDE.md 中定义)
- 不要建议"增加注释"除非逻辑确实难以理解
注意 YAML 头部的 description 字段至关重要 ------ Claude 靠它来决定什么时候自动激活这个 Skill。如果你的描述里包含了"review""审查""检查代码"等关键词,当你对 Claude 说"帮我 review 这段代码"时,它会自动激活这个 Skill。
你也可以手动调用 Skill:输入 /code-review,或者用更自然的方式:"用 code-review 技能检查这段代码"。
第三步:进阶------Skill + 脚本
Skills 真正的威力在于可以执行脚本。比如你不想每次都让 Claude 从头分析代码,可以写一个 Python 脚本来做静态分析,Skill 负责调用它。
一个示例目录结构:
.claude/skills/security-scan/
├── SKILL.md
└── scan.py
SKILL.md 内容:
markdown
---
name: security-scan
description: 对 Java/Spring Boot 代码进行安全漏洞扫描。使用内置脚本进行静态分析。
---
当用户请求安全扫描时,执行以下步骤:
1. 运行 `.claude/skills/security-scan/scan.py` 分析当前目录下的 Java 文件
2. 解析脚本输出的 JSON 结果
3. 按严重程度(严重/高危/中危/低危)整理报告
4. 对每个问题提供具体的修复建议
这样,Claude 就成了一个"知道怎么用工具的专家",而不是每次都要重新学习一套流程。
实战案例
案例一:Java 后端项目代码审查 Skill
markdown
---
name: java-code-review
description: 按照阿里巴巴 Java 开发手册标准审查 Java 代码。适用于 Spring Boot 项目的代码审查。
---
你是一名资深 Java 工程师。审查代码时,严格执行以下标准:
## 必须检查
- 命名规范:类名用大驼峰,方法/变量用小驼峰,常量全大写
- 异常处理:禁止吞异常,禁止 `e.printStackTrace()`
- 并发:SimpleDateFormat 是否为局部变量?集合在遍历时是否被修改?
- 数据库:SQL 是否在循环中执行?批量操作用 BatchUtils
## 忽略项
- 单行长度不超过 120 字符(IDE 会自动处理)
- 导入顺序(Maven 插件会处理)
输出时,每个问题标注"第X行",附上修改示例。
案例二:生成数据库文档 Skill
markdown
---
name: db-doc-gen
description: 为 MySQL/PostgreSQL 数据库生成表结构文档。适用于需要整理数据字典或准备技术文档时。
---
## 工作流程
1. 使用 MCP 连接数据库,查询 `information_schema` 获取表结构和注释
2. 按表分组,整理字段名、类型、是否为空、默认值、注释
3. 生成 Markdown 表格,按业务模块分类
4. 可选:如果存在外键关系,在文档末尾补充 ER 关系说明
## 输出示例
### 用户表 (users)
| 字段 | 类型 | 允许空 | 默认值 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | | 主键 |
| username | varchar(50) | NO | | 用户名 |
案例三:技术面试官 Skill
你没看错,Claude Code 不仅能写代码,还能帮你做副业。社区里有一个叫 content-pipeline 的 Skill,能让 Claude Code 变身内容生产线,一键完成从选题到推送的全流程。有开发者用它来做公众号排版------上传一个 Markdown 文件,Skill 自动调用封面生成、信息图制作,甚至同步推送到多个平台。
类似地,你可以创建一个"技术面试官"Skill:
markdown
---
name: tech-interview
description: 模拟技术面试,针对 Java 后端岗位提问并评估回答质量。
---
你是一名资深技术面试官。面试流程如下:
1. 根据用户指定的技术方向(Java 基础/Spring/数据库/并发)出 3 道题
2. 用户给出答案后,从"正确性""深度""表达清晰度"三个维度评分
3. 指出回答中的不足,并给出参考答案
## 面试风格
- 难度:中级(阿里 P6 水平)
- 语言:中文
- 每题追问 1-2 次
在 Claude Code 中启动这个 Skill,它就变成了一个 24 小时在线的面试陪练。用 Claude Code 来做面试?听起来有点跨界,但这就是 Skills 的魅力------它能做的事情,远不止写代码。
Skills vs Subagents:别再搞混了
这是社区里讨论最多、最容易混淆的两个概念。让我一次性说清楚:
| 维度 | Skills | Subagents |
|---|---|---|
| 定位 | 主 AI 的"知识模块" | 独立工位上的"专家助手" |
| 运行位置 | 在主对话上下文中运行 | 独立的上下文窗口 |
| 是否隔离 | 不隔离,直接与主对话交互 | 隔离运行,只汇报结果 |
| 触发方式 | 自动匹配或手动 /skill |
由 Claude 委派或显式调用 |
| 适合场景 | 需要主 AI 直接完成的任务 | 需要隔离、并行、权限受限的任务 |
| 类比 | 你脑子里的专业知识 | 你派出去跑腿的下属 |
一句话区分: Subagents 是"派出去独立干活的专家",Skills 是"装在大脑里的技能模块"
打个比方:你需要分析一个复杂的 bug------调用 Subagent,让它独立去排查,回来给你一份报告。你需要 review 代码------激活一个 Skill,你自己(主 AI)按照 Skill 的流程来审查。
两者不是替代关系,而是不同粒度的协作工具,应该根据任务复杂度灵活选用或组合
Skills 与 CLAUDE.md 的区别
这是另一个常见困惑。CLAUDE.md 是"项目手册"------每一轮对话都会加载进去,放的是"硬性规则",比如技术栈、编码规范。Skills 是"按需加载的技能包"------只在需要时才加载,放的是"工作流程"和"专业能力"。
举个例子:你在 CLAUDE.md 里写"批量查询必须用 BatchUtils"------这是规则。你在 Skill 里写"当用户请求优化数据库查询时,先分析索引,再推荐批量方案,最后生成代码"------这是能力。
两者相辅相成:规则定义边界,能力定义方法。
怎么装?三个方法搞定
方法一:官方Skills库(最推荐)
bash
# 添加官方插件市场
/plugin marketplace add anthropics/skills
# 安装文档处理包
/plugin install document-skills@anthropic-agent-skills
# 安装示例技能包
/plugin install example-skills@anthropic-agent-skills
装完重启Claude Code,输入"什么skill能用?"就能看到已安装的Skills[]。
方法二:使用社区CLI工具
社区工具 vercel-labs/skills 支持从GitHub仓库一键安装Skill,兼容超过40种AI Agent。
# 安装一个Skill
npx skills add <owner/repo>
# 例如安装微软官方的Playwright测试Skill
npx skills add microsoft/playwright-cli
方法三:手动安装
从GitHub下载Skill仓库,复制到 .claude/skills/ 目录即可。社区里已经有包含很多现成Skills的合集,可以直接"抄作业"
写在最后
Skill的真正魅力在于复用------别人踩过的坑、总结的经验、沉淀的工作流,都能直接变成你的"AI外挂"。你不需要从零开始造轮子,找到合适的Skill,装上去,然后用起来。
去 GitHub 上搜一下 claude-code-skills,你会发现一个巨大的宝藏库。
不用一次性写几十个。从你最疼的地方开始:
- Claude 每次 review 代码都不符合团队习惯?写一个
code-reviewSkill - 你总是在查数据库表结构?写一个
db-doc-genSkill - 你要做技术面试准备?写一个
tech-interviewSkill
每多一个 Skill,你就少做一次重复劳动。而这一次投入,可以复用无数次。
下一篇预告 :我们来聊聊 Hooks------当 Claude 做某个操作之前或之后,自动触发你的自定义逻辑。比如:每次 Claude 修改文件前自动备份,或者每次运行测试后自动分析结果。
你已经写过哪些好用的 Skill?欢迎在评论区分享你的"技能包",一起抄作业!