Как заставить Claude Code проверять себя до действия: hooks как стоп-точки

SEO title: Claude Code hooks в 2026: как добавить агенту автоматические проверки до действия

Meta description: Что такое Claude Code hooks простыми словами: события, matchers, скрипты, проверки перед действием, автоформатирование, тесты и риски shell-команд.

У агента может быть хорошая инструкция, но инструкция не всегда равна действию. В длинной работе модель может забыть, что перед правкой надо выбрать навык, перед публикацией проверить файл, а после изменения кода запустить тест. В таких местах полезно не просить агента помнить, а поставить автоматическую стоп-точку.

В Claude Code эту роль выполняют hooks: пользовательские команды, HTTP-обработчики или prompt-проверки, которые запускаются в определенные моменты жизненного цикла. Практически это означает: перед вызовом инструмента, после правки файла или при отправке запроса можно добавить проверку, которая остановит опасное действие или вернет агенту дополнительный контекст.

## Что здесь меняется

Официальная документация Claude Code описывает hooks как механизм для событий с JSON-контекстом: например, перед вызовом инструмента, после вызова инструмента, в начале сессии или перед завершением хода. В блоге Claude отдельно показано, что hooks живут в JSON settings на уровне пользователя, проекта или локального проекта, а matchers позволяют запускать их только для нужных инструментов.

## Как это переводится в рабочий прием

Для практической работы это меняет подход к агентам. Вместо бесконечного файла с просьбами «не забудь проверить» можно вынести одну повторяемую проверку в исполняемое правило. Например: после Write/Edit запускать форматирование, перед Bash с опасным шаблоном останавливать команду, перед началом задачи подсказывать агенту выбрать нужные навыки, а после изменений запускать тесты.

Что решить Как думать Что проверить
--- --- ---
Что болит агент забывает повторяемое правило в длинной задаче можно ли правило проверить программно
Куда поставить проверку до инструмента, после инструмента, при старте или перед финалом не будет ли проверка мешать обычной работе
Что запускать маленький скрипт, форматтер, тест, валидатор или prompt-проверку видит ли агент ясную причину остановки
Где риск hooks могут выполнять shell-команды и читать окружение нет ли доступа к секретам и разрушительным действиям

## Как собрать навык

Рабочий прием: выбрать одну проверку, которая чаще всего ломается в реальной работе, и вынести ее в hook. Не надо сразу строить сложную систему. Начните с малого: форматирование после правки, запрет опасной команды, проверка наличия нужного навыка, запуск теста после изменения файла.

Rich block render error: expected '<document start>', but found '<block sequence start>'
  in "<unicode string>", line 4, column 3:
      - "Что подать на вход: список по ... 
      ^

        title: Рабочая карточка
        steps:
          - "Когда использовать: когда агент регулярно забывает важное правило или делает действие без проверки."
  - "Что подать на вход: список повторяемых ошибок и одно правило, которое можно проверить автоматически."
  - "Что сделать по шагам: выбрать событие, написать маленький handler, задать matcher, проверить на тестовой задаче."
  - "Какой результат получить: агент получает остановку или подсказку в нужный момент, а не постфактум."
  - "Как проверить качество: правило должно срабатывать только там, где оно действительно нужно."
  - "Когда не использовать: если проверка неформализуема или создает больше шума, чем пользы."
  - "Какой навык собрать: превращение редакционных и инженерных правил в автоматические проверки агента."

## Где граница

Hooks нужно проектировать осторожно. Они могут запускать команды, а команды могут читать файлы, окружение и секреты. Поэтому для рабочего проекта нужны короткие скрипты, понятные права, логика fail-safe для рискованных действий и отдельная проверка, что hook не раскрывает лишние данные в выводе.

Rich block render error: mapping values are not allowed here
  in "<unicode string>", line 2, column 80:
     ... ее. Он делает процесс устойчивее: важная проверка случается в пр ... 
                                         ^

        label: Редакционный вывод
        body: Хороший hook не делает агента умнее. Он делает процесс устойчивее: важная проверка случается в правильный момент, даже если агент занят длинной цепочкой действий.

## Что сделать сегодня

Выберите одну фразу из вашего рабочего правила, которая часто повторяется в инструкциях агенту. Переведите ее в вопрос: «можно ли это проверить автоматически?». Если да, это кандидат на первый hook.

Rich block render error: expected '<document start>', but found '<block mapping start>'
  in "<unicode string>", line 4, column 5:
        url: "https://onff.ru/claude-cod ... 
        ^

        title: Связанные материалы ONFF
        links:
          - title: "Claude Code для начинающих: Skills и MCP"
    url: "https://onff.ru/claude-code-dlya-nachinayushchih-skills-mcp/"
  - title: "Как вести память ИИ-проекта"
    url: "https://onff.ru/kak-vesti-pamyat-ii-proekta-claude-sessions-2026/"

## Источники

  1. Claude Code Docs: Hooks reference
  2. Claude: How to configure hooks
  3. Example hook: skill-forced-eval-hook.sh
  4. ONFF: Claude Code для начинающих