AI SummaryGuides AI coding assistants to follow Test-Driven Development principles by writing failing tests before implementation code. Useful for developers who want to maintain code quality and ensure comprehensive test coverage.
Install
# Install skill into your project (2 files) mkdir -p .cursor/skills/test-driven-development && curl --retry 3 --retry-delay 2 --retry-all-errors -o .cursor/skills/test-driven-development/SKILL.md "https://raw.githubusercontent.com/obra/superpowers/main/skills/test-driven-development/SKILL.md" && curl --retry 3 --retry-delay 2 --retry-all-errors -o .cursor/skills/test-driven-development/testing-anti-patterns.md "https://raw.githubusercontent.com/obra/superpowers/main/skills/test-driven-development/testing-anti-patterns.md"
Run in your IDE terminal (bash). On Windows, use Git Bash, WSL, or your IDE's built-in terminal. If curl fails with an SSL error, your network may block raw.githubusercontent.com — try using a VPN or download the files directly from the source repo.
Description
Use when implementing any feature or bugfix, before writing implementation code
Overview
Write the test first. Watch it fail. Write minimal code to pass. Core principle: If you didn't watch the test fail, you don't know if it tests the right thing. Violating the letter of the rules is violating the spirit of the rules.
When to Use
Always: • New features • Bug fixes • Refactoring • Behavior changes Exceptions (ask your human partner): • Throwaway prototypes • Generated code • Configuration files Thinking "skip TDD just this once"? Stop. That's rationalization.
The Iron Law
` NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST ` Write code before the test? Delete it. Start over. No exceptions: • Don't keep it as "reference" • Don't "adapt" it while writing tests • Don't look at it • Delete means delete Implement fresh from tests. Period.
Red-Green-Refactor
`dot digraph tdd_cycle { rankdir=LR; red [label="RED\nWrite failing test", shape=box, style=filled, fillcolor="#ffcccc"]; verify_red [label="Verify fails\ncorrectly", shape=diamond]; green [label="GREEN\nMinimal code", shape=box, style=filled, fillcolor="#ccffcc"]; verify_green [label="Verify passes\nAll green", shape=diamond]; refactor [label="REFACTOR\nClean up", shape=box, style=filled, fillcolor="#ccccff"]; next [label="Next", shape=ellipse]; red -> verify_red; verify_red -> green [label="yes"]; verify_red -> red [label="wrong\nfailure"]; green -> verify_green; verify_green -> refactor [label="yes"]; verify_green -> green [label="no"]; refactor -> verify_green [label="stay\ngreen"]; verify_green -> next; next -> red; } `
Quality Score
Good
76/100
Trust & Transparency
Open Source — MIT
Source code publicly auditable
Verified Open Source
Hosted on GitHub — publicly auditable
Actively Maintained
Last commit 3d ago
84.2k stars — Strong Community
6.6k forks
My Fox Den
Community Rating
Sign in to rate this booster