From 1ccd5e4edfb5a9d73e7a9a278acbe366156c1e64 Mon Sep 17 00:00:00 2001 From: "Claude (backend session)" Date: Sat, 22 Aug 2026 19:58:37 +0300 Subject: [PATCH] Close orchestrator 18 with the handover note and pass the counter to 19 --- docs/ORCHESTRATOR_SESSION_PROMPT.md | 8 ++++++- docs/PROGRESS.md | 2 +- docs/README.md | 2 +- docs/architecture/05-decisions-index.md | 3 ++- docs/architecture/05-decisions-log.md | 28 ++++++++++++++++++++++++- 5 files changed, 38 insertions(+), 5 deletions(-) diff --git a/docs/ORCHESTRATOR_SESSION_PROMPT.md b/docs/ORCHESTRATOR_SESSION_PROMPT.md index 4ff22215..89667ebe 100644 --- a/docs/ORCHESTRATOR_SESSION_PROMPT.md +++ b/docs/ORCHESTRATOR_SESSION_PROMPT.md @@ -1,4 +1,4 @@ -# Промт: роль ОРКЕСТРАТОР TextMachine (канонический счётчик — сейчас **№18**, хендофф 16.08.2026; №17 закрыт после D39.146) +# Промт: роль ОРКЕСТРАТОР TextMachine (канонический счётчик — сейчас **№19**, хендофф 22.08.2026; №18 закрыт после D39.155) > Счётчик ролей ОДИН, номер выдаёт тот, кто пишет промт передачи (D39.112 п.6); параллельный > оркестратор (приёмка полигона) — РОЛЬЮ, без номера. Здесь — роль и инструкции по ситуациям; @@ -8,6 +8,12 @@ > оправдана, только если норма (а) требует суждения и немеханизируема, (б) общеролевая, а не > ситуативная, (в) её нарушение дорого. Остальное — гейт, чек-лист ситуации или D-нота. Снимок прежней редакции — > `archive/prompts/ORCHESTRATOR_SESSION_PROMPT_v16_2026-08-16.md`. +> +> **⟶ ПЕРЕДАЧА №18 → №19 (22.08).** Что закрыто моей сменой: приёмка и лендинг пака платформы P8-FIX +> (D39.154) · сквозная актуализация документации по многоагентному аудиту (D39.155). Состояние и +> очередь — CURRENT-STATE в `PROGRESS.md`, этот файл их не несёт. **Первое, что стоит прочитать +> новому №19:** D39.155 — там названы и мои собственные ошибки, и три работающих механизма, которые +> ловили меня чаще, чем я ловил себя сам. ## Кто ты diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 9a1653e9..51c867c7 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -1,6 +1,6 @@ # Журнал прогресса -> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-22, голова D39.154 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №18** (единственный носитель — здесь): (а) **P7 платформы ПРИНЯТ С ФИКС-ЛИСТОМ и ЗАЛЕНДЕН, сессия закрыта владельцем 20.08** (D39.153; зонный фикс-лист из тринадцати пунктов плюс врезанный первым блокер свипа — пинг №18 в `platform/docs/platform-PROGRESS.md`; ⚠ прежний врезанный пример «первым `ContractVersion` 0.3.0 при формах 0.4.0» СНЯТ — константа поднята и запинена гейтом против канона лендингом `31f1f82`) · (а1) **контракт API v0 0.4.0 РАТИФИЦИРОВАН** (D39.152; PD-327 закрыт; зеркало фронта отстаёт ратифицированно, при разморозке `cmp`) · (б) **лендинг петель полигона (фаза Д) — ОТКРЫТ**: приёмка ФАЗЫ у параллельного оркестратора, лендинг за этим; ⚠ в дереве живая НЕЗАКОММИЧЕННАЯ работа полигона: **13 изменённых файлов (+2166/−79) и 6 новых**, состав — пинг №20 в секции «Полигон». Индекс на 22.08 ЧИСТ (`git diff-index --cached HEAD` → 0; прежняя редакция писала «частично ЗАСТЕЙДЖЕННАЯ» — испр. аудитом доков). Не трогать и не «прибирать»; сессия жива, стейдж может появиться в любой момент, поэтому форма коммита остаётся строго pathspec · (в) **дофикс-пак P8-FIX ПРИНЯТ И ЗАЛЕНДЕН 22.08** (D39.154, лендинг `31f1f82`): блокер свипа закрыт четырьмя механизмами и пере-проверен живой пробой оркестратора, деньги сошлись двумя путями из сырого леджера; мои четыре строки регистра — `PD-371`…`PD-374`. ⚠ **Порядок вышел ОБРАТНЫМ этой очереди:** промт дофикса требовал запуска ПОСЛЕ читающего пака, запущен был раньше. Цена перестановки, названная мной вслух 21.08 («блокер живёт всё время читающего пака»), тем самым НЕ заплачена — это лучший исход, чем планировалось; в минус — §4.7 (аддендум релеем) пуст и читающий пак пойдёт по только что переписанному коду. **ЧТО ДАЛЬШЕ С ПЛАТФОРМОЙ — решено 22.08 при актуализации доков, порядок такой.** **(1) Читающий пак P8-REVIEW** (`platform/docs/PLATFORM_P8_REVIEW_SESSION_PROMPT.md`) — следующая работа зоны, запуск по слову владельца. Промт ЖИВ и переписан 22.08 в трёх местах, которые дофикс сделал ложными: «два денежных дефекта не заведены» (заведены и закрыты — `PD-333`/`PD-334`, вместо них дан их КЛАСС и живой образец `PD-372`) · приор оси 4 «наблюдаемость без ручки» (ручка построена ⇒ вопрос стал «достаточна ли она») · абсолют «оси ни в один дифф не входили» (сужен: системного разбора не было, кусками входили). **Довод ЗА пак — базовая ставка, а не вера:** первый же серьёзный взгляд на ОДНУ из четырёх осей (очередь, 21.08) дал пред-продовый блокер, проживший два пака под статусом `fixed`. Осей осталось три, и на двух из них лежат деньги и вход. **(2) Контрактный минор 0.4.0 → 0.5.0** — МОЯ зона, идёт параллельно и зоне платформы не мешает: строки **206** (снятая ручка банка + пять мест живых схем + §2.9 и §3 компаньона) + **200** (сквозная полоса прогресса) + хвосты **203**; три правки канона в ОДНУ перегенерацию фронта, а не три. **(3) `sqlc` отдельной сессией** (решение владельца 22.08, `BACKLOG.md` П-19, граница 41 запрос в пяти файлах) — механическая работа, не мешать её с содержательной. **(4) Живой прогон книги насквозь** — строка 202, гейт прежний: ПОСЛЕ холодного прогона движка. ⚠ **На владельце и блокирует пункт своей темы:** развилка владения `book.yaml` (строка 199а, зона сдала четырьмя вариантами с ценой, рекомендация зоны C или D+B) — без неё труба доставки правок банка не строится, а верхнего края у неё теперь нет вовсе · (г) **контракт:** сквозная полоса прогресса следующим минором (строка 200, слово владельца 20.08) вместе с хвостами релеев (203) · (д) свободные бэкенд: 160 Этап 0, фикс-лист ФЧ строкой 197 (носителя-сессии нет по слову владельца); ⚠ строки 176/181/187 СНЯТЫ с таблицы при лендинге 20.08 — они закрыты ещё D39.149, а очередь всё это время звала 181 свободной работой (поймано ревью доков; остатки живут строками 194/196/197) · (е) фронтовый фрагмент pre-commit хука получает норму «жалуйся владельцу» — **решение владельца 21.08: ДА**, исполняется первым касанием зоны (пинг в её журнале). **Открытые обязательства, которых нет больше нигде:** веса `pro` — строка 172-г НЕ закрыта, прогон мерил классификатор на flash; дешёвый вход — спросить полигон, говорят ли что-то данные фазы Д (там pro гоняется редактором), отдельный замер не покупать без этого · `docs/experiments/00-provider-quirks.md` несёт протухшие цены DeepSeek («не изменились, flash $0.14/$0.28») — зона полигона, чинить пингом · санкция на платный прогон в архивном промте пака честности была РАЗОВОЙ · **норма плотности комментариев — ОТВЕЧЕНА владельцем 21.08:** режем ВОДУ, а не длину — счёт строк «пиши одну-две» негодный гейт и снят; уходит пересказ решений, провенанс и изложение исследования вместо ссылки, остаётся всё, что из одной функции не выводится, сколько бы строк ни заняло (норма переписана — `12-go-style-notes` §1; PD-255 платформы этим закрывается). ⚠ Метод-урок: её хендофф объявил «вопросов на владельце нет», а строка регистра просила именно решения — вопрос был закрыт ОБЪЯВЛЕНИЕМ, поймано ревьюером полноты выгрузки. Оркестраторов ДВА (решение владельца 07.08): этот — движок/платформа/фронт/доки; параллельный (РОЛЬЮ, без номера — счётчик один, D39.112 п.6) — приёмка полигона. Одновременно не запускаются; CURRENT-STATE ведут оба, чужие строки не трогают. Норма изоляции панелей — D39.113, гардрейлы в CLAUDE.md.) +> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-22, голова D39.155 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №19** (единственный носитель — здесь; роль передана 22.08, №18 закрыт D39.155): (а) **P7 платформы ПРИНЯТ С ФИКС-ЛИСТОМ и ЗАЛЕНДЕН, сессия закрыта владельцем 20.08** (D39.153; зонный фикс-лист из тринадцати пунктов плюс врезанный первым блокер свипа — пинг №18 в `platform/docs/platform-PROGRESS.md`; ⚠ прежний врезанный пример «первым `ContractVersion` 0.3.0 при формах 0.4.0» СНЯТ — константа поднята и запинена гейтом против канона лендингом `31f1f82`) · (а1) **контракт API v0 0.4.0 РАТИФИЦИРОВАН** (D39.152; PD-327 закрыт; зеркало фронта отстаёт ратифицированно, при разморозке `cmp`) · (б) **лендинг петель полигона (фаза Д) — ОТКРЫТ**: приёмка ФАЗЫ у параллельного оркестратора, лендинг за этим; ⚠ в дереве живая НЕЗАКОММИЧЕННАЯ работа полигона: **13 изменённых файлов (+2166/−79) и 6 новых**, состав — пинг №20 в секции «Полигон». Индекс на 22.08 ЧИСТ (`git diff-index --cached HEAD` → 0; прежняя редакция писала «частично ЗАСТЕЙДЖЕННАЯ» — испр. аудитом доков). Не трогать и не «прибирать»; сессия жива, стейдж может появиться в любой момент, поэтому форма коммита остаётся строго pathspec · (в) **дофикс-пак P8-FIX ПРИНЯТ И ЗАЛЕНДЕН 22.08** (D39.154, лендинг `31f1f82`): блокер свипа закрыт четырьмя механизмами и пере-проверен живой пробой оркестратора, деньги сошлись двумя путями из сырого леджера; мои четыре строки регистра — `PD-371`…`PD-374`. ⚠ **Порядок вышел ОБРАТНЫМ этой очереди:** промт дофикса требовал запуска ПОСЛЕ читающего пака, запущен был раньше. Цена перестановки, названная мной вслух 21.08 («блокер живёт всё время читающего пака»), тем самым НЕ заплачена — это лучший исход, чем планировалось; в минус — §4.7 (аддендум релеем) пуст и читающий пак пойдёт по только что переписанному коду. **ЧТО ДАЛЬШЕ С ПЛАТФОРМОЙ — решено 22.08 при актуализации доков, порядок такой.** **(1) Читающий пак P8-REVIEW** (`platform/docs/PLATFORM_P8_REVIEW_SESSION_PROMPT.md`) — следующая работа зоны, запуск по слову владельца. Промт ЖИВ и переписан 22.08 в трёх местах, которые дофикс сделал ложными: «два денежных дефекта не заведены» (заведены и закрыты — `PD-333`/`PD-334`, вместо них дан их КЛАСС и живой образец `PD-372`) · приор оси 4 «наблюдаемость без ручки» (ручка построена ⇒ вопрос стал «достаточна ли она») · абсолют «оси ни в один дифф не входили» (сужен: системного разбора не было, кусками входили). **Довод ЗА пак — базовая ставка, а не вера:** первый же серьёзный взгляд на ОДНУ из четырёх осей (очередь, 21.08) дал пред-продовый блокер, проживший два пака под статусом `fixed`. Осей осталось три, и на двух из них лежат деньги и вход. **(2) Контрактный минор 0.4.0 → 0.5.0** — МОЯ зона, идёт параллельно и зоне платформы не мешает: строки **206** (снятая ручка банка + пять мест живых схем + §2.9 и §3 компаньона) + **200** (сквозная полоса прогресса) + хвосты **203**; три правки канона в ОДНУ перегенерацию фронта, а не три. **(3) `sqlc` отдельной сессией** (решение владельца 22.08, `BACKLOG.md` П-19, граница 41 запрос в пяти файлах) — механическая работа, не мешать её с содержательной. **(4) Живой прогон книги насквозь** — строка 202, гейт прежний: ПОСЛЕ холодного прогона движка. ⚠ **На владельце и блокирует пункт своей темы:** развилка владения `book.yaml` (строка 199а, зона сдала четырьмя вариантами с ценой, рекомендация зоны C или D+B) — без неё труба доставки правок банка не строится, а верхнего края у неё теперь нет вовсе · (г) **контракт:** сквозная полоса прогресса следующим минором (строка 200, слово владельца 20.08) вместе с хвостами релеев (203) · (д) свободные бэкенд: 160 Этап 0, фикс-лист ФЧ строкой 197 (носителя-сессии нет по слову владельца); ⚠ строки 176/181/187 СНЯТЫ с таблицы при лендинге 20.08 — они закрыты ещё D39.149, а очередь всё это время звала 181 свободной работой (поймано ревью доков; остатки живут строками 194/196/197) · (е) фронтовый фрагмент pre-commit хука получает норму «жалуйся владельцу» — **решение владельца 21.08: ДА**, исполняется первым касанием зоны (пинг в её журнале). **Открытые обязательства, которых нет больше нигде:** веса `pro` — строка 172-г НЕ закрыта, прогон мерил классификатор на flash; дешёвый вход — спросить полигон, говорят ли что-то данные фазы Д (там pro гоняется редактором), отдельный замер не покупать без этого · `docs/experiments/00-provider-quirks.md` несёт протухшие цены DeepSeek («не изменились, flash $0.14/$0.28») — зона полигона, чинить пингом · санкция на платный прогон в архивном промте пака честности была РАЗОВОЙ · **норма плотности комментариев — ОТВЕЧЕНА владельцем 21.08:** режем ВОДУ, а не длину — счёт строк «пиши одну-две» негодный гейт и снят; уходит пересказ решений, провенанс и изложение исследования вместо ссылки, остаётся всё, что из одной функции не выводится, сколько бы строк ни заняло (норма переписана — `12-go-style-notes` §1; PD-255 платформы этим закрывается). ⚠ Метод-урок: её хендофф объявил «вопросов на владельце нет», а строка регистра просила именно решения — вопрос был закрыт ОБЪЯВЛЕНИЕМ, поймано ревьюером полноты выгрузки. Оркестраторов ДВА (решение владельца 07.08): этот — движок/платформа/фронт/доки; параллельный (РОЛЬЮ, без номера — счётчик один, D39.112 п.6) — приёмка полигона. Одновременно не запускаются; CURRENT-STATE ведут оба, чужие строки не трогают. Норма изоляции панелей — D39.113, гардрейлы в CLAUDE.md.) > - **Эра №15 закрыта — семь приёмок, все ПРИНЯТЫ и залендены**; лента, коммиты и разборы — D39.109–123 (D-лог) и реестр нот `architecture/05-decisions-index.md`; снимок прежних бюллетеней этой шапки — архив-слайс `-08-02-04`. > - **ЖИВОЕ:** полигон — **фаза Д ИДЁТ** (заказ 10.08; деньги санкционированы 15.08 напрямую полигону — ⚠ числа потолка в носителях расходятся, фактическую цепь сверить при лендинге петель; ja-книга `enkan_no_hate_ja`; при ратификации фазы Д в D-ноту: декой-правило + обязательный кросс-семейный опровергатель приёмки — одобрены 10.08; свежие фриз-коммиты полигона в дереве — НЕ трогать) · платформа и контракт — статус в строке выше, здесь НЕ дублируется (один носитель на факт) · **фронт ЗАМОРОЖЕН** (D39.136 п.2 + **D39.147: морозится ДАЛЬШЕ лендинга P7 — слово владельца 17.08; P7 зону НЕ размораживает, S5-промт не выдаётся, разморозка отдельным словом по достижении сквозного пути**; перечень первого касания зоны — синк зеркала на ТЕКУЩИЙ канон (не на «0.3.0»: канон с тех пор ушёл на 0.4.0 и уйдёт дальше строкой 200; оба минора уедут в ОДНУ перегенерацию — D39.152 п.7) + перегенерация типов + моки + гейт утечки конвейера + ФС-1..12 + Ф-63/Ф-28 + фразы В-11 по словарю кодов — не отменён, ждёт разморозки) · закрытые стройки эры — лентой нот: эмиттер D39.131 · P5/P6 D39.130/132 · migrate D39.134 · S4+0.2.3 D39.135 · DeepSeek-репин D39.137 (тела — D-лог и слайсы). > - **Открыто на владельце:** **развязка git с origin** (локальная линия ИСТИННА, force-push его рукой; не пуллить) · Приложение А контракта (148: фразы — по словарю кодов 0.3.0, структура готова) · продуктовое слово «остановлена: лимиты» (В-3) · В-4/Ф-30 (глава без заголовка — движковая половина строка 160) · мини-проба флора 44 (одобрена, промт не выдан; число — после ре-пробы 188) · подпись денежного шага 46 · лист В-3+К-6 · авто-резюм paused (вопрос платформы) · **схема time-based DeepSeek** (доклад — архив-слайс `PROGRESS-2026-08-14-15`; рекомендация: пик оставить + операционное правило «прогоны в долины», scheduler не начинать без ответа вендора об отметке тарификации) · **вход ратификации фазы Д:** посылка «dspro дешевле glm» в пике ПЕРЕВЁРНУТА (×1.26 дороже, D39.137 п.4) · **возражение Sol по проходу `tier` эксп-23** (⚠ расхождение носителей СНЯТО 22.08 срезкой: второй носитель — фраза «возражение снято, и владелец назвал причину» — уехал в слайс `archive/PROGRESS-2026-08-10-15.md` вместе с хроникой, и её довод там читается целиком: Sol судил СВОЁ семейство, что запрещено D13.3. Живым остаётся ровно этот пункт на владельце; подтвердить или снять — при лендинге петель фазы Д) · фронт-вопросы зонного журнала: В-7 (плотность; держит Ф-54) · В-8 (слово состояния в дереве) · В-9 (языки интерфейса — механизм готов, ПТ-36) · Ф-38 (вкладка «Замечания»). Закрытые пункты листа (PD-104 · В-10 · В-11-форма · Ф-56/57/61/62/63 · Ф-28 · ПТ-33-граница · 116 · 126 · 172-пин · PD-203 · санкции фазы Д · дизайн 160/161 · title) — в нотах D39.136–145, здесь не держатся. diff --git a/docs/README.md b/docs/README.md index 8f01f9b3..dcb21d19 100644 --- a/docs/README.md +++ b/docs/README.md @@ -17,7 +17,7 @@ - `research/` — фактура ресёрчей 01–28; у принятых — ревью-шапки, часть тел под ⚠ superseded: **читай баннер прежде содержимого**. Ключевые для навигации: 15 голос · 16 ридер-IDE · 17 внешняя критика · 18 рычаги качества · 19 нарезка · 20 банк-майнинг · 21 обзор транспорта · 22 доменные харнессы · 23 шов движок↔платформа (транспорт superseded D39.106) · 25 холодное ревью шва — форма D39.106, отвергнутые альтернативы, требования к эмиттеру (читать перед любым кодом стыка) · 24 арбитраж банка (ПРИНЯТ D39.102: консилиум закрыт классом, вход фикс-пака банка — §G) · 26 официальные практики Anthropic (D39.121: записка-план, сниппеты хендоффов, карта «уже делаем/перенять») · **28 контракт-ревью API v0 (ПРИНЯТ D39.138: решения владельца 16.08 — §8, состав батча 0.3.0 — §5; НОСИТЕЛЬ для исполняющих сессий, читать оригинал, не пересказ)**. - [PROGRESS.md](PROGRESS.md) — журнал: CURRENT-STATE + **ЕДИНЫЙ БЭКЛОГ** (единственный трекер) + живой хвост хроники. НЕ источник решений. - `scripts/counts.py` — **производные числа доков считаются им, а не руками** (голова по трём носителям · счёт очереди и зон · вес открытых строк регистра платформы · полнота реестра нот); `--check` даёт ненулевой код на расхождении; `--lint` — линтер file:line-якорей живых доков (D39.126). Его же зовёт зонный хук `scripts/githooks/pre-commit`: **`--lint` якорей — при коммите, задевающем ЛЮБОЙ док или `CLAUDE.md`; `--check` чисел и головы — при коммите с D-логом или PROGRESS** (оба `--from-index`, предупреждает, не блокирует; вплетение линта — ревизия D39.148). Заведено по D39.112 п.5б: голова отставала трижды у трёх разных оркестраторов. -- Активные хендофф-промты сессий (состав обновляется при каждом лендинге — норма D39.80): [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) (роль/нормы; состояния не дублирует) · **Контракт: активного промта НЕТ — канон стоит на 0.4.0, РАТИФИЦИРОВАН 20.08 (D39.152)**; батч 0.3.0 отработан целиком (D39.142+D39.143), промт в `archive/prompts/`, отчёт — `archive/reports/CONTRACT_BATCH_0.3.0_REPORT.md`; синк 0.4.0 сделан ОТДЕЛЬНОЙ контрактной сессией по записке зоны платформы (`platform/docs/archive/CONTRACT_SYNC_FROM_PLATFORM_2026-08-20.md`, разбор — §6в компаньона), следующий минор — сквозная полоса прогресса, строка 200 · **Полигон: [POLYGON_EXP2223_REDO_SESSION_PROMPT.md](POLYGON_EXP2223_REDO_SESSION_PROMPT.md)** — фаза Д доводки эксп-22/23 ИДЁТ (заказ владельца 10.08; потолки фазы поднимал владелец напрямую — числа в CURRENT-STATE; выводы 22/23 заморожены до неё), ⚠ [POLYGON_PHASE_D_HANDOFF.md](POLYGON_PHASE_D_HANDOFF.md) — СНИМОК на 15.08, перекрытый зоной: живой носитель курса фазы живёт в `eval/dovodka/` (цепь планов 16.08→22.08), какой именно — называет зона; баннер с перечнем опровержений стоит в шапке файла (22.08) · [POLYGON_PACKAGE4_SESSION_PROMPT.md](POLYGON_PACKAGE4_SESSION_PROMPT.md) (отложен). **Фронт: ЗОНА ЗАМОРОЖЕНА (D39.136 п.2)** — S4 ИСПОЛНЕН и ПРИНЯТ (D39.135, лендинг `267aa35`; контракт 0.2.3 в каноне; промт в `frontend/docs/archive/`); ⚠ **разморозка БОЛЬШЕ НЕ привязана к P7** — слово владельца 17.08 (D39.147): зона морозится дальше лендинга P7, S5-промт не выдаётся, курс — движок и платформа до «работает и отдаёт результат»; разморозка отдельным словом. Перечень первого касания (синк зеркала на ТЕКУЩИЙ канон — версия к моменту разморозки, не «0.3.0» · типы · моки · гейт утечки · ФС-1..12 · Ф-63/Ф-28 · фразы В-11 по словарю кодов; ~~В-10~~ закрыт «вежливость») не отменён, ждёт разморозки; живой smoke против дев-стенда легитимен и во фризе; фикс-лист ФС — запись приёмки 15.08 в зонном журнале · **Платформа: активный промт — [PLATFORM_P8_REVIEW_SESSION_PROMPT.md](../platform/docs/PLATFORM_P8_REVIEW_SESSION_PROMPT.md)** (read-only ревью четырёх осей: деньги и леджер · вход/сессии/CSRF · очередь и джобы · метрики; запуск по слову владельца; шапка несёт дельту после P8-FIX — ось 2 не тронута ничем, оси 1 и 4 задеты точечно). Прожито: P6 + дофикс (D39.132) · **P7 — пять актов, ПРИНЯТ С ФИКС-ЛИСТОМ, ЗАЛЕНДЕН, сессия закрыта владельцем 20.08** (D39.153) · **P8-FIX — фикс-лист P7 плюс блокер свипа, ПРИНЯТ и ЗАЛЕНДЕН 22.08** (D39.154, лендинг `31f1f82`: голодание свипа закрыто четырьмя механизмами, снят пер-термный write-путь банка). Все отработанные промты — `platform/docs/archive/`. Дальше по очереди: ревью-пак → живой прогон книги насквозь (гейт — холодный прогон движка, строка 202) · **Бэкенд: активного промта НЕТ** — пак «честные числа и статусы» ИСПОЛНЕН и ПРИНЯТ С ФИКС-ЛИСТОМ (D39.149, лендинг `f840867`; промт с баннером-исходом — `archive/prompts/BACKEND_HONESTY_PACK_SESSION_PROMPT_2026-08-17.md`); остаток — фикс-лист ФЧ-1…ФЧ-8 строкой бэклога **197**, носителя-сессии пока нет по слову владельца** (оба рубежа D39.141 закрыты: механическая сверка 11/11 блоков + ДВА прохода опровергателя другой моделью + узкая сверка вливания находок; первый проход сам принёс ошибку атрибуции — она вскрыта автором и подтверждена вторым проходом) (пак «честные числа и статусы»: строки 176 · 181 · 172-г · 187; п.5 живой вахты весов исполняется ТОЛЬКО при названной владельцем сумме) — ранее: пере-пин цен DeepSeek ИСПОЛНЕН и ПРИНЯТ (D39.137, лендинг `76049bb`; промт в `archive/prompts/`), потолки снова защищают; `tmctl migrate` — D39.134 (`d55edd4`), деплой эмиттер-бинаря разблокирован. Эмиттер шва ИСПОЛНЕН и ПРИНЯТ (D39.131, промт в архиве). Все ОТРАБОТАННЫЕ промты — в `archive/prompts/`, отчёты с ревью-шапками — в `archive/reports/`; статусы паков — CURRENT-STATE и D-лог, здесь не дублируются. Зонные журналы фронта/платформы — `frontend-PROGRESS.md` / `platform-PROGRESS.md` в их зонах (прогресс зон только там, D39.100). +- Активные хендофф-промты сессий (состав обновляется при каждом лендинге — норма D39.80): [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) (роль/нормы; состояния не дублирует; ⚠ счётчик роли — **№19** с 22.08, передача и разбор смены №18 — D39.155) · **Контракт: активного промта НЕТ — канон стоит на 0.4.0, РАТИФИЦИРОВАН 20.08 (D39.152)**; батч 0.3.0 отработан целиком (D39.142+D39.143), промт в `archive/prompts/`, отчёт — `archive/reports/CONTRACT_BATCH_0.3.0_REPORT.md`; синк 0.4.0 сделан ОТДЕЛЬНОЙ контрактной сессией по записке зоны платформы (`platform/docs/archive/CONTRACT_SYNC_FROM_PLATFORM_2026-08-20.md`, разбор — §6в компаньона), следующий минор — сквозная полоса прогресса, строка 200 · **Полигон: [POLYGON_EXP2223_REDO_SESSION_PROMPT.md](POLYGON_EXP2223_REDO_SESSION_PROMPT.md)** — фаза Д доводки эксп-22/23 ИДЁТ (заказ владельца 10.08; потолки фазы поднимал владелец напрямую — числа в CURRENT-STATE; выводы 22/23 заморожены до неё), ⚠ [POLYGON_PHASE_D_HANDOFF.md](POLYGON_PHASE_D_HANDOFF.md) — СНИМОК на 15.08, перекрытый зоной: живой носитель курса фазы живёт в `eval/dovodka/` (цепь планов 16.08→22.08), какой именно — называет зона; баннер с перечнем опровержений стоит в шапке файла (22.08) · [POLYGON_PACKAGE4_SESSION_PROMPT.md](POLYGON_PACKAGE4_SESSION_PROMPT.md) (отложен). **Фронт: ЗОНА ЗАМОРОЖЕНА (D39.136 п.2)** — S4 ИСПОЛНЕН и ПРИНЯТ (D39.135, лендинг `267aa35`; контракт 0.2.3 в каноне; промт в `frontend/docs/archive/`); ⚠ **разморозка БОЛЬШЕ НЕ привязана к P7** — слово владельца 17.08 (D39.147): зона морозится дальше лендинга P7, S5-промт не выдаётся, курс — движок и платформа до «работает и отдаёт результат»; разморозка отдельным словом. Перечень первого касания (синк зеркала на ТЕКУЩИЙ канон — версия к моменту разморозки, не «0.3.0» · типы · моки · гейт утечки · ФС-1..12 · Ф-63/Ф-28 · фразы В-11 по словарю кодов; ~~В-10~~ закрыт «вежливость») не отменён, ждёт разморозки; живой smoke против дев-стенда легитимен и во фризе; фикс-лист ФС — запись приёмки 15.08 в зонном журнале · **Платформа: активный промт — [PLATFORM_P8_REVIEW_SESSION_PROMPT.md](../platform/docs/PLATFORM_P8_REVIEW_SESSION_PROMPT.md)** (read-only ревью четырёх осей: деньги и леджер · вход/сессии/CSRF · очередь и джобы · метрики; запуск по слову владельца; шапка несёт дельту после P8-FIX — ось 2 не тронута ничем, оси 1 и 4 задеты точечно). Прожито: P6 + дофикс (D39.132) · **P7 — пять актов, ПРИНЯТ С ФИКС-ЛИСТОМ, ЗАЛЕНДЕН, сессия закрыта владельцем 20.08** (D39.153) · **P8-FIX — фикс-лист P7 плюс блокер свипа, ПРИНЯТ и ЗАЛЕНДЕН 22.08** (D39.154, лендинг `31f1f82`: голодание свипа закрыто четырьмя механизмами, снят пер-термный write-путь банка). Все отработанные промты — `platform/docs/archive/`. Дальше по очереди: ревью-пак → живой прогон книги насквозь (гейт — холодный прогон движка, строка 202) · **Бэкенд: активного промта НЕТ** — пак «честные числа и статусы» ИСПОЛНЕН и ПРИНЯТ С ФИКС-ЛИСТОМ (D39.149, лендинг `f840867`; промт с баннером-исходом — `archive/prompts/BACKEND_HONESTY_PACK_SESSION_PROMPT_2026-08-17.md`); остаток — фикс-лист ФЧ-1…ФЧ-8 строкой бэклога **197**, носителя-сессии пока нет по слову владельца** (оба рубежа D39.141 закрыты: механическая сверка 11/11 блоков + ДВА прохода опровергателя другой моделью + узкая сверка вливания находок; первый проход сам принёс ошибку атрибуции — она вскрыта автором и подтверждена вторым проходом) (пак «честные числа и статусы»: строки 176 · 181 · 172-г · 187; п.5 живой вахты весов исполняется ТОЛЬКО при названной владельцем сумме) — ранее: пере-пин цен DeepSeek ИСПОЛНЕН и ПРИНЯТ (D39.137, лендинг `76049bb`; промт в `archive/prompts/`), потолки снова защищают; `tmctl migrate` — D39.134 (`d55edd4`), деплой эмиттер-бинаря разблокирован. Эмиттер шва ИСПОЛНЕН и ПРИНЯТ (D39.131, промт в архиве). Все ОТРАБОТАННЫЕ промты — в `archive/prompts/`, отчёты с ревью-шапками — в `archive/reports/`; статусы паков — CURRENT-STATE и D-лог, здесь не дублируются. Зонные журналы фронта/платформы — `frontend-PROGRESS.md` / `platform-PROGRESS.md` в их зонах (прогресс зон только там, D39.100). - Зоны фронта (чужие, читать при касании стыка; каждая ведёт СВОЙ зонный бэклог — единый бэклог их строк не принимает, D39.84): [../frontend/](../frontend/) — веб-интерфейс: промт фронт-сессий S0–S7 + [STACK_DECISIONS.md](../frontend/docs/STACK_DECISIONS.md) (пины версий точными числами и ловушки, сверены с вебом 02.08) + [BACKLOG.md](../frontend/docs/BACKLOG.md) · [../platform/](../platform/) — SaaS control plane: README + [BACKLOG.md](../platform/BACKLOG.md) (П-1..П-21) + `docs/` (зонный журнал `platform-PROGRESS.md` · регистр дефектов · `STACK_DECISIONS.md` с рецептом стенда и инвентарём каналов шва · архив промтов P0–P8). - `archive/` — история ([правила архива](archive/README.md)): закрытые промты (`prompts/`) · отчёты с ревью-шапками (`reports/` — на них ссылаются приёмки) · исполненные арх-доки (`architecture/`) · слайсы хроники `PROGRESS-*.md`. Инструкции оттуда не исполнять. - Диаграммы: [../backend/docs/components.puml](../backend/docs/components.puml) · [../backend/docs/pipeline.puml](../backend/docs/pipeline.puml) — дом рядом с кодом (D39.80), правятся бэкендом одним коммитом с кодом; вручную НЕ рендерить (владелец смотрит PlantUML-расширением VS Code). diff --git a/docs/architecture/05-decisions-index.md b/docs/architecture/05-decisions-index.md index d6bd4aef..7d287334 100644 --- a/docs/architecture/05-decisions-index.md +++ b/docs/architecture/05-decisions-index.md @@ -1,4 +1,4 @@ -# Реестр D-нот — карта актуальности v2 (D1–D39.154; +# Реестр D-нот — карта актуальности v2 (D1–D39.155; > ⚠ **ЗНАЙ СЛАБОЕ МЕСТО ЭТОГО ФАЙЛА (вписано 22.08 аудитом доков).** Реестр продан как «статус и тело > ЛЮБОГО номера одним хопом» (D39.126) — и колонка ТЕЛА у нот D39.107…D39.123 говорит «жив», хотя @@ -215,3 +215,4 @@ | D39.152 | 20.08 | Контракт API v0 **0.4.0 РАТИФИЦИРОВАН** (синк с платформой по её записке, 14 пунктов A–N; author≠ratifier соблюдён контрактной сессией; условие закрытия PD-327 наступило; ⚠ хвост «строка регистра ждёт правки зоной» ЗАКРЫТ паком P8-FIX 22.08 — `PD-327` стоит `fixed`, константа версии поднята и запинена гейтом против канона); рубеж исполнен ревьюером другой модели (чтение обеих версий целиком, «ратифицировать с правками», корневой enum 16 значений не тронут); четыре текстовые правки внесены оркестратором при ратификации (сеттер `stop_requested` в `stopRun` · стухшая фраза компаньона §6в A против его же аддендума · «cleared by УСПЕШНЫЙ resume» · приписка третьего случая к таблице резюма); пункт G («сделано» = последний проход этого деплоя) ратифицирован как шаг-независимый — рамка снята владельцем 20.08 требованием, чтобы форма пайплайна не была видна клиенту; ⚠ клейм зоны «ломающая правка одна» верен для диффа ТИПОВ и неточен поведенчески — против 0.3.0 расходятся ЧЕТЫРЕ места; оговорка про пер-термные решения расширена с `decline` на всю ручку (временная, снимается строкой 199а); следующий минор (сквозная полоса, 200) не втиснут — пока фронт заморожен, миноры бесплатны | ЖИВОЕ: канон 0.4.0 | жив | контракт платформа фронт владелец | | D39.153 | 20.08 | Приёмка и лендинг P7 платформы (пять актов, читающая поверхность): **ПРИНЯТ С ФИКС-ЛИСТОМ**; шесть линз в изоляции + пере-раны и 8 собственных посадок оркестратора (поймано 7); батарея 18 пакетов EXIT=0 скипов 0, реестр 327/65 открытых без major, тестов 532 (не 533), семь удалённых имён имеют преемников; замер разворота 00016→00022 пере-выведен независимо (джойн 14.6 · счётчик 5.3 · без счётчика 2.9 мс) — разворот законен, но процент назван тремя носителями по-разному; НЕ поймана дыра: снятие `structure_version`/`revision` из `emitFrame` проходит всю батарею; ратифицированы долг-с-арендой на материализацию (§33/§34), `edit_wave` как монотонное свойство КНИГИ от объявления движка (§35), владелец клейма идемпотентности + тождество дайджестом, halt с аккаунта, счётчик замечаний на главе, демонтаж гейта полноты банка; новые строки 198–203; решения владельца — sqlc берём (+ разбор собранных запросов Postgres'ом, которого в предложении зоны не было), живой прогон ПОСЛЕ холодного, сквозная полоса прогресса; ⚠ эррата к D39.144 п.2 (пер-термная формула рождена в ДВИЖКЕ 19.07 как лечение ливлока, контрактная линия изобрела из неё ГЕЙТ 04.08); `ContractVersion` оркестратором НЕ правился — первый пункт зонного фикс-листа | ЖИВОЕ (испр. 22.08): фикс-лист ОТРАБОТАН паком P8-FIX (D39.154), живыми из строк 198–203 остались 198 · 199 · 200 · 202 · 203 | жив | платформа приёмка контракт шов деньги | | D39.154 | 22.08 | Приёмка и лендинг P8-FIX платформы (фикс-лист приёмки P7 + врезанный первым блокер свипа): **ПРИНЯТ**; `PD-169` — единственная строка регистра, солгавшая ДВУМ приёмкам, — закрыт четырьмя механизмами (разделение прохода на фазы · отсрочка с бэкоффом на выбравший бюджет прогон · порог `StalledAfter` с гейджем и `runs --stalled` · терминальный вердикт оператора `run abandon`), оба числа стали ручками и `RunBudget` присвоен впервые; вся цепь пере-проверена ЖИВОЙ пробой оркестратора (`FAILS 6` → гейдж 1 → `--stalled` с настоящей ошибкой движка), деньги двумя путями из сырого леджера сошлись до цента и холд вернулся целиком; батарея 18 пакетов EXIT=0, линтер 0 issues, тестов 561 против 532; ⚠ «скипов 0» НЕ воспроизведён — третий, неназванный гейт батареи (менеджер systemd), `PD-374`; одиннадцать собственных посадок мутаций, убито восемь, выжили три и различены руками: `StalledAfter` законно (носитель один), `maxAttempts` — `PD-373` (второй носитель прозой в рантбуке), `truncateReason` в `DeferRun` — `PD-372` (пин на функции, ни один из четырёх вызовов не проверен); находка вне карты `PD-371` (исключение «стоп перевешивает отсрочку» без границы, измерено живьём); ⚠ объявлена ОШИБКА харнесса приёмки — две посадки дали ложное «выжила» из-за не того пакета; спил пер-термной подписи банка принят, пол поверхности 15→14 сдвинут явно и гейт СРАБОТАЛ; `PD-370` уезжает открытым мажором (контрактная половина — ломающий минор 0.4.0→0.5.0); порядок паков вышел ОБРАТНЫМ очереди — названная цена перестановки НЕ заплачена, зато §4.7 релея пуст | ЖИВОЕ: `PD-370`/`PD-371`/`PD-372`/`PD-373`/`PD-374`; строка 199(а) ждёт ратификации; читающий пак не запускался | жив | платформа приёмка свип деньги мутации | +| D39.155 | 22.08 | Сквозная актуализация доков по многоагентному аудиту (14 линз + опровергатель на каждую находку, 180 агентов; 132 находки, 30 опровергнуто) + **передача роли №18 → №19**. Срезано: `PROGRESS.md` 471→291, зонный журнал платформы 897→239 (слайсы `PROGRESS-2026-08-17`, `-08-10-15`, `platform-PROGRESS-P8`); перед срезом вынесены носители — инвентарь каналов шва в `STACK_DECISIONS` (и там ПОЛНЕЕ: дописан канал текста `tmctl export --pairs`). Ложь, которую читала каждая сессия: `12-go-style-notes` §0 п.4 предписывал снятый ключ `prompts:`, на котором движок НЕ поднимется; таблица §3 компаньона объявляла не построенными шесть работающих поверхностей. Новые строки 206–210; **210 — род не производится авто-путём вовсе** (доставка построена, данных нет: терминолог возвращает три поля без рода, майнер берёт `gender` только из сида) + `gates.voice` нет ни в одном шиппинг-конфиге. ⚠ **СНЯТА ратификация 203(з)/191(б):** гейт движка проверяет полноту ФАЙЛА решений, а не подписей, один файл его снимает — конфликта с моделью «один ОК» нет, обход был костылём под отсутствующую доставку; единственный блокер темы — владение `book.yaml` (199а). Контрактный батч разделён по БЛОКЕРАМ: 0.5.0 гигиена сейчас, 0.6.0 ручка+прогресс после ратификаций. sqlc: гейт SQL съел бо́льшую часть ценности (162 оператора против 41), остаток — арность `Scan` на двух запросах. Названы пять собственных ошибок №18, все в ПРОЗЕ О ФАКТАХ | ЖИВОЕ: строки 199а · 206 · 208 · 210 · 172-г — на владельце; читающий пак платформы выдан и не запускался | жив | доки приёмка банк контракт передача-роли | diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index 1aa86fe3..fd736451 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -1,4 +1,4 @@ -# Журнал решений оркестратора — контракт D1–D39.154 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`) +# Журнал решений оркестратора — контракт D1–D39.155 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`) > **⟶ КАРТА АКТУАЛЬНОСТИ (ревизия D31, продлена до D38.2 [12.07]; исторические записи ниже НЕ переписываются — дисциплина D23.3).** Работая с контрактом (греп номера: живой файл → слайсы, целиком НЕ читать — D39.125), держи под рукой, что чем перекрыто: > ⚠ **Эррата 09.08 (D39.125):** D39.111 п.1 предписывал промту S3 «максимум = баланс МИНУС открытые холды» — формула ОШИБОЧНА (вычитание дважды), исправлена D39.115 п.2(а): максимум = Balance КАК ЕСТЬ; тело D39.111 живёт ниже в этом файле (голова D39.106+). @@ -606,3 +606,29 @@ **10. Что зона сдала вопросами, а не решениями, и это засчитано.** Строка 199(а): развилка владения `book.yaml` не решалась, сдана четырьмя вариантами с ценой — ждёт ратификации. `PD-367` (пол интейка односторонний: манифест с пустым списком глав материализатор отвергает, а интейк заводит книгу, по которой можно СТАРТОВАТЬ и ОПЛАТИТЬ прогон) — лекарство ломает запиненный контракт интейка, нужно решение. `PD-368` (когерентность пары бюджетов) · `PD-369` (`ClaimIdempotency` отдаёт 500 под конкуренцией, файл вне диффа пака). П-19 (sqlc) — отдельной сессией по слову владельца 22.08; вместо него построен гейт, который планирует КАЖДЫЙ собранный запрос против мигрированной схемы, и это лучше sqlc ровно там, где зону дважды укусило: sqlc видит только целиком-литеральный SQL, а оба рантайм-падения были в запросах, собранных из фрагментов. **11. Что НЕ проверено (obstacle приёмки).** Сквозного живого перевода по-прежнему не было — строка 202 гейчена холодным прогоном движка. `PD-297` зона не мерила осознанно (нужен корпусный текст). Четыре оси читающего пака по-прежнему не смотрел никто. Мою живую пробу я вёл на хосте без systemd-шины, поэтому путь «юнит поднялся и живёт» в ней не участвовал — он покрыт батареей там, где менеджер есть. (22.08.2026, оркестратор №18) ✅ + +## D39.155 — СКВОЗНАЯ АКТУАЛИЗАЦИЯ ДОКУМЕНТАЦИИ ПО МНОГОАГЕНТНОМУ АУДИТУ + ПЕРЕДАЧА РОЛИ №18 → №19 (заказ владельца 22.08: «актуализировать, лишнее в архив, дампнуть нюансы без воды, подрезать логи, доактуализировать бэклог»): 14 линз × опровергатель на находку, 132 находки, 30 опровергнуто; журналы срезаны 471→291 и 897→239; заведены строки 206–210; СНЯТА ратификация, которой не требовалось. ✅ + +**1. Метод и его цена.** Аудит доков — воркфлоу 180 агентов (14 линз по областям + опровергатель на КАЖДУЮ находку + синтез), 12.7M токенов, 56 минут. Трассировка цепи банка — второй воркфлоу, 6 линз, остановлен владельцем на опровергателях по токенам (успело 38 вердиктов из ~72, все шесть линз вернулись). **Опровергатели окупились: 30 находок из 132 убиты**, в том числе три, где линза читала заголовок вместо тела, и одна, где «протухшая цифра» стояла с верной оговоркой. Норма, которую это подтверждает: панель без опровергателя даёт список правок, а не список ИСТИН. + +**2. Что срезано и куда.** `docs/PROGRESS.md` 471 → 291 строк: закрытая бэкенд-хроника пака честности → `archive/PROGRESS-2026-08-17.md`; две хроники полигона (10.08 и 15.08) → `archive/PROGRESS-2026-08-10-15.md` с тремя поправками в шапке (потолок фазы — снимок, а не цепь; два пункта листа владельца закрыты; «долги» протухли). Зонный журнал платформы 897 → 239: эра P8-FIX → `archive/platform-PROGRESS-P8.md`, остаток актов P7 дослан в свой слайс — заголовок «эра P7 в архиве» стоял, а ~185 строк лежали в живом файле. + +**3. Что вынесено ПЕРЕД архивацией (норма «сперва носитель, потом срез»).** Инвентарь каналов шва с движком → `platform/docs/STACK_DECISIONS.md`, и там он ПОЛНЕЕ оригинала: аудит нашёл, что в исходной таблице пропущен `tmctl export --json --pairs` — единственный канал, несущий ТЕКСТ пары. Развилка владения `book.yaml` → строка 199(а) · разбор канона → 206 · граница sqlc → П-19 · ловушка `.check.log` и третий гейт батареи → PD-374. + +**4. Ложь, которую читала КАЖДАЯ сессия.** `12-go-style-notes` §0 п.4 предписывал привязку промптов ключом `prompts: {<пара>: файл}` — такого ключа нет, форма снята паком-15, а конфиг с ним ОТВЕРГАЕТСЯ загрузкой (`config.TestRetiredPromptKeysAreRejected`). То есть норматив, обязательный к чтению бэкенд-сессией, предписывал форму, на которой движок не поднимется. Рядом: `docs/README.md` звал у платформы «активного промта НЕТ», когда промт был; таблица §3 компаньона контракта — единственный носитель статуса построенного — объявляла НЕ ПОСТРОЕННЫМИ шесть поверхностей, работающих в деплое (носитель «вход P7» никто не гасил при лендинге, правило нарушено пятый раз подряд). + +**5. Найдено вне заказа и записано строками.** **210** — род НЕ ПРОИЗВОДИТСЯ авто-путём вовсе: доставка построена (`genderConstraintNote`, confirmed-only, директива D39.21 «род должен доезжать»), а данных ей никто не даёт — промпт терминолога возвращает ровно три поля без рода, майнер берёт `gender` только из сида ⇒ на книге без ручного сида ось рода мертва по построению; реестр памяти зовёт это «жалобой №1 читателей MTL». Тем же касанием: `gates.voice` не встречается НИ В ОДНОМ шиппинг-конфиге — прогон с редактурой осей голоса не посчитает, пока гейт не включён. **208** — эскалация на Gemini молча теряет инъекцию банка (пинг полигона, пере-проверен кодом). **209** — риг живых проб не может залогировать тела ни при каких env. + +**6. СНЯТА ратификация, которой не требовалось (и это исправление МОЕЙ ошибки причинности).** Строки 203(з)/191(б) я нёс как «D39.144 говорит один ОК, движок держит пер-термный гейт, одно из двух должно уступить — ратификация владельца». Опровергнуто кодом: гейт проверяет полноту не ПОДПИСЕЙ, а ФАЙЛА решений, и ОДИН файл его снимает — `loadMinedDelta` штампует только `Source`, опущенный статус дефолтится в `approved` (`membank/memseed.go:71-74`), `unsignedEngineSurfaces` выбрасывает лишь `Source=="mined" && Status!="approved"` ⇒ промоутнутые строки остаются сид-поверхностями, дельта пустеет. Обход в платформе — костыль под ОТСУТСТВУЮЩУЮ ДОСТАВКУ, а не под конфликт моделей. Единственный живой блокер темы — владение `book.yaml` (199а). **Урок метода: «два дока противоречат» ≠ «нужна ратификация»; сперва трассируй МЕХАНИЗМ, потом объявляй развилку.** + +**7. Три мины формата `mined_delta`, которые обязана знать сессия трубы** (сверено кодом, ни одной не было в докax): копи-паст карты подписи НЕ работает — карта пишется вся со `Status:"auto"`, и это запинено, а `auto` фильтруется как неподписанный ⇒ бесконечная петля; терм БЕЗ `dst` промотить нельзя вовсе — approved с пустым `dst` роняет загрузку сида и срывает прогон, для WHICH-only термов единственный очищающий глагол это ОТКАЗ; хвост реверс-секции ломает «один ОК» на больших книгах — кап 200 режет ПОСЛЕ фильтров, при >200 banknote-поверхностей нужно ceil(N/200) актов. + +**8. Контрактный батч РАЗДЕЛЁН, и довод, которым я его склеивал, снят.** Я вёз 206+200+203 одним минором «ради одной перегенерации фронта вместо трёх». Довод почти ничего не весит: зеркало фронта ратифицированно стоит на 0.2.3 и при разморозке платит переход одним куском в любом случае. А блокеры разные, и склейка подчиняла незаблокированное заблокированному: гигиена 206 не заблокирована ничем, ручка правки термина ждёт ратификации 199(а), строка 200 ждёт ответа ДВИЖКА про знаменатель майнинга. **0.5.0 — только гигиена, сейчас; 0.6.0 — ручка, прогресс и хвосты, после ратификаций.** + +**9. Ответ по sqlc (вопрос владельца).** Граница П-19 сходится точно (41 запрос, пере-считано), но описана оптимистичнее: набор НЕ замкнут по транзакции (8 из 41 идут из транзакций неконвертируемого кода), а «11 денежных запросов в чужой транзакции» занижено вдвое — их 20. Главное: **гейт `TestEverySQLStatementParsesAgainstTheMigratedSchema` съел бо́льшую часть ценности** — он закрывает класс «нет такой колонки» для всех 162 операторов, включая 121, куда sqlc не дойдёт никогда и где случились оба реальных падения зоны. Остаётся арность `$n` и целей `Scan`: два запроса из 41 не исполняются ничем, закрывается поведенческим тестом. Рекомендация №18: брать, когда что-то другое заставит тронуть эти пять файлов; решение за владельцем, он сказал «БЕРЁМ». + +**10. Мои ошибки этой смены, названные полностью.** (а) Число отпечатков миграций «41» написано из головы — их 25, поймал аудит. (б) Баннер в промте читающего пака утверждал «оси 1, 2 и 4 не тронуты» — тронуты 1 и 4, поймал аудит через час после моей записи. (в) «Добавить новый термин работает» — верно лишь в неважной половине: движок файл примет, но mined-строки исключены из БАЗОВОГО банка, значит термин доедет до редактора и НИКОГДА до черновика. (г) Причинность 203(з), п. 6 выше. (д) Довод склейки контрактного батча, п. 8. **Общее у всех пяти: ни одна не в коде, все в ПРОЗЕ О ФАКТАХ — той единственной среде, где утверждение не опровергнет ни компилятор, ни тест, ни гейт (диагноз D39.153 §9(з) подтверждён на мне ещё раз).** + +**11. Что ловило меня лучше, чем я сам** — новому №19 стоит на это опереться: гейт токенов якорей поймал четыре мёртвых ссылки, три из них сломала МОЯ ЖЕ архивация · `counts.py --check` держал числа очереди при каждом касании · опровергатель-субагент убил 30 находок из 132 и две мои собственные формулировки. Норма отсюда: **посадка мутации обязана называть пакет, где ищется ПИН, а не где лежит правка** — две мои посадки дали ложное «выжила» из-за этого, и необъявленная ошибка харнесса приёмки опаснее пропущенной, потому что выглядит как результат. + +**12. Передача.** Счётчик роли бампнут **№18 → №19** (D39.112 п.6). Очередь, порядок работ по платформе и все блокеры — CURRENT-STATE. На владельце к моменту передачи: развилка владения `book.yaml` (199а) · веса `pro` (172-г, дешёвый вход — вендор-сверка, полигон только что делал такую по Gemini) · санкция на первый прогон с редакторской волной. (22.08.2026, оркестратор №18) ✅