Test-driven development gated on user approval of the failing test. Use when implementing new behavior, fixing a bug, or when the user asks for TDD by any name. Not for docs, config, or refactors already covered by tests.