rail-tdd
Rail TDD
TDD is the red → green loop. This skill is the reference that makes that loop produce tests worth keeping.
When exploring the codebase, read docs/monorail/CONTEXT.md (if it exists — check with the shell, not a search tool, which skips gitignored paths) so vocabulary matches the project's domain language, and respect ADRs under docs/monorail/adr/ in the area you're touching.
What a good test is
Tests verify behavior through public interfaces, not implementation details. A good test reads like a specification and survives refactors.
See tests.md for examples and mocking.md for mocking guidelines.
Seams — where tests go
A seam is the public boundary you test at. Tests live at seams, never against internals.
Test only at pre-agreed seams. Before writing any test, write down the seams under test.