Superpowers
如何让 AI 代理像有经验的工程师一样工作,而不是像”会写代码但不懂工程”的实习生?
答案是:把最佳实践编码成可执行的、不可逃避的工作流。用流程图定义决策点,用测试验证行为,用子代理实现关注点分离,用两阶段审查确保质量。
核心设计哲学Permalink 项目建立在四个核心原则之上:
测试驱动开发(TDD):永远先写测试。没有看到测试失败,就不能确定测试是否真正测试了正确的行为。
系统化而非临时化:用流程替代猜测。每个技能都有明确的决策流程图(用 DOT/GraphViz 语法定义),作为”可执行规范”。
复杂度削减:以简洁为首要目标。技能中反复强调 YAGNI(You Aren’t Gonna Need It)原则,积极删除不必要的功能。
证据而非声明:在宣布任务完成之前,必须验证。看到测试通过,看到代码运行,而不是”我觉得应该可以了”。
三、完整工作流程Permalink Superpowers 构建了一个端到端的开发流程:
第一阶段:头脑风暴(brainstorming) 当你说”我想做一个 X 功能”时,AI 不会直接写代码。它会像苏格拉底式对话一样,一次问一个问题,帮你厘清真正的需求。设计方案分 200-300 字的小节呈现,每节都要你确认”看起来对吗”。
第二阶段:工作区隔离(using-git-worktrees) 设计确认后,AI 会创建一个新的 git 分支和 worktree,确保开发环境隔离,不污染主分支。
第三阶段:编写计划(writing-plans) 把设计拆解成 2-5 分钟的小任务。每个任务都有精确的文件路径、完整的代码片段、验证步骤。目标是让”一个没有判断力、没有项目背景、讨厌写测试的热情初级工程师”也能执行。
第四阶段:子代理驱动开发(subagent-driven-development) 这是 v4.0 的重大创新。主代理为每个任务派遣一个”新鲜”的子代理(没有上下文污染),实现任务后进行两阶段审查:
规格符合性审查:代码是否完全符合需求规格?是否多做了?少做了? 代码质量审查:只有规格审查通过后才进行。检查代码是否干净、测试覆盖是否足够 审查是循环的:发现问题→修复→再审查,直到通过。
第五阶段:收尾(finishing-a-development-branch) 所有任务完成后,验证测试、呈现选项(合并/创建 PR/保留/丢弃),清理 worktree。
Claude Code使用方式Permalink ✅第一步:安装 Superpowers
打开 Claude Code,输入两条命令:
/plugin marketplace add obra/superpowers-marketplace 验证安装成功
输入 /help,你应该能看到:
/superpowers:brainstorm - 头脑风暴 /superpowers:write-plan - 写计划 /superpowers:execute-plan - 执行计划 ✅第二步:启动头脑风暴
你有一个想法,但可能还很模糊。头脑风暴阶段就是让 AI 像产品经理一样问你问题,帮你把想法变成清晰的设计。
假设你想做一个”待办事项应用”。你只需要说:“我想做一个待办事项应用”。
注意:你不需要输入任何特殊命令!Superpowers 会自动触发。当 AI 看到你想”做”或”建”什么东西时,它会自动进入头脑风暴模式。
AI 会怎么做?
先侦察:AI 会先看看你的项目目录,了解现有代码结构 一次问一个问题:不会一下子问你10个问题 给你选项:尽量给你 A/B/C 选择,而不是让你从零想 设计文档输出
问完所有关键问题后,AI 会:
把设计分成 200-300 字的小节展示给你 每节都问你:”这部分对吗?” 全部确认后,写入 docs/plans/2025-01-10-todo-app-design.md ✅第三步:创建隔离工作区
这是什么?
想象你在装修房子。你不会直接在客厅里试验新油漆颜色——你会先找一小块墙试试。Git Worktree 就是那块”试验墙”。
发生了什么?
AI 设计完成后会问你:
AI: 设计确认完毕。准备好开始实现了吗? 你: 是的
然后 AI 会自动:
创建新分支:比如 feature/todo-app 创建 worktree:一个独立的工作目录,和主代码完全隔离 运行项目初始化:确保环境能跑起来 验证测试基线:确保现有测试都是绿色的 为什么这么做?
你的主分支(main)保持干净 如果实验失败,直接删掉这个 worktree,不影响任何东西 可以同时开多个功能分支,互不干扰 ✅第四步:编写实现计划
这是什么?
你不能对一个实习生说”做一个待办事项应用”。你得说:
第一步:创建 Todo 数据结构 第二步:实现”添加”功能 第三步:实现”删除”功能 … 每一步都要小到 2-5 分钟能完成。
每个步骤详解
RED(红色):写一个会失败的测试
运行测试:npm test → 失败(因为 addTodo 还不存在)
这步的关键:你必须亲眼看到测试失败!如果测试一开始就通过,说明:
你测试的是已有功能(没意义) 测试写错了(危险) GREEN(绿色):写最少的代码让测试通过