diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index b3b35216..c95effed 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -2,13 +2,13 @@ > **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-15, голова D39.137 — пере-пин DeepSeek принят, потолки снова защищают; пакет слов владельца — D39.136; приёмка S4 + контракт 0.2.3 в каноне — D39.135; приёмка бэкенд-migrate — D39.134; передача №16→№17 — D39.133; приёмки S3.6/S3.7 — D39.127/129, P5 — D39.130, эмиттера — D39.131, P6+дофикс — D39.132). Оркестраторов ДВА (решение владельца 07.08): этот — движок/платформа/фронт/доки; параллельный (РОЛЬЮ, без номера — счётчик один, D39.112 п.6) — приёмка полигона. Одновременно не запускаются; CURRENT-STATE ведут оба, чужие строки не трогают. Норма изоляции панелей после инцидента отката чужих файлов — D39.113, гардрейлы в CLAUDE.md. > - **Эра №15 закрыта — семь приёмок, все ПРИНЯТЫ и залендены**; лента, коммиты и разборы — D39.109–123 (D-лог) и реестр нот `architecture/05-decisions-index.md`; снимок прежних бюллетеней этой шапки — архив-слайс `-08-02-04`. -> - **ЖИВОЕ:** полигон эксп-22/23 — дерево ЗАЛЕНДЕНО 10.08 с ревью-шапками приёмки №16 (числа подтверждены независимым пересчётом; **выводы НЕ ратифицированы** — владелец 10.08 признал постановку неполной), **фаза Д ИДЁТ (заказ 10.08)**: промт `docs/POLYGON_EXP2223_REDO_SESSION_PROMPT.md` (staged полигоном); деньги фазы: расход $6.0024, цепь потолков $4.50→$5.40→$6.74 — **САНКЦИОНИРОВАНО словом владельца 15.08 напрямую оркестратору №17** («потолок поднимал я, мы с полигоном в синке»); замена ja-книги на `enkan_no_hate_ja` — им же, СТОП ja-оси снят (ход — секция «Полигон» ниже); при ратификации фазы Д в D-ноту: декой-правило + обязательный кросс-семейный опровергатель приёмки (одобрены владельцем 10.08) · фронт: **ЗОНА ЗАМОРОЖЕНА словом владельца (D39.136 п.2)** после принятого S4 (D39.135, `267aa35`: путь «файл → загрузка → разбор → запуск с потолком → прогресс» в мире моков, контракт **0.2.3 В КАНОНЕ**); разморозка = лендинг P7 + ответы гейта S5 (В-10 спойлер · пере-заказ фраз В-11); фикс-лист ФС-1..12 + Ф-63/Ф-28 (одобрены) — вход первого касания зоны; живой smoke против дев-стенда — легитимен и во фризе; i18n-механизм построен (ПТ-36 🔶) · **платформа P5 ИСПОЛНЕНА и ПРИНЯТА в три раунда (D39.130, `69d485a`)**: интейк книг `POST /books` с сентинелом хранилища · стоп/резюм с намерением в Postgres · Prometheus · Go-floor 1.26.6; развилка `book.yaml`: бета = форма Б (стройка следующим касанием зоны), движковая форма = строка 170 · **эмиттер ИСПОЛНЕН и ПРИНЯТ (D39.131, `9cfe080`, дофикс до лендинга)**: `events.jsonl` (StreamVersion 1.1) + exit 4 потолок / 5 graceful / полоса отказов 10–19 + пер-вызовный репэйр-гейт; строки 103/135/165/102 закрыты; движковая половина PD-113/PD-196 построена D39.131 · **платформа P6 + дофикс ИСПОЛНЕНЫ и ПРИНЯТЫ (D39.132)**: потребительская половина шва (exit-коды одним словарём, `unit_done` присваиванием, scope потолка, TM_TRACE_ID против усыновления) + интейк формы Б + дев-стенд с сидом — **PD-113/PD-196 ЗАКРЫТЫ, шов закрыт с обеих сторон, major в регистре платформы 0**; деплой-порядок против деадлока v15 записан и исполним (`tmplatformctl books --migratable`) · **`tmctl migrate` ИСПОЛНЕН и ПРИНЯТ (D39.134, `d55edd4`; панель 6 линз, 6/6 мутаций приёмки пойманы)**: exit 13 ФИНАЛИЗИРОВАН, строка 174 закрыта, 175 пере-скоуплена на дальний остаток, новая 177 — гигиена restore point; деплой эмиттер-бинаря РАЗБЛОКИРОВАН · эскроу (136) — следующим денежным промтом (П-18). +> - **ЖИВОЕ:** полигон эксп-22/23 — дерево ЗАЛЕНДЕНО 10.08 с ревью-шапками приёмки №16 (числа подтверждены независимым пересчётом; **выводы НЕ ратифицированы** — владелец 10.08 признал постановку неполной), **фаза Д ИДЁТ (заказ 10.08)**: промт `docs/POLYGON_EXP2223_REDO_SESSION_PROMPT.md` (staged полигоном); деньги фазы: расход $6.0024, цепь потолков $4.50→$5.40→$6.74 — **САНКЦИОНИРОВАНО словом владельца 15.08 напрямую оркестратору №17** («потолок поднимал я, мы с полигоном в синке»); замена ja-книги на `enkan_no_hate_ja` — им же, СТОП ja-оси снят (ход — секция «Полигон» ниже); при ратификации фазы Д в D-ноту: декой-правило + обязательный кросс-семейный опровергатель приёмки (одобрены владельцем 10.08) · фронт: **ЗОНА ЗАМОРОЖЕНА словом владельца (D39.136 п.2)** после принятого S4 (D39.135, `267aa35`: путь «файл → загрузка → разбор → запуск с потолком → прогресс» в мире моков, контракт **0.2.3 В КАНОНЕ**); разморозка = лендинг P7 + ответы гейта S5 (В-10 спойлер · пере-заказ фраз В-11); фикс-лист ФС-1..12 + Ф-63/Ф-28 (одобрены) — вход первого касания зоны; живой smoke против дев-стенда — легитимен и во фризе; i18n-механизм построен (ПТ-36 🔶) · **платформа P5 ИСПОЛНЕНА и ПРИНЯТА в три раунда (D39.130, `69d485a`)**: интейк книг `POST /books` с сентинелом хранилища · стоп/резюм с намерением в Postgres · Prometheus · Go-floor 1.26.6; развилка `book.yaml`: бета = форма Б (стройка следующим касанием зоны), движковая форма = строка 170 · **эмиттер ИСПОЛНЕН и ПРИНЯТ (D39.131, `9cfe080`, дофикс до лендинга)**: `events.jsonl` (StreamVersion 1.1) + exit 4 потолок / 5 graceful / полоса отказов 10–19 + пер-вызовный репэйр-гейт; строки 103/135/165/102 закрыты; движковая половина PD-113/PD-196 построена D39.131 · **платформа P6 + дофикс ИСПОЛНЕНЫ и ПРИНЯТЫ (D39.132)**: потребительская половина шва (exit-коды одним словарём, `unit_done` присваиванием, scope потолка, TM_TRACE_ID против усыновления) + интейк формы Б + дев-стенд с сидом — **PD-113/PD-196 ЗАКРЫТЫ, шов закрыт с обеих сторон, major в регистре платформы 0**; деплой-порядок против деадлока v15 записан и исполним (`tmplatformctl books --migratable`) · **`tmctl migrate` ИСПОЛНЕН и ПРИНЯТ (D39.134, `d55edd4`; панель 6 линз, 6/6 мутаций приёмки пойманы)**: exit 13 ФИНАЛИЗИРОВАН, строка 174 закрыта, 175 пере-скоуплена на дальний остаток, новая 177 — гигиена restore point; деплой эмиттер-бинаря РАЗБЛОКИРОВАН схемно (⚠ рантбук деплоя живым `migrate` end-to-end ещё НЕ гонялся — предусловие первого выката, пинг платформе 15.08) · эскроу (136) — следующим денежным промтом (П-18). > - **Открыто на владельце:** **развязка git с origin** (темп-коммит `535581d` откачен локально и пересобран чистыми коммитами — D39.134 п.0; локальная линия ИСТИННА, 15 коммитов поверх `b751ac6`, origin держит старую линию ⇒ force-push вашей рукой; не пуллить) · Приложение А контракта (148: реконструкция с баннером или заново) · продуктовое слово «остановлена: лимиты» (В-3) · К-13/Ф-31 (paused_reason один — «свой потолок» и «нет кредита» неразличимы) · В-4/Ф-30 (глава без заголовка) · фри-тир PD-104 (ноль на бете против автогранта $5 с суточным потолком) · ~~порог 116~~ ЗАКРЫТ D39.136 п.6б (порог выборкой, по делегации) · мини-проба флора 44 (одобрена, промт не выдан) · подпись денежного шага 46 · лист В-3+К-6 · авто-резюм paused (вопрос платформы) · ~~В-11~~ ПЕРЕ-ЗАКАЗ 15.08: фразы НЕ утверждены — конкретнее причину, граница ПТ-33 пере-читана «охранять алгоритмы, не минорку» (D39.136 п.4а; новые фразы — вход S5; мультиязычность фраз всех зон — ревью 179) · **В-10: спойлер — вежливость или защита?** (факт: банк приезжает клиенту страницами по 1000, sense лежит в DOM, размытие чисто визуальное — потому находится Ctrl+F и печатью; «защита» = правка контракта «sense по раскрытию», вход ревью 179) · ~~Ф-62~~ РЕШЕНО направлением 15.08 (переименование книги — в контракт; форма — из ревью 179) · ~~Ф-63~~ ОДОБРЕНА перекраска 15.08 (первым касанием зоны) · ~~строка 172: вендор-сессия DeepSeek~~ ОТРАБОТАЛА и ПРИНЯТА (D39.137, `76049bb`: пик запинен, потолки защищают) — **на владельце остались: схема time-based** (доклад §5 отчёта; рекомендация — пик оставить + операционное правило «прогоны не стартуют в 01–04/06–10 UTC», scheduler не начинать до ответа вендора об отметке времени тарификации) **и вход ратификации фазы Д: посылка «dspro дешевле glm» в пике перевёрнута** (×1.26 дороже, D39.137 п.4) · ~~СТОП ja-оси фазы Д~~ СНЯТ 15.08 (замена книги на `enkan_no_hate_ja` — рука владельца) · **возражение Sol по проходу `tier` эксп-23** (пере-судить починенным ригом или оставить с записанным возражением — PROGRESS «Полигон»; вес вырос: Д14.10 показал нули прибора claude на реальной инверсии смысла) · ~~поле `title` в `BookIntake`~~ РЕШЕНО 14.08: ратифицировано в 0.2.3 (замечание 12 S3.5, владелец подтвердил; исполняет S4) · фронт-вопросы зонного журнала: В-7 (плотность интерфейса; держит и Ф-54 — обрезку центра на зуме) · В-8 (слово состояния в дереве) · **В-9 (какие языки интерфейса обещает продукт — механизм готов, ПТ-36)** · Ф-38 (вкладка «Замечания») · ~~граница ПТ-33 для полей `BankTerm`~~ ЗАКРЫТ 15.08: полей НЕ заводить, смысла хватает (D39.136 п.4б; sense коротковат — строка 178) · ~~санкция расхода фазы Д~~ ДАНА 15.08 · ~~дизайн-ратификация 160/161~~ ДАНА 15.08 (D39.136 п.3: Этап 0 паком, 161 — дизайн-паком с мандатом качества) · ~~PD-203~~ РАТИФИЦИРОВАН (D39.136 п.6а: флаг аккаунта только по аккаунт-причинам) · ~~Ф-28~~ ОДОБРЕН бамп пинов 15.08 (первым касанием зоны) · Ф-56/Ф-57/Ф-61 — входы контракт-ревью 179 (решение владельца 15.08). > - **Сделано (сводно)** — снимок ленты закрытых эр в [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 (edit-волна не гонялась НИ РАЗУ — держит и оси голоса 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 залендены). > - **Стек (полная карта роль→модель→конфиг→квирки — [STACK.md](STACK.md), D39.126):** draft deepseek-v4-flash thinking-ON `low` **⚠0731** → терминолог (та же модель) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (топология ПОДТВЕРЖДЕНА при неразличимости жильцов — D39.117; закон-блок ОБЯЗАТЕЛЕН — строка 134; glm-5 резерв; вахта маппинга эффорта pro — §Б-108) → судья gemini (Ф2, в движке НЕ построен — строка 33); канал B Mistral+grok; ~$0.85/ранобэ (D30.4, пере-калибровка при следующем платном прогоне). ⚠ **Вендор-факты 13–15.08 (пере-пин ИСПОЛНЕН и ПРИНЯТ, D39.137):** таблица цен запинена ПИКОМ (flash 0.44/1.32 · pro 1.32/3.96/кэш-хит 0.044 за 1M; счёт шиппинг-c1 = 100% DeepSeek ⇒ ×4.2–4.4 в пике / ×2.1–2.2 в долине — замер по трём прогонам); у pro эффорт стал настраиваемым low/high/max (квирк 3а устарел — вахта §Б-108 сработала); ⚠ ВЕСА pro сменились под тем же слагом (V4-Pro-0813, класс D39.61) — вахта-риг готов (остаток 172); ⚠ посылка интерим-редактора «dspro дешевле glm» в пике ПЕРЕВЁРНУТА (×1.26 дороже — вход ратификации фазы Д, D39.137 п.4); покупки фазы Д на deepseek до 16.08 16:00 UTC — по старым ценам. ⚠ **ВЕСЬ банковый контур (банкнота+терминолог+классификатор) в shipping-c1 НЕ включён** — жив ран-локальным конфигом книги (строка 140; сверка STACK.md 09.08 — факт шире прежней декларации «одна банкнота»); эскалация в shipping за `budget_usd: 0` (STACK.md §примечания). -> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 15.08 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **139** строк · зона бэкенд **71** строго / **95** широко (175 пере-скоуплена D39.134; 176/177 заведены 15.08; 178/179 — D39.136; 180/181 — D39.137 находками вендор-сессии) (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0**, платные прогоны разблокированы · «скоро» **30** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строки эксп-22: 55·153 (плюс 150 — руки владельца); строка 5 — остаток гейчен ре-пробой 74 (D39.102 п.2); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже). +> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 15.08 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **140** строк · зона бэкенд **71** строго / **96** широко (175 пере-скоуплена D39.134; 176/177 заведены 15.08; 178/179 — D39.136; 180/181 — D39.137; 182 — wire-батч, аудит 15.08) (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0**, платные прогоны разблокированы · «скоро» **31** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строки эксп-22: 55·153 (плюс 150 — руки владельца); строка 5 — остаток гейчен ре-пробой 74 (D39.102 п.2); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже). > - Архивы хроники: `archive/PROGRESS-2026-07-04-10.md` (D31) · `-10-13` (D39.6-гигиена) · `-13-25` (стройка паков 11–16, rerun2) · **`-25-31` (паки 17–20 · мини-прогон · полигон-пакеты 5–8 · ToS · холодный прогон; D39.26–58)** · **`-08-01-02` (сессии №9/№10: общность · качество банка · coldrun-b · открытие фронта/платформы; D39.59–90, срез D39.105)** · **`-08-02-04` (сессии №11–№13: ручки эффорта · стандарты · контракт API · платформа P0 · банк-арбитраж; D39.91–105 + снимок шапки эры №15)**. Записи ниже — живой хвост (№14+, эра D39.106+). ## Бэклог (ЕДИНЫЙ, собран 26.07, актуализация 04.08 D39.99/D39.101; правки — только через оркестратора) @@ -117,6 +117,7 @@ | 172 | **Остаток после пере-пина DeepSeek (пин ИСПОЛНЕН и ПРИНЯТ — D39.137, `76049bb`):** (а) **схемное решение владельца по time-based** — доклад §5 отчёта вендор-сессии (рекомендация: пик оставить; scheduler-вариант строки 60 не начинать до ответа вендора «по какой отметке времени тарифицируется вызов» — вендором НЕ задокументировано — и замера доли пика; дешёвый рычаг: операционное правило «прогоны не стартуют в 01–04/06–10 UTC» — почти всё ×2 без строчки Go; гибрид «резерв пиком, сеттл по окну факта» назван) · (б) пере-калибровка ставки $0.03/глава (166/П-10; множитель счёта замерен) · (в) exp08 v3 (85) обязателен до budget_usd · (г) **вахта весов V4-Pro-0813** (класс D39.61): риг готов — §7.4 отчёта, `TestLiveClassifierHarmSet`, гонять после 16:00 UTC 16.08 | владелец → бэкенд/полигон | скоро (схема — на владельце; вахта — после 16.08) | СТОП-решение (схема) + замер (вахта) | вендор 13.08, **D39.137**, строка 60, D30.4 | | 180 | **`prices_checked` — одно поле на ВСЮ таблицу цен** (находка вендор-сессии, D39.137): бамп по факт-чеку одного вендора сдвинул 120-дневный гейт свежести остальным семи моделям (дедлайн уехал ~07.11→~13.12); лечение — пер-модельная дата проверки (правка схемы) ЛИБО ре-чек остальных вендоров отдельным заходом до исходного дедлайна | бэкенд | когда-нибудь (ре-чек вендоров — до ~07.11) | малое касание / вендор-заход | D39.137, отчёт §7.1 | | 181 | **Консент-число пере-покупки врёт после смены цен**: `projectRebill` складывает ИСТОРИЧЕСКИЙ `cost_usd` (`rebill.go:166`), гейт согласия сравнивает с ним (`:252`, порог `:200-211`), а резерв/сеттл считают НОВОЙ таблицей (`stagerun.go:431/:613`) ⇒ единицы, купленные по старым ценам DeepSeek, при пере-покупке стоят до ×4.4 от числа, на которое оператор согласился; `projected_book_usd` у `status` — та же экстраполяция. Траты защищены потолками book/day — врёт ЧИСЛО СОГЛАСИЯ, комментарий `rebill.go:81` «over-estimating is the safe direction» перевёрнут. Преexisting, материален со смены цен 16.08 | бэкенд | скоро (до первого пере-прогона старой книги после 16.08) | малое касание (проекция новой таблицей) + тест | D39.137, отчёт §8.1 | +| 182 | **Wire-батч перед добором идеала — КОПИТЬ и вносить ОДНИМ касанием** (каждая правка двигает RequestHash / `memory_version` / снапшот = перекупка волн; дриблить по одной = платить пере-снапшот несколько раз): 46 экран цели (+предпосылка 113 фикстура) · 134 инжект-заголовки (гейт пал D39.108) · 131 кап инъекции · 140 банковый контур в shipping (СТОП-решение) · 105(а) вердикт-половина классификатора · 130-остаток (мердж авто-банка, гейт WARN второго прогона) · 14 ё-фолд (носитель «следующий пак общности») · **119+124(+115 пер-парный хеш EmbeddedVersion) — ОДНИМ дизайн-паком** (строка 124 требует принимать целиком; сверено кодом: `cutTag` фолдит `chunkerVersion`/`EmbeddedVersion`/`NormVersion` — `manifest.go:160-169`); вне батча свободен только 118 (tools/go.mod). Состав — аудит корпуса 15.08 (archive/reports/CORPUS_AUDIT_2026-08-15.md §В.г) | оркестратор → бэкенд | скоро (собрать к ратификации фазы Д; вносить перед первым платным прогоном добора идеала) | координационная строка → промт(ы) батча | аудит 15.08, D39.134/136/137 | | 171 | **Число символов книги — от движка** (PD-177 платформы: `character_count` интейка точен только для UTF-8; GB18030/UTF-16 движок декодирует сам — цифра платформы на них неверна, для UTF-16 занижена ~вдвое): счёт символов в манифест (рядом `source_bytes`/`encoding`) либо перерасчёт платформой после разбора | бэкенд | когда-нибудь | малое касание (манифест) | П-13 платформы, PD-177, приёмка P5 | | 173 | **`backupStamp` секундной точности**: два `translate` в одну секунду дают коллизию имени бэкапа и exit 1, маскируя класс «проект занят» (12) — метка до наносекунд/uniquify либо распознавать коллизию явно; преexisting, вскрыт ревью эмиттер-пака | бэкенд | когда-нибудь | малое касание | приёмка D39.131 | | 175 | **Деплой движка «в полёте» — ДАЛЬНИЙ ОСТАТОК** (ближняя половина — типизированный version-mismatch у `status` + money-тест — ИСПОЛНЕНА паком migrate, принята D39.134; правило свипа «мигрировать только книги БЕЗ открытых попыток» + settle ЗАПИНЕННЫМ бинарём попытки — аддендум P6, D39.132). Остаток: (а) при СЛЕДУЮЩЕМ бампе схемы проставить в файл книги `application_id` + `min_reader_version` — данные-задел под окно совместимости, ~0 логики; (б) GC бинарей: удалять не пиненные ни одной незакрытой попыткой, последние 2–3 релиза держать для отката; (в) окно совместимости читателей / пин уровня книги — строить ТОЛЬКО по триггерам: много тенантов · бампы схемы еженедельно+ · потребители `status` кроме платформы. Археология захода — ресёрч 14.08 (вывод: exact-match читателей на деньгах = осознанный fail-closed, корень не выдёргивать, приделать дверь) | платформа/бэкенд | когда-нибудь (по названным триггерам; (а) — попутно первым бампом схемы) | данные-задел + малые касания | владелец 14.08, ресёрч 14.08, строка 139, D39.134 | @@ -564,6 +565,8 @@ en, есть синк глоссария и вёрстка, ровно как г против закоммиченного потолка $0.300 (подъём до $0.360 не закоммичен) · дерево НЕ закоммичено, кроме фризов покупающего кода — лендит оркестратор. +**Запись оркестратора №17, 15.08 — две передачи ПАРАЛЛЕЛЬНОМУ оркестратору (приёмка фазы Д — его зона, №17 полигон не трогает по слову владельца).** (1) Просьба хендоффа фазы Д «эррата zh-канона: пере-сборка = правка закрытой оси, ратифицирует оркестратор» (`POLYGON_PHASE_D_HANDOFF.md:84-86`, завышение +0.0039, вердикты не двигает) — диспозиция №17: к параллельному при приёмке, не к движковому. (2) Мелочь аудита корпуса 15.08: `23-editor-tier.md:2243` цитирует «PROGRESS.md:346» для потолка $4.50 — фактически строка была :348; учесть при приёмке тел. Санкции владельца по деньгам фазы и замене ja-книги уже записаны (D39.136 п.1, CURRENT-STATE). + *(Память · Голос и состояние · Ридер-IDE — ЗАКРЫТЫЕ секции (D39.125): темы исполнены/переехали в зонные журналы; хроника — в архив-слайсах. Фронт пишет ТОЛЬКО в frontend-PROGRESS.md.)* diff --git a/docs/archive/reports/CORPUS_AUDIT_2026-08-15.md b/docs/archive/reports/CORPUS_AUDIT_2026-08-15.md new file mode 100644 index 00000000..76e79ebe --- /dev/null +++ b/docs/archive/reports/CORPUS_AUDIT_2026-08-15.md @@ -0,0 +1,91 @@ +# Аудит корпуса доков цельным чтением — 15.08.2026 + +> **Провенанс:** заказ владельца 15.08 («один агент, полный контекст PROGRESS + D-лог + зонные доки, +> сжатая карта актуальности, противоречия, сверка направления №17»); исполнитель — Opus-агент +> (кросс-модель к Fable-оркестратору, D39.120), одиночное чтение без суб-агентов, ~275k токенов, +> 59 инструментов. **Диспозиции всех находок (лендинги ПОСЛЕ аудита):** Б-1 → закрыт D39.137 +> (пик запинен) · Б-2 → санкция владельца 15.08 (D39.136 п.1) · Б-3/Б-4/Б-5/Б-6/Б-11(б) → +> исправлены коммитом `cacd948` · Б-7/Б-8/Б-9 → пинги платформе (второй пинг №17) + вход P7 · +> Б-10 → канон CLAUDE.md (чужой стейдж не прибирать, pathspec-коммиты) · Б-11(а) → передано +> параллельному оркестратору (запись «Полигон» 15.08) · В(а) фриз-основание → D39.136 п.2 · +> В(в2) гейт 160 → пал словом владельца (D39.136 п.3) · В(в3/в4)+В(г) wire-состав → строка 182 · +> Г-1 → D39.137 · Г-2 → санкция · Г-3 → D39.136 п.3 · Г-4 → D39.136 п.6а · Г-5 → лист +> владельца/входы ревью 179 · Г-6 → пинг платформе + кавеат CURRENT-STATE · Д(2в) → запись +> «Полигон» 15.08. Статусы в тексте ниже — НА МОМЕНТ аудита, до этих лендингов. + +# А. КАРТА АКТУАЛЬНОСТИ (на 15.08, голова D39.135) + +**ДВИЖОК.** Построено и принято: слои 1–7 ✅ (09-target §шапка); эмиттер шва `events.jsonl` StreamVersion 1.1 + полоса отказов 10–19 + exit 4/5 (D39.131); `tmctl migrate`, exit 13 финализирован (D39.134); банк-экспорт-сайдкар `internal/pipeline/bankexport.go` (D39.122). В полёте: ничего — активного промта нет. Ждёт: строка 46 (экран целевого языка) гейчена 113-фикстурой; 160/161/162 (структура глав) — дизайн-ратификации владельца по D39.122 п.4; 16/24 (edit-волна и оси голоса) — первого прогона добора идеала. На владельце: **172 (цены DeepSeek, дедлайн 16.08 16:00 UTC)**, 44, 46-подпись, 116, 140, 142, 130, 151, дизайн 161. + +**ПЛАТФОРМА.** Построено: P0–P6 — вход/сессии/кредиты/раннер/интейк книг/потребительская половина шва/дев-стенд с сидом (D39.109–132); регистр 245 строк, **0 major**, 62 открытых (17 minor / 45 info). В полёте: ничего. Ждёт: P7 = П-17 читающая поверхность (SSE · главы/юниты/замечания · проекция банка) + П-18 эскроу (строка 136) — промт за №17. На владельце: PD-104 (фри-тир — ноль на бете против автогранта $5), авто-резюм paused, PD-203 (halted-флаг аккаунта по паузе одного прогона — вопрос зоны на ратификацию, `platform-PROGRESS.md:383`). + +**ФРОНТ.** Построено: S0–S4 приняты; путь «файл → загрузка → разбор → запуск с потолком → прогресс» в мире моков, контракт 0.2.3 в каноне, i18n-механизм (ПТ-36 🔶). В полёте: ничего. Ждёт: S5 (подпись банка) — фикс-лист ФС-1..12 вход; настоящие блокеры S5 — **ПТ-33/Ф-39** (полей для проверки термина в `BankTerm` нет, фронт отказался выдумывать) и **В-10** (спойлер = защита или вежливость → правка контракта на чтении банка), оба на владельце. На владельце: В-3, В-4, В-7…В-11, Ф-38, Ф-62, Ф-63; **не названы** — Ф-28, Ф-32, Ф-33, Ф-46, Ф-56, Ф-57, Ф-61. + +**ПОЛИГОН.** Фаза Д: сырьё снято по трём осям, второе семейство закрыло ja **CONFIRM**, en → эскалация к адъюдикации, gemini не подтверждён. Выводы 22/23 **НЕ ратифицированы**. Ждёт: адъюдикация en (контроли дефектны, чинить до прогона), японская нога H-4 (~$0.05), секции Д2/Д5/Д8 отчёта, селфтест `sud.py` красный, `conformance` красный. На владельце: возражение Sol по `tier` (+8.69 против +0.50), санкция замены ja-книги, **расход $6.0024 против последней записанной словом границы $4.50**. + +**КОНТРАКТ.** 0.2.3 в каноне, зеркало байт-равно (`cmp` пуст). Открыты К-2/К-9/К-10/К-11 (автор контракта/бэкенд), К-6/К-13 (владелец). Форвард-контракт `BookIntake.title` + `Book.reject_reason` — обещание без носителя, вход P7 (D39.135 п.2в). + +**ДЕНЬГИ.** Холд+потолок+`--ceiling-usd` построены с обеих сторон; ставка $0.03/глава — временная константа платформы (П-10/строка 166). Не построено: эскроу/`uncertain` (136/П-18), ночная сверка с провайдером (137). **Горит:** цены протухают завтра (см. Б-1). + +# Б. ПРОТИВОРЕЧИЯ И РАССИНКИ + +**Б-1 (горит, деньги). Пин цен DeepSeek протухает 16.08 16:00 UTC, а гейт свежести не сработает.** `backend/configs/models.yaml:19` — `prices_checked: "2026-07-10"`, окно 120 дней ⇒ до ноября гейт молчит; `:149` держит flash `0.14/0.28`, `:161` — pro `0.435/0.87`. По строке 172 (`PROGRESS.md:117`) с завтра пик даёт `0.44/1.32` и `1.32/3.96` (×2.3–4.7), cache-hit pro ×6–12. Следствие не «неточный отчёт»: `Reserve` считает резервирование по этой таблице, значит **потолок перестаёт быть потолком** — движок остановится по цифре, которой нет. Полигон покупает на DeepSeek 61% фазы (23-editor-tier.md:2247). Схема прайсинга плоская, time-based не выражает. + +**Б-2 (деньги, полигон). Три разных живых числа по фазе Д.** CURRENT-STATE `PROGRESS.md:5,348` — «потолок фазы $4.50 словом владельца»; секция «Полигон» `PROGRESS.md:416` — расход **$5.901**; отчёт `docs/experiments/23-editor-tier.md:1821,2243-2244` — расход **$6.002420**, санкция 15.08 **$6.85** (числом в `money_d.py`), и сам полигон объявляет девиацию: превышение последней записанной словом границы на **$1.502420 (33%)**, цепь `$10.00 → $4.00 → $4.50 → $5.40 → $6.74`. Механизм отказа назван там же: фриз-гейт сверяет с git **покупающий файл, а не кассу**, потолки правятся в рабочем дереве и действуют немедленно; на ФД-C этим воспользовались осознанно ($0.334774 против закоммиченных $0.300). Ни одно из этих чисел не попало в confirm-лист №17. + +**Б-3. Эррата шапки D-лога несёт снятый провенанс.** `05-decisions-log.md:5` (эррата 15.08) утверждает «обе зоны сошлись на числе независимо» — D39.134 п.2а этот клейм **снял** (платформа прочитала 13 из незакоммиченного дерева движка, `ingest/exit.go:63-64`). По собственной норме шапки («поправки к фактам живут ЗДЕСЬ, в карте») грепающий получит снятый факт первым. Реестр (`05-decisions-index.md:189`) поправку несёт, шапка — нет. + +**Б-4. Реестр нот озаглавлен `D1–D39.131`** (`05-decisions-index.md:1`) при голове D39.135. Строки для 132–135 есть, `counts --check` этого не ловит (титул реестра не входит в трёх носителей головы) — а D39.126 п.1 объявлял титул носителем головы. + +**Б-5. Статус-шапка 7 слоёв отстала на четыре ноты.** `09-target-architecture.md:10` (освежена 14.08): «контракт **0.2.2**», «гейт S4 фронта ПАЛ — S4-промт по слову владельца», «**эмиттер шва — промт выдан, сессия не запускалась**». Фактически: эмиттер построен и принят (D39.131), P6 принят (D39.132), migrate принят (D39.134), S4 принят и контракт **0.2.3** (D39.135). + +**Б-6. Компаньон контракта врёт фронту про два несуществующих пробела.** `14-api-contract/README.md:266-267` — «Артефакт экспорта БАНКА | **строки нет — заводит оркестратор**» и «Механизм поднятия потолка | **строки нет — заводит оркестратор**». Строка 169 заведена D39.127, движковая половина построена (`bankexport.go`); строка 126 исполнена S4 (D39.135). Это не косметика: `frontend/docs/BACKLOG.md` Ф-43 буквально ссылается на этот текст как на основание. + +**Б-7. Лендинг D39.135 не пингнул платформу — четыре строки регистра протухли.** `git show --stat 3aaba0d` не трогает `platform/docs/platform-PROGRESS.md`. Итог: **PD-172 · PD-173 · PD-174 · PD-180 = `open`** в `DEFECT_REGISTER.md`, хотя их диспозиция (D39.130 п.2в: «спек-правка 0.2.3 задачей S4») **исполнена**. Плюс **PD-199 = `open`**, хотя D39.132 п.2а прямо ратифицировал «PD-199 закрыт». Пять строк регистра расходятся с каноном. + +**Б-8. «Деплой эмиттер-бинаря РАЗБЛОКИРОВАН» — неполная правда.** Схемный деадлок разорван (D39.134), но: (а) **PD-217 open** — книга на `daily_ceiling` или вечном холде блокирует апгрейд движка бессрочно, выхода у оператора нет; (б) `platform-PROGRESS.md:245-248` — «**`tmctl migrate` живьём не гонялся**», порядок деплоя проверен ЧАСТИЧНО. Порядок из рантбука ни разу не исполнен end-to-end настоящей командой, которая теперь существует. + +**Б-9. Мёртвый текст в зоне платформы жив.** `platform/deploy/README.md:131` по-прежнему цитирует «schema vN … expects vM» — движок печатает `schema_mismatch found=N expected=M`. Назван D39.134 п.4 как вход P7, не исправлен. + +**Б-10. Индекс git прямо сейчас держит 11 ЧУЖИХ (полигонных) файлов** (`docs/POLYGON_*`, `docs/experiments/23-editor-tier.md`, `eval/dovodka/*`), три из них модифицированы поверх стейджа (`MM`). Ровно та конфигурация, из которой родились оба инцидента 02.08. Любой `git commit` без pathspec унесёт чужую работу. + +**Б-11. Мелочи.** `23-editor-tier.md:2243` цитирует `docs/PROGRESS.md:346` для $4.50 — фактически :348. Ревью-шапка `14-api-contract/README.md:21` перечисляет «новые 125 · 126 · 127» как живые зависимости — 125 закрыта D39.122, 126 исполнена. + +# В. ВЕРДИКТ ПО НАПРАВЛЕНИЮ №17 + +**(а) Фриз фронта после S4 до P7 — СОГЛАСЕН по решению, ВОЗРАЖАЮ по основанию.** Названное основание — «S5 гейчен строкой 169» — не держится: контракт 0.2.3 полностью описывает `GET /books/{bookId}/bank` (`openapi.yaml:266`) и `POST /books/{bookId}/bank/decisions` (`:292`); фронт построил весь S4 в мире моков. Настоящие блокеры S5 — **на владельце**: ПТ-33/Ф-39 (полей проверки термина нет, черновик D39.127 п.2б не ратифицирован), В-10 (спойлер: если защита — `sense` не должен приезжать в DOM до раскрытия), Ф-46. Сноса мока не делать — П-16 (`platform/BACKLOG.md:28`): «полный снос — триггер Ф-29, после читающей поверхности». + +**(б) Очередь P7 — СОГЛАСЕН, состав НЕПОЛОН** (см. Г/Д: PD-219, PD-217, PD-162, title/reject_reason, рантбук). + +**(в) «Свободные» бэкенд-паки — ДВА ИЗ ЧЕТЫРЁХ НЕ СВОБОДНЫ.** (1) Гигиена-CLI (177+176+93-F4+173) — свободна, подтверждено по колонкам. (2) Структура глав Этап 0 (160) — **ГЕЙЧЕНА, и гейт не в теле строки**: D39.122 п.4 «дизайн стройки НЕ ратифицирован — отдельное решение при постановке строк 160–162 в очередь». (3) Общность-пак (120+115+111) — свободен по гейтам, но 115 неверно назван «преп к ja»: её триггер — первая новая ЦЕЛЕВАЯ пара, ja→ru цель не меняет; ja-преп = 120, 155, 81. И `EmbeddedVersion` едет в `cutTag` (`manifest.go:166-169`). (4) Детерминизм-пак (119+118+163) — **НЕ wire-нейтрален, проверено кодом**: `cutTag` фолдит `chunkerVersion`, `EmbeddedVersion`, `NormVersion` (`manifest.go:160-169`), `unit.id` содержит cutTag ⇒ вплетение версий модулей = новые id юнитов на всей книге, перекупка; `SanitizerVersion` фолдится в снапшот (`snapshot.go:97-103`). Свободен только 118 (tools/go.mod); либо 163-вариант-Б («запрет бампа без `--resnapshot`» — $0), либо в wire-батч. + +**(г) Wire-батч (46+113 · 134 · 131 · 140) — СОСТАВ НЕПОЛОН.** Не названы: **105(а)** (бамп `classifierVersion` → перекупка чекпойнтов, `PROGRESS.md:153`) · **130-остаток** («двигает банк → `memory_version`») · **14 (ё-фолд)** («сдвиг `memory_version`», носитель — «следующий пак общности») · **163/119**. Плюс **124** прямо объявляет: свёртки x/text [119] и пер-парный хеш `EmbeddedVersion` [115/120] — ОДИН дизайн-пак; разнеся их по разным пакам, №17 исполняет половинки решения, которое 124 требует принимать целиком. + +**(д) Ядро качества ждёт фазы Д — СОГЛАСЕН.** Фаза Д уже дала материал по 168: «профиль „связка + канон-фиксер ПОСЛЕ" даёт лучший канон на zh и en», «банк-дисциплина и качество прозы — РАЗНЫЕ оси» (`POLYGON_PHASE_D_HANDOFF.md:63-65`) — первичная фактура при постановке. + +# Г. ЧТО ОРКЕСТРАТОР УПУСТИЛ + +1. **Цены DeepSeek — не «confirm-пункт», а срабатывающий завтра денежный отказ**: пере-пин данных можно и нужно сделать ДО решения про пик/офф-пик; решение владельца нужно только на схему. +2. **Полигон превысил записанную словом границу на 33%**, и механизм («фриз-гейт сверяет покупающий файл, а не кассу») — класс, а не эпизод. +3. **Дизайн-ратификация 161 (и 160 по D39.122 п.4) — обязательство владельца, висящее с 09.08** и отсутствующее в листе. +4. **PD-203 — вопрос платформы без ответа** (вторая половина: аккаунтный halted-флаг). +5. **Фронт-вопросы вне листа:** Ф-28 (три high-адвайзори пинов, с 08.08), Ф-56 (конец интейка), Ф-57 (пары языков), Ф-61 (язык фраз), Ф-32, Ф-33, Ф-46. +6. **Деплой-рантбук ни разу не исполнен настоящим `migrate`** при объявленном «деплой разблокирован». Живой прогон порядка на стенде — обязательное предусловие выката. +7. **Индекс git с чужими полигонными файлами** — снять до любого коммита. *(Диспозиция №17: канон CLAUDE.md прямо запрещает «прибирать» чужой индекс — лечение pathspec-коммитами, не снятием.)* +8. **Пинг платформе после S4 не отправлен** — зона не знает, что её четыре контрактные строки исполнены и что title/reject_reason стали её обязательством в P7. + +# Д. ОТВЕТЫ НА ТОЧЕЧНЫЕ ВОПРОСЫ + +**(1) Платформа: топ-5 открытых PD.** **PD-217** (книга на вечном холде блокирует апгрейд движка бессрочно; половину снял D39.132) · **PD-219** (перезапуск после упавшего дрейна теряет хвост `unit_resolutions` навсегда; зона сама вешала на P7) · **PD-162** (удалённый каталог книги = вечный прогон с открытым холдом) · **PD-168** (бюджет перезапуска по ТЕКУЩЕЙ ставке, не по ставке холда — с Б-1 риск перестаёт быть теоретическим) · **PD-104** (автогрант $5 без агрегатного потолка — бету не открывать). Вопросы зоны без ответа: PD-199 (закрыт нотой, в регистре open), PD-203. + +**(2) Полигон: что требует именно №17.** (а) не унести чужой стейдж; (б) CURRENT-STATE несёт неверный денежный факт ($4.50 при $6.0024) и висящий СТОП по ja-книге, который полигон конкретизировал (`enkan_no_hate_ja`, `POLYGON_PHASE_D_HANDOFF.md:100-101`); (в) прямая просьба хендоффа: «эррата zh-канона… ратифицирует оркестратор» (`:84-86`, завышение +0.0039, вердикты не двигает). На владельце сверх листа: санкция $6.85 задним числом + механизм потолков. Новый материал по Sol: разбор `38c99e5efb` (Д14.10) — у прибора claude пустые нули на реальной инверсии смысла. + +**(3) Строка 161 — прав, с уточнением триггера:** интейк УЖЕ построен (P5/P6), окно закрывается **первой книгой первого внешнего пользователя** (= открытием беты, упирающимся в PD-104). Цена ошибки механическая: `Chapter.ID`/`unit.id` едут через `cutTag` ⇒ перекрой = пере-нарезка каждой книги + пере-материализация у платформы. + +**(4) Шапка 09-target против D39.131–135 — НЕ СХОДИТСЯ** (баннер: 0.2.2 вместо 0.2.3, «эмиттер не запускался» вместо «принят»); сами статусы слоёв 1–7 верны. + +**(5) Фронт-бэклог против фриза:** прямо противоречащих строк нет; но П-16: дев-стенд построен по слову владельца 14.08 именно «чтобы фронт разрабатывался на живой платформе» — живую smoke-линию ставить не «при разморозке», а сейчас. + +--- + +**Obstacle reporting аудитора (что прочитано не целиком):** целиком — CLAUDE.md, docs/README.md, PROGRESS.md (455 строк), оба BACKLOG, шапки 09/14, карта+эрраты+вся живая голова D-лога D39.106–135; выборочно — тела старых нот D-лога (через реестр и грепы), platform-PROGRESS (шапка+дофикс P6+грепы из 1828 строк), frontend-PROGRESS (шапка+вопросы+приёмка S4 из 2416), DEFECT_REGISTER (62 открытые строки грепом, 178 закрытых не читал); архивные слайсы не открывал. Ничего из выборочного не легло в основание вердиктов без отдельной проверки кодом или file:line.