# Снимок состояния — М7 Фаза 8 (код-предусловие флипа собрано)

**Дата:** 2026-06-10 · **Кодовая фраза эпика:** «роутер-наставник» · **Ветка:** `main` (HEAD `5be1cd6e` — обновлено 2026-06-10 после M6 FIX-5 + верификации §9.2)
**Назначение:** зафиксировать «где стоим» перед тест-гейтом §9.2 и флипом. Источник истины — код в `main` + спека М7 `2026-06-08-router-mentor-machine-7-design.md` + аудит `2026-06-09-phase8-readiness-audit.md`. Память — фон, не SoT.

---

## Где стоим одной строкой
**Весь Claude-собираемый код готов и в `main`.** Осталось: (A) активация судьи владельцем, (B) «большой переезд» Фазы 8 (регистрация М1–М6 + увольнение зоопарка — `settings.json`, только владелец), (C) тест-гейт §9.2 ✅ **верифицирован зелёным (2026-06-10)** — предусловие закрыто, (D) разблокировка GitHub. Невыполненной кодовой работы у Claude по эпику нет.

## ✅ Готово (верифицировано по `main` — 11 хук-файлов машин/ворот на месте)
| Блок | Статус |
|---|---|
| М1 фундамент (журнал hash-chain + ключ + расписки) | ✅ здоров (аудит Pass B) |
| М2 стена (default-deny вне печати, tree-волны R-08) | ✅ |
| М3 роутер-классификатор (по журналу K2) | ✅ (живой Sonnet = A7 владельца) |
| М4 судья (пол + движок, линзы gate1/2/3, транспорт `callAnthropicAPI`) | ✅ код; активация — владелец |
| М5 пол (content-floor Bash+PS; блокёр №1 закрыт) | ✅ полный |
| М6 escape + снимок (откат, one-shot грант) + FIX-5 подпись floor_escape | ✅ здоров (FIX-5 key-gated реализован 2026-06-10, commits `7faef3c9..ae3f841c`) |
| G1 verify-gate (подписанный GREEN перед commit/push) | ✅ построен |
| Level B criterion-gate (по-критерийный mutation-proven) | ✅ `enforce-criterion-gate.mjs` |
| Связка печати (sealed-plan production) | ✅ `5fd4031b`+`09598dd5` |
| Гейт-1 (судейство спек) + SE-2 (стена не чтит shadow-печать) | ✅ `0289e93c`+`ec73a5c2` |
| judge_mode seal-time guard (defense-in-depth) | ✅ `4dd2098e` |
| Доска «кто на посту» + манифест 11 хуков | ✅ (live-источник escape/блоков — реализован, commit `84231a14`) |

## 🟥 Осталось — РАБОТА (шаги владельца, Claude'у закрыто)
**A. Активация судьи М4:** keychain (`router-mentor-judge` + `router-mentor-receipts`) → завершить ИИ-проводку `runJudgeGate` (seam отдаёт нейтральный GO до владельца) → `ROUTER_MENTOR_JUDGE_ENABLED=1` → обкатка `shadow`→`block`.
**B. Фаза 8 переезд (`settings.json`):** атомарно зарегистрировать 13 хуков М1–М6 (пол #1 ДО снятия `router-gate` — порядок критичен) → снять v4-зоопарк (~20 хуков §10) → 3 ENV-флага → `sealedPlanCoversEdit` live + matcher на дисциплинарные исходники.
**C. Тест-гейт §9.2 (предусловие B):** регрессия tools-only ≥ планки + per-machine smokes (каждая М1–М6 рубит свой класс, fail-CLOSE, громко) + интеграционные (escape сквозной / манифест кричит при снятом страже / ЗАКОН требует ключ, КАРТА — нет / дисциплина fail-CLOSE+громко / журнал-факт не обходится текстом).
**D. GitHub:** аккаунт `CoralMinister` SUSPENDED → push/fetch 403; `main` ушёл от origin; force-push запрещён (сотрёт чужие коммиты).

## ⚪ Отложено осознанно (не блокирует флип)
M4 think-layer (4 пункта) · observer Фаза 2 (авто-правка нормативки) · R-10 G6-адаптер · doc-drift D-1 (устаревшая шапка `enforce-judge-gate`). **Закрыто 2026-06-10:** M6 FIX-5 (подпись floor_escape, key-gated) + доска recentEscapes/Blocks live-источник (commit `84231a14`).

## Порядок зависимостей
C (тест-гейт §9.2) → A (активация судьи) → B (переезд) → shadow→block. D (GitHub) — параллельно, нужно только для push.

## Регрессия на момент снимка
tools-only **3478 passed / 2 skipped / 0 failed** (после M6 FIX-5 +13; планка §9.2 ≥3350+2skip перекрыта). **Тест-гейт §9.2 верифицирован зелёным 2026-06-10** — per-machine М1–М6 + интеграционные smokes (31 файл / 328 GREEN), все пункты §9.2 покрыты автоматными тестами с fail-CLOSE-ассертами; предусловие C закрыто.
