Sign in
Explore
Add-ons · HookTesting & SecurityReviewedRuns shell commands

quality-gates/tdd-gate

Blocks edits to production code unless a matching test file exists, so the tests are written first.

Kind
Hook
Works with
Claude Code
Source
Claude Code Templates @ 72e5f237f64d
Path
cli-tool/components/hooks/quality-gates/tdd-gate.json
License
MIT
Jobs
Testing, Guardrails
InstallInstall it by hand, following the source.
{
  "description": "Test-Driven Development enforcement hook. Blocks editing production code files (.cs, .py, .ts, .go, .rs, .rb, .php, .java, .kt, .swift, .dart) unless a corresponding test file exists. Forces the TDD workflow: write tests first, then implement. Automatically skips config files, migrations, DTOs, test files themselves, and infrastructure files. Looks for test files with common naming patterns (MyClassTest.ext, my-class.test.ext, my_class_test.ext, test_my_class.ext). Inspired by pm-workspace's Spec-Driven Development methodology.",
  "supportingFiles": [
    {
      "source": "tdd-gate.sh",
      "destination": ".claude/hooks/tdd-gate.sh",
      "executable": true
    }
  ],
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit",
        "hooks": [
          {
            "type": "command",
            "command": "bash \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/tdd-gate.sh"
          }
        ]
      },
      {
        "matcher": "MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "bash \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/tdd-gate.sh"
          }
        ]
      },
      {
        "matcher": "Write",
…