# Handoff #2 — М7 Фаза 8: аудит готовности ✅ + G1 (Level A) ✅ → дальше

**Дата:** 2026-06-09 · **Кодовая фраза:** «роутер-наставник».
**Ветка:** `worktree-brainrepo` · **HEAD:** `b92afad9` · commit-not-push (origin НЕ тронут).
**Дерево:** `c:\моя\проекты\портал crm\Документация\.claude\worktrees\brainrepo` (далее `<WT>`).

---

## Что сделано этой серией (2 эпика закрыты)

### 1. Аудит готовности Фазы 8 — ЗАВЕРШЁН (read-only, по коду)
Файл-якорь находок: `docs/superpowers/audits/2026-06-09-phase8-readiness-audit.md`. Скилы: `audit-context-building` (+`sharp-edges` по швам). Память `*_done.md` верифицирована ПО КОДУ.
- Контур М1–М6 собран на ~95%, криптоядра M1/M6 здоровы, швы M2/M4/M5 закрыты (C-1..C-11).
- **Блокёр №1 (content-floor port §10 V1/V1-PS) — закрыт в коде** (`floorDecide` Bash+PS, `matchBashHardBlacklist`/`matchPsHardBlacklist` полные P-1/V1-PS, `canonicalAction` PS-ветка P-2, `psProtectedWrite` P-3).
- escape-survivability подтверждён; транспорт судьи (`callAnthropicAPI`) есть; журналер/доска/normative-канал на месте; манифест полный (9 хуков).
- Найдено: **G1** (verify→Гейт-3 не проведён живьём) — несущий; **G2** (coverage/todowrite журнал-K2 не в манифесте) — решение → в A2.
- §10 GO/NO-GO таблица: router-gate/powershell-gate GO; verify-before-push был NO-GO до G1.

### 2. G1 (Level A) — ПОСТРОЕН (commit-not-push)
Подписанный verify-receipt перед push, замещает подделываемый sentinel `verify-before-push`/`verify-record` (Класс 1 закрыт). План: `docs/superpowers/plans/2026-06-09-g1-gate3-verify-signed-green.md`. Цепочка скилов целиком (audit-context→sharp-edges→variant-analysis→writing-plans→executing-plans TDD→verification-before-completion).
- **7 коммитов `1857773f..b92afad9`** (см. файл-якорь §«G1 ПОСТРОЕН» — поимённо).
- Новые модули: `verify-receipt.mjs` / `verify-gate-config.mjs` / `produce-verify-receipt.mjs` / `enforce-verify-gate.mjs`; +`RECEIPT_DOMAINS.VERIFY_PASS`; +`enforce-verify-gate` в манифест (9→10).
- **Регрессия 3350 passed / 2 skipped / 0 failed** (vitest tools, выше §9.2 ≥2843+2skip).
- **Level B** (per-criterion + мутация P18 через готовый `runCriterionGate`) — осознанный follow-on; **Δ4 forge** (keychain-ключ) — HSM-scope.
- **Deviation (обосновано):** verify-receipt в едином `~/.claude/runtime/verify-receipt.json` (producer-CLI без session_id; свежесть держит fingerprint).

---

## Что осталось (карта остатка)

| Кусок | Кто | Заметка |
|---|---|---|
| **«пуш»** — merge G1 в main | владелец (слово «пуш») | через `finishing-a-development-branch`; origin сейчас чист |
| **A-блок активация** Фазы 8 | владелец | ключ подписанта (keychain) + `ROUTER_MENTOR_VERIFY_ENABLED=1` + `ROUTER_MENTOR_JUDGE_ENABLED=1` + регистрация хуков в settings.json (М1–М6 9 + verify-gate + coverage/todowrite = 12) + увольнение зоопарка §10 + shadow→block |
| **G2** манифест coverage/todowrite (10→12) | строкой в A2 | журнал-K2-версии готовы; кода Claude нет |
| **Level B** per-criterion + мутация P18 | follow-on (Claude) | `runCriterionGate`/`fingerprintFresh`/`greenSignaturesValid` уже стоят; дострой = живой mapping план→критерии + автоматизация мутации (часть = M4 think-layer / owner) |
| **Фаза 2 observer** (авто-правка нормативки) | owner-scope | требует owner-scoping (правка Pravila/Tooling — то, что стерегут М1–М6) |

