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

前四篇文章我们分别讲了 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 目录结构

bash 复制代码
 skills/
 └── code-review/
     ├── SKILL.md          # Skill 描述文件(必需)
     ├── prompt.md         # 主提示词文件(必需)
     ├── examples/         # 示例目录(可选)
     │   └── sample-review.md
     └── references/       # 参考文件(可选)
         └── company-style-guide.md

2.2 SKILL.md ------ Skill 的"身份证"

shell 复制代码
 ---
 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 时的行为和输出格式。

shell 复制代码
 # Code Review 提示词
 ​
 你是一个资深的代码审查工程师。当用户提供代码时,你需要从以下维度进行审查:
 ​
 ## 审查维度
 ​
 1. **安全性**:SQL 注入、XSS、权限验证等
 2. **性能**:时间复杂度、数据库查询优化、缓存使用等
 3. **可维护性**:命名规范、注释、模块化等
 4. **最佳实践**:是否符合团队规范
 ​
 ## 输出格式
 ​
 输出 Markdown 格式的报告:
 ​
 ```markdown
 # 代码审查报告
 ​
 ## 概述
 - 文件:xxx
 - 审查时间:xxx
 - 整体评分:⭐⭐⭐⭐ (4/5)
 ​
 ## 问题列表
 ​
 ### 🔴 严重问题
 1. [问题标题]
    - 位置:第 XX 行
    - 描述:...
    - 建议:...
 ​
 ### 🟡 改进建议
 ...
 ​
 ## 总结
 ...

审查流程

  1. 读取用户提供的代码
  2. 逐个维度分析
  3. 生成结构化报告
  4. 给出具体的修复建议
bash 复制代码
 ​
 ---
 ​
 ## 三、实战:从零编写一个"代码审查" Skill
 ​
 好了,理论讲完,动手写!
 ​
 ### 步骤 1:创建 Skill 目录
 ​
 在 Claude Code 的 skills 目录下创建新 Skill:
 ​
 ```bash
 mkdir -p ~/.claude/skills/code-review
 cd ~/.claude/skills/code-review

步骤 2:编写 SKILL.md

创建 SKILL.md 文件:

perl 复制代码
 ---
 name: code-review
 description: 自动化代码审查,检查安全性、性能和可维护性,输出 Markdown 报告。
 ---
 ​
 # Code Review Skill
 ​
 一键触发代码审查,生成专业的审查报告。
 ​
 ## 使用方式
 ​
 ```
 /superpowers.code-review <文件路径>
 ```
 ​
 或
 ​
 ```
 /superpowers.code-review
 # 然后粘贴代码块
 ```
 ​
 ## 审查维度
 ​
 - 🔐 安全性(SQL注入、XSS、权限等)
 - ⚡ 性能(时间复杂度、数据库优化等)
 - 🛠️ 可维护性(命名、注释、模块化等)
 - ✅ 最佳实践(团队规范等)
 ​
 ## 输出
 ​
 Markdown 格式的审查报告,包含问题列表、严重等级、修复建议。

步骤 3:编写 prompt.md

这是 Skill 的核心,告诉 Claude Code 怎么执行审查:

ini 复制代码
 # 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. 如果发现问题,给出具体的修复代码示例
shell 复制代码
 ​
 ### 步骤 4:测试你的 Skill
 ​
 重启 Claude Code(或重新加载 Skills),然后测试:
 ​

/superpowers.code-review src/app.js

复制代码
 ​
 或者:
 ​

/superpowers.code-review

dart 复制代码
然后粘贴一段代码:

```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: '登录失败' });
    }
  });
});

预期输出:

yaml 复制代码
# 🔍 代码审查报告

**文件**: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}'`, ...)
  • 修复建议

    javascript 复制代码
    // 使用参数化查询
    db.query('SELECT * FROM users WHERE username = ? AND password = ?', [username, password], (err, rows) => {
      // ...
    });

2. 密码明文存储

  • 位置:第 3 行(password 字段)

  • 风险等级:高

  • 描述:密码以明文形式存储在数据库中,一旦数据库泄露,所有用户密码暴露。

  • 修复建议

    csharp 复制代码
    // 使用 bcrypt 等库对密码进行哈希存储
    const hashedPassword = await bcrypt.hash(password, 10);
    // 验证时使用 bcrypt.compare

(后续内容省略...)

yaml 复制代码
---

## 四、进阶技巧:让 Skill 更强大

### 4.1 添加参考文档

在 `references/` 目录下添加团队的代码规范文档,`prompt.md` 中可以引用:

```markdown
## 参考规范

请参考以下文档进行代码审查:
- [团队 JavaScript 规范](references/js-style-guide.md)
- [安全编码指南](references/security-guide.md)

4.2 支持多种编程语言

修改 prompt.md,让 Skill 支持多种语言:

shell 复制代码
## 语言适配

根据用户提供的代码,自动识别编程语言(JavaScript/Python/Java/Go 等),应用对应语言的审查标准。

### JavaScript 审查重点
- 回调地狱、Promise 使用、async/await 错误处理

### Python 审查重点
- GIL 影响、 with 语句使用、类型注解

### Go 审查重点
- goroutine 泄漏、error 处理、defer 使用

4.3 集成到 CI/CD

你可以把这个 Skill 集成到 CI/CD 流程中,每次提交代码自动审查:

yaml 复制代码
# .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 打包分享

ruby 复制代码
# 打包 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 工具与效率提升

相关推荐
counterxing7 小时前
Agent 跑起来之后,难的是复用、观测和评测
node.js·agent·ai编程
uccs7 小时前
大模型底层机制与Agent开发
agent·ai编程·claude
counterxing7 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
夜雪闻竹8 小时前
vectra 向量索引文件损坏怎么办
ai编程·向量·vectra
ZzT8 小时前
Harness 到底指什么
openai·ai编程·claude
宅小年8 小时前
AI 创业最危险的地方:太容易做出来
openai·ai编程·claude
麦客奥德彪8 小时前
Android Skills
架构·ai编程
言萧凡_CookieBoty9 小时前
一文讲清 RAG:让 AI 读懂业务知识库的核心方法
ai编程
kyriewen10 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
Patrick_Wilson10 小时前
知识沉淀的四层模型:从个人笔记到企业资产,让文档真正长出复利
面试·程序员·ai编程