From 15f64e6754d61277bd93940c592e93d72b6fda8f Mon Sep 17 00:00:00 2001 From: heaven Date: Sun, 23 Aug 2026 01:42:10 +0300 Subject: [PATCH] Ratify the inbound-door law as D39.156 on the owner's word, dissolve the book.yaml fork, and erratum the research line that named a mechanism its carrier never held --- docs/PROGRESS.md | 4 ++-- docs/README.md | 2 +- docs/architecture/05-decisions-index.md | 3 ++- docs/architecture/05-decisions-log.md | 18 +++++++++++++++++- docs/architecture/17-seam-inbound-law.md | 5 ++--- docs/research/25-seam-cold-review.md | 8 ++++++++ 6 files changed, 32 insertions(+), 8 deletions(-) diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 8bbadca0..338495df 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -1,9 +1,9 @@ # Журнал прогресса -> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 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) Контрактный минор — ПЕРЕ-ПЛАНИРОВАН 23.08 консилиумом шва, прежняя редакция этого пункта СНЯТА.** Было: «0.5.0 — гигиена сейчас, строки 206+200+203, три правки канона в ОДНУ перегенерацию». Стало: **гигиена ДЕРЖИТСЯ до ратификации нормы шва** (`architecture/17-seam-inbound-law.md`, ПРЕДЛОЖЕНО — не норма до слова владельца), потому что состав 206 сносит `POST /books/{bookId}/bank/decisions`, а новая архитектура требует дверь приёма правок банка ВЕРНУТЬ — снести сейчас и завести в следующем миноре значит заплатить фронту ДВЕ перегенерации вместо одной. После ратификации — ОДИН минор: снос отменённой пер-термной модели + новая ручка, тело которой выводится из словаря движкового глагола, а не сочиняется до него. ⚠ Фолбэк объявлен: если ратификация застрянет дольше гигиенического окна — шипить гигиену отдельно, она ждать бесконечно не должна. **(3) `sqlc` отдельной сессией** (решение владельца 22.08, `BACKLOG.md` П-19, граница 41 запрос в пяти файлах) — механическая работа, не мешать её с содержательной. **(4) Живой прогон книги насквозь** — строка 202, гейт прежний: ПОСЛЕ холодного прогона движка. ⚠ **На владельце и блокирует пункт своей темы:** развилка владения `book.yaml` (строка 199а, зона сдала четырьмя вариантами с ценой, рекомендация зоны C или D+B) — без неё труба доставки правок банка не строится, а верхнего края у неё теперь нет вовсе · (г) **контракт:** сквозная полоса прогресса (строка 200, слово владельца 20.08) и хвосты релеев (203) едут тем же минором, что и дверь приёма правок банка — состав собирается ПОСЛЕ ратификации нормы шва, см. пункт (2) · (д) свободные бэкенд: 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.156 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и 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) Контрактный минор — ПЕРЕ-ПЛАНИРОВАН 23.08 консилиумом шва, прежняя редакция этого пункта СНЯТА.** Было: «0.5.0 — гигиена сейчас, строки 206+200+203, три правки канона в ОДНУ перегенерацию». Стало: **гигиена ДЕРЖИТСЯ до ратификации нормы шва** (`architecture/17-seam-inbound-law.md`, РАТИФИЦИРОВАНА D39.156), потому что состав 206 сносит `POST /books/{bookId}/bank/decisions`, а новая архитектура требует дверь приёма правок банка ВЕРНУТЬ — снести сейчас и завести в следующем миноре значит заплатить фронту ДВЕ перегенерации вместо одной. После ратификации — ОДИН минор: снос отменённой пер-термной модели + новая ручка, тело которой выводится из словаря движкового глагола, а не сочиняется до него. ⚠ Фолбэк объявлен: если ратификация застрянет дольше гигиенического окна — шипить гигиену отдельно, она ждать бесконечно не должна. **(3) `sqlc` отдельной сессией** (решение владельца 22.08, `BACKLOG.md` П-19, граница 41 запрос в пяти файлах) — механическая работа, не мешать её с содержательной. **(4) Живой прогон книги насквозь** — строка 202, гейт прежний: ПОСЛЕ холодного прогона движка. ⚠ **На владельце и блокирует пункт своей темы:** развилка владения `book.yaml` (строка 199а, зона сдала четырьмя вариантами с ценой, рекомендация зоны C или D+B) — без неё труба доставки правок банка не строится, а верхнего края у неё теперь нет вовсе · (г) **контракт:** сквозная полоса прогресса (строка 200, слово владельца 20.08) и хвосты релеев (203) едут тем же минором, что и дверь приёма правок банка — состав собирается ПОСЛЕ ратификации нормы шва, см. пункт (2) · (д) свободные бэкенд: 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-лог и слайсы). -> - **Открыто на владельце:** **РАТИФИКАЦИЯ НОРМЫ ВХОДНОЙ ДВЕРИ ШВА** (`architecture/17-seam-inbound-law.md` — семь правил, собраны консилиумом 22–23.08; статус ПРЕДЛОЖЕНО). Одна реплика: ратифицируем ДИСЦИПЛИНУ, а не каталог команд — дальше двери встают паками без возврата к владельцу, как код выхода 13 встал в ратифицированную полосу. Ею же РАСТВОРЯЕТСЯ развилка 199(а): ключей никто не объявляет, файлов заранее никто не создаёт. Блокирует состав контрактного минора и оба паковых промта · **развязка 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, здесь не держатся. +> - **Открыто на владельце:** **развязка 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, здесь не держатся. > - **Сделано (сводно)** — снимок ленты закрытых эр в [archive/PROGRESS-2026-08-04-09.md](archive/PROGRESS-2026-08-04-09.md); детали — D-лог и слайсы. > - **Курс:** ОБЩНОСТЬ ✅ → КАЧЕСТВО БАНКА ✅ → ПАКЕТ-ЧЕКЕРОВ ✅ (D39.59–78) → **ФРОНТ-ЭРА** (D39.81–100: зоны живые, контракт API ратифицирован) → **шов/платформа/движковые блокеры построены** (D39.106–123). Хвосты курса живут строками: 16 (полная цена холодного старта не измерена: у `coldrun-a`/`coldrun-b` нет НИ ОДНОГО редакторского вызова, хотя сама edit-волна отработала и оплачена — 58 вызовов волновым драйвером 23–25.07 на малых прогонах, плюс 648 до драйвера; ⚠ прежняя редакция писала «не гонялась НИ РАЗУ» — абсолют ложен, испр. оркестратором №19 по леджерам `~/books/gu-zhenren/**/*.db`; держит и оси голоса 13б/24) · 46 (дизайн заморожен D39.92/93, промт ждёт выдачи) · coldrun-b фаза C заморожена чекпойнтом легитимно (D39.86; эталон денег/поведения — coldrun-a, read-only); развилка 0731 решена и исполнена (D39.87/91, код `553f1a3`). > - **Горизонт (D39.62/67, освежён D39.95):** **ДОБОР ИДЕАЛА** (первым прогоном: оси голоса 24 · авто-режим · цена 16; жильцы ролей решаются ДО прогона эксп-22 — строка 149 · веса K1–K12 13а · вне-претрейн чекпоинт 55; остаток арбитража банка = рецензент спорных кластеров при ре-пробе 74 — D39.102) → ВТОРАЯ ПАРА живьём (ja→ru; преп 81) → МАСШТАБ → пилот Ф2.5 (гейт резюме-строки 80; строки 62–68, 85) → Ф3 ридер-IDE (69–71). **Стоячие:** ToS-триггер 25.10 · Ш-2 до go1.27 (⚠ + x/text Unicode 17 тем же тулчейном — строка 119, реестр §Б-108 справочника якорей) · платные прогоны разблокированы (проба провода — D39.97, конфиги 112 залендены). diff --git a/docs/README.md b/docs/README.md index 663805c8..132e8536 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,7 +11,7 @@ - `architecture/` — синтез и контракты: - [05-decisions-log.md](architecture/05-decisions-log.md) — **источник истины по решениям**. Живой файл после диеты D39.125 и подрезки D39.139: карта + эрраты + живые тела + голова D39.124+; тела закрытых эр — слайсы `archive/architecture/05-decisions-*.md`. Грепай номер сначала в живом, затем в слайсах (тело ноты = строка `^## D<номер>`, прочие хиты — упоминания); целиком не читать. **Статус/суть/тело ЛЮБОГО номера одним хопом — реестр [05-decisions-index.md](architecture/05-decisions-index.md)** (все ноты, колонка тем для грепа «какой закон по X»; D39.126). - [09-target-architecture.md](architecture/09-target-architecture.md) — целевая 7-слойная архитектура (статус стройки — шапка-таблица; §3 — карта находок H/L) · [10-prompt-architecture.md](architecture/10-prompt-architecture.md) — промпт-слой · [12-go-style-notes.md](architecture/12-go-style-notes.md) — норматив общности §0 · [13-tech-debt-anchors.md](architecture/13-tech-debt-anchors.md) — якоря техдолга + археология выселенных строк бэклога §Б-* (справочник к бэклогу, НЕ трекер) · [14-api-contract/](architecture/14-api-contract/) — **контракт API v0 фронт↔платформа (D39.99)**: нормативная спека OpenAPI 3.1 (типы фронта генерятся из неё) + компаньон-README (провенанс ✓/◆/○, К-вопросы; зонная копия `frontend/docs/api-contract/` — байт-зеркало, сверять при лендинге). - - Топикальные входы (D39.126; НЕ источники истины, при конфликте побеждает D-лог): [15-money-path.md](architecture/15-money-path.md) — деньги от гранта до settle одним маршрутом · [16-events-emitter.md](architecture/16-events-emitter.md) — сборка-норматив эмиттера шва (обязательное пре-чтение сессии строки 103) · **[17-seam-inbound-law.md](architecture/17-seam-inbound-law.md) — закон ВХОДНОЙ двери шва движок↔платформа (⚠ ПРЕДЛОЖЕНО, НЕ РАТИФИЦИРОВАНО: до слова владельца это записка, ссылаться как на норму нельзя; исходящее направление ратифицировано, входное — нет)** · [STACK.md](STACK.md) — карта «роль → модель → конфиг → квирки». + - Топикальные входы (D39.126; НЕ источники истины, при конфликте побеждает D-лог): [15-money-path.md](architecture/15-money-path.md) — деньги от гранта до settle одним маршрутом · [16-events-emitter.md](architecture/16-events-emitter.md) — сборка-норматив эмиттера шва (обязательное пре-чтение сессии строки 103) · **[17-seam-inbound-law.md](architecture/17-seam-inbound-law.md) — закон ВХОДНОЙ двери шва движок↔платформа — РАТИФИЦИРОВАН D39.156 (23.08): семь пунктов дисциплины, двери встают паками без нового решения владельца** · [STACK.md](STACK.md) — карта «роль → модель → конфиг → квирки». - Исторические, читать через ⚠-баннеры: [01-decisions.md](architecture/01-decisions.md) (Р1–Р10) · [02-mvp-plan.md](architecture/02-mvp-plan.md) · [03-implementation-notes.md](architecture/03-implementation-notes.md) · [04-unhappy-paths.md](architecture/04-unhappy-paths.md) · [06-memory-risk-registry.md](architecture/06-memory-risk-registry.md). - `experiments/` — эмпирика полигона: [00-provider-quirks.md](experiments/00-provider-quirks.md) — **читать перед любым вызовом провайдера**; [08-cost-model-v2.md](experiments/08-cost-model-v2.md) — денежная модель; [09-pilot-protocol.md](experiments/09-pilot-protocol.md) — пилот Ф2.5; остальные 01–21 — отчёты ЗАКРЫТЫХ экспериментов (21 принят D39.117); ⚠ 22/23 — залендены с ревью-шапками приёмки №16 (10.08), НЕ ратифицированы: выводы заморожены до фазы Д (шапка первична; 18–20 — с ревью-шапками приёмки D39.108). - `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; НОСИТЕЛЬ для исполняющих сессий, читать оригинал, не пересказ)**. diff --git a/docs/architecture/05-decisions-index.md b/docs/architecture/05-decisions-index.md index 7d287334..38bae9c0 100644 --- a/docs/architecture/05-decisions-index.md +++ b/docs/architecture/05-decisions-index.md @@ -1,4 +1,4 @@ -# Реестр D-нот — карта актуальности v2 (D1–D39.155; +# Реестр D-нот — карта актуальности v2 (D1–D39.156; > ⚠ **ЗНАЙ СЛАБОЕ МЕСТО ЭТОГО ФАЙЛА (вписано 22.08 аудитом доков).** Реестр продан как «статус и тело > ЛЮБОГО номера одним хопом» (D39.126) — и колонка ТЕЛА у нот D39.107…D39.123 говорит «жив», хотя @@ -216,3 +216,4 @@ | 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-г — на владельце; читающий пак платформы выдан и не запускался | жив | доки приёмка банк контракт передача-роли | +| D39.156 | 23.08 | **Ратифицирован закон входной двери шва движок↔платформа** — дисциплина из семи пунктов (`17-seam-inbound-law.md`), не каталог команд: двери встают паками без нового решения владельца. Развилка 199(а) РАСТВОРЕНА (конвенционные дефолты путей + движковый глагол-писатель), три выноса по требованию ревьюера (форма Б · фикс-имена шва · отказ лока ровно классом 12), эррата к `research/25`. Заведены строки 211–213, закрыта слепота гейта якорей | жив | живой файл | diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index fd736451..51644d32 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -1,4 +1,4 @@ -# Журнал решений оркестратора — контракт D1–D39.155 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`) +# Журнал решений оркестратора — контракт D1–D39.156 (живой файл: карта · эрраты · живые тела · голова 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+). @@ -632,3 +632,19 @@ **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) ✅ + +## D39.156 — РАТИФИКАЦИЯ ЗАКОНА ВХОДНОЙ ДВЕРИ ШВА ДВИЖОК↔ПЛАТФОРМА (слово владельца 23.08: «Я согласен касательно нормы шва»). ✅ + +**1. Что ратифицировано.** Не каталог команд, а ДИСЦИПЛИНА входного направления — семь пунктов, тело и прецеденты каждого: [`17-seam-inbound-law.md`](17-seam-inbound-law.md). Прежний статус «ПРЕДЛОЖЕНО» снят этой нотой. Следствие, ради которого норма и заводилась: **двери встают паками без нового решения владельца** — как код выхода 13 встал в ратифицированную полосу через ратификации оркестратора. + +**2. Почему понадобилось.** Контракт фронт↔платформа ратифицирован, контракт платформа↔движок — нет: исследование шва дошло до `events.jsonl` и дальше отвечало на «как запускать движок». Наружу поток богатый, внутрь — ничего, кроме запуска с флагами, поэтому данные пользователя движок принимать не умеет и каждый внешний участник имперсонирует человека-оператора с текстовым редактором. Метод: консилиум оркестратора со сторонним архитектором (Fable-5), два раунда нажима author≠reviewer; свип ВСЕЙ границы дал ровно ОДНО гнилое место (строка 213) при шести ратифицированных каналах — «широкого рефакторинга не надо» подтверждено перечислением, а не впечатлением. + +**3. Развилка 199(а) закрывается РАСТВОРЕНИЕМ, а не выбором.** Ни один из четырёх вариантов зоны: движок дефолтит `mined_delta`/`mined_rejects` по конвенции каталога (как уже делает с `project_db` и как уже читает `.auto-bank.yaml`), писателем становится движковый $0-глагол ⇒ ключей никто не объявляет, файлов заранее никто не создаёт, формат знает ОДНА сторона. Единственный вариант, где число мест, знающих формат, уменьшается. + +**4. Три выноса, внесённые ПО ТРЕБОВАНИЮ ревьюера — без них буква закона запрещала действующее.** (а) Форма Б (одноразовый рендер `book.yaml`, D39.130 п.2б) вынесена явно: «единственный писатель файлов своей схемы» иначе объявляло её вне закона. (б) «Пути, СООБЩЁННЫЕ платформе» дополнено «ИЛИ ратифицированные контрактом шва»: имя `events.jsonl` — константа, никто его не сообщает, и буква ломала главный канал шва. (в) Отказ занятого flock — РОВНО класс 12, не «конфиг/лок» через слэш: 10 значит «деплой сломан, чинит человек», 12 значит «подожди и повтори», и слэш позволил бы исполнителю выбрать 10. + +**5. Эррата к `research/25` (обязательна, ставится этой нотой).** Там «поднятие потолка файлом через atomic rename» отнесено к носителям D39.106 — в теле D39.106 механизма НЕТ вовсе. Строка была кандидатом и не ратифицировалась никогда; живой канон решил ось иначе (потолок едет со стартом прогона и после не меняется). Без эрраты дверь выведут заново из «обязательных механизмов». + +**6. Порядок работ, вытекающий из нормы.** Движковый пак (конвенционные дефолты двух путей · глагол приёма правок банка · путь к файлу ключей аргументом · строгость сид-загрузчика) → контрактный минор ОДНИМ куском (снос отменённой пер-термной модели + новая дверь, тело которой выводится из словаря глагола, а не сочиняется до него) → платформенный пак (воркер решений · путь ключей из конфига · снятие дубля вывода пути · дев-супервизор на тот же механизм ключей). Гигиена контракта держится до этого сознательно: снести дверь сейчас и завести в следующем миноре — две перегенерации фронта вместо одной. + +**7. Заведено тем же заходом:** строки **211** (движок на SaaS не получает провайдерских ключей — блокер живого прогона 202; дев-путь наследует окружение платформы, прод-путь нет, поэтому стенд зелёный, а прод голодает), **212** (нестрогий загрузчик сида), **213** (платформа дублирует движковую конвенцию пути). Оба пинга доставлены зонам. **Гейт якорей: закрыта его собственная слепота** — множество зонных префиксов было побайтно равно корневому, из-за чего сломанный зонно-относительный якорь тихо числился «внешней ссылкой»; починено и доказано мутацией. (23.08.2026, оркестратор №19) ✅ diff --git a/docs/architecture/17-seam-inbound-law.md b/docs/architecture/17-seam-inbound-law.md index 1947ac1b..490f7e15 100644 --- a/docs/architecture/17-seam-inbound-law.md +++ b/docs/architecture/17-seam-inbound-law.md @@ -1,8 +1,7 @@ # 17 — Закон входной двери шва движок ↔ платформа -> **СТАТУС: ПРЕДЛОЖЕНО К РАТИФИКАЦИИ, НЕ РАТИФИЦИРОВАНО.** Собрано оркестратором №19 по консилиуму -> со сторонним архитектором 22–23.08.2026. До слова владельца это ЗАПИСКА, а не контракт: ссылаться -> на неё как на норму нельзя. Ратифицируется одной D-нотой; после неё двери встают паками без +> **СТАТУС: РАТИФИЦИРОВАНО D39.156 (слово владельца 23.08).** Это НОРМА, ссылаться на неё можно. Собрано оркестратором №19 по консилиуму +> со сторонним архитектором 22–23.08.2026. Ратифицирована одной D-нотой; с этого момента двери встают паками без > возврата к владельцу — ровно так, как код выхода `13` встал в ратифицированную полосу 10–19 без > нового решения ВЛАДЕЛЬЦА (D39.131 п.2а → D39.132 п.2г → D39.134: код 13 прошёл через направление и > финализацию приёмкой, то есть через ратификации ОРКЕСТРАТОРА — именно это свойство норма и обещает). diff --git a/docs/research/25-seam-cold-review.md b/docs/research/25-seam-cold-review.md index 26ff6de6..e01e84b0 100644 --- a/docs/research/25-seam-cold-review.md +++ b/docs/research/25-seam-cold-review.md @@ -1,5 +1,13 @@ # 25 · Шов движок↔платформа: ратифицированная форма и почему не иначе +> ⚠ **ЭРРАТА D39.156 (23.08): «поднятие потолка ФАЙЛОМ через atomic rename» (§ниже, строка 69) НИКОГДА НЕ РАТИФИЦИРОВАЛОСЬ.** +> Отчёт относит этот механизм к носителям решения D39.106 — в теле D39.106 его НЕТ вовсе (проверено грепом по слайсу +> `archive/architecture/05-decisions-D39-106-123.md`, первый хит темы — только в D39.110). Строка была КАНДИДАТОМ панели, +> а живой канон решил ось иначе: **потолок едет со стартом прогона и после не меняется**, лекарство при упоре — НОВЫЙ прогон +> (`platform/internal/runs/reconcile.go:1222-1227`=`answering 202 with the run in the state`). Читать строку 69 как отвергнутого +> кандидата, а не как обязательный механизм; закон входной двери шва (`../architecture/17-seam-inbound-law.md` п.2) это фиксирует: +> посреди прогона внутрь идёт ТОЛЬКО сигнал. + > **Что это.** Независимая верификация шва и топологии: задача в переодетом домене отдана четырём > чистым панелям (~18 агентов, Opus и Fable, без доступа к репозиторию; изоляция проверена > поагентно по журналам). Финальная тройка: атака на готовое решение + два абстрактных дизайна,