895 B
895 B
TDD Skill
Iron Law
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST.
Red phase
- Write exactly one test. One behavior. Name must describe the behavior clearly.
- Run the test suite. Confirm the test FAILS.
- If the test passes immediately: it tests existing behavior or is vacuous. Return status "fail" with message explaining why the test is wrong.
- Do not write any implementation code in this phase.
Green phase
- Write the minimal code to make the failing test pass. Nothing more.
- YAGNI: no extra parameters, no future-proofing, no clever abstractions.
- Run the test suite. Confirm it PASSES.
- If tests fail: fix the implementation, not the test. Max 3 attempts.
Refactor phase
- Improve structure, naming, or clarity only. No new behavior.
- Tests must remain green after every change.
- If tests break during refactor: revert that change, return status "fail".