**Жёсткие правила (без изменений):** commit-not-push (пуш ТОЛЬКО по «пуш»); 1-я строка «экономия:…», 2-я «coverage:…»; CLAUDE.md в worktree НЕ трогать (чужая зона); стены М2/М5/М4/М6 не ослаблять; нормативку не двигать; settings.json/keychain — шаг владельца; чужую грязь дерева не коммитить — стейдж своих файлов поимённо; субагенты/Task/Workflow ЗАПРЕЩЕНЫ (всё инлайн).

**Квирки среды:** vitest ТОЛЬКО через Bash tool (`npx vitest run --root "<WT>/app" --config "<WT>/app/vitest.config.tools.mjs" <фильтр> --reporter dot`, БЕЗ `cd`/pipe — router-gate режет); git ТОЛЬКО PowerShell `git -C "<WT>" ...` отдельными командами (без `if` — PS-гейт режет); коммит = `git add <файлы поимённо>` + `git commit -m "ascii"` (lefthook «not in PATH» — ШУМ, игнор); TDD-gate требует it+expect в правке тест-файла (надёжнее — Write тест-файла целиком); coverage-hook: `skill:` требует инвокации Skill В ЭТОМ ходе (иначе `direct:<role>`).

---

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

роутер-наставник. Продолжаем эпик — **М7 Фаза 8**. Предыдущая серия ЗАКРЫЛА: (1) полный read-only аудит готовности Фазы 8 (файл-якорь `docs/superpowers/audits/2026-06-09-phase8-readiness-audit.md` — контур М1–М6 на ~95%, блокёр content-floor port закрыт, найдены G1/G2); (2) **G1 (Level A) построен и верифицирован** — подписанный verify-receipt перед push (7 коммитов `1857773f..b92afad9`, регрессия vitest tools **3350 passed/2 skipped/0 failed**, commit-not-push, origin чист). НЕ приступай к коду сразу: прочитай состояние, согласуй со мной следующий шаг.

ДЕРЕВО: `c:\моя\проекты\портал crm\Документация\.claude\worktrees\brainrepo`, ветка `worktree-brainrepo`. Git — ТОЛЬКО PowerShell (`git -C "<wt>" ...`), отдельными командами без `if`, литеральные пути. Сверь верх: `git -C "<wt>" log -10 --oneline` (верх — `b92afad9` G1 task7).

ПРОЧИТАЙ ПЕРВЫМИ: `docs/superpowers/plans/2026-06-09-phase8-handoff-2.md` (этот handoff) + `docs/superpowers/audits/2026-06-09-phase8-readiness-audit.md` (находки аудита + §G1 ПОСТРОЕН) + `docs/superpowers/plans/2026-06-09-g1-gate3-verify-signed-green.md` (план G1) + `docs/superpowers/specs/2026-06-08-router-mentor-machine-7-design.md` (§5/§9/§10/§12).

ВЫБОР СЛЕДУЮЩЕГО ШАГА (согласуй со мной, не угадывай):
- **«пуш»** → merge G1 в main через `superpowers:finishing-a-development-branch` (origin сейчас чист).
- **Level B** (per-criterion GREEN + мутация P18 через готовый `runCriterionGate`) — закрыть остаток Класса 5; цепочка скилов как у G1 (audit-context→sharp-edges→variant-analysis→writing-plans→executing-plans TDD→verification-before-completion); ВЫШЛИ цепочку/scope на согласование ДО кода.
- **A-блок активация** (owner): провижининг ключей + флаги (`ROUTER_MENTOR_VERIFY_ENABLED=1`, `ROUTER_MENTOR_JUDGE_ENABLED=1`) + регистрация хуков settings.json + увольнение зоопарка §10 + shadow→block — это ШАГИ ВЛАДЕЛЬЦА, Claude только готовит runbook.
- **deployment-runbook Фазы 8** (Claude может написать): точная последовательность регистрации 12 хуков + §10 увольнение + ключи/флаги + откат.

ЖЁСТКОЕ: commit-not-push (пуш ТОЛЬКО по «пуш»); 1-я строка «экономия:…», 2-я «coverage:…»; CLAUDE.md в worktree НЕ трогать; стены М2/М5/М4/М6 не ослаблять; нормативку не двигать; settings.json/keychain — шаг владельца; чужую грязь дерева не коммитить — стейдж своих файлов поимённо; vitest через Bash tool (без cd/pipe), git через PowerShell без `if`; субагенты/Task/Workflow ЗАПРЕЩЕНЫ (всё инлайн). Кодовая фраза: «роутер-наставник».

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