Summary: Router failed to identify node; fallback to direct after coverage mismatch hook feedback

Router should have recognised this as a system/meta feedback message and routed to an appropriate handler or clarification node, not left node undefined

Stop-hook feedback messages are system-level signals requiring explicit routing logic; undefined router output forces suboptimal direct fallback and should be caught early


Summary: Запрос 'суб' направлен на subagent-driven-development при пустой цепочке выполнения

Запрос слишком короткий и неоднозначный — необходимо уточнение у пользователя перед роутингом. Роутер не смог определить узел, выбор был сделан по умолчанию или эвристически.

Однословные/обрывочные запросы требуют обязательного уточнения намерения перед роутингом. Не стоит угадывать — лучше запросить контекст.


**Замкнутость на себя:** субагент будет править *тот самый замок*, который его же ограничивает, с хитрым порядком «сначала правка → потом git разблокируется». Свежий контекст субагента легко споткнётся об это.

**Грязная рабочая копия:** в основной копии висят незакоммиченные файлы параллельной сессии (CLAUDE.md). Субагент с git-коммитом тут — это ровно тот сценарий git-промаха (не та ветка / не те файлы), от которого защищает git-safety-правило (прецедент Sprint 6).

**Сама методология** говорит: тесно связанные задачи (а у нас self-unlock bootstrap) → делать **вручную/inline**, не субагентами.

