你有没有经历过这样的场景:
让 AI 帮你写个功能,它二话不说直接开干,结果做出来的东西根本不是你想要的?
或者更糟——代码是能跑,但全是坑,测试没有,文档为零,最后还得你自己擦屁股?
我最近发现了一个名为 Superpowers 的开源项目,它提出了一套让 AI 编程从"瞎猜"变成"工程化"的完整方法论。试用一周后,我的工作效率提升了至少 3 倍。
今天,我就把这套方法论的核心精华拆解给你,不管你是用 Claude、Cursor 还是其他 AI 编程工具,都能立刻上手。
先做个小测试。当你让 AI 帮你开发功能时,它通常是怎么做的?
错误示范:
你:我想做个用户管理系统 AI:好的!*立刻开始创建 UserController、UserService、UserRepository...*发现问题了吗?没有设计,没有确认,没有计划,直接开干。
这正是 Superpowers 项目创始人 Jesse 指出的核心问题:
"As soon as it sees that you're building something, it doesn't just jump into trying to write code. Instead, it steps back and asks you what you're really trying to do."
翻译成人话就是:别急着写代码,先搞清楚你到底要什么。
Superpowers 把软件开发拆解成三个关键阶段,每个阶段都有严格的"硬门"(Hard Gate),不通过就不能进入下一步。
核心规则:
实际操作示例:
你:我想做个待办事项应用 AI(正确做法): 好的,在开始之前,我想先了解几个问题: 1. 这个待办应用的核心用户是谁?(个人使用/团队协作/客户 facing) 2. 需要哪些核心功能?(仅基础 CRUD/需要提醒/需要分类标签/需要协作) 3. 技术栈有偏好吗?(Web/移动端/桌面应用) 4. 有截止时间或特殊约束吗? 我们一个一个来,先回答第一个问题吧。关键洞察: 很多人会跳过这一步,觉得"简单功能不需要设计"。但 Superpowers 明确指出:
"Simple projects are where unexamined assumptions cause the most wasted work."
越是简单的项目,越容易因为未经验证的假设而浪费时间。
这是 Superpowers 最严格的部分,也是最能保证质量的部分。
铁律:
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST (没有先写失败的测试,就不允许写生产代码)RED-GREEN-REFACTOR 循环:
Superpowers 给出了一个扎心的理由:
"If you didn't watch the test fail, you don't know if it tests the right thing."
如果你没看着测试失败,你就不知道它是否测试了正确的东西。
实际案例:
错误做法(先写实现):
typescript
// 先写了实现代码 function retryOperation(op, maxRetries = 3) { for (let i = 0; i < maxRetries; i++) { try { return op(); } catch (e) { if (i === maxRetries - 1) throw e; } } } // 然后补测试 test('retry works', () => { expect(retryOperation(...)).toBe('success'); });正确做法(先写测试):
typescript
// 第一步:写测试 test('retries failed operations 3 times', async () => { let attempts = 0; const operation = () => { attempts++; if (attempts < 3) throw new Error('fail'); return 'success'; }; const result = await retryOperation(operation); expect(result).toBe('success'); expect(attempts).toBe(3); }); // 第二步:运行测试,看着它失败 ✅ // 第三步:写实现代码这是 Superpowers 最厉害的部分:让 AI 能够自主工作 2 小时不翻车。
核心机制:
实际效果:
"It's not uncommon for Claude to be able to work autonomously for a couple hours at a time without deviating from the plan you put together."
你不需要安装 Superpowers 插件(虽然它支持 Claude Code、Cursor、Codex 等多个平台),就可以借鉴这套方法论。
1. 需求澄清阶段(对应 Brainstorming)
在让 AI 写代码前,我会先说:
"我们先不写代码。我想让你帮我设计这个功能: 1. 先问我一些问题,了解我的真实需求 2. 然后给我 2-3 个方案,并给出你的推荐 3. 等我确认设计后,再开始实现"2. 测试先行阶段(对应 TDD)
每次实现功能前,我会要求:
"请用 TDD 方式实现: 1. 先写一个失败的测试 2. 运行给我看它失败了 3. 再写最少的代码让它通过 4. 最后重构优化"3. 代码审查阶段(对应 Subagent Review)
即使是 AI 写的代码,我也会要求它自我审查:
"现在请审查你的代码: 1. 是否符合我们之前确认的设计? 2. 有没有过度工程化的地方? 3. 测试覆盖率够吗? 4. 有没有更好的实现方式?"上周,我用这套方法让 AI 帮我实现了一个实时协作的文档编辑系统。
传统做法可能得到的结果:
使用 Superpowers 方法后的结果:
AI 的优势:
AI 的劣势:
Superpowers 的方法:
很多开发方法论失败的原因是:它们是"建议"。
Superpowers 的不同之处:
<HARD-GATE> Do NOT invoke any implementation skill until you have presented a design and the user has approved it. </HARD-GATE>这不是建议,是强制约束。
所以它设计了强制流程,让你和 AI 都不得不遵守。
在开始任何功能开发前,花 5 分钟和 AI 做设计讨论:
"给我 3 个实现方案,分别说明: - 优点 - 缺点 - 适用场景 - 你的推荐"和 AI 约定:
"写任何功能前,我们先写测试。 如果测试不能先失败,就不允许写实现代码。"让 AI 在提交代码前,回答这些问题:
"请用这个清单审查你的代码: □ 是否符合设计文档? □ 有没有未使用的代码? □ 测试覆盖率多少? □ 有没有边界情况没测试? □ 命名是否清晰? □ 有没有更简单的实现方式?"Superpowers 不是万能的。它适合:
它可能不适合:
但核心思想是普适的:
AI 编程不是要取代程序员,而是要放大程序员的能力。
Superpowers 这套方法论,本质上是把成熟的软件工程实践,转化成了 AI 能理解和执行的流程。
它可能看起来繁琐,但当你看到 AI 能自主工作 2 小时不翻车,当你不再为 AI 写的代码擦屁股时,你会发现:这套方法,真香。
延伸资源:
互动话题: 你在 AI 编程中遇到过哪些翻车现场?欢迎在评论区分享,我们一起讨论如何用这套方法避免。
注: 这篇文章基于我对 Superpowers 项目的深入研究和实际使用体验。核心观点都来自项目文档和源码分析,但加入了我的实战经验和个人思考。希望能帮你更好地利用 AI 编程,而不仅仅是被 AI 带着走。