Skip to content

Latest commit

 

History

History
25 lines (20 loc) · 2.14 KB

File metadata and controls

25 lines (20 loc) · 2.14 KB

Лаба 6. Hooks: формат, защита, уведомления

Цель: сделать поведение детерминированным — то, что «должно происходить всегда».

Шаги

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

✅ Готово, если

  • Код форматируется без просьб
  • Защищённые файлы нельзя изменить
  • Вы получаете уведомление, когда Claude ждёт
  • Вы можете объяснить, чем exit 2 отличается от exit 1

⭐ Со звёздочкой

Hook на Stop, который запускает быстрые тесты и возвращает exit 2 при падении, — Claude будет доделывать работу, пока тесты не пройдут. Не забудьте проверять stop_hook_active, чтобы не зациклиться.