Claude Code实战教程(6):插件化AI——Skills体系完全指南
《从零开始的 Claude Code 实战系列教程》第 6 篇 · 公众号「麒麟剑的AI自动化Lab」连载
▲ Skills 就像给 AI 装上专业插件,让它成为各个领域的专家
一、你有没有想过:为什么 Claude 每次都要重新学习?
假设你是某个项目的老员工,另一个同事刚入职,你需要花半天时间给他讲解项目背景、技术栈、编码规范、常用工具…
Claude 面临同样的问题:每次开启新会话,它都要从零开始理解你的项目。
解决方案有两种:
方案 A:写一份项目说明书(CLAUDE.md)
这是我们第 3 篇讲的内容,适合描述性的知识。
方案 B:创建 Skills(本章重点)
Skills 适合程序性的知识——“遇到这种情况,按以下步骤操作”。
二、什么是 Skill?为什么需要它?
Skills 是 Claude Code 的可复用知识模块。一个 Skill 就是一个 SKILL.md 文件,包含 Claude 在特定任务时需要遵循的指令、检查和工具。
核心价值
| 价值 | 说明 |
|---|---|
| 可复用 | 一次编写,无限次调用 |
| 上下文节省 | Skill 内容按需加载,不占默认上下文 |
| 一致性 | 每次执行相同的检查标准 |
| 团队共享 | 纳入 git,全团队使用同一套标准 |
| 自动触发 | 可以配置为在特定场景自动激活 |
三、Skill 与相关概念的区别
很多初学者容易混淆这些概念,我们来理清:
| 机制 | 用途 | 触发方式 | 类比 |
|---|---|---|---|
| CLAUDE.md | 项目级的”宪法”,始终可见 | 始终加载 | 公司规章制度 |
| Skill | 按需加载的可复用专业知识包 | 按需加载 | 专业手册/检查清单 |
| Hook | 确定性执行的自动化脚本 | 事件触发 | 自动化流水线 |
| MCP Server | 给 Claude 提供外部工具访问 | 自动可用 | 外接设备 |
简单理解:
- CLAUDE.md = 告诉 Claude “我是谁、我在哪”
- Skill = 告诉 Claude “遇到这种问题时,按这个流程处理”
- Hook = “每次你做这件事时,自动触发那个脚本”
- MCP = “给你一个工具,让你能访问外部系统”
四、Skill 的目录结构
最小结构
.claude/skills/
└── code-review/
└── SKILL.md完整结构(带辅助文件)
.claude/skills/
├── code-review/
│ ├── SKILL.md # 主要指令文件
│ ├── checks/ # 检查清单(可选)
│ │ ├── security.md
│ │ └── performance.md
│ └── templates/ # 模板文件(可选)
│ └── review-report.md
├── deploy/
│ └── SKILL.md
└── test/
├── SKILL.md
└── test-templates/
└── jest-template.ts五、编写你的第一个 Skill
场景:创建一个”代码审查 Skill”
Step 1:创建目录
mkdir -p .claude/skills/code-reviewStep 2:编写 SKILL.md
---
name: code-review
description: 对当前代码变更进行全面审查,包括安全性、性能、代码质量和最佳实践
triggers:
- "code review"
- "审查代码"
- "/code-review"
allowedTools:
- Read
- Grep
- Glob
- Bash
---
# Code Review Skill
你是一个经验丰富的代码审查专家。请对当前变更进行系统性审查。
## 审查流程
### 第一步:了解变更范围
1. 运行 `git diff HEAD` 查看当前变更
2. 识别修改了哪些文件
3. 理解变更的业务背景
### 第二步:安全性审查
- [ ] 是否有 SQL 注入风险?
- [ ] 是否有 XSS 漏洞?
- [ ] 敏感数据是否被正确保护?
### 第三步:性能审查
- [ ] 是否有 N+1 查询?
- [ ] 是否有不必要的循环?
- [ ] 内存使用是否合理?
### 第四步:输出审查报告
以以下格式输出:
- 🚨 严重问题(必须修复)
- ⚠️ 建议改进
- ✅ 做得好的地方
- 💡 总体建议Step 3:测试 Skill
在 Claude Code 中:
/code-review六、Skill Frontmatter 详解
每个 SKILL.md 文件顶部都有一个 frontmatter 区域,用于配置 Skill 的行为:
---
name: skill-name # Skill 名称,也是斜杠命令名
description: 一段描述 # Claude 用来判断是否需要加载此 Skill
paths: # 限制 Skill 只在特定文件模式下激活
- "*.ts"
- "src/**/*.tsx"
context: fork # 在隔离的子代理中运行此 Skill
allowedTools: # 限制 Skill 可使用的工具
- Read
- Glob
- Bash
disable-model-invocation: true # 只有用户能调用,Claude 不会自动触发
---字段说明
| 字段 | 作用 | 示例 |
|---|---|---|
name | Skill 名称,也是调用命令 | code-review → /code-review |
description | 触发条件描述 | "帮我审查代码" 会触发 |
paths | 文件路径匹配 | ["*.py", "tests/**"] |
context | 运行上下文 | fork = 子代理,shared = 共享上下文 |
allowedTools | 允许使用的工具 | 安全限制 |
disable-model-invocation | 禁用自动触发 | 仅手动调用 |
七、高级 Skill 技巧
技巧 1:动态注入命令输出
使用 !`command` 语法,在执行 Skill 前运行命令并将结果注入:
!`git log --oneline -5`
基于以上最近的提交记录,分析代码变更趋势...技巧 2:引用本地文件
使用 @ 引用 Skill 目录下的文件:
参考 @checks/security.md 进行安全审查技巧 3:在子代理中运行
context: fork适合需要独立上下文的大型任务(如并行研究多个模块)。
八、内置 Bundled Skills
Claude Code 自带多个常用 Skill:
| Skill | 功能 | 触发方式 |
|---|---|---|
/debug | 系统化调试 | 直接调用或自动触发 |
/code-review | 代码审查 | 直接调用或自动触发 |
/simplify | 简化代码 | /simplify |
/loop | 循环迭代优化 | /loop N |
/verify | 验证功能 | /verify |
/doctor | 环境诊断 | /doctor |
/batch | 批量处理任务 | /batch |
查看已安装的 Skills:
/skills九、实战:创建一个部署 Skill
假设你的项目有复杂的部署流程,每次都记不住步骤?创建一个 Skill 吧!
---
name: deploy
description: 执行项目部署流程,包括构建、测试、推送和上线
allowedTools:
- Bash
- Read
---
# Deploy Skill
## 部署前检查
1. 确认当前分支是 main 或 release/*
2. 运行所有测试:`npm run test`
3. 检查是否有未提交的修改
## 部署步骤
1. 构建:`npm run build`
2. 推送:`git push origin HEAD:main`
3. 触发 CI/CD:等待构建完成
4. 验证:访问 https://your-app.com 确认正常运行
## 回滚方案
如果部署失败:
1. 回滚到上一个版本:`kubectl rollout undo deployment/xxx`
2. 通知团队
3. 记录问题十、本章小结
| 核心概念 | 说明 |
|---|---|
| Skill 是什么 | 可复用的专业知识包,按需加载 |
| 存放位置 | .claude/skills/<name>/SKILL.md |
| Frontmatter | name, description, paths, context 等 |
| 自动触发 | 通过 description 关键词匹配 |
| 手动调用 | /skill-name |
| 重新加载 | /reload-skills |
| 共享方式 | 放入 git 仓库,团队共用 |
下期预告(第 7 篇):MCP协议与第三方集成——让Claude连接数据库、API和浏览器
关注本系列,从入门到专家,系统掌握 Claude Code 的全部技能。