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 agentmods add commands/emaraschio/cursor-commands/tddgit clone --depth 1 https://github.com/emaraschio/cursor-commandsWrote 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/commands/emaraschio/cursor-commands/tdd)<a href="https://agentmods.dev/commands/emaraschio/cursor-commands/tdd"><img src="https://agentmods.dev/badge/commands/emaraschio/cursor-commands/tdd.svg" alt="Measured on agentmods" 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 | $0.00032 | $0.00654 |
| Opus 5 | $0.00016 | $0.00327 |
| Sonnet 5 | $0.00006 | $0.00131 |
| Haiku 4.5 | $0.00003 | $0.00065 |
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 5d 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 — 46 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Overview
Guide a specify-encode-fulfill TDD session on the host project's test framework: clarify specs, one failing test per cycle, minimal code to green, user approval before continuing. Full workflow: .cursor/skill-contracts/tdd/SKILL.md (user install: ~/.cursor/skill-contracts/tdd/SKILL.md).
Defaults
| Setting | Default |
|---|---|
| Loop | Specify → one failing test → minimal fulfill → behavior commit → optional refactor |
| Tests per cycle | One |
| Specification form | Under scenario A, X happens; under scenario B, Y happens |
| Pre-existing failures | Pause; fix or stash before continuing |
| RSpec examples | .cursor/skill-contracts/tdd/appendix-rspec-examples.md (fallback: ~/.cursor/skill-contracts/tdd/appendix-rspec-examples.md) |
Steps
- Read
.cursor/skill-contracts/tdd/SKILL.mdfor the full agent contract; if that file is missing, read~/.cursor/skill-contracts/tdd/SKILL.md. - Execute clarify → specification list → kitchen check → one-test cycles with approvals.
- Report progress per cycle; do not batch tests or skip approval gates.
Anti-patterns
- One failing test per cycle, minimal code to green. Trigger: starting a TDD cycle. Wrong: writing the whole test suite up front, or adding speculative code beyond the current failing test. Correct: encode one failing test, then write just enough code to pass it. Reason: batching tests or speculative code abandons the red-green loop that keeps the design honest.
- Assert concrete behavior, never vague correctness. Trigger: writing a test assertion. Wrong: asserting "works correctly" or "handles properly" without stating the expected outcome. Correct: assert the specific expected result for the scenario. Reason: vague assertions pass without proving the behavior, so they catch no regression.
- Keep behavior commits clean and the suite green. Trigger: ready to commit a behavior change. Wrong: committing with unrelated failing tests, or mixing refactoring into the behavior commit. Correct: commit the behavior change alone on a green suite, then refactor separately. Reason: mixed or red commits make history hard to bisect and hide what actually changed.
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.
- 5d ago First seen · 46 lines · 32 tokens per session scan A 1a2449dc7d04
tdd is a command published in the GitHub repository emaraschio/cursor-commands (9 stars, last pushed 28d ago), licensed MIT. It adds 32 tokens to every session and 654 once invoked, about $0.0002 per session on Opus 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-08-31.
Other commands, from other repositories
api-aqa-flow
Workflow for backend API test automation: TMS / Issue Tracker test cases → automated API tests, HITL-gated.
spec-impl
Execute spec tasks using TDD methodology.
implement-approved-slice
Implement only the approved slice with minimal, explicit, review-friendly changes, then persist execution evidence in slice notes and TASKSTATE.md. The single official execution path of the workflow. Supports an opt-in test-first (TDD) mode, enabled per slice or via --tdd, that writes the failing test before the code…
go-test
Go TDD workflow with table-driven tests.
tdd-workflow
Implement the behavior described in $ARGUMENTS using strict TDD. Follow this exact sequence. Do not collapse phases. Each gate requires actual test runner output.
analyze-deps
Analyze the project's dependency tree, identify unused or duplicate dependencies, and suggest optimizations.