前四篇文章我们分别讲了 Superpowers 是什么、怎么用、以及用 Skills 开发完整项目。今天,我们来点更进阶的:自己动手,写一个专属 Skill,让 Claude Code 真正变成你的"私人开发助手"。
一、为什么需要自定义 Skill?
用了一段时间 Superpowers,你可能会发现:
- 有些重复的工作流程,每次都要手动描述
- 团队有特定的代码规范,内置 Skills 不完全适配
- 想把自己的开发经验"固化"成可复用的流程
- 公司私有框架,需要专门的开发 Skill
举个例子:
每次做代码审查(Code Review),你都要说一遍:
"帮我审查这段代码,重点看:1. 安全性 2. 性能 3. 可维护性,输出 Markdown 格式的审查报告"
说多了就烦。如果有个 /superpowers.code-review 命令,一键触发,岂不美哉?
这就是自定义 Skill 的价值:把你的经验变成可复用的"技能包" 。
二、Superpowers Skill 结构解析
在动手之前,先看看一个标准的 Superpowers Skill 长什么样。
2.1 目录结构
skills/
└── code-review/
├── SKILL.md # Skill 描述文件(必需)
├── prompt.md # 主提示词文件(必需)
├── examples/ # 示例目录(可选)
│ └── sample-review.md
└── references/ # 参考文件(可选)
└── company-style-guide.md
2.2 SKILL.md —— Skill 的"身份证"
---
name: code-review
description: 代码审查 Skill,自动审查代码的安全性、性能和可维护性,输出 Markdown 报告。
---
# Code Review Skill
这个 Skill 用于自动化代码审查流程...
## 使用方式
> /superpowers.code-review <文件路径或代码块>
关键点:
name:Skill 的唯一标识符,决定命令名description:简短描述,会出现在/superpowers命令列表中- 正文:详细说明如何使用这个 Skill
2.3 prompt.md —— Skill 的"大脑"
这是 Skill 的核心,定义了 Claude Code 执行这个 Skill 时的行为和输出格式。
# Code Review 提示词
你是一个资深的代码审查工程师。当用户提供代码时,你需要从以下维度进行审查:
## 审查维度
1. **安全性**:SQL 注入、XSS、权限验证等
2. **性能**:时间复杂度、数据库查询优化、缓存使用等
3. **可维护性**:命名规范、注释、模块化等
4. **最佳实践**:是否符合团队规范
## 输出格式
输出 Markdown 格式的报告:
```markdown
# 代码审查报告
## 概述
- 文件:xxx
- 审查时间:xxx
- 整体评分:⭐⭐⭐⭐ (4/5)
## 问题列表
### 🔴 严重问题
1. [问题标题]
- 位置:第 XX 行
- 描述:...
- 建议:...
### 🟡 改进建议
...
## 总结
...
审查流程
- 读取用户提供的代码
- 逐个维度分析
- 生成结构化报告
- 给出具体的修复建议
---
## 三、实战:从零编写一个"代码审查" Skill
好了,理论讲完,动手写!
### 步骤 1:创建 Skill 目录
在 Claude Code 的 skills 目录下创建新 Skill:
```bash
mkdir -p ~/.claude/skills/code-review
cd ~/.claude/skills/code-review
步骤 2:编写 SKILL.md
创建 SKILL.md 文件:
---
name: code-review
description: 自动化代码审查,检查安全性、性能和可维护性,输出 Markdown 报告。
---
# Code Review Skill
一键触发代码审查,生成专业的审查报告。
## 使用方式
```
/superpowers.code-review <文件路径>
```
或
```
/superpowers.code-review
# 然后粘贴代码块
```
## 审查维度
- 🔐 安全性(SQL注入、XSS、权限等)
- ⚡ 性能(时间复杂度、数据库优化等)
- 🛠️ 可维护性(命名、注释、模块化等)
- ✅ 最佳实践(团队规范等)
## 输出
Markdown 格式的审查报告,包含问题列表、严重等级、修复建议。
步骤 3:编写 prompt.md
这是 Skill 的核心,告诉 Claude Code 怎么执行审查:
# Code Review 执行指令
你是一个有 10 年经验的技术负责人,负责代码审查。
## 任务
审查用户提供的代码,输出结构化报告。
## 审查清单
### 1. 安全性审查
- [ ] SQL 注入风险
- [ ] XSS 攻击风险
- [ ] 不安全的直接对象引用(IDOR)
- [ ] 敏感信息泄露(硬编码密码、API Key 等)
- [ ] 权限验证是否完善
- [ ] CSRF 防护
### 2. 性能审查
- [ ] 时间复杂度是否合理
- [ ] 数据库查询是否优化(N+1 问题、索引使用)
- [ ] 是否有不必要的循环嵌套
- [ ] 大文件/大对象处理是否高效
- [ ] 缓存策略是否合理
### 3. 可维护性审查
- [ ] 变量/函数命名是否语义化
- [ ] 函数是否过长(建议 < 50 行)
- [ ] 是否有足够的注释(关键逻辑)
- [ ] 代码重复率是否过高
- [ ] 模块化是否合理
### 4. 最佳实践
- [ ] 是否符合团队代码规范
- [ ] 错误处理是否完善
- [ ] 是否有单元测试
- [ ] 日志输出是否合理
- [ ] API 设计是否 RESTful
## 输出格式
严格按照以下格式输出:
```markdown
# 🔍 代码审查报告
**文件**:{{文件路径}}
**审查时间**:{{当前时间}}
**整体评分**:{{⭐ 1-5 星}}
---
## 📊 审查摘要
| 维度 | 问题数 | 状态 |
|------|--------|------|
| 安全性 | X 个 | ✅/⚠️/❌ |
| 性能 | X 个 | ✅/⚠️/❌ |
| 可维护性 | X 个 | ✅/⚠️/❌ |
| 最佳实践 | X 个 | ✅/⚠️/❌ |
---
## 🔴 严重问题
### 1. [问题标题]
- **位置**:第 XX 行
- **风险等级**:高/中/低
- **描述**:详细说明...
- **代码示例**:
```语言
// 有问题的代码
```
- **修复建议**:
```语言
// 修复后的代码
```
---
## 🟡 改进建议
(类似格式,列出改进点)
---
## 💡 总结
(给出整体评价,指出最需要优先修复的问题)
---
## ✅ 验证方式
建议通过以下方式验证修复效果:
1. 运行单元测试
2. 手动测试相关功能
3. 再次运行代码审查
执行步骤
- 如果用户提供了文件路径,先读取文件内容
- 如果用户粘贴了代码块,直接使用
- 按照审查清单逐项检查
- 输出结构化报告
- 如果发现问题,给出具体的修复代码示例
### 步骤 4:测试你的 Skill
重启 Claude Code(或重新加载 Skills),然后测试:
/superpowers.code-review src/app.js
或者:
/superpowers.code-review
然后粘贴一段代码:
```javascript
app.post('/login', (req, res) => {
const { username, password } = req.body;
db.query(`SELECT * FROM users WHERE username='${username}' AND password='${password}'`, (err, rows) => {
if (rows.length > 0) {
res.json({ token: 'abc123' });
} else {
res.status(401).json({ error: '登录失败' });
}
});
});
预期输出:
# 🔍 代码审查报告
**文件**:src/app.js
**审查时间**:2026-04-29 10:53
**整体评分**:⭐⭐ (2/5)
---
## 📊 审查摘要
| 维度 | 问题数 | 状态 |
|------|--------|------|
| 安全性 | 2 个 | ❌ |
| 性能 | 0 个 | ✅ |
| 可维护性 | 1 个 | ⚠️ |
| 最佳实践 | 1 个 | ⚠️ |
---
## 🔴 严重问题
### 1. SQL 注入漏洞
- **位置**:第 3 行
- **风险等级**:高
- **描述**:直接拼接用户输入到 SQL 查询中,存在严重的 SQL 注入风险。攻击者可以通过构造特殊的 username 或 password 绕过登录验证,甚至窃取数据库数据。
- **代码示例**:
```javascript
db.query(`SELECT * FROM users WHERE username='${username}' AND password='${password}'`, ...)
-
修复建议:
// 使用参数化查询 db.query('SELECT * FROM users WHERE username = ? AND password = ?', [username, password], (err, rows) => { // ... });
2. 密码明文存储
-
位置:第 3 行(password 字段)
-
风险等级:高
-
描述:密码以明文形式存储在数据库中,一旦数据库泄露,所有用户密码暴露。
-
修复建议:
// 使用 bcrypt 等库对密码进行哈希存储 const hashedPassword = await bcrypt.hash(password, 10); // 验证时使用 bcrypt.compare
(后续内容省略...)
---
## 四、进阶技巧:让 Skill 更强大
### 4.1 添加参考文档
在 `references/` 目录下添加团队的代码规范文档,`prompt.md` 中可以引用:
```markdown
## 参考规范
请参考以下文档进行代码审查:
- [团队 JavaScript 规范](references/js-style-guide.md)
- [安全编码指南](references/security-guide.md)
4.2 支持多种编程语言
修改 prompt.md,让 Skill 支持多种语言:
## 语言适配
根据用户提供的代码,自动识别编程语言(JavaScript/Python/Java/Go 等),应用对应语言的审查标准。
### JavaScript 审查重点
- 回调地狱、Promise 使用、async/await 错误处理
### Python 审查重点
- GIL 影响、 with 语句使用、类型注解
### Go 审查重点
- goroutine 泄漏、error 处理、defer 使用
4.3 集成到 CI/CD
你可以把这个 Skill 集成到 CI/CD 流程中,每次提交代码自动审查:
# .github/workflows/code-review.yml
name: Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Code Review
run: |
claude -p "/superpowers.code-review $(git diff --name-only origin/main...HEAD)"
五、分享你的 Skill
写好 Skill 之后,可以分享给团队或开源社区:
5.1 打包分享
# 打包 Skill
cd ~/.claude/skills
tar -czf code-review-skill.tar.gz code-review/
# 分享给同事
scp code-review-skill.tar.gz colleague@server:~/
5.2 发布到 Skill 市场
Superpowers 社区正在建设 Skill 市场,你可以提交自己的 Skill:
- Fork Superpowers 仓库
- 在
skills/目录下添加你的 Skill - 提交 Pull Request
- 审核通过后,所有人都能用到你的 Skill
六、更多创意:你可以创建的 Skills
灵感不够?这里有一些实用的 Skill 创意:
| Skill 名称 | 功能描述 |
|---|---|
api-doc-generator | 根据代码自动生成 API 文档 |
db-migration | 数据库迁移流程(生成 SQL、执行、回滚) |
component-generator | 生成 React/Vue 组件脚手架 |
test-generator | 根据代码自动生成单元测试 |
deployment-checklist | 部署前检查清单(环境变量、配置、备份等) |
refactor-helper | 重构建议(识别坏味道、给出重构方案) |
performance-profiler | 性能分析(找出瓶颈、给出优化建议) |
七、总结
- 为什么需要自定义 Skill:固化经验、提高效率
- Skill 的结构:SKILL.md + prompt.md + 可选目录
- 如何编写 Skill:从零写一个 code-review Skill
- 进阶技巧:添加参考文档、支持多语言、集成 CI/CD
- 分享发布:打包分享或提交到社区
核心思想:Skill 就是"提示词 + 流程"的封装。你平时怎么让 Claude Code 做事,就把它写成 Skill。
现在,轮到你了。想想你每天重复的开发流程,能不能把它变成一个 Skill?
👨💻 H先生出品 | 专注 AI 工具与效率提升