Test-Driven Development Skill logo

Test-Driven Development Skill

打开

Superpowers 的 TDD Skill:强制编程智能体先写失败的测试、亲眼看它失败,再写最少的实现代码,严格执行红绿重构,不留例外。

分享:
查看替代方案

Test-Driven Development 是 Superpowers 中的一个 Skill。Superpowers 是 Jesse Vincent 为编程智能体打造的开源开发方法论(Skill 源码)。智能体实现功能或修复 bug 时、写任何实现代码之前,这个 Skill 就会激活,并让智能体严格遵守红绿重构。

它的核心观点是:如果没有亲眼看到测试失败,就无法确定测试测的是对的东西。

核心功能

  • 铁律:"没有先失败的测试,就不写生产代码。"先于测试写出的代码要删除,从测试出发重写,不能留作"参考"。
  • 确认变红:智能体运行测试,确认它因预期原因失败(功能缺失,而非拼写错误)。一上来就通过的测试说明测的是已有行为。
  • 最小变绿:只写刚好让测试通过的代码。Skill 以一个带多余选项的过度设计的重试函数作为反例。
  • 全量验证:新测试文件通过不等于整套测试通过,智能体要运行项目的完整测试命令,并点名报告所有失败。
  • 借口对照表:逐条反驳"太简单不用测""之后再补测试""已经手动测过"等说法。
  • 配套文档 writing-good-tests.md,讲解如何写好测试。

适用场景

  • 新功能、bug 修复、重构和行为变更。
  • 只有经你同意才可例外:一次性原型、生成的代码和配置文件。

定价

免费开源,MIT 许可证。Superpowers 背后的公司 Prime Radiant 为企业提供商业支持。实际成本主要是 token:流程类 Skill 会增加提问、评审和子智能体运行。

快速开始

Superpowers 以一个插件整体安装,这个 Skill 会连同整套库一起装上(v6.4.1 共 15 个 Skill)。在 Claude Code 中运行 /plugin install superpowers@claude-plugins-official。Cursor 用 /add-plugin superpowers,Gemini CLI 用 gemini extensions install https://github.com/obra/superpowers,Codex、GitHub Copilot CLI、OpenCode、Pi 等工具的命令见 README。Skill 会自动触发,也可以直接点名调用。 之后照常提需求,留意实现之前是否先出现了失败的测试。

局限:规则刻意严格。删除已写好的代码会让人觉得浪费,没有快速测试运行器的项目会拖慢循环。

常见问题

只适用于 JavaScript 吗?

不是。示例用 TypeScript,但流程与语言无关,文中也提到 pytest 和 cargo test。

做技术探索时能跳过吗?

明确说明这是一次性原型即可,这属于列出的例外。

替代方案

总结

这是最能改变智能体写代码方式的一个 Skill。修 bug 时可搭配 Systematic Debugging。更多见 skills 分类。

评论

还没有评论。成为第一个评论的人!