Use when the user asks where a permission prompt came from, why a command or commit was blocked or asked for review, why the agent could not finish, or what an agents-best-teams hook decided in a past session.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Diagnose Hooks?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/sergvss-diagnose-hooks)
---
name: diagnose-hooks
description: Use when the user asks where a permission prompt came from, why a command or commit was blocked or asked for review, why the agent could not finish, or what an agents-best-teams hook decided in a past session.
---
# Разбор решений хуков по транскрипту
Отвечает на «откуда это окно», «почему заблокировало», «почему агент не смог закончить» — по транскрипту, а не по памяти.
**Главное правило: у каждой находки есть цитата `файл:строка`.** Нет цитаты — нет находки. Число, время и текст причины берутся из вывода скрипта, а не пересказываются по памяти.
## Шаги
1. **Уточни, что именно раздражает или сломалось**, одним вопросом, если из просьбы не ясно: какая сессия (текущая, вчерашняя, проект), какая команда или какое окно. Скриншот окна — лучший ответ: в строке «Reason:» видно, наш это хук или сам Claude Code.
2. **Запусти скрипт.** Без аргументов он берёт последнюю сессию текущего проекта:
```bash
python "${CLAUDE_PLUGIN_ROOT}/skills/diagnose-hooks/diagnose.py" --replay
```
Полезные ключи: `--hours 24` — все сессии проекта за сутки; `--grep "git commit"` — только вызовы с этим текстом; `--project <путь>` — другой проект; `--session <id>` — конкретная сессия.
3. **Прочитай отчёт.** По каждому решению: где (файл:строка), какой хук, что решил — окно, отказ, блокировка завершения, — причина, исход вызова и, с `--replay`, что решила бы текущая версия.
4. **Ответь пользователю** коротко:
- какой хук и почему — с цитатой;
- повторится ли это сейчас (строка «сейчас»);
- если окно было ложным и `--replay` показывает его и сейчас — это дефект плагина: предложи сообщить о нём, приложив цитату и команду;
- если окно по делу — что сделать, чтобы его не было: разделить команду, вызвать `code-reviewer`, выключить шлюз удалением `.claude/.review-gate`.
## Чего скрипт не видит
- **Окна самого Claude Code** — его правила разрешений, запись в `.claude/`, отказы классификатора auto mode. В транскрипте их решения не записаны. Если пользователь видит окно, а скрипт ничего не нашёл, окно не от плагина: в строке «Reason:» нет `CONFIRM` или `BLOCKED`.
- **Пустые ответы хуков.** Claude Code записывает только непустые: «хук пропустил» выглядит как отсутствие записи рядом с вызовом.
- `--replay` воспроизводит `guard.py` и `review_gate.py`. Остальные хуки зависят от истории сессии — счётчиков, состояния тестов — и заново не прогоняются.
Если методология установлена копированием — скрипт лежит в `skills/diagnose-hooks/diagnose.py` репозитория.