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",
…