tdd
Installation
SKILL.md
TDD protects meaningful behavior. RED -> GREEN -> REFACTOR for domain rules, branches, state, validation, async effects, and integration contracts. Types, wiring, copy/styles, and behavior-preserving deletion may use focused verification. Coverage is never a target.
Test seams and anti-patterns
- Seams: test public boundaries. Name the seam first; confirm pre-agreed seams with the user when issue and convention leave it unclear. No tests at unconfirmed internals. Use
/codebase-designrather than inventing a seam for convenience. - Tautological tests: expected values need an independent source of truth: literal, worked example, fixture, spec, or observation.
- Source-text proxies: delete tests that scan implementation, CSS, markup, or config for tokens or regexes as runtime proof. Replace at a public seam when behavior matters; use static analysis for syntax. Keep content assertions for public output only.
- Vertical slices: use vertical slices: one RED test plus GREEN implementation at a time; bulk tests encode imagined behavior.
Workflow
Contract
- Name public behavior; follow the domain glossary and ADRs.
- Choose the smallest test that fails if it breaks. Add cases only for independent credible risks.
- For high-cardinality/state-sequence invariants, read PROPERTY-BASED-TESTING.md; require an independent oracle and replay.
- For long-lived browser resource lifetimes, use repeatable round trips and SOAK-TESTING.md; fresh contexts cannot reveal accumulation.
- Use
/read-the-damn-docsfor external contracts and tests.md when shape is unclear.