# Замечания по реинжинирингу мозга v2 — единый реестр

> **Назначение.** Один список ВСЕХ находок по роутер-наставнику (Машины 1–7), чтобы ничего не потерялось. **Это — единственная правда о СТАТУСЕ** (открыто/исправлено/отложено). Тех-детали остаются в журналах машин (`machine-1/2/3-*.md`, мастер-карта); здесь — номер, суть в одну строку и судьба. **Статус правим ТОЛЬКО здесь** (иначе раздвоится).
>
> Создан 2026-06-05 по итогам сквозного аудита Машин 1–3 + их швов.

## Легенда
- **Статус:** ✅ исправлено · ⬜ открыто · ⏸ отложено (контракт к будущей машине / шаг владельца)
- **Тип:** `код` (правка кода) · `код-баг` (реальный баг) · `owner` (шаг владельца) · `→M4`/`→M5`/`→M3` (контракт к машине) · `данные` · `крипто` · `residual` (принятый остаток) · `wiring` (собрано, не вшито)

## Сводка
- ✅ Исправлено: **13** (R-01…R-05, R-13, R-14, R-17, R-18, R-19, R-27, R-28, R-31)
- ⬜ Открыто: **8** (R-07, R-11, R-12, R-15, R-20, R-24, R-26, R-29 — все owner/данные/вшивка)
- ⏸ Отложено/контракт: остальные (R-06, R-08, R-09, R-10, R-16, R-21, R-22, R-23, R-25, R-30, R-32)
- 🟢 **Открытых задач кода нет** — все кодовые замечания закрыты; в открытых только шаги владельца / данные / вшивка в неживое.

## Реестр

