42 lines
1.3 KiB
JSON
42 lines
1.3 KiB
JSON
{
|
|
"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",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "bash \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/tdd-gate.sh"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|