基础:Skill是什么
Skill是Claude Code的"插件",把一段Prompt封装成可复用的命令,一本手册,一本说明书,AI在需要的时候可以翻出来阅读。

一个Skill的本质
一个Skill = 一个指令 + 一段Prompt + 配置
Skill的文件结构
text
my-skill/
├── SKILL.md # 必选,主指令
├── template.md # 可选,输出模板
├── examples/ # 可选,示例
└── scripts/ # 可选,脚本
SKILL.md核心结构
yaml
---
name: skill-name
description: 什么时候用这个skill(AI靠这个判断何时触发)
model: sonnet
allowed-tools: [Read, Edit, Write]
---
# Skill主指令
按以下框架执行任务:
1. 第一步:xxx
2. 第二步:xxx
3. 第三步:xxx
实战:如何写好一个Skill
核心原则:让AI知道什么时候该用
description是最重要的字段,决定了AI什么时候触发这个Skill。
✅ 好的description:
"审查代码的安全风险,当用户要求审查代码、分析漏洞时使用"
❌ 差的description:
"审查代码"
Skill分类与写法
1. 分析类Skill(自动触发)
yaml
---
name: code-analyzer
description: 分析代码质量和安全风险,用户问"分析代码"、"审查漏洞"时使用
model: sonnet
allowed-tools: [Read, Grep, Edit]
---
分析代码时:
## 1. 安全检查
- SQL注入、XSS、权限问题
- 敏感信息(密码、key、token)
## 2. 性能检查
- N+1查询
- 循环内的数据库操作
## 3. 代码质量
- 函数长度(>50行要拆分)
- 重复代码
## 4. 输出格式
| 问题 | 位置 | 级别 | 建议 |
|------|------|------|------|
2. 执行类Skill(手动触发)
yaml
---
name: generate-api
description: 生成RESTful API接口,用户要求"生成API"时使用
disable-model-invocation: true
model: opus
allowed-tools: [Write, Edit, Bash]
---
生成API步骤:
1. 分析需求
- 确定资源名
- 确定CRUD操作
- 确定请求/响应格式
2. 生成代码
- 路由定义
- 请求校验
- 业务逻辑
- 响应格式
3. 生成测试
- 单元测试
- 集成测试
3. 批量处理Skill
yaml
---
name: batch-refactor
description: 批量重构代码,用户要求批量修改、重构时使用
model: sonnet
context: fork
allowed-tools: [Read, Grep, Edit, Write]
---
批量重构步骤:
1. 扫描匹配文件
- 使用Grep找到目标模式
- 列出需要修改的文件
2. 逐个修改
- Read文件
- Edit修改
- Write保存
3. 验证
- 跑测试
- 检查编译
进阶:好Skill的要素
1. 清晰的触发条件
yaml
# ❌ 模糊
description: "写测试"
# ✅ 清晰
description: "为代码生成单元测试,当用户要求"写测试"、"添加测试"时使用"
2. 明确的输出格式
yaml
# 输出格式示例
## 1. 总结
## 2. 发现的问题
| 文件 | 问题 | 级别 |
|------|------|------|
## 3. 修复建议
3. 合理的工具权限
yaml
# 分析类只需要读
allowed-tools: [Read, Grep]
# 执行类需要写
allowed-tools: [Read, Edit, Write, Bash]
4. 适当的模型选择
| 任务类型 | 推荐模型 |
|---|---|
| 分析/审查 | sonnet(够用且快) |
| 复杂生成 | opus(最强) |
| 简单执行 | haiku(最便宜) |
实战:团队专业Skill示例
1. 代码审查Skill
yaml
---
name: review-code
description: 审查代码的安全、性能、规范,用户问"审查代码"、"看看有没有问题"时使用
model: sonnet
allowed-tools: [Read, Grep]
---
代码审查框架:
## 安全风险
- [ ] SQL注入
- [ ] XSS
- [ ] 权限问题
- [ ] 敏感信息
## 性能问题
- [ ] N+1查询
- [ ] 全表扫描
- [ ] 循环内IO
## 代码规范
- [ ] 命名规范
- [ ] 注释完整
- [ ] 测试覆盖
## 输出
按表格输出发现的每个问题
2. SQL审查Skill
yaml
---
name: review-sql
description: 审查SQL风险,用户要求审查SQL、检查数据库改动时使用
model: sonnet
allowed-tools: [Read, Grep]
---
SQL审查要点:
## 1. 批量更新
- UPDATE/DELETE必须有WHERE
- 避免无WHERE的全表操作
## 2. 索引
- WHERE条件必须有索引
- 避免全表扫描
## 3. 事务
- 明确事务边界
- 注意事务传播
## 输出格式
| 文件 | 风险 | 建议 |
|------|------|------|
3. 生成测试Skill
yaml
---
name: write-tests
description: 生成单元测试,用户要求"写测试"、"添加测试用例"时使用
model: sonnet
allowed-tools: [Read, Write, Grep]
---
测试生成步骤:
1. 理解被测代码
- Read源码
- 理解输入输出
2. 识别测试场景
- 正常输入
- 边界输入
- 异常输入
3. 生成测试
- 使用项目测试框架
- 包含断言
- 覆盖主要场景
推荐:好用的官方Skills
| Skill | 命令 | 用途 |
|---|---|---|
| Code Review | claude plugin install code-review |
多Agent审查 |
| Superpowers | claude plugin install superpowers |
全流程 |
| Simplify | claude plugin install code-simplifier |
代码简化 |
常见问题
Q1:Skill不触发?
检查description是否清晰,AI是否能理解触发条件。
Q2:Skill输出不好?
优化输出格式,给AI明确的输出框架。
Q3:权限不够?
在frontmatter中添加allowed-tools。