plan-gate — хук для Claude Code: что делает и установка
Хук проверяет наличие свежей спецификации перед изменением кода и показывает предупреждение, если .spec.md не найден.
npx claude-code-templates@latest --hook quality-gates/plan-gateЧто делает plan-gate
plan-gate срабатывает перед операциями Edit, MultiEdit и Write в Claude Code. Скрипт ищет в каталоге проекта файлы .spec.md, созданные за последние 14 дней. Если свежей спецификации нет, хук предлагает сначала подготовить её.
Проверка не блокирует работу: команда завершается с кодом 0, поэтому предупреждение остаётся напоминанием, а не жёстким ограничением. Хук рассчитан на 16 языков программирования и относится к методологии Spec-Driven Development, где реализация опирается на утверждённую спецификацию.
При установке скрипт plan-gate.sh размещается в .claude/hooks/plan-gate.sh с правом на выполнение. В конфигурации используются вызовы через bash "$CLAUDE_PROJECT_DIR"/.claude/hooks/plan-gate.sh. Это значит, что без свежего .spec.md агент всё равно сможет изменить файл, но сначала покажет предупреждение.
Какие задачи решает
- проверить наличие свежей
.spec.mdперед изменением кода - предупредить агента о работе без утверждённой спецификации
- напомнить о подготовке плана перед реализацией
- контролировать операции
Edit,MultiEditиWrite
Примеры запросов агенту
- Измени production-код в
src/app.tsи учти свежую спецификацию проекта. - Создай файл
src/payment.py, но сначала проверь, есть ли подходящий.spec.md. - Обнови несколько файлов через
MultiEditи покажи предупреждение, если спецификация устарела.
Как установить plan-gate
1Через claude-code-templates
npx claude-code-templates@latest --hook quality-gates/plan-gate2Вручную: положить файлы
.claude/settings.jsonБлок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json
По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду
Вопросы о plan-gate
Как установить plan-gate в Claude Code?
Выполните npx claude-code-templates@latest --hook quality-gates/plan-gate, затем настройте .claude/settings.json.
Что делает plan-gate?
Хук проверяет свежие файлы .spec.md перед операциями Edit, MultiEdit и Write. При отсутствии подходящей спецификации он показывает предупреждение.
Блокирует ли plan-gate изменение кода без спецификации?
Нет. Хук завершается с кодом 0, поэтому продолжает работу как напоминание, а не как жёсткий запрет.
Исходный текст
plan-gate.json · MIT
{
"description": "Planning gate that warns when editing production code without an approved specification. Checks for recent .spec.md files in the project directory (last 14 days). If no spec is found, shows a warning suggesting to create one first. Non-blocking (exit 0) — acts as a reminder, not a hard gate. Supports 16 programming languages. Part of the Spec-Driven Development (SDD) methodology where every implementation should be backed by an approved specification.",
"supportingFiles": [
{
"source": "plan-gate.sh",
"destination": ".claude/hooks/plan-gate.sh",
"executable": true
}
],
"hooks": {
"PreToolUse": [
{
"matcher": "Edit",
"hooks": [
{
"type": "command",
"command": "bash \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/plan-gate.sh"
}
]
},
{
"matcher": "MultiEdit",
"hooks": [
{
"type": "command",
"command": "bash \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/plan-gate.sh"
}
]
},
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "bash \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/plan-gate.sh"
}
]
}
]
}
}
© davila7 · MIT · davila7/claude-code-templates