docs(router-mentor): сводный реестр хвостов эпика до боевого режима
Свод всех отложенных пунктов «роутер-наставник / реинжиниринг мозга» (7 машин + router-discipline + периферия мозга + граф скилов): блоки H/A/B/C/E/F/G, критический путь к продакшену, колонка «кто закрывает» (Claude / владелец). Read-only сбор, ничего не чинится. Главный недостающий кусок — карточки узлов (2 из ~86) + конфликт-рёбра (0). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
# Реестр хвостов эпика «роутер-наставник / реинжиниринг мозга» — до боевого режима
|
||||
|
||||
**Дата:** 2026-06-08
|
||||
**Ветка:** `worktree-brainrepo` · HEAD `7c3a495e`
|
||||
**Статус:** СВОД ДЛЯ СОГЛАСОВАНИЯ. Ничего не чинится этим документом — это карта отложенного.
|
||||
**Кодовая фраза эпика:** «роутер-наставник».
|
||||
|
||||
## Как собрано
|
||||
|
||||
Инлайн-проход (read-only) по памяти-итогам машин M4–M7, аудит-резидуалам (m1_m4 correctness/sharp-edges/guard, m2/m3), дизайн-спекам (M7 §5/§10, M5 §6, M4 judge, router-discipline notes), реестру замечаний `brain-reengineering-remarks-v2` (R-01…R-35), коду (`tools/*.mjs` маркеры проводки), периферии мозга (governance/observer/factor-analysis) и графу скилов (`docs/registry/`).
|
||||
|
||||
Колонка **«Кто»** — ключевая: **Claude** = данные/код, которые можно закрыть до активации; **владелец** = `.claude/settings.json` + ключи.
|
||||
|
||||
> Закрытыми (не хвосты): Л2 (D29), В5 (D34), 7 дыр критразбора, R-23/K3 (в М5), вся factor-analysis (30 осей, на origin/main), observer remediation/instrument (на origin/main).
|
||||
|
||||
---
|
||||
|
||||
## 🟥 H. Граф скилов / карточки — данные (Claude может; главный недостающий кусок)
|
||||
|
||||
Без этого роутер M3 живьём выбирает узлы «вслепую». Механика 3-A/3-B построена и протестирована; не хватает **данных**.
|
||||
|
||||
| ID | Хвост | Факт сейчас | Кто |
|
||||
|---|---|---|---|
|
||||
| **H1 / R-11** | Карточки-контракты узлов (`needs/produces/constraints` + `preview-form/defaults/key-decisions/acceptance-criteria`) | **2 из ~86** написаны (`docs/registry/contracts/writing-plans.contract.json`, `operations-process-doc.contract.json`); ~84 пусты | **Claude** (данные) |
|
||||
| **H2 / R-12** | Явные конфликт-рёбра `attributes.conflicts_with` в `docs/registry/nodes.yaml` (free-text граф не парсит, только explicit) | **0** проставлено | **Claude** (данные) |
|
||||
| H3 / 3.4-3.5 | Наполнять ли память/примеры роутера (few-shot) | решение отложено владельцем | владелец → Claude |
|
||||
|
||||
## 🟥 A. Активация — боевое включение (только владелец)
|
||||
|
||||
Финальный рубильник — делается ПОСЛЕ готовности H/B, когда система обкатана в shadow.
|
||||
|
||||
| ID | Хвост | Кто |
|
||||
|---|---|---|
|
||||
| A1 / R-33 | Судья М4: реальный llmCall-транспорт + извлечение «продукта на суд» в `enforce-judge-gate.runJudgeGate` (сейчас `{decision:'GO', wired:false}`) + ключ `router-mentor-judge` (keychain) + флаг `ROUTER_MENTOR_JUDGE_ENABLED=1` + регистрация хука + обкатка shadow→block | владелец |
|
||||
| A2 | Фаза 8 «Большой переезд» (§9): тест-гейт §9.2 → атомарная регистрация М1–М6 (9 хуков `DEFAULT_REQUIRED_HOOKS` + 4 поглощённых дисциплины) → увольнение v4-зоопарка §10 → `sealedPlanCoversEdit` live через `plan-lock.actionMatchesStep` + matcher `normative-content-rules` на дисциплинарные исходники → откат (escape/снимок М6) | владелец |
|
||||
| A3 | Активация пола М5: регистрация `enforce-floor` + `floor-manifest-check` + `enforce-reconcile` + провижининг ключа подписанта; shadow→hard-block | владелец |
|
||||
| A4 | Активация escape/снимка М6: `enforce-snapshot` (PreToolUse после `enforce-floor`) + `enforce-floor-escape-consume` (PostToolUse); shadow→hard-block | владелец |
|
||||
| A5 / R-20+R-29 | Стена М2: matcher `*` в settings.json + HMAC-ключ включать **вместе** (иначе кирпичит мутации) | владелец |
|
||||
| A6 / R-15 | M1 пол: узкий matcher хука (код готов, нужна регистрация — иначе MCP-писатель не ловится) | владелец |
|
||||
| A7 / R-07 | M3 роутер: live-wiring + живой Sonnet вместо мока | владелец |
|
||||
| A8 / R-34 | Правила судьи в защищённом файле (контроллер не смягчит) | владелец/конфиг |
|
||||
| A9 | **Push всего эпика** (commit-not-push) | владелец («пуш») |
|
||||
|
||||
## 🟧 B. Вшивка — код готов, не подключён живьём
|
||||
|
||||
| ID | Хвост |
|
||||
|---|---|
|
||||
| R-26 | Система собрана деталями, нигде не включена живьём (зонтик над A). |
|
||||
| R-08 | Волны: step-pointer tree → живой `supreme-gate.main`; до вшивки крупный шаг динамически НЕ дробится, правка плана только через возврат в разговор + перепечать (closed-door C-5). |
|
||||
| R-09 | Доставка очереди обучения (`statusSignal`/`renderApprovalSection`) в STATUS/brain-retro. |
|
||||
| R-24 | `door-coverage` не вшит в живой прогон/STATUS (утилита есть). |
|
||||
| R-30 | Журнал пишется, но `verifyChain`/reconcile/door живьём не вызываются. |
|
||||
| — | `enforce-reconcile.main()` — пустой каркас; 2-й такт сверки после owner-настройки (чистые функции готовы). |
|
||||
| — | `enforce-decomposition-detector` / `enforce-parallel-session-lock:12` — no-op до Ф8 (последний → §10 увольнение). |
|
||||
|
||||
## 🟧 C. Контракты к будущим машинам / осознанно отложено (без призраков)
|
||||
|
||||
- **R-06** — K4 узкое Write-исключение в `decideMode` — включать ПОСЛЕ live K1.
|
||||
- **R-10** — G6 адаптер чужого скила под журналом + сверка судьёй — **НЕ построен**.
|
||||
- **М4 think-layer** — 4 пункта думающего слоя задокументированы как задачи этапа включения; рассинхрон счётчика халтуры с журналом — вопрос подключения.
|
||||
- **М6 FIX-5** — подпись floor_escape-гранта сознательно не делали (spec §6 «не обязательно»; в режиме без ключа нулевая защита).
|
||||
- **М5 F-4** — ложные срабатывания защиты при описании механизма → решение владельца C (код не менять); «3 круга→эскалация» Layer 4 ведёт контроллер вручную.
|
||||
- **М1** — атомарность дозаписи журнала оставлена (fail-closed по конструкции, чистого теста нет). **М2** — межмашинные контракты T1-T9.
|
||||
|
||||
## 🟨 E. Doc-gaps / косметика
|
||||
|
||||
- **DOC-1 (важно перед активацией М6):** escape чтут только стена М2/пол М5/egress; параллельные стражи (`enforce-router-gate`, `enforce-runtime-write-deny`, судья) escape НЕ знают → реальный `force-push`/`.env`-запись не пройдут, пока зоопарк зарегистрирован. Полностью «дверь» открывается только когда Фаза 8 растворит/научит зоопарк (escape-awareness, §10 правило 7).
|
||||
- Доска «Кто на посту» — **детальный рендер недавних escape/блоков** (счётчики есть, детализация — follow-up handoff#5).
|
||||
- M3 `node-graph` docstring «от loadRegistry» (косметика комментария). `brain-retro-opus-reviewer` prompt-caching no-op (perf-minor).
|
||||
|
||||
## 🟦 F. Архитектурные (решение владельца)
|
||||
|
||||
- **enforce-hole-3-deferred** — доверять ли `confidence<0.7`, когда LLM-классификатор реально отработал; вариант **C** (trust-level field + `schema_version` bump, ~1-2 дня) = Stage 4 router-discipline-overhaul; re-open по данным (≥5 эпизодов skip при `recommended_node≠null`).
|
||||
- **Остаточный предел ~0.5%** неустраним (7 ограничений v4); абсолют ключа — только HSM/YubiKey (v4.2-фаза).
|
||||
|
||||
## ⬜ G. Периферия мозга (Машина 0 — observer/governance, в основном на origin/main)
|
||||
|
||||
Почти всё DONE+pushed; открыты только фаза-2 и мелочи:
|
||||
|
||||
- **Фаза 2** (observer spec §10): независимый LLM agent-судья качества роутинга, реальные `confusion_marker`/`chain_divergence`, real-time friction-флаги, авто-правка нормативки.
|
||||
- **4-й FP-класс** routing-gate: цитата `/node` в pasted-тексте классифицируется как директива (минор, observer accuracy).
|
||||
- Embedding-index: файл-кэш + HNSW/faiss — defer (пока N мал). `observer-self-assessment-api.test.mjs:258` pre-existing fail (тех-долг). Мелкие regex-нити (`\bcommit\b` в release-классе / двойной счёт перекрывающихся PII-паттернов).
|
||||
|
||||
---
|
||||
|
||||
## Вывод: критический путь к боевому режиму
|
||||
|
||||
| Этап | Что | Кто |
|
||||
|---|---|---|
|
||||
| 1 | **H** — карточки ~84 узлов + конфликт-рёбра (главный недостающий кусок) | **Claude** |
|
||||
| 2 | **B** — вшивка R-08/R-09/R-24/R-30 + `reconcile` | Claude (код) + владелец (порядок) |
|
||||
| 3 | Owner-обкатка в **shadow** (судья + пол + стена + escape) | владелец |
|
||||
| 4 | **A** — активация + Фаза 8 переезд + увольнение зоопарка + push | владелец |
|
||||
|
||||
**Claude может двигать к продакшену прямо сейчас только этапы 1–2** (данные + код); этап 3–4 — рубильник владельца (settings.json/ключи), делается последним.
|
||||
|
||||
## Дальше
|
||||
|
||||
- Согласовать порядок (рекомендуется начать с **H** — наполнение карточек через `writing-plans` → схема контракта + проход по ~86 узлам + конфликт-рёбра).
|
||||
- Этот файл — якорь; обновлять по мере закрытия пунктов.
|
||||
Reference in New Issue
Block a user