# 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".