# Router-mentor — Handoff к следующей сессии (после закрытия H)

**Дата:** 2026-06-08 · **Кодовая фраза эпика:** «роутер-наставник».
**Что закрыто этой сессией:** Блок H (карточки 86 узлов + конфликт-рёбра + инвариант покрытия + мех-правка G-E). **commit-not-push** — 15 коммитов `d1a76786..64fb063a` на `worktree-brainrepo`, origin НЕ тронут.

---

## === ПРОМТ ДЛЯ НОВОЙ СЕССИИ (скопировать целиком) ===

роутер-наставник. Продолжаем подбирать хвосты эпика. Блок **H закрыт** прошлой сессией (commit-not-push). НЕ приступай к работе сразу — сперва прочитай состояние, подними согласованную цепочку скилов, и действуй по ней. Всё инлайн, субагенты/Task/Workflow ЗАПРЕЩЕНЫ.

1. **ДЕРЕВО (вся работа здесь):** `c:\моя\проекты\портал crm\Документация\.claude\worktrees\brainrepo`, ветка `worktree-brainrepo`. Git — ТОЛЬКО через PowerShell (`git -C "<wt>" ...`). Сверь верх истории: `git -C "<wt>" log -8 --oneline` (ожидаемый верх — `64fb063a` docs(router-mentor): H закрыт).

2. **ПРОЧИТАЙ ПЕРВЫМИ:**
   - `docs/superpowers/plans/2026-06-08-router-mentor-loose-ends-registry.md` — реестр хвостов (H помечен ✅, критический путь, блоки B/A/C/E/F/G).
   - `docs/superpowers/plans/2026-06-08-router-mentor-next-session-handoff.md` — этот файл.
   - Если идём в Блок B: `docs/superpowers/plans/2026-06-08-router-mentor-H-cards-conflict-edges.md` (как пример bite-sized плана) + спеки машин в `docs/superpowers/specs/`.

3. **СОСТОЯНИЕ (H закрыт):** 86 карточек-контрактов `docs/registry/contracts/*.contract.json` (per-node, `skill=slug`) + 4 конфликт-пары в `nodes.yaml` + чекер `tools/card-coverage.mjs` + инвариант `tools/m3e-*` + G-E-правка `tools/skill-contract.mjs` + form-инвариант `tools/m3a-*`. Регрессия tools-only **3174 passed / 2 skipped / 0 failed**. НЕ запушено.

4. **ЧТО ДАЛЬШЕ (критический путь к боевому режиму):**
   - Этап 1 **H** — ✅ закрыт.
   - Этап 2 **B (вшивка)** — Claude-доступно (код): R-08 волны (step-pointer tree → живой supreme-gate.main) / R-09 доставка очереди обучения в STATUS·brain-retro / R-24 door-coverage в живой прогон / R-30 verifyChain·reconcile·door живьём / `enforce-reconcile.main()` 2-й такт. Часть требует уточнения ПОРЯДКА включения у владельца.
   - Этап 3 **shadow-обкатка** (судья М4 / пол М5 / стена М2 / escape М6) — рубильник владельца.
   - Этап 4 **A** — активация + Фаза 8 «переезд» + увольнение v4-зоопарка + push — рубильник владельца.
   - **Claude двигает только этапы 1-2.** Спроси владельца, что брать: push H / Блок B / другой хвост (см. блоки E косметика / F архитектурные / C контракты).

5. **ЦЕПОЧКА СКИЛОВ (держать на всех задачах):** brainstorming (если решение/дизайн) → graphify/audit-context (разведка) → writing-plans (bite-sized) → per-задача: audit-context-building → test-driven-development (RED→GREEN; tdd-gate требует наблюдаемый RED до prod-правки `tools/*.mjs`) → systematic-debugging (на красный) → verification-before-completion → variant-analysis/sharp-edges (где уместно) → гейт закрытия: regression(tools-only ≥ baseline) → verification → коммит. **НЕ** requesting-code-review. Скилы инлайн, coverage `direct:<role>`.

