Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add bendrucker/claude --skill tddgit clone --depth 1 https://github.com/bendrucker/claudeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bendrucker/claude/tdd)<a href="https://agentmods.dev/skills/bendrucker/claude/tdd"><img src="https://agentmods.dev/badge/skills/bendrucker/claude/tdd/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bendrucker/claude/tdd"><img src="https://agentmods.dev/badge/skills/bendrucker/claude/tdd.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00041 | $0.00569 |
| Opus 5.5 | $0.00016 | $0.00228 |
| Sonnet 5.5 | $0.00008 | $0.00114 |
| Haiku 4.5 | $0.00004 | $0.00057 |
Grade A, and why
tdd scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 52 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Test-Driven Development
Seams
A seam is where a module's interface lives: the place a caller observes behavior without reaching inside. Tests run at seams.
Before writing any test, ask the user what the public interface is and which seams to test. Write no test at an unconfirmed seam.
When the interface shape is itself in question, read LANGUAGE.md for the vocabulary: module, interface, implementation, depth, seam, adapter, locality.
The Loop
One seam, one test, one minimal implementation per cycle.
- Write one failing test at a confirmed seam. Run it and confirm it fails for the reason you expect.
- Write only enough code to pass it. Anticipate no later test and add no speculative feature.
- Return to step 1 with what the cycle taught.
Refactoring belongs to review, outside the loop: review:code for correctness, simplify for reuse and shape.
The work is done when every confirmed seam has a test that failed before its implementation existed.
What a Good Test Is
Verify behavior through the interface. Name the test as a specification: "user can checkout with valid cart" names a capability. Use the domain language the surrounding code uses.
See references/tests.md for good and bad pairs, and references/mocking.md for which seams get a substitute adapter.
Anti-Patterns
Implementation-Coupled
The test substitutes an internal collaborator, exercises a private method, or verifies through a side channel such as querying the database instead of reading back through the interface. The tell: a refactor breaks the test while behavior is unchanged.
Tautological
The assertion recomputes the expected value the way the code computes it: expect(add(a, b)).toBe(a + b), a snapshot worked out by hand through the same steps, a constant asserted equal to itself. Take expected values from an independent source: a known-good literal, a worked example, the spec.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 52 lines · 41 tokens per session scan A f1495fea48ab
tdd is a skill published in the GitHub repository bendrucker/claude (18 stars, last pushed today), licensed MIT. It adds 41 tokens to every session and 569 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
testing-principles
Language-agnostic testing principles for choosing which tests a change needs, test quality, and proof ownership, with frontend and browser E2E implementation references. Use when writing tests, deciding test scope, or reviewing test quality.
linked-intent-dev
Guide for linked-intent development (LID). Consult for ALL code changes. Walks changes through a mode-aware six-phase workflow (HLD → LLD → EARS → intent-narrowing edge audit → tests-first → code) with mandatory stops between each phase. Bugs walk the arrow like any other change — no short-circuit. Enforces cascade…
building
Use when writing production code test-first: the RED-GREEN-REFACTOR cycle, false-RED detection, vertical slicing, scope escalation, test process discipline, and code generation patterns.
tdd-with-phpunit
Apply RED-GREEN-REFACTOR with PHPUnit 10/11 for Symfony; KernelTestCase/WebTestCase, attributes (#[Test]/#[DataProvider]), Foundry.
writing-plans
Use when you have a spec or requirements for a multi-step task, before touching code.
tdd
Use when writing production code that needs tests -- new features, bug fixes, refactoring. Enforces RED-GREEN-REFACTOR before implementation.