





















superpowers-zh 中最能改变 AI 编码质量的三个 Skills 是:
test-driven-developmentsystematic-debuggingverification-before-completion它们分别对应三个问题:
| 问题 | Skill | 核心原则 |
|---|---|---|
| 如何新增或改变行为 | TDD | 没有失败测试,不写生产代码 |
| 如何处理 Bug 或失败 | 系统化调试 | 未找到根因,不提修复方案 |
| 如何宣称完成 | 完成前验证 | 没有新鲜验证证据,不许说完成 |
三者组合起来,形成从实现到修复再到交付的质量闭环。
test-driven-development 使用经典红-绿-重构循环:
最关键的是「先失败」。如果测试一写就通过,说明它没有证明新行为缺失,可能只是覆盖了已有行为,或者测试写错了。
Skill 要求以下场景始终使用 TDD:
可能例外的场景包括一次性原型、生成代码、纯配置文件等,但应询问用户或团队规则。不能因为「这很简单」就跳过。
一个好测试应满足:
AI 常犯的错误是写过度 mock 的测试。mock 只在外部服务、时间、随机数、网络等不可控依赖上使用;核心业务逻辑应尽量用真实代码验证。
后补测试回答的是「这段代码做了什么」,先写测试回答的是「这段代码应该做什么」。
后补测试会受到实现影响:
因此,如果 AI 已经先写了生产代码,再声称「现在补测试」,应要求它删除实现,从测试重新开始,除非用户明确允许例外。
systematic-debugging 用于任何 Bug、测试失败、构建失败、性能问题或异常行为。它分四个阶段:
在这个阶段之前,不允许提出修复方案。
这能避免 AI 在不了解现有模式时发明新写法。
以下想法都说明 AI 正在偏离系统化调试:
遇到这些信号,应要求回到第一阶段:复现、读错误、查变更、收集证据。
verification-before-completion 的核心规则是:没有新鲜验证证据,不许宣称完成。
它要求在任何正面结论前完成 5 步:
如果构建命令无法运行,也应如实说明原因,而不是说「应该能通过」。
| 想表达的结论 | 需要的证据 | 不够的证据 |
|---|---|---|
| 测试通过 | 测试命令 exit 0,输出显示 0 failures | 代码看起来对 |
| 构建成功 | 构建命令 exit 0 | lint 通过 |
| Bug 已修复 | 能复现原症状的测试通过 | 修改了相关代码 |
| 没有回归 | 相关回归测试或完整测试通过 | 手动点了一下 |
| 文档可构建 | 静态站点构建成功 | Markdown 语法肉眼检查 |
| PR 可提交 | 构建、测试、审查和安全验证完成 | 自我感觉完成 |
brainstorming 确认需求。writing-plans 拆计划。test-driven-development 每个行为先写失败测试。verification-before-completion 完成前跑测试和构建。systematic-debugging 复现并定位根因。test-driven-development 写失败测试复现 Bug。verification-before-completion 跑回归和相关套件。systematic-debugging 读错误和复现。TDD 并不等于必须有完善测试框架。若项目没有测试框架,可以:
/tmp,不要提交。如果确实无法自动化验证,应明确说明限制和手动验证步骤,不要伪装成测试通过。
你可以这样要求 AI:
请严格使用 test-driven-development:先写一个失败测试,运行并展示失败原因,再写最少实现。
这是一个测试失败问题。不要直接修复,先使用 systematic-debugging 找根因。
在你说完成之前,请使用 verification-before-completion,运行能证明结果的命令并引用输出。
这些提示能把 AI 拉回流程,尤其在它开始说「应该」「看起来」「可能」时非常有用。
TDD 防止未验证实现,系统化调试防止猜测式修复,完成前验证防止虚假完成。三者共同构成 superpowers-zh 的质量底座。只要坚持这三条,AI 编程的可靠性会显著提升;一旦跳过,AI 很容易回到「快速生成、慢速返工」的老路。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。