6. **ЖЁСТКОЕ:** commit-not-push (пуш ТОЛЬКО по слову «пуш» через `finishing-a-development-branch`); каждый ответ 1-я строка «экономия:…», 2-я «coverage:…»; **CLAUDE.md в worktree НЕ трогать** (чужая зона). Доки/данные `docs/`+`tools/` — можно; нормативку (§0 cross-refs Pravila/PSR/Tooling) не двигать без явной задачи.

7. **КВИРКИ (подтверждены):**
   - **vitest** (worktree под `.claude/` + сессия в главном репо!): `npx vitest run --root "<wt>/app" --config "<wt>/app/vitest.config.tools.mjs" <фильтр> --reporter dot` — БЕЗ `cd app` (он тестит главный репо), с явным `--root` на worktree. `cd` в `.claude`-путь режет router-гейт. После первого `cd app` Bash-cwd залипает в `app/` — дальше без `cd`.
   - **git** — PowerShell, по одной команде, литеральные пути, без переменных. Коммит: msg в `<wt>\.scratch\*.txt` (Write) → `git -C "<wt>" commit -F "<...>.txt"`. «Can't find lefthook in PATH» — ШУМ.
   - **node -e / python -c / bash -c** — hard-blacklist гейта; для разовых проверок используй vitest-тест, не `node -e`.
   - **Список файлов** — через Grep (Glob ломается на junction worktree).
   - **PowerShell-гейт** режет `npx`/`node`/`Set-Location`/`$var=` → тесты только через Bash, git только через PowerShell `-C`.
   - **Память** (`~/.claude/.../memory/`) — пишется ТОЛЬКО при активном `claude-md-management` (enforce-normative-content-rules) + coverage `direct:memory-sync` (enforce-memory-coverage). В этом worktree CLAUDE.md off-limits → харнесс-память не писать; фиксировать знание в `docs/superpowers/plans/*` (git).
   - Чужая грязь дерева (observer-jsonl авто-регенерат / `.scratch/` / чужие планы) — НЕ коммитить; стейджить свои файлы поимённо или `git add docs/registry/contracts/` (там только наши).

8. **СТАРТ:** прочитай реестр хвостов + этот handoff → спроси владельца, какой хвост берём (push H / Блок B / иное) → подними цепочку скилов → действуй. Кодовая фраза: «роутер-наставник».

## === КОНЕЦ ПРОМТА ===

---

## Карта оставшихся хвостов (из реестра, для быстрой ориентации)

| Блок | Что | Кто | Claude-доступно? |
|---|---|---|---|
| **B** вшивка | R-08 волны / R-09 очередь обучения / R-24 door-coverage / R-30 verifyChain·reconcile·door / enforce-reconcile 2-й такт | Claude код + владелец порядок | **да (частично)** |
| **A** активация | live-wiring судьи М4 / Фаза 8 переезд / увольнение зоопарка / push | владелец | нет (рубильник) |
| **C** контракты | R-06 K4 Write-исключение / R-10 G6 адаптер чужого скила (НЕ построен) / М4 think-layer 4 пункта | владелец/Claude | частично |
| **E** косметика | DOC-1 escape-awareness заметка / доска «кто на посту» детальный рендер / docstring node-graph | Claude | да |
| **F** архитектурные | enforce-hole-3 confidence trust-level (вариант C, Stage 4) / остаточный предел ~0.5% | владелец | решение владельца |
| **G** периферия мозга | observer Фаза 2 (LLM agent-судья качества) / 4-й FP-класс / embedding-index | Claude/владелец | да (мелочи) |
| **H3** | few-shot память роутера | владелец → Claude | отложено |

**Рекомендация:** после push H — Блок B (этап 2 критпути) как следующий содержательный Claude-кусок; либо мелкие хвосты E/G для разогрева. Точный выбор — за владельцем.
