Хуки вместо текстовых правил: как физически запретить Claude Code AI коммитить без тестов
Claude Code работает с кодом быстро, но у него есть слабость: правила, записанные текстом в файле CLAUDE.md, со временем теряют вес в контексте и перестают выполняться. Автор опенсорсного пака навыков paranoid-qa на Хабре показал, как заменить текстовые запреты жёсткими скриптами-хуками, которые блокируют коммит (фиксацию изменений в коде) физически, а не уговорами.

Хуки превращают «пожалуйста, прогони тесты» из текстовой просьбы, которую модель может проигнорировать, в код, который не даст коммиту пройти. Для всех, кто доверяет ИИ-агенту (программе, которая сама выполняет задачи) реальные изменения в проекте, это разница между «обычно работает» и «гарантированно работает».
В чём проблема текстовых правил?
Правило в файле CLAUDE.md, например «перед коммитом прогони тесты», это просто текст. Он конкурирует за внимание модели с тысячами токенов (единиц текста, которыми оперирует нейросеть): задачей, кодом, историей диалога. Автор серии статей на Хабре, посвящённой паку paranoid-qa, описывает типичную картину: в начале сессии правило работает, а к сороковой минуте контекст забит и инструкция превращается в фоновый шум.
Вывод прямой: забыть можно только то, что живёт внутри контекста. Критичные правила нужно вынести из контекста в код, который выполняется независимо от того, что модель «думает» о ситуации.
Автор выделяет четыре слоя управления поведением Claude Code AI:
- Системный промпт (базовые инструкции модели)
- Файл CLAUDE.md с правилами проекта
- Контекст диалога с историей команд
- Хуки: скрипты, которые запускаются автоматически на событиях жизненного цикла
Первые три слоя работают вероятностно. Четвёртый выполняется как код и не зависит от длины сессии.
Три аргумента за хуки вместо текстовых правил
Физическая невозможность нарушения. Хук объявляется в файле .claude/settings.json и вешается на конкретное событие. Например, скрипт gate-commit.sh перехватывает любую команду git commit и проверяет три вещи: артефакт прогона тестов существует, прогон зелёный, тестовые файлы не менялись после прогона. Если хотя бы одно условие не выполнено, коммит блокируется с кодом выхода и причиной на русском языке. Агент читает причину и действует по ней.
Мягкое напоминание в нужный момент. Второй хук, track-test-edit.sh, не блокирует ничего. Он отслеживает правку тестовых файлов и вшивает агенту напоминание прямо в контекст. Автор отмечает, что в первом же интеграционном прогоне агент поправил спецификацию, получил напоминание и сам прогнал тесты: между правкой и прогоном прошло 4 секунды. Жёсткий гейт даже не сработал.
Контроль завершения. Третий хук, gate-stop.sh, срабатывает, когда агент считает работу законченной. Если тесты правились, а прогона после правки не было, завершиться не получится. Автор добавил предохранитель от бесконечного цикла: после нескольких неудачных попыток хук пропускает стоп и пишет предупреждение, чтобы сессия не зависла.
Три аргумента против жёсткого принуждения
Хрупкость при обновлениях. Автор сам отмечает: API хуков Claude Code AI за последний год менялся, многие гайды в сети устарели. Скрипты, работающие сегодня, могут сломаться после обновления. Тот, кто завяжет весь процесс на хуки, рискует получить полностью заблокированного агента после апдейта.
Ложное чувство безопасности. Хуки проверяют то, что в них заложено. Если тесты сами по себе плохие, зелёный прогон ничего не гарантирует. Автор разбирал это во второй статье серии: зелёный линтер (программа проверки кода на ошибки) не спасает тесты Playwright (инструмент для тестирования веб-приложений), если проверки написаны формально.
Сложность для непрограммиста. Настройка хуков требует работы с bash-скриптами, JSON-конфигурацией, знания событий жизненного цикла. Для автора Дзена или маркетолога, который использует Claude Code AI для генерации контента, а не для разработки, порог входа высокий.
Забыть можно только то, что живёт в контексте. Значит, критичные правила надо вынести из контекста в код, который выполняется сам. : Автор paranoid-qa, Хабр
Что с этого вам прямо сейчас?
Авторам Дзена и копирайтерам. Принцип «не уговаривай, а принуждай кодом» работает шире, чем разработка. Если вы даёте ИИ-агенту задачу, а он систематически игнорирует часть инструкций к концу длинной сессии, проблема не в промпте (текстовой команде для нейросети). Проблема в том, что промпт теряет вес. Ищите способ разбить задачу на короткие сессии или вынести проверку за пределы диалога.
Разработчикам и техническим предпринимателям. Если вы используете Claude Code AI в проектах, файл .claude/settings.json с тремя хуками из статьи копируется за пять минут. Код открыт в репозитории paranoid-qa. Проверьте совместимость с текущей версией API, автор сверял по документации на июль 2026 года.
Маркетологам и менеджерам. Даже если вы не пишете код, знание о четырёх слоях управления агентом полезно при постановке задач команде. Вопрос «а это правило в промпте или в хуке?» отделяет пожелание от гарантии.
Подход paranoid-qa, по моим наблюдениям, решает настоящую, а не выдуманную проблему. Любой, кто работал с Claude Code AI в длинных сессиях, видел: к концу разговора агент начинает срезать углы. Хуки закрывают конкретный класс ошибок, коммит без тестов, но не заменяют здравый смысл. Плохие тесты пройдут хук с зелёным статусом, и вы получите ложную уверенность. Рекомендация: если вы разработчик, попробуйте первый гейт (блокировка коммита) на одном проекте и посмотрите, сколько раз за неделю он сработает. Число покажет, насколько вы доверяли тексту, который давно не читался.
Anthropic пока не объявляла хуки стабильным API, и формат событий может измениться. Но направление понятно: управление ИИ-агентами движется от текстовых инструкций к программируемым ограничениям, где нарушение не просто нежелательно, а технически невозможно. Кто научится строить такие ограничения первым, получит агентов, которым можно доверять не на слово, а на деле.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

У ИИ есть сознание или нет: механистический подход через токены, веса и температуру
Компания или проект, в источнике описана теоретическая статья из русскоязычного цикла публикаций о сознании ИИ. Источник не содержит ссылки, поэтому атрибуция…

Демон Лапласа стал Python-проектом: код показывает, почему ИИ не может предсказать всё
Демон Лапласа в 1814 году описал мысленный эксперимент, который два века спустя можно проверить руками: открытый Python-проект формализует идею «всезнающего…

Bad CaRMa: нейросеть «квартет» показала на 31 млрд записей, почему не повторит крах Vision
Компания-разработчик обобщённой модели данных «квартет» 10 июня опубликовала технический разбор под названием Bad CaRMa, в котором показала, почему их…
Комментарии