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
Copy this and paste it into Claude Code, Cursor, or any AI assistant:
I want to install the "test-driven-development" skill in my project. Please run this command in my terminal: # Install skill into your project (2 files) mkdir -p .claude/skills/test-driven-development && curl --retry 3 --retry-delay 2 --retry-all-errors -o .claude/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 .claude/skills/test-driven-development/testing-anti-patterns.md "https://raw.githubusercontent.com/obra/superpowers/main/skills/test-driven-development/testing-anti-patterns.md" Then restart Claude Code (or reload the window in Cursor) so the skill is picked up.
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; } `
Discussion
Health Signals
My Fox Den
Community Rating
Sign in to rate this booster