раздел 08

Хуки: автоматизация, не контекст

Хук - это твой скрипт, который система запускает сама на определённое событие в работе агента. Не агент решает его выполнить - система выполняет его всегда, автоматически, одинаково. Задаются хуки в настройках (в том же settings.json), привязкой скрипта к событию.

Главное отличие: это не контекст

Вернёмся к разграничению из первой главы. Всё остальное в мануале - инструкции, навыки, правила, память - это контекст: текст, который агент читает и учитывает. Он может ему следовать, а может отступить, если задача требует.

Хук устроен принципиально иначе.

Хук - это не текст для чтения, а действие по триггеру. Он выполняется системой всегда и одинаково, независимо от того, что решил агент. Поэтому хуки надёжны там, где текст-инструкция ненадёжен.

Если тебе нужно, чтобы что-то происходило гарантированно и каждый раз, - это работа для хука. Строчка «всегда прогоняй форматтер» в инструкции ненадёжна: агент может её забыть или посчитать, что сейчас не нужно. Хук на событие «после правки файла» сработает всегда.

На какие события бывают хуки

  • Перед инструментом. До того как агент выполнит команду или правку. Можно проверить и заблокировать опасное.
  • После инструмента. Сразу после действия. Классика - прогнать форматтер после правки файла.
  • На остановке (Stop). Когда агент закончил и собирается отдать управление. Удобно для финальной проверки или напоминания.

Примеры

Форматтер после каждой правки - скрипт привязан к событию «после Edit»:

#!/bin/bash
# hooks/format.sh - запускается после правки файла
npx prettier --write "$CLAUDE_FILE_PATH"

Напоминание-проверка на остановке - если в сессии правили веб-файлы, напомнить проверить в браузере:

#!/bin/bash
# hooks/remind-check.sh - запускается на Stop
if git diff --name-only | grep -qE '\.(html|css|js|tsx)$'; then
  echo "Правились фронт-файлы: проверь рендеринг в браузере перед готово."
fi

Хорошо и плохо

Хорошо
Хук быстрый и идемпотентный: прогнать форматтер, проверить один паттерн, вывести напоминание. Отрабатывает за секунды, не мешает потоку, повторный запуск ничего не ломает.
Плохо
Тяжёлый хук: полный прогон тестов и сборки после каждой мелкой правки. Агент вязнет, каждый шаг тормозит. Или хук с побочками, который ломает состояние и рушит поток работы.

Когда хук, а когда инструкция

Простое правило: нужно гарантированно и каждый раз - хук. Нужно объяснить или задать контекст - инструкция, навык или правило. Форматирование после правки - хук. Стиль кода - инструкция. Проверка на секреты перед коммитом - хук. Договорённость о том, как оформлять коммиты, - инструкция.

Куда дальше

  • Разрешения AI-агентов - хуки живут в тех же настройках, что и права; вместе они задают, что агенту можно и что происходит автоматически.