Superpowers方法论:给AI Agent装上纪律
Superpowers方法论:给AI Agent装上纪律
当你让AI写代码时,你真的放心吗?
说实话,第一次用Claude Code的时候我确实挺激动的。丢给它一个需求,它二话不说就开始噼里啪啦写代码,那个兴奋劲儿跟刚拿到新玩具的小孩似的。
但冷静下来一想,问题就来了——它真的理解我想做什么了吗? 它有没有写测试?它考虑的边界情况跟我脑子里想的一样吗?如果出了bug,我是不是得花双倍时间debug?
这不是Claude的问题,这是所有AI编程工具的通病:它们太急了。 你问一句它就答一句,你要一个功能它就甩给你一堆代码。但软件开发从来不是"写代码"这一件事——需求分析、架构设计、测试覆盖、代码审查,哪一个环节敢跳过?
这就是我要聊的——Superpowers,一个给AI Agent装上"纪律"的开源项目。
Superpowers是什么
项目地址:obra/superpowers,258K Stars,作者是Jesse Vincent(ID:obra),Perl社区的老将,也是知名的开源贡献者。
它不是什么花哨的AI模型,也不是什么新的IDE插件。它是一套完整的软件开发方法论,打包成了14个可组合的SKILL.md文件。当你配置好之后,AI Agent会在每次任务中自动触发这些技能,像一本操作手册一样,一步一步引导Agent做该做的事。
说得直白一点:Superpowers就是给AI Agent上的"规章制度"。
七步走,一步不能少
Superpowers把软件开发拆成了七个阶段,环环相扣。每个阶段都有明确的输入、输出和验收标准。
1. 头脑风暴(Brainstorming)
写任何代码之前,先动嘴不动手。
Agent会反过来问你一堆问题——"这个功能的用户是谁?""你预期的性能要求是什么?""有没有现有系统需要兼容?"这个过程会把模糊的想法变成一个结构化的设计文档。你可能会觉得烦,但相信我,被AI追问比被bug追着跑舒服多了。
输出物:一份清晰的设计文档,包含需求、约束、技术选型。
2. Git Worktree
设计文档获得批准后,Superpowers会自动创建一个隔离的工作分支。用的是git worktree,不是简单的分支切换。
什么意思?你的主分支干干净净,不受任何影响。Agent在隔离环境里随便折腾,你继续在主分支上工作,互不干扰。哪天不满意了,把那个worktree删了就行,主分支毫发无伤。
3. 编写计划(Writing Plans)
这是我最喜欢的一步。Agent会把整个实现拆成每2-5分钟一个小任务的粒度。
我说的是真·细。每个任务精确到:改哪个文件的哪一行,用什么模式实现,验证步骤是什么。举个例子:
任务3.2:在
src/auth/login.ts第45-78行添加Token过期校验逻辑,实现方式为调用verifyExpiry()方法。验证方式:运行npm run test:auth中的login expiry测试用例。
这种粒度意味着你随时可以review,随时可以叫停,没有任何"黑盒"的神秘感。
4. 子代理驱动开发(Subagent-Driven Development)
每个小任务,Superpowers会派一个全新的子Agent去执行。
为什么要这样做?因为上下文污染是AI开发最大的坑。一个Agent不停地写代码,上下文里塞满了各种半成品代码、临时变量、中间决策,写到后面脑子都是糊的。每次开新任务都用一个"干净的"子Agent,相当于每次都是从零开始聚焦一件事,质量自然高。
每个子Agent执行完后,还要过两轮审查:
- 规格审查:写的代码跟设计文档和任务描述对得上吗?
- 质量审查:代码本身写得好吗?有没有明显的反模式?
5. 测试驱动开发(TDD)
这个不用多说,经典的RED → GREEN → REFACTOR循环。
先写会红的测试,再写让测试通过的代码,最后重构优化。Superpowers把这个流程强制成了规则——不写测试?任务不通过。测试没全绿?不准往下走。
这听起来死板,但用过TDD的人都知道,先写测试的设计本身就是最好的设计。你不知道怎么测试一个函数,大概率是因为你的函数设计有问题。
6. 代码审查(Cross-Task Review)
所有子任务都完成后,Superpowers会拉起一个跨任务的全局审查。这一步不只是在各个文件之间找茬,它会从整体架构层面审视:
- 各个模块之间的接口是否一致
- 有没有重复代码
- 有没有潜在的并发问题或安全隐患
- 关键的发现会作为一个blocker,阻塞整个流程,直到问题解决
7. 完成分支
最后一个阶段,跑完整测试套件、合并回主分支、或者提一个PR。清理掉worktree,把环境恢复干净。
整整齐齐,有始有终。
为什么要这么重?
你可能会想:太夸张了吧?写个小功能要走七步?
来,我给你讲个场景。
你让AI写一个"用户登录模块"。没有Superpowers的情况下,Agent直接开干——咔咔咔十分钟写完了一堆代码。你看了一眼,登录、注册、Token刷新、密码重置啥都有,效率真高。但仔细一看:密码用MD5存的(对,你没看错),Token没有过期机制,错误处理全是 catch(e) { console.log(e) },SQL查询居然有注入风险。
现在你怎么办?让AI重构。AI重写一遍。你又review,发现Token过期加了但没测,密码换bcrypt了但老用户的密码迁移方案没有……来来回回折腾一整天。
这是AI开发的真实写照:写得快,但质量难以保证。
同样的需求,有Superpowers的Agent会花30分钟跟你brainstorming、写设计文档、拆任务。然后启动4-5个子Agent并行干了2小时。你开完一个会回来,发现它已经提了一个PR,所有测试通过,代码经过了两轮审查,分支干干净净。
你review的时候,发现每一个决策背后都有据可查,每个测试用例都有明确的意图。你只需要回答一个问题:"这个设计方向对吗?" 而不是"这代码能不能跑?"
省下来的不是写代码的时间,是决策和审查的时间。这才是真正的效率。
和其他"Skill"的对比
Superpowers不是唯一的AI开发方法论。在开源社区里,还有几个跟它类似的项目经常被放在一起比较:
- taste-skill:约束AI的设计口味。比如"保持简单,不要过度设计""优先用函数式而不是类"。它管的是代码风格和设计品味。
- ponytail:约束代码量。每次变更控制在200行以内,防止AI一口气给你塞几千行代码。它管的是规模。
- superpowers:管的是整个开发流程。从需求到测试到审查到部署,全链条覆盖。
这三个可以组合使用:superpowers管流程,taste-skill管品味,ponytail管体量。就像三把锁,从不同维度保证AI产出的质量。
装一个试试?
装Superpowers很简单,两种方式:
# 方式一:通过插件管理器
/plugin install obra/superpowers
# 方式二:直接git clone到skills目录
git clone https://github.com/obra/superpowers ~/.claude/skills/superpowers
然后你需要看一眼 SETUP.md,做一些基础的配置——主要是告诉Superpowers你的项目用什么语言、什么测试框架、代码规范是什么。配置好后,每次你跟AI对话时,Superpowers的14个SKILL.md文件就会自动加载,在后台默默地管着Agent的一举一动。
严格不等于慢
Superpowers这个项目的README里有一句话很有意思,说这个仓库的PR拒绝率高达94%。
94%啊兄弟。每100个人提PR,只有6个人能合并进去。听起来苛刻到变态了对吧?但你再想想,一个258K Stars的项目,如果来者不拒,会变成什么样?
这个数字告诉我一件事:Jesse Vincent对这个项目的质量要求是变态级的。 他不会因为"差不多就行"而妥协。而这种"差不多就行"的宽松,恰好是当前AI开发最大的问题——AI能产出大量"看起来还行"的代码,但这些代码往往经不起推敲。
Superpowers给AI装上的不是什么魔法技能,就是一个字:纪律。
让AI慢下来,先想清楚再做。让AI把每一步都留下痕迹,而不是一股脑给你一堆"能跑但不敢动"的代码。让AI像一个人一样——一个真正靠谱的、有经验的工程师那样——去完成任务。
严格不等于慢。恰恰相反,最大的慢,是把不该省的步骤省掉之后,回来补坑。 从这个角度看,Superpowers不是让你的AI变慢了,而是让你不需要再回来补坑——这才是真正的快。
如果你也在用AI写代码,如果你也对AI产出的质量心里没底,去试试Superpowers吧。它可能不会让你的AI更聪明,但它一定会让你的AI更靠谱。