| № | Машина/шов | Суть (1 строка) | Тип | Статус | Деталь / коммит |
|---|---|---|---|---|---|
| R-01 | M3 (3-B/3-D) | `resolveNode` заземляет `superpowers:X` по префиксу (seed-навыки) | код | ✅ | `003bd3d8` |
| R-02 | M3 (3-D) | контракты + look-ahead в промпт роутера | код | ✅ | `b94f7d24` |
| R-03 | M3 (3-D) | нюх 5.3 + интервьюер 4.4 в промпт | код | ✅ | `92ba55bc` |
| R-04 | M3 (3-A) | `dispatchContract` — G3 диспетчеризация точно\|мягко | код | ✅ | `eb3f4c4e` |
| R-05 | M3 (3-A) | `checkContractNeutrality` — G1 страж нейтральности | код | ✅ | `58f3a658` |
| R-06 | M3→M4/3-D | K4 узкое Write-исключение в `decideMode` (до M4 — Write в разговоре блокируется) | →M4 | ⏸ | journal M3 |
| R-07 | M3 | live-wiring роутера (регистрация + живой Sonnet вместо мока) | owner | ⬜ | journal M3 |
| R-08 | M3→M2 | волны (дерево `step-pointer` → живой `supreme-gate.main`); модуль собран, не вшит — **на стройке крупный шаг динамически НЕ дробится на под-шаги; до вшивки правка плана идёт только через возврат в разговор + пере-печать (closed-door C-5)** | wiring | ⏸ | journal M3 |
| R-09 | M3 (3-E) | доставка очереди (`statusSignal`/`renderApprovalSection`) в STATUS/brain-retro | wiring | ⏸ | journal M3 |
| R-10 | M3→M1/M4 | G6 — адаптер чужого скила под журналом + сверка судьёй | →M4 | ⏸ | journal M3 |
| R-11 | M3 (данные) | наполнить контракты для ~84 узлов реестра | данные | ⬜ | journal M3 |
| R-12 | M3 (данные) | явные конфликт-рёбра `attributes.conflicts_with` | данные | ⬜ | journal M3 |
| R-13 | M1 (журнал) | `seq`+`ts` входят в `chain_hash` (подмена метаданных ломает цепь) | код | ✅ | `7b578cd3` |
| R-14 | M1 (пол) | `extractPath` — расширены поля (ловит MCP `filename`/`uri`) | код | ✅ | `2907e3f2` |
| R-15 | M1 (пол) | P10-a: matcher хука узкий → MCP-писатель хук не вызовет (код готов) | owner | ⬜ | journal M1 (B1) |
| R-16 | M1+M2→M4 | анти-откат high-water-mark (бывший B3/T9) — вшит как контракт **K6** | →M4 | ⏸ | мастер-карта §M4 K6 |
| R-17 | M2 (стена) | `actionOf` поля объекта выровнены с B4 | код | ✅ | `133b29df` |
| R-18 | M2 (стена) | `decide` сам проверяет печать артефакта (защита-в-глубину) | код | ✅ | `4963c118` |
| R-19 | M2 | указатель шага подписан (HMAC step-ptr); подмена ptr → сброс | код | ✅ | `6dbe4374` |
| R-20 | M2 | регистрация matcher `*` в `settings.json` (без неё стена инертна) | owner | ⬜ | journal M2 (T1) |
| R-21 | M2→M4 | K1 — печать ставит ТОЛЬКО процесс одобрения гейта-1 | →M4 | ⏸ | мастер-карта §M4 K1 |
| R-22 | M2→M4 | K2 — покрытие навыком по ЖУРНАЛУ, не по тексту | →M4 | ⏸ | мастер-карта §M4 K2 |
| R-23 | M2→M5 | K3 — консервативный `classifyBashCommand` (сейчас безопасен) | →M5 | ⏸ | мастер-карта §M5 K3 |
| R-24 | M2 | `door-coverage` не вшит в живой прогон/STATUS (утилита есть) | wiring | ⬜ | journal M2 (T7) |
| R-25 | M2→M4 | `buildFrozenPlanFromApproval` — канал печати (опционально) | →M4 | ⏸ | journal M2 (T8) |
| R-26 | шов (J1) | система собрана как детали, но НЕ включена живьём нигде | owner | ⬜ | joint-аудит |
| R-27 | шов M2↔M3 (J2) | указатель шага привязан к `plan_id` (перепечать сбрасывает указатель) | код-баг | ✅ | `522531bb` |
| R-28 | шов (J3) | session_id берётся из stdin-события (был баг: из env → сессии слипались) | код-баг | ✅ | `2ef55047` |
| R-29 | шов (J4) | без HMAC-ключа стена кирпичит мутации → ключ+регистрацию включать ВМЕСТЕ | owner | ⬜ | joint-аудит |
| R-30 | шов (J5) | журнал пишется, но живьём `verifyChain`/reconcile/door НЕ вызываются | →M4 | ⏸ | joint-аудит |
| R-31 | шов/все (J6) | доменное разделение подписи (план/артефакт/журнал/расписка не взаимозаменяемы) | крипто | ✅ | `fe5cf99f` |
| R-32 | M3-disc→M4 | K7 — линза пре-мортема на Гейте-1 (судья отдельно: «какие следствия решений НЕ закрыты?») | →M4 | ⏸ | spec 2026-06-05 + master §M4 |

## Быстрые взгляды

### ⬜ Открыто — НЕ требует кода (владелец / данные / вшивка)
- **R-11, R-12** — наполнение данными (контракты/конфликты) — при живой системе.
- **R-24** — вшить `door-coverage` в живой прогон — после включения системы.
- **R-07, R-15, R-20, R-26, R-29** — шаги владельца / условия запуска (регистрация хуков, ключ, порядок).

### ⏸ Отдано в будущие машины (контракты — не терять при сборке)
- **→ Машина 4 (судья):** R-06 (K4), R-10 (G6), R-16 (K6), R-21 (K1), R-22 (K2), R-25, R-30, R-32 (K7). Все продублированы в аварийном блоке §M4 мастер-карты.
- **→ Машина 5 (пол):** R-23 (K3) — §M5 мастер-карты.
- **→ вшить в M2/M3 при сборке роутера:** R-08 (волны), R-09 (доставка 3-E).

### ✅ Исправлено в этой сессии (13)
R-01…R-05 (M3) · R-13, R-14 (M1) · R-17, R-18, R-27, R-28, R-19 (M2) · R-31 (5 модулей). Регрессия после всех: **2241 tools-тестов зелёные.**