Summary: PreToolUse:Edit hook error: [node tools/enforce-tdd-real-test-verifier.mjs]: [td

Summary:
Exit code 1

 RUN  v4.1.8 c:/моя/проекты/портал crm/Документация/app

 ❯ ../tool

Summary:
Exit code 1

 RUN  v4.1.8 C:/моя/проекты/портал crm/Документация/app

 ❯ ../tool

Summary: PreToolUse:Bash hook error: [node tools/enforce-branch-switch.mjs]: [enforce-bra

Summary:
Exit code 1
warning: in the working copy of 'docs/superpowers/plans/2026-06-02-r

Summary: PreToolUse:Bash hook error: [node tools/enforce-router-gate.mjs]: [router-gate]

Summary: Пустой/минимальный запрос 'а' — роутер не определил узел, выбран direct

Можно было запросить уточнение у пользователя вместо выбора direct, так как запрос не несёт смысловой нагрузки

При получении бессмысленных или однобуквенных запросов стоит запрашивать уточнение, а не делать предположения о маршруте


Summary: Пустой запрос '!' направлен в direct без определения узла роутером

При неопределённом узле и минимальном запросе стоило запросить уточнение у пользователя вместо direct-обработки

Одиночные символы без контекста требуют clarification-шага перед роутингом, а не fallback в direct


Summary: Пользователь просит остановиться и прислать лиды — роутер не определил узел, выбран direct

Роутер должен был распознать бизнес-запрос на получение лидов и направить к соответствующему узлу обработки CRM/лидогенерации, а не использовать direct как fallback

Короткие эмоциональные команды типа 'стоп, пришли X' требуют контекстного распознавания домена — в данном случае sales/CRM — для корректного роутинга, а не молчаливого fallback на direct


Summary: Пользователь отправил 'готово' — роутер не смог определить узел, выбран direct как fallback

Нужен контекст предыдущих сообщений. 'Готово' — продолжение диалога, требует истории сессии для корректного роутинга

Короткие подтверждающие слова ('готово', 'ок', 'понял') без контекста требуют анализа истории диалога, а не немедленного fallback на direct


Summary: Пустой запрос '!' без контента — роутер не определил узел, выбран direct по умолчанию

Можно было запросить уточнение у пользователя вместо silent fallback на direct

Одиночные символы без контекста требуют запроса уточнения, а не молчаливого fallback


Summary: Пользователь отправил 'готово' без контекста, роутер не определил узел, выбран direct-ответ

Запрос слишком короткий и неоднозначный — стоило запросить уточнение вместо прямого ответа

Однословные сообщения типа 'готово' требуют контекста предыдущего диалога; без него лучше уточнять намерение пользователя


c:\моя\проекты\портал crm\Документация\tools\enforce-tdd-gate.mjs

Summary:
Exit code 1

 INFO Configuration cache cleared successfully.

{"tool":"pest","

Summary: PreToolUse:Edit hook error: [node tools/enforce-tdd-gate.mjs]: [enforce-tdd-gate

Summary: <tool_use_error>File has not been read yet. Read it first before writing to it.<

Summary: Пользователь отправил одиночный символ 'а', роутер не смог определить узел, выбран direct

Можно было запросить уточнение у пользователя вместо прямого ответа на бессодержательный запрос

Одиночные символы без контекста требуют уточняющего вопроса, а не попытки роутинга


**а)** **Маленькая безопасная доводка замка** — разрешить мне работать в изолированных копиях (зайти в папку + git внутри неё). Боевое/выкат/секреты остаются под замком; это лишь навигация + обычный git в рабочих копиях. Я делаю её в главной папке (там git работает), ты мерджишь — и дальше **и «Город», и реестр, и тест-долг** идут гладко. **Рекомендую** (это разовая доводка, дальше без стен).

**б)** Отложить — правка «Города» готова и лежит; отправим, когда доделаем замок. DaData (главное) работает.

**в)** Я аккуратно отложу изменения твоей другой задачи (`git stash`, безопасно вернётся) и закоммичу из главной папки — но это безопасно только если прямо сейчас в другом окне не идёт работа над тем CLAUDE.md.

Summary: Получен однобуквенный запрос 'а' без контекста; роутер не определил узел, выбран direct

Можно было запросить уточнение у пользователя перед выбором узла, так как запрос неинформативен

Однобуквенные или бессмысленные запросы требуют уточняющего шага вместо прямого роутинга


Summary: Роутер не определил узел, выбран direct в ответ на системный stop-hook feedback об ошибке покрытия

Роутер должен был распознать системный/технический запрос и явно направить его к подходящему узлу, а не оставить неопределённым

Stop-hook feedback — это технический системный запрос: роутер должен уметь классифицировать такие сообщения и направлять их к специализированному узлу (например, meta/system), а не оставлять решение неопределённым


Summary:
Exit code 2

 INFO Configuration cache cleared successfully.

{"tool":"pest","

Summary: PreToolUse:Write hook error: [node tools/enforce-tdd-gate.mjs]: [enforce-tdd-gat

Summary:
Exit code 1

 RUN  v4.1.8 c:/моя/проекты/портал crm/Документация/app

 ❯ ../tool

Summary: PreToolUse:Edit hook error: [node tools/enforce-tdd-real-test-verifier.mjs]: [td

Можно было запросить уточнение у пользователя, что именно он имел в виду под 'а', вместо молчаливого перехода в direct

При неопределённых или слишком коротких запросах стоит сначала запрашивать уточнение, а не fallback-ить в direct без объяснений


Summary: Роутер не определил узел, выбран direct после ошибки enforce-coverage-verify о несоответствии coverage и Skill tool

Роутер должен был либо корректно определить узел и вызвать Skill tool с именем systematic-debugging, либо явно установить coverage как direct с обоснованием до получения стоп-хука

Если coverage указывает на skill, необходимо фактически вызвать соответствующий Skill tool в этом же turn; несоответствие между заявленным coverage и реальными вызовами инструментов должно выявляться до завершения turn


Summary: Запрос на инструкцию по merge→deploy→backfill направлен напрямую без специализированного узла

Следовало бы определить специализированный узел для DevOps/CI-CD инструкций или технических руководств, а не использовать direct

Запросы на пошаговые технические инструкции по деплою должны роутиться к узлу с DevOps-контекстом или документационным узлом


Summary: Пустой запрос '!' — роутер не смог определить узел, выбран direct как fallback

Можно было запросить уточнение у пользователя вместо молчаливого fallback на direct

Односимвольные или бессмысленные запросы требуют явного запроса уточнения, а не silent fallback


Summary: Пользователь отправил 'готово' без контекста, роутер не определил узел, выбран direct

При неопределённом намерении стоило запросить уточнение или применить fallback-узел с просьбой конкретизировать задачу

Односложные подтверждения без контекста требуют либо запроса уточнения, либо анализа предыдущего контекста сессии перед роутингом


Summary: Пустой/бессмысленный запрос 'готовао' — роутер не определил узел, выбран direct

Можно было запросить уточнение у пользователя вместо прямого ответа, так как запрос неразборчив

Опечатанные или неразборчивые запросы требуют clarification-шага перед роутингом, а не немедленного выбора узла


Summary: Запрос 'но с ошибкой!' не был распознан роутером, выбран узел direct без цепочки обработки

Роутер должен был запросить уточнение контекста — неясно, к чему относится 'ошибка', какой предыдущий запрос имеется в виду. Нужен fallback на clarification-узел

Фрагментарные запросы без контекста ('но с ошибкой!') требуют запроса уточнения, а не прямого роутинга в direct — необходим узел для обработки неполных сообщений


**(б)** Первая строка пустая, хотя должна быть заполнена?

**(а)** У всех одинаково «Красноярский край» — а ты ждал разные регионы (выглядит, будто всем подставился один)?

**(в)** Регион **неправильный** (эти лиды на самом деле НЕ из Красноярского края)?

**(г)** Другое — опиши словами.

Summary: Пользователь отправил одиночный символ 'б', роутер не смог определить узел, выбран debugging-узел по умолчанию

При неопределённом запросе лучше запросить уточнение у пользователя, а не направлять в debugging-узел; выбор systematic-debugging не релевантен для однобуквенного ввода

Однобуквенные или бессмысленные запросы требуют специального обработчика 'clarification' вместо fallback на технический узел


Summary: Пользователь отправил 'готово' без контекста; роутер не определил узел, выбран direct-ответ

При неопределённом намерении стоило запросить уточнение вместо прямого ответа без цепочки обработки

Односложные подтверждения без контекста требуют уточняющего вопроса или анализа предыдущего диалога перед роутингом


Explanation: Запрос содержит неопределённый местоимённый референт ('он'), неизвестный субъект ('Россвязь' — регулятор? источник данных? API?), и не содержит ни system, ни expected, ни actual behaviour. Паттерн 2 (discovery-interview) требует не угадывать при двух+ интерпретациях — их здесь как минимум три.

Sentry MCP

Паттерн 7 применим если это production-ошибка, но в запросе нет упоминания 'боевой/прод/в логах' — только 'не подтянулся', что может быть dev-проблемой или бизнес-вопросом. Без знания что такое 'он' — преждевременно.

Superpowers — systematic-debugging

Паттерн 4: описаны не все три компонента (system/expected/actual). Неизвестно что такое 'он', какая система, что ожидалось. Нельзя запустить отладку без базового контекста.

openapi-mcp-server

Если 'Россвязь' — это внешний API и 'не подтянулся' означает проблему интеграции, этот скил мог бы помочь с интроспекцией спеки. Но слишком мало контекста для уверенного выбора.

Summary: Роутер не смог определить узел для неполного/контекстного вопроса, выбран direct как fallback

Запрос требует контекста предыдущей сессии — нужен узел для работы с историей диалога или clarification-узел для уточнения о чём идёт речь

Вопросы типа 'почему он не...' без антецедента указывают на потерю контекста — стоит маршрутизировать в узел уточнения или context-recovery


Summary: Получен пустой/неинформативный запрос 'делай', роутер не смог определить узел, выбран direct

Следовало запросить уточнение у пользователя вместо fallback на direct — непонятно что именно делать

Однословные императивные запросы без контекста требуют clarification-шага, а не автоматического роутинга на direct


Summary: PreToolUse:Bash hook error: [node tools/enforce-router-gate.mjs]: [router-gate]

Summary: <tool_use_error>Cancelled: parallel tool call Bash(git -C "C:/моя/проекты/портал

Summary:
Exit code 2
{"tool":"pest","result":"failed","tests":15,"passed":0,"assertions":

Summary:
Exit code 2
{"tool":"pest","result":"failed","tests":5,"passed":4,"assertions":1

Summary: <tool_use_error>Path does not exist: C:\моя\проекты\портал crm\worktree-deals-ci

Summary:
Exit code 1
{"tool":"pest","result":"failed","tests":5,"passed":4,"assertions":1

Summary:
Exit code 2
{"tool":"pest","result":"failed","tests":40,"passed":38,"assertions"

При неопределённом узле стоило запросить уточнение или использовать fallback-узел с запросом контекста, а не просто direct

Односложные сообщения без контекста ('готово', 'ок', 'да') требуют либо запроса уточнения, либо анализа истории сессии для правильного роутинга


Explanation: Задача — диагностика упавшего CI-equivalent background-процесса (exit code 2, full suite parallel). Нет явного stack-trace, нет описания system/expected/actual — ПАТТЕРН 4 требует systematic-debugging, который сам потребует прояснить детали. Это не production runtime error (нет упоминания боевого сервера/Sentry), а локальный CI-прогон, поэтому Sentry (#34) не нужен первым. Capability: Superpowers 'systematic-debugging' ведёт структурированный анализ причины падения перед любыми правками.

Pest 4

Pest — инструмент запуска тестов, но не диагностики причины падения. Без анализа что именно упало (exit code 2 может быть lint, type-check, migration squawk и т.д.) — запускать Pest преждевременно.

Sentry MCP

ПАТТЕРН 7 требует Sentry только при production runtime errors. Здесь background task в локальном CI-прогоне, не боевой сервер — Sentry не применим.

Larastan

Exit code 2 в 'full suite parallel' может быть Larastan, но также Pest / ESLint / vue-tsc. Без конкретного вывода нельзя выбирать один инструмент — нужна сначала диагностика через systematic-debugging.

Summary:
Exit code 128
fatal: path 'app/tests/Fixtures/rossvyaz/sample.csv' exists on dis

Summary: Роутер не определил узел для task-notification о провале фонового CI-теста; выбран direct

Следовало распознать task-notification как служебное событие и направить к специализированному обработчику задач или диагностическому агенту вместо прямого ответа

Task-notification с failed-статусом требует отдельного узла для анализа ошибок и предложения корректирующих действий — роутер должен иметь паттерн для таких служебных сообщений


Summary: Пустой запрос 'ок' без контекста — роутер не определил узел, выбран direct

Следовало запросить уточнение у пользователя, так как 'ок' не содержит задачи для роутинга

Односложные подтверждения без контекста требуют уточняющего вопроса, а не прямого ответа или пустого роутинга


Explanation: Запрос является чисто разговорным микро-сигналом ('стоп' + 'сначала обсуждаем') без какого-либо технического содержания, конкретной задачи или области. Ни один skill из реестра не применим. Требуется уточнение темы обсуждения от пользователя.

discovery-interview

Мог бы подойти если бы был явный запрос на discovery-интервью перед фичей, но здесь нет никакого предмета обсуждения — только эмоциональная остановка.

Superpowers v5.1.0

brainstorming-режим мог бы использоваться для обсуждения идей, но нет никакого контекста или темы — пустой сигнал.

CCPM

Планирование задачи — но нет ни задачи, ни темы, ни артефакта для работы.

Summary: Пользователь остановил выполнение и потребовал сначала обсудить задачу — роутер не определил узел, выбран direct

Роутер должен был распознать мета-команду 'стоп/обсудим' и направить в узел для диалога/уточнения требований, а не оставить выбор неопределённым

Императивные команды остановки ('стоп', 'подожди', 'сначала обсудим') должны триггерить специальный узел уточнения контекста, а не падать в direct по умолчанию


Summary: PreToolUse:Bash hook error: [node tools/enforce-parallel-session-lock.mjs]: [par

Summary: Пользователь отправил 'готово' без контекста, роутер не определил узел, выбран direct-ответ

При неопределённом узле стоило запросить уточнение у пользователя вместо прямого ответа без контекста

Односложные сообщения без контекста требуют уточняющего вопроса, а не роутинга по умолчанию


Explanation: Запрос описывает end-to-end smoke-тестирование живого продакшн-приложения с позиции реального пользователя (регистрация → работа в CRM). Это многошаговый сценарий: (1) Playwright MCP (#2) — управляет headless Chromium, симулирует реальные действия клиента (регистрация, заполнение форм, навигация по SPA) на боевом liderra.ru; (2) Pa11y (#9) — проверяет WCAG 2.1 AA доступность страниц, через которые проходит пользователь; (3) Superpowers (#19) через superpowers:systematic-debugging координирует весь прогон, фиксирует аномалии и формирует отчёт. PATTERN 3 применён: 'зарегистрировались и начали ра

Pest 4

Pest покрывает PHP feature/unit тесты, но не симулирует реального браузерного пользователя в боевой среде — нет headless UI-взаимодействия с живым SPA.

Sentry MCP

Sentry нужен для анализа уже возникших runtime ошибок, но не для проактивного smoke-прохода 'как клиент'. Нет триггера 'ошибка в логах' — только желание проверить флоу.

prod-deploy-validator

prod-deploy-validator выполняет 8 READ-ONLY SSH-проверок инфраструктуры (сервисы, конфиг, очереди), но не симулирует пользовательский сценарий регистрации и работы в приложении.

Summary: Роутер не смог определить узел для запроса о боевом тестировании регистрации клиентов, направлено напрямую

Запрос явно связан со сценарием end-to-end тестирования или QA-проверки — стоило направить к узлу тестирования/QA или попросить уточнение контекста (какая система, какие шаги)

Фразы типа 'проверить в боевом состоянии', 'как будто клиенты' сигнализируют о сценарном тестировании — роутер должен распознавать такие паттерны и направлять к QA/testing узлу или запрашивать уточнение


**Вариант 1 — лиды от настоящих поставщиков (по-настоящему «боевой» вход).**

**Вариант 2 — синтетические лиды, которые я подаю на вход контролируемо.**

Summary: Пользователь отправил запрос '1' — минимальный ввод без контекста, роутер не определил узел, выбран direct

При неопределённом узле стоило запросить уточнение у пользователя вместо автоматического выбора direct; '1' может быть командой меню, индексом или случайным вводом

Одиночные цифры без контекста требуют уточнения намерения пользователя перед роутингом — нельзя делать предположения о смысле минимального ввода


Summary: Пустой запрос без контекста направлен в direct без определения узла роутером

Роутер должен был запросить уточнение у пользователя — неясно, о каком процессе или задаче идёт речь. Узел не определён, цепочка пуста.

Амбигуозные запросы типа 'что делаем?' требуют clarification-шага перед роутингом, а не прямого направления в direct без контекста.


Summary: PreToolUse:PowerShell hook error: [node tools/enforce-powershell-gate.mjs]: [pow

Summary: Exit code 1

Summary: Запрос 'проверь замок' не распознан роутером, направлен напрямую без обработки

Роутер должен был распознать намерение — возможно, проверка кода/файла (lock-файл) или физическая метафора. Нужна классификация по контексту.

Короткие неоднозначные запросы требуют уточняющего шага или более широкого покрытия паттернов в роутере, чтобы не терять контекст намерения.


Explanation: Запрос содержит три принципиально разные интерпретации: (A) операционное изменение данных клиента, (B) архитектурное решение о scope источников, (C) продуктовая фича. Ни один скил не может быть выбран без уточнения — ПАТТЕРН 2 (discovery-interview) обязывает вернуть no_skill_found при двух+ интерпретациях.

discovery-interview

Запрос звучит как бизнес-решение уже принятое, а не как запрос на discovery; однако смысл задачи (что менять в системе) остаётся неясным без уточнения

CCPM

Нет чёткого feature-запроса для планирования эпика; сначала нужно понять суть изменения

adr-kit

Если это архитектурное решение про owner-ship источников — ADR уместен, но нужно подтверждение что запрос именно архитектурный, а не операционный

Summary: Роутер не определил узел, система перешла к direct без обработки цепочки

Запрос содержит бизнес-контекст о клиентах и источниках данных — нужно было распознать намерение и направить к подходящему узлу для уточнения требований или конфигурации проекта

Неструктурированные фразы с бизнес-контекстом ('клиент', 'источники', 'проекты') должны триггерить узел уточнения или диалога, а не приводить к пустой цепочке


**Вариант А — баланс пополняем через админку (рекомендую).** Ты (или я через админ-функцию) начисляешь тестовым клиентам баланс, и списания идут **по-настоящему**: реальные `lead_charges`, `balance_transactions`, тарифные ступени, дрейф — всё боевое. Внешнего платежа нет (в портале баланс пополняется начислением), так что «реальных рублей наружу» не уходит, но вся денежная механика работает в полную силу.

**Вариант Б — гигантский баланс, чтобы не упирались в ноль.** То же самое, но начисляем сразу очень много, чтобы за время прогона точно не кончилось. Денежная механика тоже боевая, просто паузы по нулю не будет.

Summary: Пользователь отправил одиночный символ 'а', роутер не смог определить узел, выбран direct

Можно было запросить уточнение у пользователя вместо silent fallback на direct

Одиночные символы без контекста — сигнал запросить уточнение, а не молча выбирать default-узел


**Или разреши вариант «б»** — я внесу правку галочки `--force` прямо через GitHub (на отдельную ветку, минуя локальный git и замок) → ты смёржишь PR. Локального каталога вообще не касаюсь, коллизии нет.

**Закрой второе окно Claude** (то, что висит на этом проекте) → замок снимется сам → скажи «свободно», я сразу закоммичу правку (шаг 1) обычным путём.

Summary: PreToolUse:mcp__github__create_branch hook error: [node tools/enforce-mcp-classi

Summary: Получен однобуквенный запрос 'б' без контекста, роутер не определил узел, выбран direct

Можно было запросить уточнение у пользователя вместо прямого ответа на неполный запрос

Однобуквенные или бессмысленные запросы требуют уточняющего вопроса, а не прямого роутинга


Summary: Роутер не определил узел, запрос ушёл в direct без обработки цепочки

Запрос о worktree и 'замор(к/е)' требует анализа git-контекста и файловой системы — следовало активировать агента с инструментами для проверки состояния репозитория

Неразборчивые или сокращённые запросы с техническими терминами (worktree, сессия) нужно направлять к агенту с файловыми/git-инструментами, а не в direct


Summary: Короткий подтверждающий запрос без контекста, роутер не смог определить узел, выбран direct

Необходим контекст предыдущих сообщений для корректного роутинга; без него невозможно понять, что именно нужно проверить

Короткие контекстно-зависимые сообщения ('готово', 'проверь', 'ок') требуют анализа истории сессии для корректного роутинга


Summary: Запрос 'так?' без контекста — роутер не смог определить узел, выбран direct как fallback

Запрос крайне неинформативен — нужно запрашивать уточнение у пользователя перед роутингом, а не использовать direct по умолчанию

Односложные подтверждающие запросы без контекста требуют диалога для уточнения намерения, а не немедленного роутинга


Summary:
Exit code 2
{"tool":"pest","result":"failed","tests":1,"passed":0,"assertions":0

Summary: Пустой запрос '!' — маршрут не определён, выбран direct без цепочки обработки

Следовало запросить уточнение у пользователя вместо молчаливого выбора direct; '!' может быть ошибкой ввода или сигналом срочности

Односимвольные или неинформативные запросы требуют явного запроса на уточнение, а не дефолтного роутинга


Explanation: Запрос 'пр прошел куда дальше?' содержит как минимум 3 равновероятные интерпретации ('пр' = pull request / проект / прод), и ни одна не доминирует. По ПАТТЕРНУ 2 (discovery-interview) — не угадываем, возвращаем no_skill_found с clarify-suggestion.

GitHub MCP

Возможно речь о pull request, но 'куда дальше' неоднозначно — статус PR? следующий шаг после мержа? недостаточно контекста

product-management

'Пр' может означать проект/продукт, но без уточнения о чём именно — feature, релиз, роадмап — нельзя выбрать

prod-deploy-validator

'Пр' может быть сокращением от 'прод', но 'куда дальше' не похоже на деплой-валидацию

Summary: Неопределённый роутер, выбран direct для короткого неясного запроса 'пр прошел куда дальше?'

Запрос слишком короткий и неоднозначный — нужно было запросить уточнение у пользователя перед роутингом

Для очень коротких и неясных запросов лучше сначала уточнить контекст, чем угадывать намерение


Summary: Пустой/бессодержательный запрос 'так' — роутер не определил узел, выбран direct

Можно было запросить уточнение у пользователя вместо прямого ответа на неопределённый запрос

Однословные неинформативные запросы требуют clarification-шага перед роутингом, а не fallback на direct


Summary: invalid resource_id, must be an integer for method list_workflow_jobs: strconv.P

Summary: Пустое подтверждение без контекста — роутер не смог определить узел, выбран direct

Запрос 'готово' слишком краток и лишён контекста. Стоило запросить уточнение или проверить предыдущий диалог для корректного роутинга

Однословные подтверждения типа 'готово' требуют анализа истории сессии, иначе роутинг деградирует до direct без смысловой обработки


крупные регионы теперь мапятся: **Москва (253k), Санкт-Петербург (34k) и все «…обл.» исчезли из списка несопоставленных** — значит они распознались.

собрано **453 080 строк** в служебной таблице (раньше падало на null id),

`…АО` без расшифровки: **Ненецкий АО, Чукотский АО, Ямало-Ненецкий АО, Ханты-Мансийский …- Югра АО**

перевёрнутые республики: **Республика Чеченская / Кабардино-Балкарская / Карачаево-Черкесская / Донецкая Народная / Луганская Народная**

`Республика Саха /Якутия/` (косые скобки), `Чувашская Республика - Чувашия`, `Кемеровская область - Кузбасс область`

**а)** Делаем боевой swap **сейчас** (зафиксируем крупные регионы), а АО/республики/Якутию/Кузбасс домапим отдельным улучшением позже (будет ещё один перезалив).

**б) (рекомендую)** Сначала добавлю нормализацию для этого хвоста (АО→автономный округ, перевёрнутые республики, Саха, Кузбасс) — одна небольшая правка через тесты + deploy, потом **один** боевой перезалив сразу с максимумом.

Summary:
Exit code 1
{"tool":"pest","result":"failed","tests":21,"passed":16,"assertions"

Summary: Пользователь отправил одну букву 'б' — роутер не смог определить узел, выбран direct

Можно было запросить уточнение у пользователя вместо прямого ответа на бессмысленный ввод

При однобуквенных или бессмысленных запросах стоит сначала запрашивать уточнение, а не пытаться роутить


Summary: Пустой/неинформативный запрос 'так' — роутер не смог определить узел, выбран direct

Следовало запросить уточнение у пользователя вместо fallback на direct без контекста

Односложные фатические реплики требуют запроса контекста, а не silent fallback на direct


Summary: Пользователь отправил 'готово' без контекста; роутер не определил узел, выбран direct

Запрос слишком краток и неоднозначен — стоило запросить уточнение или проверить предыдущий контекст сессии перед выбором direct

Однословные подтверждения типа 'готово' требуют анализа контекста диалога; без него выбор узла фактически случаен и confidence низкий


**Один ещё чинибельный регион:** `Республика Северная Осетия - Алания` — в реестре обычный дефис, а в эталоне длинное тире (`— Алания`). Из-за этого Осетия и её районы не сматчились. Лечится одной строкой (нормализация « - » → « — »).

**Безнадёжное (корректно остаётся пустым):** только город/район без региона (`г.о. …`, `р-н …`, `м.о. …`), города без субъекта в строке (`г. Казань`, `г. Волгоград`), и комбинированные/неоднозначные (`Москва и область`, `РФ кроме …`, федеральные округа). Из текста субъект не вытащить — такие лиды пойдут по тегу/запасному пути.

Summary:
Exit code 1
{"tool":"pest","result":"failed","tests":1,"passed":0,"assertions":1

Summary: Пользователь отправил одиночный символ 'б' — роутер не смог определить узел, выбран direct

Можно было запросить уточнение у пользователя вместо прямого ответа — намерение неясно из одного символа

Сверхкороткие запросы (1 символ) требуют clarification-стратегии, а не прямого роутинга


Summary: Пустой или минимальный запрос '!' не был распознан роутером, выбран узел direct по умолчанию

Следовало запросить уточнение у пользователя — одиночный символ '!' не несёт достаточно информации для осмысленного роутинга

При получении нечитаемых или крайне коротких запросов лучше явно запрашивать уточнение, чем молча падать на direct без обработки


Summary: Пользователь отправил 'готово', роутер не определил узел, выбран direct — минимальный ответ на нейтральное сообщение

Роутер должен был попытаться интерпретировать контекст: 'готово' может означать подтверждение задачи или завершение шага. Нужен fallback с уточняющим вопросом

Короткие подтверждающие сообщения без контекста требуют уточнения у пользователя, а не silent routing в direct


Summary: Пустой запрос 'так?' без контекста направлен в direct без определения узла роутером

Роутер должен был запросить уточнение у пользователя — запрос слишком краткий и неоднозначный для осмысленного роутинга

Однословные или контекстно-зависимые запросы требуют механизма уточнения перед роутингом, а не fallback в direct


Summary: Пустой или неинформативный запрос 'готово' — роутер не смог определить узел, выбран direct

Запросить уточнение у пользователя: что именно готово и какое действие требуется, вместо прямого ответа

Односложные подтверждения вроде 'готово' требуют контекста предыдущего диалога; роутер должен учитывать историю сессии для корректного определения узла


Summary: Односложный запрос 'так?' без контекста — роутер не смог определить узел, выбран direct

При неопределённом намерении стоит запросить уточнение у пользователя вместо прямого ответа без контекста

Односложные подтверждающие вопросы без предшествующего контекста требуют запроса уточнения, а не попытки угадать намерение


Summary: Пустое подтверждение 'готово' без контекста — роутер не смог определить узел, выбран direct

При неопределённом узле стоило запросить уточнение у пользователя вместо fallback на direct без обработки

Односложные подтверждения без контекста предыдущей задачи требуют либо контекстного анализа истории, либо уточняющего вопроса перед роутингом


Summary: Пользователь отправил только слово 'смотри' — роутер не смог определить узел, выбран direct

При неопределённом намерении стоит запросить уточнение вместо немедленного перехода к direct; цепочка оказалась пустой

Односложные вводные фразы без контекста требуют уточняющего вопроса, а не роутингового решения по умолчанию


Summary: Короткий git-запрос 'коммит и пуш' направлен в direct без роутинга — цепочка пустая

Запрос требует выполнения реальных git-команд, стоило направить в узел с инструментами (например, shell/code execution), а не в direct-ответ

Короткие императивные команды типа 'коммить и пуш' — это операционные задачи, требующие инструментов, а не просто текстового ответа; роутер должен распознавать их как action-запросы


Summary: Запрос на обновление CLAUDE.md и памяти сессии направлен напрямую без активации специализированного узла

Мог быть задействован узел для работы с документацией/памятью проекта; аргументы содержали чёткие инструкции по обновлению конкретного файла памяти, что могло бы лучше обработать специализированный узел

Запросы с явными инструкциями по обновлению project memory файлов и CLAUDE.md следует направлять в узел документирования/рефлексии, даже если они сопровождаются сложным контекстом о завершённых PR


Б — достроить полноценный PostgreSQL в CI

А — вернуть к 7 публичным (рекомендую)

А — вернуть к 7 публичным (рекомендую)

c:\моя\проекты\портал crm\Документация\.github\workflows\a11y.yml

c:\моя\проекты\портал crm\Документация\pa11y.config.json

c:\моя\проекты\портал crm\Документация\.github\workflows\deploy.yml

c:\моя\проекты\портал crm\Документация\app\config\database.php

c:\моя\проекты\портал crm\Документация\app\config\sanctum.php

Explanation: Pa11y (#9) — единственный технический SoT a11y в проекте (capability: 'единственный технический SoT a11y в проекте'). Баги WCAG/a11y на живом сайте требуют: (1) Superpowers:systematic-debugging (#19) для анализа причины — нарушения могут быть в нескольких компонентах/слоях, (2) Pa11y (#9) для запуска `npm run a11y` и получения актуального списка нарушений по WCAG 2.1 AA, (3) Playwright MCP (#2) для визуальной верификации исправлений в браузере (контраст, фокус-порядок, alt-тексты). ПАТТЕРН 4: system/expected/actual достаточно ясны (Pa11y red = actual, зелёный = expected, живой сайт = system).

Pa11y необходим как центральный инструмент сканирования, но одного скила недостаточно: нужен анализ причин (systematic-debugging) и визуальная верификация (Playwright) — поэтому chain предпочтительнее single skill.

Frontend Design plugin

Frontend Design plugin (#30) покрывает a11y-принципы дизайн-уровня, но технический SoT a11y остаётся за Pa11y (#9). Дизайн-критика здесь излишня — это исправление существующих нарушений, а не проектирование нового UI.

Playwright MCP

Playwright (#2) полезен для визуальной верификации после исправлений, но не умеет аудировать WCAG-нарушения — это роль Pa11y. Standalone недостаточен, нужен в цепочке.

Summary: Ripgrep search timed out after 20 seconds. The search may have matched files but

Summary: PreToolUse:Bash hook error: [node tools/enforce-router-gate.mjs]: [router-gate]

Summary: Роутер не определил узел, выбран direct для задачи по устранению Pa11y ошибок доступности на живом сайте

Следовало определить специализированный узел для задач фронтенд-доступности или a11y-аудита, а не использовать direct по умолчанию

Запросы об устранении накопленного технического долга по accessibility (Pa11y red) должны маршрутизироваться к узлу с контекстом фронтенда и знанием WCAG/Pa11y инструментов


Summary: Роутер не определил узел, выбран direct без цепочки инструментов при stop-hook фидбэке

При stop-hook фидбэке о несоответствии coverage следовало либо вызвать Skill-инструмент с именем systematic-debugging, либо явно переключить coverage на direct с обоснованием. Роутер вообще не определил узел — это сбой детекции.

Stop-hook сообщения о несоответствии coverage требуют явного действия: вызов Skill или смена coverage. Роутер должен распознавать такие системные фидбэки и маршрутизировать их к соответствующему обработчику, а не игнорировать.


Summary: Запрос 'давай дальше' без контекста направлен в direct без определения узла роутером

Роутер должен был запросить уточнение или проанализировать историю сессии для определения контекста продолжения

Короткие продолжающие фразы без контекста требуют анализа истории диалога или запроса уточнения, а не прямой маршрутизации


Summary: failed to get check runs: GET https://api.github.com/repos/CoralMinister/lidpoto

Summary: failed to get combined status: GET https://api.github.com/repos/CoralMinister/li

Summary: Пустой запрос '?' не был обработан роутером, выбран прямой ответ без цепочки

Роутер должен запросить уточнение у пользователя вместо молчаливого выбора direct-узла при неопределённом запросе

При получении бессмысленного или пустого запроса следует явно запрашивать уточнение, а не уходить в direct без обработки


Summary: Запрос состоит из одного символа '!', роутер не смог определить узел, выбран direct

Можно было запросить уточнение у пользователя вместо прямого ответа, так как смысл запроса неясен

Односимвольные или бессмысленные запросы требуют clarification-шага перед роутингом, а не fallback на direct


Разрешаю пропустить хук (--no-verify)

Разрешаю пропустить хук (--no-verify)
Не пропускать — ищи другой путь

Разрешаю пропустить хук (--no-verify)

Summary:
Exit code 1
warning: in the working copy of '.github/workflows/a11y.yml', LF wil

Summary: PreToolUse:PowerShell hook error: [node tools/enforce-powershell-gate.mjs]: [pow

Summary: Пустой или минимальный запрос '!' не был распознан роутером, выбран прямой ответ

Роутер должен обрабатывать такие случаи — запросить уточнение у пользователя вместо прямого ответа без контекста

Одиночные символы или пустые запросы требуют специального обработчика с запросом уточнения намерений пользователя


Summary: Пустой запрос '!' — роутер не смог определить узел, выбран direct по умолчанию

Можно было запросить уточнение у пользователя вместо молчаливого fallback на direct

Односимвольные или бессодержательные запросы требуют обработки как особый случай с запросом уточнения


**Зелёный** → мёржим, хвост закрыт. ✅

**Зелёный** → мёржим, хвост закрыт. ✅

**Красный на шаге `Run Pa11y`** → это уже реальные находки доступности на тех 14 страницах (их раньше не сканировали). Покажешь — доправлю в этой же ветке.

**Красный на каком-то шаге подготовки** (миграции/seed/сервер) → значит вылез ещё нюанс среды, чиню прицельно по логу.

**Зелёный** → мёржим, хвост закрыт. ✅

Summary: Пустой запрос 'а где смотреть?' без контекста — роутер не определил узел, выбран direct

Необходим контекст предыдущего разговора для понимания смысла запроса; без него невозможно корректно роутировать

Амбигуозные короткие запросы без контекста сессии требуют либо уточняющего вопроса, либо анализа истории диалога перед роутингом


Summary: Пустой запрос '!' не был распознан роутером, выбран прямой ответ без цепочки обработки

Можно было запросить уточнение у пользователя, что именно он имел в виду под '!', вместо прямого ответа

Односимвольные или пунктуационные запросы требуют обработки через узел уточнения намерений, а не прямого роутинга


Summary: Пустой/бессмысленный запрос, роутер не определил узел, выбран direct по умолчанию

Можно было запросить уточнение у пользователя вместо silent fallback на direct

При неинформативных запросах типа 'нет ни че' стоит запрашивать контекст, а не молча переключаться на узел по умолчанию


Summary: Пользователь отправил 'готово' без контекста; роутер не определил узел, выбран direct

Запрос слишком короткий и неоднозначный — стоило запросить уточнение или применить fallback-узел с запросом контекста

Односложные сообщения типа 'готово' требуют уточнения контекста перед роутингом; нужен специальный обработчик для ambiguous-запросов


Summary: Пустой запрос 'проверь' без контекста — роутер не определил узел, выбран direct

Запросить уточнение у пользователя: что именно проверить? Без контекста любой выбор узла произволен

Однословные неопределённые запросы требуют clarification-шага перед роутингом, а не fallback на direct


Summary: Пустой или неинформативный запрос 'здесь' — роутер не смог определить узел, выбран direct

Следовало запросить уточнение у пользователя вместо перехода к direct без контекста

Односложные или контекстно-зависимые запросы требуют уточняющего вопроса перед роутингом


Summary: Запрос 'так?' без контекста — роутер не определил узел, выбран direct как fallback

Запрос слишком короткий и неоднозначный — нужно было запросить уточнение или дождаться контекста предыдущего сообщения

Односложные подтверждающие запросы требуют анализа предыдущего контекста сессии для корректного роутинга


Summary: Пустой/неопределённый запрос 'пойдет?' без контекста — роутер не смог определить узел, выбран direct

Необходимо запросить уточнение у пользователя: что именно 'пойдет'? Без контекста невозможно корректно маршрутизировать запрос

Однословные/короткие запросы без контекста требуют механизма уточнения перед роутингом, а не прямого фолбека на direct


Summary: Пользователь отправил 'готово', роутер не определил узел, выбран direct без цепочки обработки

Роутер должен был запросить уточнение контекста: что именно готово и какое действие ожидается. Direct без цепочки — слабый fallback для неопределённого запроса

Односложные подтверждения типа 'готово' требуют контекста предыдущего диалога. Роутер должен проверять историю сессии перед выбором узла или инициировать clarification-запрос


Summary: Пользователь отправил 'продолжи' без контекста; роутер не определил узел, выбран direct

Необходимо запросить уточнение у пользователя — что именно продолжить, вместо слепого выбора direct без контекста предыдущей сессии

Однословные команды продолжения требуют проверки наличия контекста; без него следует запрашивать уточнение, а не применять fallback-узел


Запрос слишком краток и ambiguous — нужно было запросить уточнение или дождаться контекста перед роутингом

Однословные подтверждения без контекста сессии требуют clarification-запроса, а не прямого роутинга в direct


Summary: Пустой или неинформативный запрос 'проверь' — роутер не смог определить узел, выбран direct

Можно было запросить уточнение у пользователя: что именно нужно проверить? Выбор direct без контекста — слабое решение

Однословные запросы без контекста требуют уточняющего вопроса перед роутингом, а не немедленного выбора узла


Summary: Пользователь отправил неинформативный запрос 'так?', роутер не смог определить узел, выбран direct по умолчанию

Следовало запросить уточнение у пользователя вместо silent fallback на direct; отсутствие контекста делает любой выбор узла случайным

Односложные или неполные запросы без контекста должны триггерить запрос на уточнение, а не молчаливый fallback — это повышает качество итогового ответа


Без предшествующего контекста сложно оценить корректность. Возможно, стоило запросить уточнение или дождаться следующего сообщения

Односложные подтверждения ('готово', 'ок', 'да') без контекста сессии требуют либо запроса уточнения, либо ожидания продолжения — direct без цепочки может быть неоптимальным


А — зелёный сейчас на 7 публичных (рекомендую)

Б — продолжать чинить сборку-с-нуля

Summary: <tool_use_error>InputValidationError: AskUserQuestion failed due to the followin

Summary: Пустой запрос 'проверь' без контекста — роутер не смог определить узел, выбран direct

Следовало запросить уточнение у пользователя: что именно проверить? Без контекста любой выбор узла случаен

Однословные неоднозначные запросы требуют уточняющего диалога перед роутингом, а не немедленного выбора узла


Summary: Эмоциональный нецензурный запрос без чёткой задачи — роутер не смог определить узел, выбран direct

Стоило попытаться классифицировать как эмоциональный/frustrated-запрос и направить в узел для прояснения намерений или поддержки, а не просто в direct с пустой цепочкой

Эмоциональные запросы с ненормативной лексикой и без явной задачи нужно обрабатывать через узел уточнения намерений, а не игнорировать или сбрасывать в direct


Откатить из ветки

Откатить из ветки
Вынести в отдельную ревью-задачу
Оставить как есть

Откатить из ветки

Explanation: Запрос — многошаговое возобновление сложной фичи (имитация портала, Фаза 1, Tasks 3–15) через субагентов. #19 (Superpowers) закрывает worktrees, subagent-driven development, scope-контроль субагентов и finishing-branch паттерны. #55 (discovery-interview) нужен для двух явных открытых вопросов из handoff (что делать с production-миграциями коммит 7c5ca7f6; чинить ли баг хука enforce-tdd-real-test-verifier) — это structured discovery перед продолжением работы. #18 (Pest 4) закрывает TDD-подход, --filter-запуски, регрессионные тесты строго в namespace Tests\Support\Imitation.

CCPM

CCPM управляет PRD→эпики→issues, но здесь plan уже готов (HANDOFF.md, Tasks 3–15); нет задачи создать новый PRD или эпик — нужна оркестрация субагентов, которую даёт Superpowers #19.

Laravel Boost

Laravel Boost нужен для SQL/Eloquent-запросов к dev-БД, но это вспомогательный инструмент внутри субагентских задач, не оркестратор всей цепочки возобновления работы.

adr-kit

Решение по production-миграциям (коммит 7c5ca7f6) могло бы стать ADR, но сначала нужен ответ пользователя на открытый вопрос (ПАТТЕРН 2); ADR-запись — опциональный downstream-шаг, не старт цепочки.

Summary: PreToolUse:Bash hook error: [node tools/enforce-parallel-session-lock.mjs]: [par

Summary: <tool_use_error>Cancelled: parallel tool call Bash(cd "c:/моя/проекты/портал crm

Summary: PreToolUse:PowerShell hook error: [node tools/enforce-powershell-gate.mjs]: [pow

Summary: PreToolUse:Read hook error: [node tools/enforce-read-path-deny.mjs]: [read-path-

Summary: PreToolUse:Bash hook error: [node tools/enforce-router-gate.mjs]: [router-gate]

Summary: <tool_use_error>Cancelled: parallel tool call Bash(git -C "c:/моя/проекты/портал

Summary: Роутер не определил узел, выбран direct для сложного multi-step задания с worktree, субагентами и строгим scope

Для такого сложного задания (чтение handoff-файла, задание вопросов, оркестрация субагентов Tasks 3–15) нужен orchestrator или специализированный агентный узел, а не direct. Direct не поддерживает субагентов и многошаговую оркестрацию.

Запросы с явным упоминанием субагентов, worktree, многошаговых планов и строгих ограничений scope должны маршрутизироваться в orchestrator-узел, а не в direct. Отсутствие определённого узла — критический сбой роутера для таких задач.


Summary: PreToolUse:Edit hook error: [node tools/enforce-parallel-session-lock.mjs]: [par

Summary: Exit code 1

Следовало запросить уточнение у пользователя: что именно нужно проверить? Без контекста любой выбор узла — угадывание

Однословные неоднозначные запросы требуют clarification-шага перед роутингом, а не fallback на direct


Summary: Роутер не смог определить узел для запроса 'проверь замок', выбран fallback 'direct'

Запрос слишком краткий и многозначный: 'замок' может означать дверной замок, замок-крепость, или быть частью кода. Роутер должен был либо запросить уточнение, либо применить узел для обработки неоднозначных запросов

Короткие омонимичные запросы без контекста требуют либо уточняющего диалога, либо специального узла для работы с неоднозначностью — fallback 'direct' без цепочки не даёт пользователю полезного ответа


Можно было запросить уточнение у пользователя: что именно нужно проверить? Выбор direct без контекста — рискованный fallback

Однословные команды без объекта ('проверь', 'сделай', 'покажи') требуют уточняющего вопроса перед роутингом, а не немедленного fallback на direct


Summary: File does not exist. Note: your current working directory is c:\моя\проекты\порт

Summary: Ripgrep search timed out after 20 seconds. The search may have matched files but

Summary: Запрос с кодовой фразой 'роутер-наставник' требовал чтения двух файлов и подтверждения состояния, но был направлен в direct вместо узла #30

Следовало выполнить цепочку через узел #30: прочитать оба home-файла через Read-инструмент, затем сформировать подтверждение владельцу. Пустая цепочка [] означает, что никакой реальной работы не было сделано — файлы не прочитаны, состояние не подтверждено.

Кодовая фраза 'роутер-наставник' — явный триггер специализированного узла с обязательным чтением файлов. Пустая цепочка при non-direct рекомендации роутера — критический сбой: пользователь получил ничего вместо подтверждения состояния проекта.


Summary: Роутер рекомендовал узел #30, но был выбран прямой ответ (direct) без выполнения цепочки

Следовало использовать рекомендованный узел #30 или явно обосновать отклонение от рекомендации роутера; также отсутствует routing-тег в ответе

Когда роутер даёт конкретную рекомендацию узла, прямой ответ без цепочки и без routing-тега снижает прозрачность системы и нарушает протокол наблюдения


Summary: Пользователь задал вопрос о worktree, роутер не определил узел, выбран direct-ответ

Роутер должен был распознать вопрос как контекстный/навигационный и направить к соответствующему узлу для работы с git/worktree окружением

Вопросы о текущем состоянии окружения (worktree, директория, контекст) следует маршрутизировать к специализированному узлу, а не оставлять без определённого роутинга


Summary: Короткий неформальный вопрос о контексте сессии, роутер не определил узел, выбран direct

Роутер должен был распознать вопрос о состоянии окружения и направить к узлу с доступом к системному контексту или self-awareness узлу

Вопросы о текущем контексте выполнения (worktree, окружение) требуют специального узла, а не прямого ответа без цепочки обработки


Summary: Короткий неоднозначный вопрос о worktree не был распознан роутером, направлен напрямую

Роутер должен был определить контекст: вопрос о состоянии окружения Claude Code, возможно требует узла для работы с git/worktree или системного контекста

Вопросы о состоянии окружения ('ты в своем worktree?') следует распознавать как системно-контекстные запросы и направлять к соответствующему узлу, а не в direct


Summary: Запрос 'проверь замок!' слишком краткий и неоднозначный — роутер не смог определить узел, выбран direct

Перед выбором узла стоило запросить уточнение: что именно за замок (дверной, велосипедный, код в программе?), какой тип проверки нужен. Либо попытаться определить контекст по истории сессии.

Однословные или сверхкраткие императивные запросы без контекста требуют либо уточняющего вопроса, либо эвристики по истории диалога — прямой роутинг без анализа неоптимален.


Summary: Запрос 'проверь еще раз замок!' направлен напрямую вместо узла #25

Следовало использовать рекомендованный узел #25, так как роутер идентифицировал его как подходящий. Прямой вызов без цепочки обработки теряет контекст и специализированную логику узла

Когда роутер явно рекомендует конкретный узел, отклонение в пользу direct-вызова без обоснования снижает качество обработки. Нужно доверять рекомендациям роутера или фиксировать причину отклонения


Summary: Пустой или неинформативный запрос 'проверь' — роутер не смог определить узел, выбран direct

Запросить уточнение у пользователя: что именно нужно проверить? Без контекста выбор direct — слабое решение

Односложные запросы без контекста требуют уточняющего вопроса перед роутингом, а не немедленного выбора узла


Сперва карта, потом детали

Сперва карта, потом детали
Сразу детали, с фундамента
Один общий мастер-план

Сперва карта, потом детали

Explanation: Запрос не поддаётся детерминированной классификации: термины 'дерево брейнрепо', 'б закоминьчено', 'проверь а' не имеют однозначного соответствия ни одному capability в реестре. Применён ПАТТЕРН 2 (discovery-interview): требуется уточнение по трём осям перед маршрутизацией.

GitHub MCP

Если речь о git-репозитории и проверке коммитов/PR между ветками — GitHub MCP подходит. Отклонён: неясно, что именно проверять в ветке 'А', какой тип проверки нужен.

Superpowers v5.1.0

Слово 'тщательно' и акцент на качестве намекают на code review или systematic-debugging из Superpowers. Отклонён: без понимания предметной области (код, документация, данные?) выбор преждевременен.

Pest 4

Если 'проверь А' означает прогон тестов после коммита — Pest релевантен. Отклонён: нет подтверждения что речь о PHP-тестах, а не о документах, UI или данных.

Summary: PreToolUse:PowerShell hook error: [node tools/enforce-powershell-gate.mjs]: [pow

Summary: PreToolUse:Write hook error: [node tools/enforce-parallel-session-lock.mjs]: [pa

Summary: Роутер не определил узел, но выбран superpowers:writing-plans — несоответствие задаче проверки кода в brainrepo

Запрос явно о проверке закоммиченного кода в репозитории — нужен узел для code-review или анализа кода, а не writing-plans. Роутер должен был распознать контекст работы с git/repo

Запросы с упоминанием коммитов, репозиториев и проверки кода следует направлять в узлы code-review/analysis, а не в writing. Нераспознанный узел — сигнал для доработки классификатора под технические задачи


Summary: Роутер не определил узел, система выбрала direct после stop hook об ошибке coverage/skill несоответствия

Роутер должен был корректно определить узел изначально, чтобы избежать stop hook. Если coverage указывает skill:writing-plans, нужно либо вызвать Skill tool с этим именем, либо сменить coverage на direct с обоснованием до завершения хода

Несоответствие между объявленным coverage и фактически вызванными инструментами вызывает stop hook. Роутер должен согласовывать выбор узла с реальными вызовами инструментов или явно указывать direct режим с обоснованием


Summary: Пустой или неопределённый запрос 'проверь' — роутер не смог определить узел, выбран direct

Запросить уточнение у пользователя: что именно нужно проверить? Без контекста любой выбор узла случаен

Однословные неоднозначные запросы без контекста требуют clarification-шага перед роутингом, а не fallback на direct


Summary: Пустой/завершающий запрос 'готово' направлен в direct без обработки цепочки

Роутер не смог определить узел для однословного подтверждения; стоило добавить обработку коротких финальных сообщений с запросом уточнения контекста

Короткие слова-подтверждения ('готово', 'ок', 'да') требуют контекста предыдущего диалога для корректного роутинга; без контекста direct — приемлемый, но не оптимальный выбор


Summary: Exit code 1

Summary:
Exit code 1
Get-Process : Cannot find a process with the process identifier 1502

Summary: Неоднозначный запрос 'посмотри замок!' не был роутирован ни к одному узлу, выбран direct без обработки

Запрос 'замок' многозначен (дверной замок, замок-крепость, действие посмотреть). Роутер должен был запросить уточнение или попробовать intent-классификацию для выбора подходящего узла

Короткие амбигуентные запросы требуют либо уточняющего диалога, либо fallback-узла для обработки неопределённости, а не молчаливого выбора direct без цепочки


**7 машин** друг на друге, каждая описана: что это, на чём стоит, инвариант (чего нельзя сломать), как проверяется **отдельно**, и **точки стыковки** с соседями.

**Строгий порядок сборки** (схема зависимостей) — фундамент первым, судья после 1+2+3, включение последним.

**Сквозные несущие принципы** (журнал, заморозка плана, судья-не-переопределяет-пол, машинная правда владельцу, подпись расписок, матчер-«всё», портативность).

**Режим внедрения D28** — сперва тихо (логирует, не блокирует), мерим, включаем по одному; живая система не ломается.

**Честный пол ~0.5%** — записан как осознанный предел, не пропуск.

**Коверидж-таблица** — доказательство, что **ничего не потеряно**: все 26 пунктов хуков + 12 «построить» + 7 несущих усилителей → каждый привязан к своей машине.

**А.** Закоммитить карту (ты сам вставляешь в терминал, как с прошлым коммитом):

**Б.** Сначала **прочитай карту**, скажешь правки — поправлю, потом коммит.

**В.** Идём дальше — пишу **детальный пошаговый чертёж по Машине 1 (Фундамент)**: точные файлы, тесты, код, шаги. Это первая машина, на которой стоит всё.

Summary: PreToolUse:Bash hook error: [node tools/enforce-router-gate.mjs]: [router-gate]

Summary: Роутер не определил узел для неясного запроса 'а сам коммить', выбран direct

Запрос слишком короткий и неоднозначный — нужно было запросить уточнение или направить в узел для git-операций

Короткие неполные запросы про git-операции ('коммить') требуют уточнения контекста перед роутингом или специального git-узла


Explanation: Запрос — структурный анализ knowledge-карты (граф знаний проекта) на логику, дыры и полноту. graphifyy (#86) имеет capability 'cross-layer query', 'cluster-only', 'explain' и работает с уже построенным графом (6305 узлов / 6753 рёбер / 1009 communities). Именно он умеет делать independent structural review: query по missing links, path-analysis для выявления изолированных узлов, cluster analysis для обнаружения семантических дыр. Запрос 'абстрагируйся' = независимый взгляд на граф, что соответствует команде explain + query в режиме structural integrity check.

architecture-patterns

Справочник архитектурных паттернов полезен для оценки архитектурных решений, но не умеет анализировать knowledge-граф на completeness/gaps — это не его capability. Он даёт референсы, но не делает аудит конкретного графа.

Superpowers v5.1.0

superpowers:brainstorming мог бы сгенерировать список возможных дыр умозрительно, но без доступа к реальным данным графа (узлам, рёбрам, community-кластерам) это будет догадки, а не анализ. graphifyy работает с реальным артефактом.

process-analysis

process-analysis делает as-is discovery из исходного кода (маршруты, контроллеры, джобы), но не анализирует knowledge-граф как таковой. Предметная область не совпадает — он о бизнес-процессах, не о структуре документации/графа знаний.

Independent critical review of roadmap

Summary: Роутер не определил узел, запрос ушёл в direct без цепочки обработки

Запрос требует аналитической работы с документом/картой — нужен узел с контекстом предыдущего контента и аналитическими инструкциями. Direct без цепочки теряет контекст 'карты'

Запросы типа 'проанализируй то, что ты писал' требуют узла с доступом к истории сессии и аналитическим промптом. Роутер должен распознавать паттерн review/critique предыдущего вывода


**D33** (три режима разговора: болтовня спит / содержательное мышление = скил обязателен / продукт = вся машина) — **отдельного узла нет**.

**D29** (отдельная проверка «план ↔ сырая просьба», независимый третий проверяющий — закрытие самой страшной дыры L2) — в карте растворён в роутере, его **независимость потеряна**.

**Группа 6 «Деньги»** снаряжения роутера (цена как разделитель равных кандидатов) — в Машине 3 **не раскрыта**, хотя карта пишет «24 пункта» (по факту ~22).

**D12/D13** (семена `writing-plans`/AskUser, с которых вообще можно начать без плана) — механизм **есть** (escape = Skill в Машине 6), но в Машине 2 не объявлен явно. Ревьюер назвал это «дедлок» — **преувеличил**, обхода нет; но прописать в стене стоит.

Граф узлов **из реестра** (стабильный) приписан Машине 3, и из-за этого Судья (М4) «зависит от М3». На деле граф — фундаментный артефакт, читается из реестра; судья мог бы строиться, не дожидаясь роутера. Лишняя зависимость тормозит параллельную сборку.

Машина 6 смешала **дисциплину** (нужны М2/3/4) и **защиту** (тонкий пол / escape-защита / авто-снимок — нужен только фундамент М1). Объявив «М6 стоит на 2/3/4», карта откладывает защиту до готовности судьи — а защиту по приоритету надо ставить сразу.

**D17** («владелец видит трассы») — ревьюер сказал «нигде нет», а он **есть** (стыковка в М3, строка 126). Недостаёт только нюанса «видно всё дерево под-планов».

**Пункт 1 коверидж-таблицы vs М6** — он сам по ходу отыграл назад; таблица там пишет «🟨 тонкий пол + судья», что совпадает с М6. Мелочь формулировки.

**А.** Делаю проход правок по карте сейчас (закрываю 5 пунктов), потом — повторная сверка.

**Б.** Сначала обсудим находки — может, по части ты решишь «оставить как есть».

**В.** Игнорируем мелочь, идём в детальный план Машины 1, а эти правки внесём попутно.

Summary: Запрос 'б' — одиночный символ, роутер не определил узел, выбран direct-ответ

Стоило запросить уточнение у пользователя — одиночный символ не несёт достаточно контекста для осмысленного ответа

При получении слишком коротких или неинформативных запросов лучше явно запросить уточнение, чем пытаться маршрутизировать или отвечать напрямую


Summary: Запрос 'чини все' не был распознан роутером, узел выбран как direct без цепочки обработки

Роутер должен был запросить уточнение: что именно чинить, в каком контексте, какой код/файл. Слишком общий запрос требует кларификации перед роутингом

Ультракороткие императивные запросы без контекста ('чини все', 'сделай') должны триггерить запрос уточнения, а не fallback на direct без обработки


Добавил в конец **новую таблицу-доказательство «D/OQ → машина»** (21 ключевое решение) — рядом с таблицей хуков. Теперь «ничего не упущено» доказано и для логики, не только для хуков.

Вытащил четыре размазанных решения в **явные узлы**: **D29** (независимый проверяющий «план ↔ твоя живая просьба» — в Машину 2), **D33** (классификатор трёх режимов разговора — в Машину 2), **Группа 6 «Деньги»** роутера (цена-разделитель — в Машину 3), **D12/D13** (семена, с которых грузится стена — явно прописал в верховном хуке). Заодно добавил Q-GRAPH и ручку «% разведки» (#3), которые тоже терялись.

Граф узлов теперь объявлен **фундаментным артефактом из реестра**, а не «собственностью роутера»; судья (М4) больше не висит на готовности роутера.

Машина 6 **разделена** на защитную часть (нужен только фундамент — строится сразу) и дисциплинарную (нужны 2/3/4). Правило порядка обновил.

**А.** Коммичу сам (как в прошлый раз).

**Б.** Сначала перечитаешь карту с правками — потом коммит.

Summary: PreToolUse:Bash hook error: [node tools/enforce-parallel-session-lock.mjs]: [par

Summary: Exit code 1

Summary: Пользователь отправил одиночный символ 'а', роутер не смог определить узел, выбран прямой ответ

Можно было запросить уточнение у пользователя, что именно он имел в виду, вместо прямого ответа на неинформативный ввод

Одиночные символы или бессодержательные запросы требуют запроса уточнения, а не попытки прямого ответа


Summary: Пустой или минимальный запрос '!' не был распознан роутером, выбран direct как fallback

Стоило запросить уточнение у пользователя вместо silent fallback на direct; также роутер должен обрабатывать такие краевые случаи явно

Односимвольные или пустые запросы должны триггерить запрос уточнения, а не молчаливый fallback — это улучшает UX и снижает неопределённость


Подождать лок

Закрыть второе окно
Делать через GitHub + CI
Подождать лок

Закрыть второе окно

Explanation: Многошаговый bugfix: (1) superpowers:systematic-debugging (#19) — системный анализ рассинхрона schema.sql ↔ миграции, выявление конкретных расхождений; (2) squawk (#15) — линт миграций PostgreSQL на блокирующие паттерны и опасные DDL, т.к. фикс касается живого DDL-слоя (PATTERN 6); (3) Laravel Boost (#10) — выполнение SQL-запросов к dev-БД через Eloquent для верификации сборки с нуля (migrate:fresh) и проверки 14 страниц; (4) Pest #18 — написание regression-теста сборки БД (PATTERN 6: bugfix живого кода → TDD для регрессии). PATTERN 7 не применяется — нет упоминания боевых ошибок в Sentry. PAT

Sentry MCP

PATTERN 7 не применяется: запрос не содержит 'ошибка на боевом', 'в логах', 'клиент сообщил'. Проблема воспроизводится локально (сборка БД с нуля падает), а не является production runtime ошибкой из Sentry.

pgFormatter

pgFormatter только форматирует SQL-файлы (отступы, регистр), не анализирует семантические расхождения между schema.sql и миграциями. Не решает корневую проблему рассинхрона DDL.

adr-kit

ADR нужен для фиксации архитектурных решений, не для оперативного bugfix. Рассинхрон schema.sql ↔ миграции — техническая проблема, требующая немедленного фикса, а не документирования решения.

Summary: <tool_use_error>Cancelled: parallel tool call Bash(php "c:/моя/проекты/портал cr

Summary: PreToolUse:mcp__github__create_branch hook error: [node tools/enforce-mcp-classi

Summary: Роутер не определил узел, выбран direct без цепочки обработки для сложной задачи синхронизации БД

Запрос требует анализа кода, работы с миграциями и schema.sql — следовало задействовать цепочку с code_analysis и db_migration узлами, а не direct

Сложные технические задачи с несколькими компонентами (schema, миграции, backup) не должны попадать в direct — нужна явная цепочка узлов для декомпозиции и последовательного решения


Explanation: Запрос — оценить идею параллельной работы в нескольких сессиях с акцентом на сохранение качества. Superpowers #19 содержит capability 'brainstorming' (оценка идеи с pros/cons), 'writing-plans' (план параллельного разделения работы), 'subagent-driven-development' (запуск параллельных агентов через Task tool) и 'worktrees' (изоляция веток для каждой сессии). Именно этот скил закрывает все три аспекта запроса: оценку идеи, планирование разбивки и безопасную параллельную реализацию.

CCPM

CCPM управляет структурой PRD→эпики→issues, но не имеет capability оценки идеи параллелизации и не управляет межсессионной изоляцией. Годится как вспомогательный инструмент после плана, но не как первичный резолвер.

discovery-interview

Мог бы прояснить детали (что именно параллелить, по доменам или по слоям), но запрос достаточно конкретен — 'оцени идею + риски качества'. Discovery излишен, brainstorming в #19 сам задаст уточняющие вопросы в рамках оценки.

GitHub MCP

GitHub MCP полезен для управления ветками и PR после того как план параллельной работы составлен, но не может оценить идею или спроектировать разбивку. Вторичный инструмент, не первичный.

Summary: Пользователь спросил об идее параллельных сессий для большого проекта, роутер не определил узел, выбран direct

Следовало направить запрос к узлу с экспертизой по архитектуре workflow или planning-агенту, способному оценить риски параллельной работы для качества кода и дать структурированный анализ

Запросы на оценку идей и архитектурных решений (особенно с явным ограничением на качество) требуют узла с аналитическими возможностями, а не прямого ответа — это снижает риск поверхностного совета


Summary: Пустое/неопределённое роутинговое решение на однословный неинформативный запрос 'готово'

Роутер должен был запросить уточнение контекста или использовать предыдущий диалог для определения намерения пользователя

Однословные подтверждения типа 'готово' требуют контекста предыдущего сообщения; без него следует явно запросить уточнение, а не маршрутизировать в direct с пустой цепочкой


Summary: Роутер не смог определить узел по короткому неконтекстному запросу, выбран direct как fallback

При отсутствии контекста предыдущей сессии запрос 'попробуй снова' не несёт смысловой нагрузки для роутинга; стоило запросить уточнение у пользователя

Короткие ситуативные запросы без истории требуют либо запроса контекста, либо анализа предыдущих сообщений сессии перед роутингом


C:\моя\проекты\портал crm\Документация\tools\llm-judge-config.mjs

C:\моя\проекты\портал crm\Документация\app\vitest.config.tools.mjs

Explanation: Запрос не содержит конкретной задачи разработки — это поведенческая директива без привязки к объекту работы. Ни один skill из реестра не покрывает 'инструкцию по стилю выполнения' как самостоятельную задачу. Требуется уточнение что именно нужно сделать в одной сессии.

Superpowers v5.1.0

Superpowers управляет параллельными агентами и worktrees, но запрос говорит об ОТКАЗЕ от параллелизации — применять orchestration-скил нет смысла.

claude-code-setup

Частично релевантен если пользователь хочет зафиксировать поведение 'без параллелизации' в настройках, но запрос слишком краток чтобы подтвердить это намерение.

claude-md-management

Можно записать как learning в CLAUDE.md ('не параллелить'), но это предположение — явного намерения изменить нормативный файл не выражено.

Summary: PreToolUse:Write hook error: [node tools/enforce-parallel-session-lock.mjs]: [pa

Summary: Exit code 1

Summary: Пользователь отказался от параллелизма, роутер не определил узел, выбран writing-plans без явного обоснования

Роутер должен был определить узел на основе контекста запроса; выбор writing-plans не очевиден из короткого сообщения пользователя

Короткие инструкции об организации работы (не параллелить, делать самому) требуют анализа предшествующего контекста для корректного роутинга, а не дефолтного узла


Summary: Короткий неинформативный запрос 'готово проверь' — роутер не смог определить узел, выбран direct

Запрос слишком краткий и без контекста. Роутер должен был запросить уточнение: что именно проверить? Без контекста выбор direct является fallback, а не осознанным решением

Для сверхкоротких запросов без контекста ('готово проверь', 'смотри' и т.п.) стоит добавить узел-уточнитель, запрашивающий дополнительную информацию, вместо слепого fallback на direct


Summary: Запрос 'пробуй' не распознан роутером, выбран прямой ответ без цепочки обработки

Роутер должен запросить уточнение: что именно попробовать? Запрос слишком неопределённый для осмысленного роутинга

Однословные команды без контекста требуют переспроса или классификации как 'неопределённый запрос' с запросом уточнения перед роутингом


Summary: Роутер не определил узел, фактически выбран direct после stop hook feedback об ошибке покрытия навыка

Роутер должен был распознать системное сообщение об ошибке enforce-coverage-verify и направить к соответствующему узлу исправления или явно выбрать direct с обоснованием

Stop hook feedback требует явного роутингового решения: либо вызвать указанный Skill tool, либо переключиться на direct с обоснованием. Роутер должен обрабатывать такие сообщения как специальный тип запроса.


Почини все 4 → зелёный

Почини все 4 → зелёный
Только подписи (безопасно)
Пока не трогать

Почини все 4 → зелёный

Summary: PreToolUse:Edit hook error: [node tools/enforce-tdd-gate.mjs]: [enforce-tdd-gate

Summary: Пустой запрос '!' не был обработан роутером, направлен в direct без цепочки

При пустом или минимальном запросе стоит запросить уточнение у пользователя вместо silent fallback в direct

Одиночные символы-разделители без контекста требуют явного запроса уточнения, а не молчаливого роутинга


C:\моя\проекты\портал crm\Документация\tools\receipt-key-config.mjs

Explanation: ПАТТЕРН 2 (discovery-interview): запрос принципиально амбивалентен — отсутствует любой предмет работы, система, ожидаемый результат или даже домен (backend/frontend/security/marketing/ops). Разрешение на 'всё' без задачи не является задачей. Активация любого скила без конкретного scope была бы случайной и потенциально деструктивной. Требуется уточнение предметной задачи.

Superpowers v5.1.0

Superpowers организует процесс разработки, но требует конкретной задачи (фича/баг/рефакторинг). Без предмета работы — нечего планировать или выполнять.

prod-deploy-validator

Мог бы проверить готовность прода, но триггер cls:prod_deploy_imminent отсутствует, и запуск READ-ONLY SSH-проверок без явного намерения деплоя — нецелесообразен.

CCPM

Управление проектом требует PRD или эпика как входных данных. Запрос 'делай как считаешь нужным' не является валидным входом для планирования задач.

Summary: PreToolUse:Bash hook error: [node tools/enforce-router-gate.mjs]: [router-gate]

Summary:
Exit code 1

 RUN  v4.1.8 C:/моя/проекты/портал crm/Документация/app

 ❯ ../tool

Summary: PreToolUse:Bash hook error: [node tools/enforce-branch-switch.mjs]: [enforce-bra

Summary: Ripgrep search timed out after 20 seconds. The search may have matched files but

Summary:
Exit code 1
failed to load config from C:\моя\проекты\портал crm\Документац

Summary:
Exit code 1

 RUN  v4.1.8 C:/моя/проекты/портал crm/Документация/.claude/worktre

Summary: Пользователь дал carte blanche и ушёл спать, роутер не определил узел, выбран direct без цепочки

Без конкретной задачи роутер не может принять осмысленное решение. Нужно было запросить уточнение до того, как пользователь ушёл, или попытаться извлечь контекст из истории сессии

Запросы без конкретной задачи ('делай что хочешь') требуют либо анализа предыдущего контекста сессии, либо явного отказа с запросом уточнения — роутинг на direct без цепочки действий бессмысленен


c:\моя\проекты\портал crm\Документация\app\vitest.config.ts

c:\моя\проекты\портал crm\Документация\app\tests\Frontend\setup.ts

Pest 4

Pest подходит для PHP/Laravel-тестов, но запрос 'делай тест' не указывает на бэкенд-контекст — нет system/expected/actual, нет упоминания класса или метода

Vitest

Vitest подходит для Vue-компонентов, но запрос не указывает на фронтенд-контекст и не называет компонент

Playwright MCP

Playwright для smoke/interaction-тестов живого SPA, но нет указания на страницу, сценарий или URL

Summary: PreToolUse:Edit hook error: [node tools/enforce-parallel-session-lock.mjs]: [par

Summary: Запрос 'делай тест' слишком краток, роутер не смог определить узел, выбран direct по умолчанию

Необходимо запросить уточнение: какой тест, для чего, на каком языке/фреймворке — прежде чем роутить или отвечать

Однословные/двусловные неоднозначные запросы требуют clarification-шага, а не fallback на direct


Explanation: Запрос является micro/conversation-уровнем ('я спать') без какого-либо описания задачи, объекта, ожидаемого результата или системного контекста. Ни один узел реестра не может быть активирован без минимального scope. ПАТТЕРН 2 (discovery-interview): запрос ambiguous по всем осям — task_type, object, scope, constraints. Возврат no_skill_found обязателен.

Superpowers v5.1.0

Superpowers содержит subagent-driven-development для автономной работы, но требует чёткого writing-plan и scope. Без задачи запускать нельзя — нет входного артефакта.

security-go-live

Могло бы быть интерпретировано как 'проверь всё перед релизом', но в запросе нет упоминания релиза, go-live или безопасности.

CCPM

CCPM управляет проектом целиком (PRD→эпики→issues→код), но требует PRD или эпик как входной артефакт. 'Делай всё сам' — не артефакт.

Summary: Пользователь дал неопределённую задачу и ушёл спать; роутер не смог определить узел, выбран direct без цепочки

Следовало запросить уточнение задачи или отказать в выполнении — запрос слишком размытый для осмысленного действия. Роутер должен был вернуть узел clarification или fallback

Запросы типа 'сделай всё сам' без конкретики не должны роутиться в direct — необходим узел для обработки неопределённых/неполных инструкций с запросом уточнений


Summary: Неопределённый роутинг при коротком запросе 'попробуй снова' без контекста предыдущего действия

Необходим анализ истории сессии для понимания что именно повторить; роутер должен запросить уточнение или использовать контекст предыдущего узла

Запросы типа 'попробуй снова' требуют контекста предыдущего действия; роутер должен сохранять последний активный узел и использовать его для повторных попыток


Доделать 4 отложенные задачи Машины 1 (после решения по гейту) — ~1 час.

Собрать код Машины 2 по готовому чертежу — но **сначала ревью моих проектных решений A–G** в нём (я их явно пометил; главные: схема замороженного плана, детерминированный матч действие↔шаг, семена загрузки).

Детальные чертежи Машин 3–7 — следующая планировочная работа.

Summary: Exit code 1

Summary: PreToolUse:Edit hook error: [node tools/enforce-tdd-real-test-verifier.mjs]: [td

Summary:
<tool_use_error>String to replace not found in file.
String: import { decide, de

Summary: Пользователь отправил только '1', роутер не определил узел, выбран direct-ответ

Следовало запросить уточнение у пользователя — '1' слишком неоднозначно для осмысленного роутинга

Односимвольные или числовые запросы без контекста требуют clarification-шага перед роутингом, а не fallback на direct


Summary: Запрос 'давай ревью' слишком краток — роутер не смог определить узел, выбран direct по умолчанию

Следовало запросить уточнение: что именно ревьюить (код, текст, PR)? Без контекста direct — слабый выбор, нужен clarification-узел

Однословные/двусловные запросы без объекта действия требуют clarification до роутинга, а не fallback на direct


**E (линейный vs волны)** — строю линейный сейчас, волны в Машине 3? Или сразу волны?

**B (строгость матча)** — принять механику, строгость докрутить в тихом режиме. Согласен?

**Не вошло в A–G, но связано:** **что именно запускает «заморозку» плана** — твоё одобрение через AskUser, или отдельный шаг? Я в плане оставил это «под надзор». Нужно твоё решение, чтобы стена знала, когда план становится «запечатанным».

Summary: Роутер не определил узел, выбран direct для короткого уточняющего вопроса пользователя

Роутер должен был определить узел — вероятно clarification или qa, так как пользователь задаёт уточняющий вопрос о совпадении осей/инструментов

Короткие уточняющие вопросы с вопросительным знаком и неполным контекстом должны направляться в clarification-узел, а не оставаться без роутинга


**Ось 1 — инструмент** (я назвал его «операция», зря): Правка / Запись / Команда / **Скил** / **Агент**. То есть буквально, каким инструментом действуют.

**Ось 2 — объект**: какой файл / какая команда / **имя скила** / **имя агента**.

Шаг «вызови скил `coder`» → совпадает, только если инструмент = **Скил** И объект = **coder**. Подменить «скилом writing-plans» или «правкой файла» — не пройдёт.

Шаг «запусти агента `researcher`» → инструмент = **Агент (Task)** И объект = **researcher**.

Шаг «Правка `foo.mjs`» → инструмент = **Правка** И объект = **foo.mjs**. Сделать то же через **Команду** (Bash, который правит файл) — НЕ совпадёт, потому что инструмент другой.

Summary: Короткий уточняющий вопрос без контекста направлен напрямую без роутинга

Без предшествующего контекста невозможно определить тему — нужна история диалога или уточнение задачи перед роутингом

Фрагментарные вопросы типа 'а тогда...' требуют контекста предыдущих сообщений для корректного роутинга; стоит запрашивать контекст или анализировать историю сессии


Explanation: Запрос является conversational/micro — уточняющий вопрос о том, как работает система enforcement (PostToolUse-хуки vs content-проверка). Должен был обработаться ДО классификатора, но раз попал сюда — возвращаем no_skill_found с содержательным объяснением.

Superpowers v5.1.0

Вопрос не про организацию процесса разработки, а про понимание механики хуков — не подходит

hookify

Hookify генерирует хуки, но запрос не про создание хука — про понимание того, как существующие хуки работают

claude-code-setup

Рекомендатель автоматизаций Claude Code мог бы объяснить механику, но это READ-ONLY рекомендатель, не объяснятель архитектуры — и запрос это разговорный вопрос, не задача

Summary: Пользователь задал концептуальный вопрос о логике роутинга; выбран direct без цепочки обработки

Вопрос касается архитектуры системы верификации навыков и файлов — мог бы потребоваться специализированный узел для объяснения внутренней логики роутера

Вопросы о принципах работы самой роутинговой системы стоит направлять в узел с мета-контекстом, а не обрабатывать напрямую без цепочки


**Опасное** — если внутри файла/команды секрет, ключ, или разрушительное действие (force-push, снос данных) — это ловит **тонкий пол + защитные хуки** (Машина 5/6). Они в содержание ЗАГЛЯДЫВАЮТ, но только на опасность, не на качество.

**«Тот ли вообще план»** — до работы судья проверил: план «дизайн лендинга» действительно про лендинг, а не про что-то левое.

**Хороший ли получился дизайн** — никакая машина не скажет. Красиво/удобно/попал в бренд — это **субъективное качество**. Его судит только человек — **ты.**

**Стена** = «не лезь, куда не договаривались».

**Судья** = «договорённость вообще решает задачу?».

**Защита** = «внутри нет яда (секреты/разрушение)».

**Ты** = «получилось хорошо?».

promptfoo

promptfoo покрывает LLM-judge и eval промптов, но запрос не про тестирование промптов — про архитектурный вопрос 'может ли машина-2 детектировать semantic drift между declared task и actual action'

hookify

hookify мог бы реализовать такой PreToolUse-хук, но запрос пока не содержит явного /hookify и не сформулирован как задача реализации — это рассуждение

skill-creator

можно создать скил 'task-drift-detector', но нет чёткого ТЗ — только идея; без уточнения преждевременно

Summary: Роутер не определил узел, выбран direct — простой концептуальный вопрос о возможностях системы мониторинга

Вопрос требует аналитического рассуждения о дизайне системы, мог бы быть направлен в узел для архитектурных обсуждений или reasoning-узел

Вопросы о расширении функциональности агентов ('способна ли машина X делать Y') стоит распознавать как архитектурно-дискуссионные и направлять в соответствующий узел, а не в direct


«делаю биллинг вместо лендинга, трогая биллинг-файлы» → **ловит стена** (объект). ✅

**Судья** читает план против цели: «шаги про биллинг, а задача — лендинг» → завернёт.

**D29** сверяет план с твоей живой просьбой «сделай лендинг» → биллинг-шаги не сойдутся.

«план сам кривой (биллинг под видом лендинга)» → **ловит судья + D29.** ✅

«биллинг-логика, спрятанная в лендинг-файл» → грубо судья, точно — ты. ⚠ (честный предел)

Explanation: Запрос является фрагментом продолжающегося разговора без достаточного контекста. Три критически неизвестных параметра делают классификацию ненадёжной: природа действия ('фиксируй в строгом режиме'), предметная область ('заморозка плана' — бизнес или техника), и референс ('3-й пункт' без видимого списка). Согласно ПАТТЕРНУ 2: если запрос допускает 3+ интерпретации — вернуть no_skill_found с clarify-вопросами.

adr-kit

Подходит если 'фиксируй' = зафиксировать архитектурное решение об инструменте запуска заморозки (ADR). Отклонён: неясно, достигнуто ли решение или ещё обсуждается.

CCPM

Подходит если '3-й пункт' — это элемент PRD/эпика и нужно зафиксировать в артефакте планирования. Отклонён: нет подтверждения, что есть открытый PRD/эпик.

laravel-backend-patterns

Подходит если 'чем запускаем заморозку плана' = выбор Laravel-механизма (Command, Event, Job, Schedule). Отклонён: слишком рано — сначала нужно понять контекст, а не переходить к реализации.

Summary: Роутер не определил узел, выбран direct для обсуждения 3-го пункта плана заморозки

Роутер должен был распознать контекст продолжения диалога о планировании и направить к соответствующему узлу для структурированного обсуждения

Запросы с явными маркерами продолжения ('остаётся', 'давай пройдёмся') требуют анализа контекста сессии для корректного роутинга, а не fallback на direct


Explanation: Запрос является разговорным уточнением понимания логики процесса (approval flow с ролью судьи, эскалацией и заморозкой). Это micro/conversation, который должен был быть обработан до классификатора. Ни один skill не применим без уточнения: нужно ли документировать процесс (#52), фиксировать решение (#36) или реализовывать в коде (#19 + feature chain).

process-modeling

Если бы запрос был о моделировании approval-flow как BPMN swimlane — подошёл бы. Но сейчас это разговорное уточнение понимания, а не запрос на моделирование.

discovery-interview

Запрос похож на discovery-уточнение перед проектированием фичи, но инициатива исходит от пользователя, а не от агента — это скорее conversation, не discovery-сессия.

adr-kit

Если речь идёт о фиксации архитектурного решения по approval-flow — ADR мог бы подойти. Но запрос слишком неопределён для этого вывода.

Summary: Роутер не определил узел, выбран direct для диалога об уточнении бизнес-логики процесса согласования

Роутер должен был распознать контекст как уточнение требований/логики системы и направить к специализированному узлу для анализа бизнес-процессов или диалогового уточнения

Вопросы типа 'я правильно понимаю?' в контексте проектирования workflow — это уточнение требований, требующее подтверждения и структурирования логики, а не просто direct-ответа


К судье приходит **сухой план + цель** (без моих рассуждений, без чата — он слеп к моей логике).

Судья проверяет: цель достигается? риск? качество? скилы взяты?

**Судья доволен (GO)** → он **сам ставит печать** (замораживает). Тебя не дёргаем.

**Судья видит проблему** → **эскалация к тебе.** Ты решаешь:

В случае эскалации печать ставится **после твоего утверждения** (вариант «б» — сразу; вариант «а» — после переделки и повторного прохода).

Explanation: Ни один узел реестра не покрывает изменение/уточнение внутреннего протокола маршрутизации (роутер → судья → пользователь → роутер). Это мета-уровень архитектуры агентов, выходящий за рамки всех 80+ зарегистрированных skill/chain. Паттерн 2 (discovery): запрос допускает минимум две интерпретации — (A) пользователь хочет исправить описание петли в документации, (B) пользователь оспаривает текущее поведение роутера. Без уточнения угадывать не следует.

claude-md-management

Мог бы зафиксировать схему петли в CLAUDE.md, но запрос не является запросом на запись — это уточнение/спор о том, как уже договорились. Нет конкретного текста для фиксации.

normative-sync

normative-sync обновляет нормативку после завершённых интеграций, но здесь нет завершённой интеграции — идёт обсуждение самого протокола. Триггер cls:normative_sync_needed не активирован.

discovery-interview

discovery-interview мог бы структурировать выяснение схемы петли, но запрос — это не feature-discovery и не system-orientation; это мета-спор о договорённости между агентами.

Summary: Пользователь уточняет схему маршрутизации: план идёт не напрямую судье, а через роутер, затем судье. Узел не определён, выбран direct.

Роутер должен был определить узел явно и подтвердить правильную схему: правки → роутер → судья. Выбор direct без определения узла — это сбой.

Уточнения пользователя о схеме маршрутизации должны триггерить явное переопределение узла и подтверждение договорённостей, а не дефолтный direct.


Explanation: Запрос содержит внутренние термины ('роутер', 'судья', 'петля') без референса к конкретному skill, задаче или артефакту проекта. Невозможно однозначно определить что переделывается, кем и зачем. Паттерн 2 (discovery-interview): два+ способа интерпретации → no_skill_found с запросом на уточнение трёх осей неопределённости.

Superpowers v5.1.0

Superpowers:writing-plans мог бы переработать план, но непонятно какой план и для какой задачи — контекст отсутствует

discovery-interview

Discovery-interview мог бы прояснить намерение через структурированные вопросы, но сам запрос является мета-инструкцией о процессе, а не задачей проекта

CCPM

CCPM управляет планами и эпиками, но 'роутер' и 'судья' не являются артефактами CCPM — термины не мапятся на реестр

Summary: Роутер не смог определить узел, система откатилась к direct без явного решения

Роутер должен был проанализировать запрос как уточнение схемы workflow и направить к узлу редактирования плана или мета-обсуждения, а не оставить узел неопределённым

Когда пользователь исправляет описание схемы роутинга (петли, порядок узлов), это мета-запрос — нужен специальный узел для обсуждения архитектуры самого роутера, иначе система деградирует до direct


Summary: Запрос 'фикси а идем в с' не распознан, роутер не смог определить узел, выбран direct

Запрос слишком короткий и неясный — нужно было запросить уточнение у пользователя вместо fallback на direct

Короткие бессмысленные или неполные запросы требуют переспроса, а не молчаливого fallback — это улучшает качество роутинга


Explanation: Запрос — подготовить handoff-промт для следующей сессии с правильным worktree-контекстом. Это точный trigger для Superpowers capability 'worktrees' (переключение/привязка к git worktree) + 'finishing-branch' (фиксация текущего состояния ветки) + 'writing-plans' (составить структурированный промт-документ для следующей сессии). Ни один другой узел не имеет capability по worktree-handoff.

claude-md-management

Управляет только файлом CLAUDE.md. Не содержит механики worktree-handoff или генерации сессионных промтов.

CCPM

Управляет PRD/эпиками/issues, но не имеет capability по git worktrees и межсессионному handoff-промту.

adr-kit

Работает с Architecture Decision Records. Нет связи с git worktree switching или session handoff.

Summary: Запрос на подготовку промта для новой сессии — выбран direct без специализированного узла

Для подготовки контекстного промта с инструкциями по worktree мог бы подойти специализированный узел контекст-менеджмента или session-handoff, если таковой существует. Direct — приемлемо, но не оптимально для структурированных задач передачи контекста.

Запросы на передачу контекста между сессиями и подготовку онбординг-промтов — отдельный класс задач. Стоит иметь или идентифицировать узел для session-handoff / context-bridging, чтобы роутер не оставался неопределённым.


Summary: Запрос 'коммить' не был обработан роутером, выбран прямой ответ без цепочки

Роутер должен был распознать команду 'коммить' как git-операцию и направить к соответствующему узлу для выполнения git commit

Короткие команды на разговорном языке (транслитерации) требуют нормализации и маппинга на конкретные технические действия перед роутингом


Explanation: Запрос требует: (1) прочитать конкретный файл по абсолютному пути через Read-инструмент, (2) воспроизвести состояние сессии из handoff, (3) вести plain-language диалог по пункту C. Ни один скил реестра не имеет capability 'чтение произвольного handoff-файла + ведение построчного ревью проектных решений кастомной системы'. Задача является conversational-продолжением рабочей сессии и должна обрабатываться как прямое взаимодействие с чтением файла.

discovery-interview

discovery-interview ведёт структурированное JTBD-интервью для выявления требований новой фичи. Здесь уже идёт построчное ревью зафиксированных решений по конкретной системе — это не discovery нового, а продолжение рабочей сессии по handoff-документу.

Superpowers v5.1.0 (writing-plans)

writing-plans используется для планирования реализации фичи. Здесь явно указано 'Код Машины 2 НЕ строить, пока не подтверждены все решения A–G' — это стадия до плана, чистое ревью решений в диалоге.

claude-md-management

claude-md-management управляет файлом CLAUDE.md. Handoff-файл — это отдельный артефакт сессии, не CLAUDE.md. Скил не предназначен для чтения произвольных handoff-документов и ведения ревью-диалога.

Summary: Запрос с кодовой фразой и сложным handoff-контекстом направлен в direct без определённого узла роутером

Такой запрос требует специализированного узла с доступом к файловой системе и инструментам (Read, git, vitest). Direct-режим не имеет доступа к файлам — пользователь явно просит прочитать handoff-файл через Read. Нужен узел с tool-use возможностями (например, claude-code или tools-enabled агент).

Запросы с кодовыми фразами типа 'роутер-наставник машина N' и явными инструкциями 'читай через Read' сигнализируют о необходимости агентного узла с доступом к инструментам файловой системы. Direct-режим здесь принципиально неверен — пользователь получит ответ без реального чтения файлов, что нарушает жёсткое правило сессии.


Summary: Роутер не определил узел, выбран direct без routing-тега в ответе, что вызвало stop hook feedback

Следовало добавить routing-тег в ответ согласно требованию observer, и явно определить узел вместо fallback на direct

При наличии stop hook feedback с требованием добавить routing-тег необходимо включать его в ответ; отсутствие тега при user_directed_method вызывает повторный триггер наблюдателя


Explanation: Запрос является мета-вопросом о поведении самого классификатора (роутера/судьи) — это conversation-уровень, который по правилам системы обрабатывается ДО классификатора. Ни один узел реестра не имеет capability 'объяснить логику роутинга'. Применён ПАТТЕРН 2: запрос двусмыслен (мета-вопрос vs реальный запрос на разработку лендинга), clarify требуется.

discovery-interview

discovery-interview подошёл бы если бы запрос был о разработке лендинга, но здесь основной вопрос — мета: как работает роутер. Это не feature-запрос.

promptfoo

promptfoo покрывает eval промптов и регрессионное тестирование LLM, что релевантно если цель — проверить поведение роутера. Но запрос сформулирован как вопрос-разъяснение, а не задача на тестирование.

adr-kit

adr-kit подошёл бы для фиксации архитектурного решения о поведении роутера, но запрос не сформулирован как 'зафиксируй решение' — это вопрос понимания.

Summary: Роутер не определил узел, выбран direct для вопроса о поведении роутера и судьи в новой сессии

Вопрос мета-уровня о системе роутинга — мог бы быть направлен в специализированный узел для объяснений/документации, если такой существует

Вопросы о внутреннем поведении системы роутинга следует распознавать как мета-запросы и обрабатывать через узел с контекстом о системе, а не просто direct


Explanation: ПАТТЕРН 2 (discovery-interview): запрос допускает минимум три интерпретации (seeders / мета-вопрос о скилах / неизвестный термин) и не содержит ни system/expected/actual для bugfix, ни глагола-действия для feature. Угадывать нельзя — требуется уточнение.

Laravel Boost

Если 'семена' = Laravel seeders, Laravel Boost может выполнить SQL/Eloquent операции, но запрос явно просит НЕ использовать скилы, и задача не описана достаточно конкретно.

Superpowers v5.1.0

Запрос мог бы быть meta-вопросом о процессе разработки, но нет ни одного глагола-действия, описывающего конкретную задачу.

discovery-interview

Запрос неоднозначен и требует уточнения намерения, что соответствует паттерну discovery, но сам запрос слишком короткий и не содержит контекста для запуска интервью.

Summary: Запрос неоднозначен — вероятно, контекст игры или специфической задачи, роутер не смог определить узел

Роутер должен был запросить уточнение контекста или попытаться классифицировать запрос в игровую/RPG категорию вместо прямого фолбэка

Короткие контекстно-зависимые запросы без предшествующего диалога требуют уточняющего шага, а не немедленного роутинга в direct


Summary: Роутер не определил узел, выбран direct для объяснения понятия 'скилл' простыми словами с техническими деталями

Роутер должен был определить узел — запрос образовательный/объяснительный, подходит узел типа 'explain' или 'qa'. Direct без цепочки может не обеспечить структурированный педагогический ответ с примерами

Запросы на объяснение концепций с примерами и техническими деталями требуют явного узла с инструкцией формировать структурированный ответ: определение → механизм → примеры → нюансы


Summary: PreToolUse:Bash hook error: [node tools/enforce-router-gate.mjs]: [router-gate]

Summary: Запрос 'продолжи' без контекста направлен в direct без определения узла роутером

Роутер должен был запросить уточнение или проверить историю сессии для понимания контекста 'продолжи'. Direct-выбор без анализа контекста — слабое решение.

Односложные команды типа 'продолжи' требуют обязательного анализа предыдущего контекста сессии перед роутингом. При отсутствии контекста следует запросить уточнение, а не направлять в direct по умолчанию.


Explanation: Запрос классифицируется как micro/conversation — пользователь задаёт мета-вопрос о системе классификации ('расскажи про рецепт'), не ставит задачу разработки. Conversation/micro обрабатываются ДО классификатора согласно правилу 2.

Пользователь спрашивает О скиле, а не просит запустить интервью-discovery. Нет объекта discovery.

Superpowers v5.1.0 (brainstorming)

Пользователь спрашивает О браейншторме как meta-skill, а не просит провести brainstorming-сессию.

Playwright MCP

Нерелевантен полностью.

Summary: Ripgrep search timed out after 20 seconds. The search may have matched files but

Summary: Роутер не определил узел, запрос ушёл в direct — объяснение различий рецептов interviewer и brainstorm

Роутер должен был распознать информационный запрос о внутренней архитектуре системы и направить его в узел с документацией или FAQ, а не в direct

Вопросы вида 'чем отличаются X и Y' о внутренних компонентах системы требуют явного узла knowledge/docs; отсутствие роутингового решения — сигнал о пробеле в классификаторе


Summary: PreToolUse:Edit hook error: [node tools/enforce-tdd-gate.mjs]: [enforce-tdd-gate

Summary: File does not exist. Note: your current working directory is c:\моя\проекты\порт

Summary: PreToolUse:Bash hook error: [node tools/enforce-parallel-session-lock.mjs]: [par

Summary: Пустой/минимальный запрос 'срочно' без контекста — роутер не определил узел, выбран direct

При неопределённом узле следовало запросить уточнение у пользователя вместо прямого ответа; запрос слишком короткий для осмысленного роутинга

Однословные срочные запросы без контекста требуют обязательного уточнения задачи перед роутингом, а не fallback на direct


discovery-interview

Пользователь не просит провести интервью — он указывает на структурный баг в том, КАК интервью соединяется с последующими скилами. Запуск #55 в одиночку не решит проблему отсутствия shared context.

CCPM

CCPM управляет PRD→эпики→issues, но не решает проблему передачи доменного контекста между разнородными скилами внутри одной сессии. Это не project-management gap, а pipeline-architecture gap.

Superpowers writing-plans

Writing-plans создаёт план шагов, но не решает корневую проблему: план не несёт в себе механизм обогащения контекста — он статичен. Проблема в динамическом living artifact, а не в структуре плана.

Summary: Запрос о архитектуре мульти-агентной системы роутинга направлен напрямую без специализированного узла

Для концептуального обсуждения архитектуры системы стоило активировать узел аналитики или системного проектирования. Direct — слишком общий выбор для глубокой технической дискуссии об оркестрации агентов и передаче контекста между скилами.

Запросы о проектировании мульти-агентных пайплайнов и проблемах потери контекста между этапами требуют специализированного узла (архитектура/аналитика), а не прямого ответа — это позволит структурировать решение более системно.


Summary: Пустой запрос 'давай' без контекста — роутер не смог определить узел, выбран direct

Запросить уточнение у пользователя вместо прямого ответа — 'давай' не несёт конкретного намерения

Односложные неопределённые запросы требуют clarification-шага перед роутингом, а не немедленного выбора узла


Summary: Роутер не определил узел, запрос ушёл в direct без обработки цепочки

Роутер должен был распознать вопрос как дискуссионный/уточняющий и направить к соответствующему узлу диалога или разъяснения

Вопросы с риторической или эмоциональной окраской ('кто поймает за руку') требуют явного fallback-узла вместо пустой цепочки


Summary: MCP server "github" requires re-authorization (token expired)

Summary: Запрос 'слей' не был интерпретирован, узел не определён, выбран direct без обработки

Необходимо было попытаться интерпретировать неоднозначный запрос: 'слей' может означать merge/git merge, слить данные, удалить или другое. Следовало запросить уточнение или предложить варианты.

Короткие и неоднозначные команды требуют запроса контекста у пользователя перед роутингом, а не молчаливого перехода на direct без обработки.


ставит печать **ключом, которого у меня нет** — подделать «всё ок» я не могу;

**отдельный** от меня и роутера, **слеп к нашим рассуждениям** (видит только сухой план + цель);

ловит **структурную халтуру**: «план вообще не затронул то, что нужно его же скилам» (это вопрос 1) и «план не бьётся с целью» (D29).

Explanation: ПАТТЕРН 2 (discovery-interview): запрос можно интерпретировать минимум тремя способами. Слова 'судья', 'роутер', 'план', 'цель', 'контекст не видит' указывают на обсуждение архитектуры какого-то агентного/eval-пайплайна, но без исходного треда разговора невозможно определить: (1) что за система обсуждается, (2) какой артефакт нужен на выходе (ADR, диаграмма, анализ промпта, код). Угадывать нельзя.

architecture-patterns

Подходит если нужен анализ Judge-Router паттерна как архитектурного решения, но запрос не просит справочник паттернов — он ставит конкретный вопрос о достаточности контекста для судьи

discovery-interview

Подходит если это начало feature-discovery для улучшения pipeline, но запрос сформулирован как аналитическое утверждение ('контекста не видит'), а не запрос на интервью

promptfoo

Подходит если 'судья' — это LLM-judge в eval-системе и нужно протестировать достаточность промпта, но контекст слишком неопределён для этого вывода

Summary: Роутер не определил узел, система упала на direct без обработки вопроса о дизайне судьи в роутинговой архитектуре

Вопрос требовал аналитического узла или узла проектирования архитектуры — нужно было направить в reasoning/analysis узел для разбора проблемы видимости контекста судьёй

Когда пользователь задаёт архитектурный вопрос о самой системе роутинга (мета-вопрос), роутер должен распознавать это как задачу анализа и не оставлять узел неопределённым


Summary: Роутер не определил узел, выбран direct для фрагментированного сообщения без контекста предыдущего диалога

Необходим доступ к истории диалога для понимания контекста 'провала 2'. Следовало активировать узел брейншторма/интервью, раз пользователь явно на него ссылается

Когда пользователь явно называет тип взаимодействия (брейншторм, интервью), роутер должен распознавать это как сигнал и направлять в соответствующий узел, даже при фрагментированном сообщении