Хуки подключают CodeGraph к рабочей сессии Codex или Claude Code. Они добавляют контекст проекта к запросу, проверяют полномочия перед запуском инструмента и сохраняют результаты после его выполнения. Это помогает разработчику работать с актуальным контекстом и видеть, почему операция разрешена или остановлена.
Выберите адаптер для своего клиента. Каждый адаптер имеет свой файл регистрации и набор событий. По файлу регистрации можно проверить, какие обработчики запускает текущая версия.
Выберите нужный адаптер
| Клиент | Файл регистрации | Реализация | Когда применять |
|---|---|---|---|
| Codex | plugins/codegraph/hooks/hooks.json |
plugins/codegraph/hooks/runtime/ через plugins/codegraph/bin/codegraph_codex_hook.py |
Установлен плагин CodeGraph для Codex, и клиент загружает его нативные хуки. |
| Claude Code | .claude/settings.json |
.claude/hooks/ |
Репозиторий открыт в Claude Code, локальные хуки разрешены. |
Для Codex используйте хуки установленного плагина CodeGraph. После обновления плагина начните новую сессию клиента. Для Claude Code проверьте регистрацию в .claude/settings.json и пути к обработчикам в своей рабочей копии.
Подготовьте проверку
Для проверок ниже откройте PowerShell в корне исходного репозитория CodeGraph. Нужны Python и зависимости проекта. Для реального запуска нужен соответствующий клиент, загруженный адаптер и работающая среда выполнения CodeGraph. Настройка подключения описана в руководстве оператора MCP.
Проверьте регистрацию без выполнения обработчиков:
$codexHooks = Get-Content -Raw 'plugins/codegraph/hooks/hooks.json' | ConvertFrom-Json
$claudeHooks = Get-Content -Raw '.claude/settings.json' | ConvertFrom-Json
$codexHooks.hooks.PSObject.Properties.Name
$claudeHooks.hooks.PSObject.Properties.Name
Test-Path -LiteralPath 'plugins/codegraph/bin/codegraph_codex_hook.py'
Ожидаются восемь событий Codex, пять событий Claude Code и True для файла запуска.
Этот результат подтверждает регистрацию в исходниках. Затем проверьте загрузку хуков
в клиенте по разделам ниже.
Команды в локальной .claude/settings.json содержат абсолютные пути рабочего каталога:
перед использованием другой рабочей копии проверьте каждый путь. Укажите пути своей рабочей копии.
Жизненный цикл Codex
Текущая регистрация Codex содержит следующие события:
| Событие | Назначение | Обычная граница |
|---|---|---|
SessionStart |
Определяет проект и контекст сессии до начала работы. | Ограниченная диагностика или обогащение контекста. |
UserPromptSubmit |
Добавляет актуальный контекст CodeGraph к задаче. | При деградации возвращается явная диагностика. |
PreToolUse |
Проверяет политику инструмента и финансовые ограничения до выполнения. | Решения о полномочиях и разрешениях работают как fail-closed. |
PostToolUse |
Сохраняет результат команды и подтверждает её выполнение в текущей задаче. | При сбое подтверждения сообщает о незавершённом учёте команды; выполненные изменения сохраняются. |
SubagentStart / SubagentStop |
Связывает и завершает делегированный контекст. | Подтверждения относятся к действующей управляющей задаче. |
PreCompact |
Сохраняет ограниченный контекст перед сокращением истории. | Блокировку определяет настроенный барьер сохранения контекста. |
Stop |
Формирует диагностику, память и данные проверки завершения. | Сам Stop намеренно неблокирующий; закрытие определяют SDLC-гейты. |
Таймаут события фиксирует эксплуатационное состояние. Прохождение продуктовой задачи определяется SDLC-гейтами.
Жизненный цикл Claude Code
Файл .claude/settings.json регистрирует обработчики SessionStart, UserPromptSubmit, PreToolUse, PostToolUse и Stop из .claude/hooks/.
Общие утилиты хуков читают review_pipeline.fail_open непосредственно из config.yaml.
При true обработчик ошибки возвращает пустой ответ. При false он возвращает сообщение
Hook Error: BLOCK с кодом ошибки и рекомендуемым действием. Отсутствующий параметр или ошибка
чтения конфигурации дают false. Текущая конфигурация репозитория и модель ReviewPipelineConfig
задают true. Проверьте значение в своей рабочей копии и обработчик нужного события. Этот параметр задаёт обработку ошибок. Полномочия проверяет политика запуска инструмента,
а результат ревью подтверждают отчёт и связанные артефакты.
Модель отказа
- Используйте fail-closed для проверки полномочий, опасных инструментов, обязательного согласования, завершения задачи и финансовых ограничений. При сбое этих проверок операция останавливается.
- Используйте fail-open для дополнительного контекста и телеметрии, когда клиент может продолжить работу без этих данных. Сохраните диагностику сбоя для последующей проверки.
- Код возврата хука фиксирует результат его запуска. Для приёмки задачи или релиза сохраните отчёт ревью и связанные артефакты.
- Не помещайте в диагностику секреты, токены провайдера и неограниченные фрагменты исходников.
- Ограничивайте таймаут и возвращайте способ восстановления с названием упавшего этапа.
Как проверить хуки Codex
- Откройте
plugins/codegraph/hooks/hooks.jsonи убедитесь, что нужное событие зарегистрировано. - Проверьте команду
${PLUGIN_ROOT}/bin/codegraph_codex_hook.pyили её Windows-вариант и наличие файла обработчика. - После установки или обновления плагина начните новую сессию клиента. Изменение исходников не обновляет уже установленный кэш.
- Вызовите минимальное подходящее событие и изучите структурированную диагностику.
- Если
PreToolUseзапретил управляемую операцию, исправьте указанные в диагностике границы задачи, полномочия, согласование или привязку сессии.
Как проверить хуки Claude Code
- Убедитесь, что
.claude/settings.jsonрегистрирует событие и ссылается на существующий файл в.claude/hooks/. - Для проверки в клиенте выполните разрешённое действие, которое вызывает нужное событие.
- Проверьте, что неверный контекст проекта приводит к понятной диагностике.
- Сравните
review_pipeline.fail_open, если поведение различается на рабочих станциях.
Диагностика
| Симптом | Что проверить | Восстановление |
|---|---|---|
| Событие не запускается | Регистрацию, версию плагина, перезапуск клиента | Обновите адаптер и начните новую сессию. |
| Выбран неверный проект | Определение проекта и контекст сессии | Проверьте рабочий каталог и привязку проекта; начните новую сессию после исправления. |
PreToolUse запрещает команду |
Полномочия, согласование, привязку задачи и политику опасных команд | Исправьте управляющие данные; не переключайте отказ в fail-open. |
| Добавление контекста завершается по таймауту | Доступность MCP и среды выполнения, лимит времени события | Продолжите с явной отметкой деградации или восстановите сервис. |
| Хук сработал, но отчёт ревью отсутствует | Команду ревью и артефакты проверки | Запустите ревью по руководству и сохраните его отчёт. |
Источники
plugins/codegraph/hooks/hooks.jsonplugins/codegraph/hooks/runtime/plugins/codegraph/bin/codegraph_codex_hook.py.claude/settings.json.claude/hooks/
Сам процесс проверки описан в руководстве Code Review и сценарии 09.