这个 Skill 强制 AI 写代码前必须先写测试——26万星仓库出的狠活儿
用过 Claude Code 的同学,有没有遇到过这种情况——你让它写个功能,它噼里啪啦给你写了几百行代码,结果一跑测试,傻眼了,要么实现逻辑有 bug,要么压根儿不是你要的那个方向。
问题的根源往往不在代码本身,而在于顺序搞反了——代码写完了才想着去测,而好的代码习惯,应该是测试先行。
今天挖到一个让我眼前一亮的 Skill——test-driven-development,来自一个叫 Superpowers 的开源项目。别看名字朴素,它可是个狠角色:专门教 AI 编码 agent 把 TDD(测试驱动开发)这套方法论真正用起来,而且用得很彻底。
铁律一条:没有失败测试,就不能写生产代码
这个 Skill 的核心叫「Iron Law」:
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
翻译成人话就是:没看到测试失败,就不许写正式代码。不管你是让它修 bug、加功能还是重构,统统都得先写测试,看到测试报红之后,再写最少量代码让它变绿,最后才允许清理和重构。
这条规矩没有例外。哪怕你觉得需求「太简单不用测」,Skill 也会直接告诉你:这是自我欺骗,删了重来吧。
红 → 绿 → 重构,三步循环
整个工作流就是经典的 TDD 三步曲:
- RED:写一个最小化的测试用例,说清楚你想要什么行为
- GREEN:写最少的代码让测试通过,不要多,不要想未来
- REFACTOR:测试全绿之后,才允许清理代码、去除重复
每一步都有强制验证——你必须亲眼看到测试从红变绿,否则 Skill 不会让你进入下一步。这就像有个严格的导师站在你身后盯着你,不允许你偷懒。
好测试的标准:说清楚行为,不是堆砌 mock
Skill 还附带了一个参考文档 writing-good-tests.md,专门讲怎么写「诚实的测试」:
- 测试名要描述行为,不是一句「test1」糊弄过去
- 一个测试只测一件事,名字里出现「and」就该拆开
- 优先测真实行为,而不是 mock 的调用次数
这些规则直接针对 AI 编码时最容易犯的毛病——用大量 mock 堆出一个「看起来在测试」的假象,实际上根本没验证任何东西。
适用场景
- 用 Claude Code / Cursor 等 AI 编程工具写功能
- 修复 bug 时先写测试「复现」问题
- 重构前加测试护体,防止改坏
- 给 AI agent 装备专业开发方法论
结语
Superpowers 这个项目本身就已经有 26 万+ star,是给 AI 编码 agent 注入「职业素养」的方法论合集。而 TDD 这个 Skill,是其中最核心的一块——它不教你写什么代码,而是教 AI 用什么顺序写代码。
用过就知道,一个严格遵循 TDD 的 AI 编码 agent,和一个拿到需求就开写的 agent,最终产出的代码质量差距是巨大的。强烈建议装上试试。
GitHub: https://github.com/obra/superpowers/tree/main/skills/test-driven-development
评论区
登录后可评论。