This is a guardrail for test-driven development that stops Claude from writing tests when they'd be wasteful. It enforces the red-green-refactor loop only when the user explicitly asks for TDD or when the bug has an obvious, cheap test target. The workflow is strict: write a failing test, confirm it fails for the right reason, fix the bug, then verify it passes. If a proper regression test would need brittle mocks, slow infrastructure, or expensive setup, it tells Claude to skip it and use the closest practical verification instead. The core insight is that a bad test is worse than no test, and forcing TDD on integration-heavy or unclear paths creates more problems than it solves.
npx -y skills add cursor/plugins --skill tdd --agent claude-codeInstalls into .claude/skills of the current project.
When fixing a bug with a clear, cheap test path, make the broken behavior executable before changing production code. The goal is a focused regression test that fails before the fix and passes after it.
Do not force a test when it would be impractical. If the available test would require broad harness setup, brittle mocks, slow end-to-end infrastructure, production-only state, vague reproduction steps, or large unrelated fixture churn, skip adding a new test and use the closest useful verification instead.
Do not silently skip the regression step. Before fixing, explicitly explain why a failing test is impossible or not worth the cost, then choose the closest executable regression check available. Examples include a targeted script, manual reproduction command, browser automation, snapshot comparison, log assertion, or focused integration check.
Prefer no new test over a bad test. A bad test is one that mostly tests mocks, encodes current implementation details, depends on timing or unrelated global state, needs expensive infrastructure for a small fix, or would be deleted immediately after proving the fix.
Report the evidence, not just the outcome:
wshobson/agents
github/awesome-copilot