你有没有发现自己反复跟 AI 说同一件事?
"帮我写一个 NestJS 的 CRUD 模块,按照项目里已有的模式来。"——你跟 Claude Code 说了这句话,它干得挺好。
第二天,另一个模块也要做 CRUD。你又说了一遍同样的话。Claude Code 又生成了一次,但这次它的代码风格跟昨天的微妙地不一样——DTO 的命名方式变了,Service 里的错误处理也不太一致。
第三天,第三个模块。你开始烦了。
这就是 Skills 要解决的问题:把你教过 AI 的做事方法,打包成一个可以重复使用的"能力包"。

Skills 到底是什么?
简单粗暴地说,一个 Skill 就是一份 Markdown 文件加上一些可选的参考文件,放在 .claude/skills/ 目录下。当你用 / 命令调用一个 Skill 的时候,Claude Code 会把这个 Skill 的内容加载到上下文里,然后按照 Skill 里定义的规则来执行任务。
你可以把 Skill 理解为 CLAUDE.md 的"专项版":
| CLAUDE.md | Skill | |
|---|---|---|
| 作用域 | 整个项目 | 特定任务 |
| 加载方式 | 自动加载 | 按需调用 |
| 内容类型 | 项目通用规范 | 某类任务的专家知识 |
| 比喻 | 员工手册 | 操作流程 SOP |
crud-module-creator 的 Skill 会详细定义"创建 CRUD 模块的时候,Controller 怎么写、Service 怎么分层、DTO 用什么命名规范、测试怎么组织"。Skill 的目录结构
一个 Skill 通常长这样:
.claude/skills/
└── crud-module-creator/
├── SKILL.md # Skill 的主文件,定义角色和规则
└── references/
├── example.ts # 参考代码示例
└── template.md # 模板文件
SKILL.md 是核心,它告诉 Claude Code 这个 Skill 是干什么的、该怎么做。一个典型的 SKILL.md 结构:
# CRUD Module Creator
## 角色
你是一个 NestJS 后端模块生成专家。
## 输入
用户会告诉你模块名称和需要的字段。
## 输出规则
1. Controller 放在 module-name.controller.ts
2. Service 拆分为 crud / query / helper 三个文件
3. DTO 分为 create-dto 和 update-dto
4. 所有字段必须有 Swagger 装饰器
5. Service 单个文件不超过 400 行
## 参考
- 参考 references/example.ts 的代码风格
- 遵循 CLAUDE.md 中定义的项目规范
references/ 目录放的是参考文件——已有的代码示例、模板、或者你想让 AI 遵循的"标准答案"。这些文件在 Skill 被调用时会一起加载到上下文里。

怎么用 Skill?
调用 Skill 很简单,在 Claude Code 里输入 / 加上 Skill 的名字:
/crud-module-creator
请为 customer-lead 模块创建 CRUD 代码。
字段:name (string), email (string), phone (string), status (enum: new/contacted/converted)
Claude Code 会加载这个 Skill 的所有内容(SKILL.md + references/ 里的文件),然后按照 Skill 定义的规则来生成代码。
我在实际项目里用了 Skills 之后,一个最明显的变化是:AI 生成的代码一致性大幅提高了。 以前每次让 AI 写 CRUD,出来的代码风格都不太一样。现在有了 Skill,不管调用多少次,生成的代码结构和命名规范都是统一的。
话说回来,Skill 不只是能做代码生成这种"模板化"的事情。我见过有人做了这些 Skill:
code-reviewer:按照特定的 checklist 审查代码(安全性、性能、风格)pr-description-writer:根据 git diff 自动生成规范的 PR 描述bug-investigator:给一个 bug 报告,按固定流程排查原因api-designer:根据需求设计 RESTful API,输出 OpenAPI spec

本质上,任何你发现自己"反复跟 AI 解释同一套做事方法"的场景,都可以做成一个 Skill。
Skills——让 AI 记住你教过它的事情
理解 Claude Code Skills 框架的设计理念、创建方式和实际应用