Цель: сделать поведение детерминированным — то, что «должно происходить всегда».
- Установите
jq. Скопируйтеstarter-kit/.claude/hooks/и секциюhooksизsettings.json. - Автоформат: попросите Claude написать функцию «в одну строку, без отступов». Проверьте файл — он отформатирован hook-ом.
- Защита: попросите изменить
.envили lock-файл. Claude должен получить отказ и объяснение. - Уведомления: подключите
notify.shна событиеNotification, запустите долгую задачу, переключитесь в другое окно. - Контекст при старте: подключите
session-context.shнаSessionStart, начните новую сессию и спросите «над чем я сейчас работаю?». - Протестируйте hook вручную:
echo '{"tool_input":{"file_path":".env"}}' | bash .claude/hooks/protect-files.sh; echo "exit=$?"
- Посмотрите
/hooksи запуститеclaude --debug, найдите в логе выполнение hooks.
- Код форматируется без просьб
- Защищённые файлы нельзя изменить
- Вы получаете уведомление, когда Claude ждёт
- Вы можете объяснить, чем exit 2 отличается от exit 1
Hook на Stop, который запускает быстрые тесты и возвращает exit 2 при падении, — Claude будет доделывать работу, пока тесты не пройдут. Не забудьте проверять stop_hook_active, чтобы не зациклиться.