tdd
Installation
SKILL.md
Test-Driven Development
Artifacts
Paths are defaults — if the repo already names them differently, its names win.
| Role | Default path | You |
|---|---|---|
| Issue file (when dispatched) | issues/NNN-*.md |
read it; mark its criteria [x] |
| Domain glossary | CONTEXT.md |
read only |
| Product spec | docs/REQUIREMENTS-AND-NOTES.md |
read only |
| Drift log | docs/DECISIONS.md |
never write — report drift in your handoff instead |
Philosophy
Core principle: Tests should verify behavior through public interfaces, not implementation details. Code can change entirely; tests shouldn't.
Good tests are integration-style: they exercise real code paths through public APIs. They describe what the system does, not how it does it. A good test reads like a specification - "user can checkout with valid cart" tells you exactly what capability exists. These tests survive refactors because they don't care about internal structure.