← ClaudeAtlas

tsddlisted

Test-Spec Driven Development (TSDD): tests are the durable specification, TDD is the operating discipline, prose carries only Why, and `CLAUDE.md` stays a navigation map. Load before production code, tests, ADRs, architectural decisions, `CLAUDE.md` edits, or any durable prose artifact that would duplicate tests or code. Also load when the user asks to write tests or define test behavior before implementation, including "test 書いて", "test 書いて", "テスト書いて", "pytest", "テスト環境", "TSDD", "Test-Spec Driven Development", "TDD で実装", "ADR を書いて", "decision record", or "executable specification".
furedea/agent-harness · ★ 1 · Testing & QA · score 67
Install: claude install-skill furedea/agent-harness
# Test-Spec Driven Development (TSDD) ## Scope This skill governs the **methodology layer** of day-to-day coding work — how requirements, design decisions, and implementation are recorded and evolved, and in what order work proceeds. It is deliberately language-agnostic. TSDD means the test suite is the durable specification. TDD is the operating discipline used to grow that specification one executable example at a time. Out of scope and delegated elsewhere: - Language-specific conventions (mock libraries, fixture patterns, lint rules, assertion style, package manager commands, module layout) → the relevant `*-style` skill and `rules/coding_guideline.md`. - Project and CI bootstrap (flake, direnv, language init, CI workflow scaffolding) → the relevant `*-init` skill. - ADR selection, repository inspection, layout, status, supersession, templates, and workflow → the `adr` skill. If a rule below starts feeling like a language-specific implementation detail, it belongs in one of those skills, not here. ## Core Principle **The spec is the test suite. Prose documents carry only Why.** Natural-language specification documents become a second source of truth that drifts from the code, violates DRY, and doubles the cost of every requirement change. Under this methodology, requirements live inside executable tests, implementation is self-documenting via code and types, and the only human-written prose captures _why_ a decision was made — which code cannot express anyway, so