【高级】Superpowers 高级技巧:如何自定义你的专属 Skill

0 阅读8分钟

前四篇文章我们分别讲了 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 行
    - 描述:...
    - 建议:...
 ​
 ### 🟡 改进建议
 ...
 ​
 ## 总结
 ...

审查流程

  1. 读取用户提供的代码
  2. 逐个维度分析
  3. 生成结构化报告
  4. 给出具体的修复建议
 ​
 ---
 ​
 ## 三、实战:从零编写一个"代码审查" 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. 再次运行代码审查

执行步骤

  1. 如果用户提供了文件路径,先读取文件内容
  2. 如果用户粘贴了代码块,直接使用
  3. 按照审查清单逐项检查
  4. 输出结构化报告
  5. 如果发现问题,给出具体的修复代码示例
 ​
 ### 步骤 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:

  1. Fork Superpowers 仓库
  2. skills/ 目录下添加你的 Skill
  3. 提交 Pull Request
  4. 审核通过后,所有人都能用到你的 Skill

六、更多创意:你可以创建的 Skills

灵感不够?这里有一些实用的 Skill 创意:

Skill 名称功能描述
api-doc-generator根据代码自动生成 API 文档
db-migration数据库迁移流程(生成 SQL、执行、回滚)
component-generator生成 React/Vue 组件脚手架
test-generator根据代码自动生成单元测试
deployment-checklist部署前检查清单(环境变量、配置、备份等)
refactor-helper重构建议(识别坏味道、给出重构方案)
performance-profiler性能分析(找出瓶颈、给出优化建议)

七、总结

  1. 为什么需要自定义 Skill:固化经验、提高效率
  2. Skill 的结构:SKILL.md + prompt.md + 可选目录
  3. 如何编写 Skill:从零写一个 code-review Skill
  4. 进阶技巧:添加参考文档、支持多语言、集成 CI/CD
  5. 分享发布:打包分享或提交到社区

核心思想:Skill 就是"提示词 + 流程"的封装。你平时怎么让 Claude Code 做事,就把它写成 Skill。

现在,轮到你了。想想你每天重复的开发流程,能不能把它变成一个 Skill?


👨‍💻 H先生出品 | 专注 AI 工具与效率提升