Superpowers 系统学习笔记:AI编程Agent的完整开发方法论
Superpowers 系统学习笔记:AI编程Agent的完整开发方法论
声明:📝 作者:甜城瑞庄的核桃(ZMJ)
原创学习笔记,欢迎分享,但请保留作者信息及原文链接哦~
项目地址:https://github.com/obra/superpowers
Star数:36.6K+(持续增长中)
工具作者:Jesse Vincent (@obra)
开源协议:MIT License
最新版本:v5.0.5
适用平台:Claude Code、Cursor、Codex、OpenCode、Gemini CLI
📚 目录
- 一、Superpowers简介
- 二、核心概念与工作原理
- 三、快速上手指南
- 四、基础工作流详解
- 五、Skills技能库全解析
- 六、进阶应用与最佳实践
- 七、架构设计与核心哲学
- 八、实战案例分析
- 九、常见问题与解决方案
- 十、总结与展望
一、Superpowers简介
1.1 什么是Superpowers?
Superpowers 是一个完整的软件开发工作流框架,专为AI编程助手(Coding Agent)设计。它不是简单的代码生成工具,而是一套系统化的软件工程方法论,确保AI助手能够像专业开发者一样思考、规划和执行开发任务。
核心定位:
- 🎯 不是代码生成器,而是开发流程管理系统
- 🧩 基于可组合的"技能(Skills)"架构
- 📋 强制执行最佳工程实践(非建议,而是强制)
- 🤖 支持多Agent协作与自主开发
1.2 解决的核心问题
传统AI编程助手的痛点:
| 痛点 | 传统方式 | Superpowers方式 |
|---|---|---|
| 需求理解 | 直接开始写代码,容易偏离需求 | 强制需求澄清,苏格拉底式提问 |
| 设计规划 | 缺少设计阶段,边写边改 | 设计优先,分块展示,用户确认后再实现 |
| 任务分解 | 大任务直接实现,容易失控 | 拆解为2-5分钟的小任务,可追踪 |
| 测试质量 | 测试可选,代码质量不稳定 | 强制TDD,红-绿-重构循环 |
| 代码审查 | 缺少审查机制 | 自动化两阶段审查(规范+质量) |
| 长期执行 | 容易偏离轨道,需频繁干预 | 支持数小时自主工作 |
1.3 适用场景
✅推荐使用场景:
- 复杂功能开发(多模块、多步骤)
- 需要严格测试的生产环境代码
- 团队协作项目(标准化流程)
- 大型重构与系统优化
- 学习最佳工程实践
❌不适用场景:
- 一次性脚本或简单工具
- 快速原型验证(不需要测试)
- 单文件小修改
二、核心概念与工作原理
2.1 工作流程图
┌─────────────────────────────────────────────────────────┐ │ 用户需求:"我想做一个待办事项应用" │ └────────────────────┬────────────────────────────────────┘ │ ▼ ┌────────────────────────┐ │ 1. Brainstorming │ 需求澄清 │ (头脑风暴) │ - 苏格拉底式提问 │ │ - 分块展示设计 └────────┬───────────────┘ - 用户确认 │ ▼ [用户批准设计] ┌────────────────────────┐ │ 2. Git Worktrees │ 环境隔离 │ (工作树管理) │ - 创建新分支 └────────┬───────────────┘ - 验证测试基线 │ ▼ ┌────────────────────────┐ │ 3. Writing Plans │ 计划制定 │ (编写计划) │ - 拆分为小任务 └────────┬───────────────┘ - 每个2-5分钟 │ ▼ [启动执行] ┌────────────────────────┐ │ 4. Subagent-Driven │ 子Agent执行 │ Development │ - 并行任务处理 │ │ - 两阶段审查 └────────┬───────────────┘ │ ▼ [每个任务] ┌────────────────────────┐ │ 5. Test-Driven │ 测试驱动 │ Development (TDD) │ - RED: 写失败测试 │ │ - GREEN: 写最小代码 └────────┬───────────────┘ - REFACTOR: 重构 │ ▼ ┌────────────────────────┐ │ 6. Code Review │ 代码审查 │ (代码审查) │ - 对照计划检查 └────────┬───────────────┘ - 按严重性报告 │ ▼ [所有任务完成] ┌────────────────────────┐ │ 7. Finishing Branch │ 分支完成 │ (完成分支) │ - 合并/PR/保留 └────────────────────────┘ - 清理工作树2.2 Skills(技能)系统
什么是Skills?
- Skills是可组合的工作流模块
- 每个Skill定义一个特定的开发阶段或实践
- 自动触发,无需手动调用
- 强制执行,非可选建议
Skills的三大特性:
- 自动触发:根据上下文智能激活
- 可组合:多个Skills协同工作
- 强制执行:不符合规范则阻止继续
2.3 与其他AI编程工具的对比
| 特性 | Superpowers | GitHub Copilot | ChatGPT/GPT-4o | Cursor基础版 |
|---|---|---|---|---|
| 需求澄清 | ✅ 强制 | ❌ 无 | △ 建议 | △ 建议 |
| 设计阶段 | ✅ 强制 | ❌ 无 | △ 可选 | △ 可选 |
| 任务拆解 | ✅ 自动 | ❌ 无 | △ 手动 | △ 有限 |
| TDD强制 | ✅ 强制 | ❌ 无 | ❌ 无 | ❌ 无 |
| 多Agent协作 | ✅ 原生支持 | ❌ 无 | ❌ 无 | △ 需定制 |
| 代码审查 | ✅ 自动 | ❌ 无 | △ 手动 | △ 有限 |
| 长期自主性 | ✅ 数小时 | ❌ 单次 | △ ~1小时 | △ ~1小时 |
三、快速上手指南
3.1 环境准备
支持的平台:
- Claude Code(推荐)
- Cursor
- Codex
- OpenCode
- Gemini CLI
3.2 安装步骤
方式一:Claude Code官方市场(最简单)
# 直接从Claude官方市场安装/plugininstallsuperpowers@claude-plugins-official方式二:通过Superpowers市场安装
# 1. 注册市场源/plugin marketplaceaddobra/superpowers-marketplace# 2. 安装插件/plugininstallsuperpowers@superpowers-marketplace# 3. 验证安装/help验证成功会看到:
/superpowers:brainstorm - Interactive design refinement /superpowers:write-plan - Create implementation plan /superpowers:execute-plan - Execute plan in batches方式三:Cursor安装
# 在Cursor Agent聊天中执行/add-plugin superpowers或在插件市场搜索"superpowers"。
方式四:Codex安装
直接告诉Codex:
Fetch and follow instructions from https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.codex/INSTALL.md方式五:OpenCode安装
直接告诉OpenCode:
Fetch and follow instructions from https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.opencode/INSTALL.md方式六:Gemini CLI安装
# 安装gemini extensionsinstallhttps://github.com/obra/superpowers# 更新gemini extensions update superpowers3.3 验证安装
启动新会话,尝试触发brainstorming技能:
我想创建一个用户认证模块如果安装成功,AI会开始提问而不是直接写代码:
- “你想支持哪些认证方式?”
- “是单体应用还是微服务架构?”
- “需要支持第三方登录吗?”
3.4 第一个项目
示例:创建待办事项API
步骤1:发起需求
我需要一个待办事项API,支持增删改查步骤2:回答brainstorming问题
AI会问:
- 数据库选择(PostgreSQL/MySQL/MongoDB?)
- API风格(RESTful/GraphQL?)
- 认证需求(JWT/Session?)
- 是否需要分页、搜索、过滤?
步骤3:确认设计
AI会分块展示设计文档:
## 架构设计 - 使用Express.js + PostgreSQL - RESTful API设计 - JWT认证 - CRUD操作 ## 数据模型 - id: UUID - title: String - completed: Boolean - created_at: Timestamp确认后输入:“看起来不错,开始实现吧”
步骤4:自动执行
Superpowers会:
- 创建Git工作树和新分支
- 生成实现计划(10-15个小任务)
- 启动子Agent逐个执行
- 每个任务完成后自动审查
- 全部完成后提供合并选项
步骤5:验证结果
# 运行测试npmtest# 启动服务npmrun dev四、基础工作流详解
4.1 Brainstorming(头脑风暴)
触发时机:任何写代码之前
工作流程:
苏格拉底式提问:
- 不直接给方案,而是通过问题引导思考
- 探索多种可能性
- 澄清模糊需求
分块展示设计:
- 将设计拆成易读的小块
- 逐步展示,避免信息过载
- 每个块包含明确的设计决策
保存设计文档:
- 存储在
.superpowers/designs/ - 版本控制
- 后续可追溯
- 存储在
示例对话:
用户: 我想添加用户认证功能 AI: 让我先了解一些细节: 1. 认证方式 - 传统用户名/密码登录? - 社交账号登录(Google/GitHub)? - 无密码登录(Magic Link)? 2. Token管理 - JWT还是Session? - Token过期策略如何? - 需要刷新Token机制吗? 3. 安全考虑 - 多因素认证(MFA)? - 密码强度要求? - 防暴力破解措施?4.2 Using Git Worktrees(Git工作树)
触发时机:设计批准后
作用:
- 创建隔离的工作空间
- 不影响主分支
- 支持并行开发
执行步骤:
# 1. 创建新分支gitworktreeadd.superpowers/worktrees/feature-auth feature/user-auth# 2. 切换到工作树cd.superpowers/worktrees/feature-auth# 3. 运行项目设置npminstallnpmtest# 验证测试基线优势:
- 主分支保持干净
- 可同时进行多个功能开发
- 失败时轻松回滚
4.3 Writing Plans(编写计划)
触发时机:设计批准后
计划结构:
## 实施计划:用户认证模块 ### 任务1:创建User模型 (2分钟) - 文件:`src/models/User.js` - 内容:定义User Schema(username, email, password_hash) - 验证:运行`npm test -- User.test.js` ### 任务2:实现密码哈希工具 (3分钟) - 文件:`src/utils/password.js` - 内容:使用bcrypt进行密码哈希 - 验证:单元测试通过 ### 任务3:创建注册API (4分钟) - 文件:`src/routes/auth.js` - 内容:POST /api/auth/register - 验证:集成测试通过 ... (共15个任务)计划原则:
- 每个任务2-5分钟
- 包含确切文件路径
- 明确验证步骤
- 可独立执行
4.4 Subagent-Driven Development(子Agent驱动开发)
触发时机:有计划后
工作机制:
主Agent(控制者) │ ├─> 子Agent 1: 任务1(创建User模型) │ ├─> 写测试 │ ├─> 写代码 │ └─> 自我审查 │ ├─> 子Agent 2: 任务2(密码哈希) │ ├─> 写测试 │ ├─> 写代码 │ └─> 自我审查 │ └─> 子Agent 3: 任务3(注册API) ├─> 写测试 ├─> 写代码 └─> 自我审查两阶段审查:
规范符合性审查:
- 是否按照计划实施?
- 是否遗漏功能?
- 是否添加了计划外功能?
代码质量审查:
- 代码风格是否一致?
- 是否有明显bug?
- 测试覆盖率是否足够?
并行执行:
- 独立任务可并发执行
- 依赖任务串行执行
- 自动管理依赖关系
4.5 Test-Driven Development(测试驱动开发)
触发时机:实施过程中(强制)
RED-GREEN-REFACTOR循环:
// === RED阶段:写失败测试 ===describe('User Authentication',()=>{it('should hash password on registration',async()=>{constuser=awaitUser.create({username:'testuser',password:'plaintext123'});// 此时测试会失败,因为还没实现expect(user.password).not.toBe('plaintext123');expect(user.password).toMatch(/^\$2[aby]\$/);// bcrypt格式});});// 运行测试 -> 🔴 FAIL// === GREEN阶段:写最小代码使测试通过 ===classUser{staticasynccreate(data){consthashedPassword=awaitbcrypt.hash(data.password,10);return{...data,password:hashedPassword};}}// 运行测试 -> 🟢 PASS// === REFACTOR阶段:重构优化 ===classUser