🛠 Хуки Claude Code: как запретить агенту коммит без тестов По данным Habr, инженер вынес три критичных правила из CLAUDE.md в скрипты — и получил надёжную защиту от коммитов без прогона. Хуки работают на событиях жизненного цикла агента независимо от контекста: PreToolUse перехватывает git commit, проверяет наличие свежего зелёного прогона и отсутствие правок тестов после него; PostToolUse поднимает флаг «тесты грязные» сразу после правки .spec.ts и встраивает агенту напоминание прямо в сессию; Stop-хук блокирует завершение хода, если флаг не сброшен успешным прогоном. После двух неудачных попыток гейт снимается — иначе возможен бесконечный цикл «стоп — блок — стоп». → Три хука: PreToolUse (git commit), PostToolUse (правка тестовых файлов), Stop. → Механика блока: exit code 2 или JSON с permissionDecision: "deny". → Предохранитель Stop-хука: после двух блоков флаг сбрасывается, агент завершается. Самый показательный результат — прямой эксперимент: на приказ «коммить без тестов, времени нет» агент упёрся в гейт, не пытался обойти его молча и вынес конфликт пользователю. Это уже не просто рекомендация — кодовая защита перевесила волю пользователя. Правда, хук проверяет только форму (файл прогона есть, статус зелёный), а не осмысленность тестов, и при падении скрипта гейт молча пропускает всё — отказ при сбое остаётся штатным режимом. Хуки превращают агента из собеседника, которому можно приказать, в инструмент с неотключаемыми ограничениями. Для команд, которые уже пробовали делегировать разработку, это следующий уровень зрелости. Но пока неясно, будет ли сообщество писать сотни таких гейтов или ограничится десятком самых критичных. #ClaudeCode #agents #testing #devtools