textmachine/docs/PROGRESS.md

117 lines
74 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Журнал прогресса
> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-07-25, пак-17 закрыт, право по ToS подписано, пак-18 принят — долгов контракта нет, D39.26D39.31). **Источник истины по РЕШЕНИЯМ — `architecture/05-decisions-log.md` (D1D39.36); этот файл — ЖУРНАЛ.**
> - **Фазы/курс:** Ф0 ✅ · Ф1-инфра ✅ (D20D28; golden = инвариант №8) · арка «качество-первым» D26→D38.5 закрыта · **арх-ресет D39 исполнен ЦЕЛИКОМ** (7 слоёв → программа D39.1D39.10 → паки 1116, D39.13D39.24; статус слоёв — шапка-таблица `architecture/09-target-architecture.md`) · пере-прогон rerun2 прочитан (D39.20: операционка живьём, $0-резюм ×3 арма, $6.63<$15; планка ≤2 НЕ пройдена; анти-корреляция гладкость↔верность ×3 → mistral-редактор вон) · эксп ЗАКРЫТ (D39.22), итерация №2 отложена · **курс = разработка бэкенда: пак-17 «канал B вживую» ЗАКРЫТ ЦЕЛИКОМ (дизайн D39.26 · стройка D39.27 · дельта `allow` D39.28, 25.07); вокабуляр = ПАРА `violence`/`sexually-explicit`, остаток — ФАКТЫ ToS в зоне полигона (fail-closed до них)** (D39.25: в движке НЕТ понятия «18+» — generic content-labels × provider-capabilities; лейблы вне хешей · резолв до валидации · один хоп `chain[0]` · гранулярность = книга) → **КУРС АМЕНДИРОВАН ВЛАДЕЛЬЦЕМ 25.07 (D39.33): МАСШТАБ — ПОСЛЕДНИМ, после достройки алгоритмического идеала; доказательство эффективности крупных изменений — МИНИ-ПРОГОНЫ ~10 глав (детерминированные чекеры и скан остатка первыми, судья — только когда от него зависит решение).** **ОЧЕРЕДЬ ИСПРАВЛЕНА ЗАМЕРОМ (D39.35): $0-резюм драфта на стенде УЖЕ МЁРТВ** (снапшот разошёлся по трём осям — cheapgate v3→v4, renderfmt v2→v3, langpack 09974d6→a7d4be2), поэтому срочности «гнать, пока жив» НЕТ, а ниты перестали быть условными: **(1) микро-пак «предпрогонная гигиена» ($0-код): два нита общности + ОБЯЗАТЕЛЬНЫЙ флип `Gates.RegressionGuard.Enabled` (невыполненное обязательство D38.4 п.5) + опц. проекция пере-оплаты в `tmctl status`** · **(2) мини-прогон-замер ~10 глав** (драфт ≈$0.02, редактура ≈$0.080.15/арм, судья НЕ зовётся ⇒ один арм ≈$0.100.17, два ≈$0.200.32; перед прогоном бэкап `rerun2/*.db`, БД на схеме v9 против v10 бинаря) · **(3) параллельно $0 — сид/банк-дельта** (元 · 赤城 · 学堂家老 · 春秋蝉; два терма ждут подписи владельца) · **(4) пак-19 в урезанном скоупе** · (4) далее слой-2 извлечение из тел промтов · ru-target · native-Gemini судья. Затем — сид-дельта (元 · 赤城 · 学堂家老 · 春秋蝉), МАСШТАБ целой книги (7,78 млн символов, ~2284 раздела) и пилот Ф2.5. Хроника треков A/B, exp15/16 и стройки паков — архивы ниже + D-лог.
> - **Стек:** draft deepseek-v4-flash (thinking ON) → **editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (D39.22; glm-5 резерв, mistral вон D39.20)**, промпт v3-discourse (P1a+чэнъюй+few_shot-тумблер) → судья gemini-3.1-pro-preview; канал B Mistral+grok; 7 ключей; ~$0.85/ранобэ (D30.4).
> - **ОТКРЫТЫЕ ПЕТЛИ (норма 25.07, перепись 180 инцидентов: класс NEVER_CLOSED больше не копим — каждая петля обязана получить диспозицию решено/отложено-с-записью/отклонено; ведёт оркестратор).** *Владелец:* ~~вокабуляр content-лейблов~~ **РЕШЕНО 25.07: ПАРА `violence`/`sexually-explicit`** (D39.27 п.5 — сохраняет D14 п.1 и dspro-редактора на violence) ⇒ следствие в работе: assert-only `action` (дельта пака-17) · ~~Q2 редактор под лейблом~~ **ОТЛОЖЕН С ЗАПИСЬЮ** (D39.27 п.7: при паре связывает только `sexually-explicit`-книги, которых нет; возвращается вместе с предусловием D22.7 перед первой explicit-книгой; кандидаты — grok-4.3 интерим, glm-5 только после сверки ToS Z.AI по первоисточнику, mistral отвергнут D39.20) · ~~ToS-факты + три решения по ним~~ **ЗАКРЫТЫ 25.07 (D39.29 факты + D39.30 подписи владельца):** лейбл `violence` НЕ заводится, интерпретация «нейтральное изображение ≠ пропаганда» зафиксирована письменно · риск Z.AI (плоский запрет «violent content»; экспозиция состоялась в rerun2 через glm-арм) ПРИНЯТ сознательно с условиями пересмотра · две строки `accepts_labels: [sexually-explicit]` (`xai`, `mistral`) ПОДПИСАНЫ и ПРИМЕНЕНЫ в `models.yaml`. **Остаток ToS-вопросов ЗАКРЫТ владельцем 25.07 (D39.32):** local = «политик нет, переводим всё» ⇒ строка применена · Gemini-оговорка читается СУЖЕНИЕМ ⇒ вердикт `FORBIDDEN`→`UNCLEAR`, но по доктрине это НЕ разрешение: строку Gemini не получает, **ждёт одного слова, если владелец хочет подписать интерпретацию как разрешение** · причину пустоты в конфиг НЕ выносим (живёт в quirks-доке) · **ре-чек политик стал ПРАВИЛОМ** (триггеры: Google ToS 30.07.2026 · квартал 25.10.2026 · любая правка `accepts_labels`) · дата аккаунта OpenAI — открыта, приоритет низкий (OpenAI вне цепочки). **Продуктовое (Ф3):** Gemini API Additional ToS запрещает клиентов, «likely to be accessed by individuals under 18» — обязательство на конечный продукт, независимо от лейблов · **промпт-слой под лейблом (НОВОЕ, вскрыто вопросом владельца): лейбл сегодня НЕ доезжает до промпта** (чистые данные маршрутизации + load-time гарантия); нужно ли, чтобы переводчик/редактор ЗНАЛИ о свойстве контента — отдельное решение промпт-слоя · мини-каноны сид-дельты — 元-корень (предложение «изначальн-») и 春秋蝉 (подписано «Весенне-осенняя цикада», ждёт подтверждения) · **включение платной петли ремонта — по замеру остатка на пост-профилактическом прогоне (D39.24; заменил mini-live гейт D6)** · ja→ru-реплика §B5 (тайминг) · старые Ф2.5-блокеры (билингв-якорь — D25 п.9 Q1 · контаминация корпуса — D27 п.4 · судья-дублёр D22.6 · планка запуска · publishable/waiver — D25 п.1 · FN-bound L3 — D25 п.4 · юр-пакет · провенанс 12-*-доков · xAI-ключ off перед продом D27 · residual-тачпойнты exp16, не влитые в сид-дельту: мини-голд алиасов · precision@30, `books/gu-zhenren/exp16/`). *Оркестратор:* ~~ратификация дизайна пака-16~~ РЕШЕНО D39.24 (25.07) · фантом-гард D-ссылок в чек-листе лендинга (действует) · ~~doc-sync pass~~ **ИСПОЛНЕН 25.07** (запись ниже: оба puml перерисованы под пост-пак-16 · баннеры на 01/02/03/04/06/07/08/09 · ресёрч-свип 18/18c/19/20/21/22 · README/POLYGON_PACKAGE4 освежены; residual — пинги полигону в его зоне) · ~~приёмка пака-17 фаза 1~~ **РЕШЕНО D39.26 (25.07: принято в редакции §14, три добора приёмки, фаза 2 размечена)** · **`escalation_model` = ОТВЕТИВШАЯ модель (НОВОЕ, вынесено из пака-17): вердикт-изменение** — golden пинит `esc_model` на ОТКАЗАВШЕМ хопе, маскировка не скрывает ⇒ отдельная ратификация с санкционированным пере-капчером · **`--accept-rebill[=usd]` с порогом `min($0.50, 5%×ProjectedBookUSD)` РАТИФИЦИРОВАН D20.2-Q2, но в коде/CLI ОТСУТСТВУЕТ (НОВОЕ)** — живёт только в спеке `backend/docs/D15.2-*.md`; `--resnapshot` пере-пиннит без суммы · **D22.7 (пер-чанковый L3-скрин) — предусловие первой erotica-книги в проде НЕ снято паком-17 (НОВОЕ, держать отдельным гейтом)** · фантом-гард D-ссылок в чек-листе лендинга (действует). *Бэкенд:* ~~пак-17 (фазы 12 + дельта)~~ **ЗАКРЫТ ЦЕЛИКОМ 25.07 (D39.26/27/28)** · ~~ПАК-18 «долги контракта»~~ **ПРИНЯТ И ЗАЛЕНДЕН 25.07 (D39.31) — долгов контракта не осталось**; выдавался (`BACKEND_PACK18_DEBTS_SESSION_PROMPT.md`: `--accept-rebill` на снапшотной гранулярности — `guard_hash` в коде нет и не строим · `escalation_model` = авторитетная модель с САНКЦИОНИРОВАННЫМ пере-капчером golden под этот дифф · два нита общности условно-байт-нейтрально) · **ru-target долг (слой 7, `isRuTarget`×11 прод-сайтов · `TokenizeCyrillic`×6 · ключ «ru» в санитайзере) — ЖДЁТ СВОЕГО ДИЗАЙН-ПАКА** (связывает только не-русский таргет, по текущей карте zh/ja/en→ru не срочен) · **ПАК-19 «голос и состояние» ВЫДАН 25.07** (`BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md`, двухфазный; ниты общности едут ЕГО лендингом — D39.31 п.5) · **проекция пере-оплаты в `tmctl status` (НОВОЕ, из отчёта пака-18): спека §9 предлагает заменить булев `ConfigDrift` числом «N чанков, ~$X» — дёшево, `omitempty`, не сделано сознательно** · **не-долги, следующие несущие:** масштаб целой книги (волны/каденс/потолки/ETA на сотнях глав — гоняли максимум 5) · Ф2-механизмы (голос/состояние D21 · native-Gemini судья) · извлечение дискурс-норм/few-shot из ТЕЛ промтов (слой 2, форсинг = ja→ru) · ~~пак-16 ф.2~~ ЗАЛЕНДЕНА 25.07 · per-class исходы ремонта — схемное решение (класс не durable), принимается ВМЕСТЕ с включением петли · ниты общности (владелец 25.07) — **ОТЛОЖЕНЫ ПО ЗАМЕРУ (D39.31 п.5): едут на ближайший ПОЛНЫЙ `--resnapshot`**; для Detail-строк байт-нейтральной формы не существует определительно (дефолт шаблона обязан рендерить текущую строку). Прежняя формулировка: только в байт-нейтральной форме с доказательством исполнением (иначе `CheapGateVersion`/`pack.Version()` двигают снапшот стендовых книг и убивают $0-резюм драфта под замер остатка пака-16): Detail-строки чекеров → шаблоны/цитаты из данных (статический 时辰-текст в generic-файле соврёт второй паре) · множитель ×2 `lintTimeUnits` (`checkers.go:174`) → ключ данных. *Полигон:* ~~пакет 5 (факты ToS + 8 пингов)~~ **ОТРАБОТАН ЦЕЛИКОМ И ПРИНЯТ 25.07 (D39.29); все восемь пингов закрыты; полигон-очереди НЕТ.** Исторический список закрытых пингов: (1) `00-provider-quirks.md:13,73` — катовер deepseek-chat 24.07 ПРОШЁЛ, пост-катовер факт (жив ли алиас, цены) не внесён — live-проба `/models` + вендор-дока; (2) `00-provider-quirks.md:69` — оговорка «mistral-editor-арм до guard» superseded D39.20 (mistral вон из редакторов; rate-limit-цифры оставить — нужны переводчику канала B пака-17); (3) `09-pilot-protocol.md:3` — ⚠-указатель застрял на D31/glm-5: продлить до пост-D39.22 (dspro-интерим · планка ≤2 не пройдена rerun2 · авто-QA слепыми метками D39.20 · стайл-каноны D39.21), тело не трогать; (4) `15-segmentation-empirics.md:6-7` — шапка до сих пор «НИ ОДНОГО платного вызова», а эксп залендён REV.2 (D39.7/D39.8, $12.79) — перевернуть статус-блок; (5) `16-bank-mining.md:3` — дописать финал «ИСПОЛНЕН И ЗАЛЕНДЁН (D39.10); gender-тачпойнт §7 закрыт (D39.19); продолжение — Go-майнер парити EXACT»; (6) `experiments/README.md` — индекс без строк exp15/16 (сверка застряла на D38.2); (7) `eval/README.md` — не тронут с 19.07 (пре-rerun2): освежить статус под пост-D39.22 (эксп закрыт · судейский риг-стандарт D39.7 · экстракция только `tmctl export`).
> - **НАЙДЕНО СПЛОШНЫМ АУДИТОМ 25.07 (D39.34) — 23 позиции, что были ратифицированы, но не попали в трекер; каждая с диспозицией.** *(1) Обязательство, НЕ исполненное:* **флип `Gates.RegressionGuard.Enabled` (D38.4 п.5 «ОБЯЗАН включить» при сборке resnapshot) — ключа нет ни в одном шиппинг-конфиге ⇒ гейт false; rerun2 прошёл без построенной наблюдаемости** → едет обязательной строкой в пак, вызывающий ближайший resnapshot. *(2) Флипы гейтов за подписью владельца (остаются открытыми-с-записью):* coverage `enabled:false` (D12-Q4) · `postcheck_gate` в hard-gate требует пере-замера recall (D24.4+D28.1). *(3) Поглощено курсом:* заморозка «этапа B ~300 глав» (D26 п.1) — **снята D39.33** (масштаб последним), отдельной петлёй не считается. *(4) Открыто, вне «идеала»:* этапы Б+В спеки D15.2 (D33 п.5 «промт выдам после пере-прогона» — прогон был 23.07) — они про content-addressed resume/`guard_hash`, который D39.31 сознательно не строил · F3-остаток идемпотентности · `human_override` LOCK (D29 п.1г, в коде 0 вхождений) · морфо-гейты канцелярита и L1-лемматизация (Ф2, python-сайдкар) · полный OpenCC (0 вхождений) · опциональный пре-перевод гейт. *(5) Мелкие хвосты качества (собрать одним паком когда-нибудь):* ledger-очередь LOW/NOTE из D39.4 · остаток фикс-листа D23 п.4 и D28 п.3(б) · `editor-mono.md` DORMANT (ни в одном конфиге). *(6) Деньги/провайдеры (полигон):* вендор-чек префикс-кэша ZAI/GLM (на нём стоит вся кэш-экономика W1/Q2c) · продление `prices_checked` без правки чисел · scheduler-aware волны под peak-valley DeepSeek (прямой COGS-рычаг) · гейтнутые платные армы (edit-единица >3200 и др.) · wire-probe temperature в thinking-канале DeepSeek. *(7) Продукт/Ф3:* action-security gate перед выдачей tools/webfetch (D25 п.5) · планы research/22 (epub-tag-rewrite, Q7-леджер) · Gemini под-18 обязательство на конечный продукт. *(8) Вход в пак-19:* требование НАРРАТИВНОЙ гендер-аннотации (since_ch-смены + перспектива), а не булева поля — вписано в промт.
> - Архивы хроники: `archive/PROGRESS-2026-07-04-10.md` (D31) · `archive/PROGRESS-2026-07-10-13.md` (D39.6-гигиена) · `archive/PROGRESS-2026-07-13-25.md` (слайс 25.07: стройка паков 1116, rerun2). Записи ниже — живой хвост.
## Оркестратор №8 — АКТУАЛИЗАЦИЯ ПО ЗАПРОСУ ВЛАДЕЛЬЦА: закрытые промты 17/18/полигон-5 забаннерены и в архиве, курс в CLAUDE.md переписан под голову D39.36, 25.07
Финальный синк перед мини-прогоном. Карта: **паки 17 и 18 — ЗАКРЫТЫ И ЗАЛЕНДЕНЫ** (не впереди); впереди — мини-прогон → сид-дельта (元-корень ждёт владельца) → пак-19 «голос/состояние» (урезанный скоуп, D39.34) → развилка по шву банкноты ПОСЛЕ пробы (D39.36 записан фактом; решение о починке — по данным пробы, не раньше). Актуализировано: `BACKEND_PACK17_*` (был забаннерен, но лежал в docs/) · `BACKEND_PACK18_*` (баннер-исход D39.31 добавлен) · `POLYGON_PACKAGE5_*` (баннер-исход D39.29/30 добавлен) — все три `git mv``archive/prompts/`, ссылки README перенацелены; шапка PROGRESS дотянута до D39.36 (отставала на один); курс-буллет CLAUDE.md переписан с эры «пост-пак-17» на фактическую очередь D39.3336. Активные промты теперь ровно три: `BACKEND_MINIRUN_SESSION_PROMPT.md` (текущий) · `BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md` (после мини-прогона) · `POLYGON_PACKAGE4_SESSION_PROMPT.md` (residual-трекер).
## Оркестратор №8 — МИНИ-ПРОГОН САНКЦИОНИРОВАН: один промт, одна сессия, два прохода (главный + проба банкноты), 25.07
Владелец санкционировал запуск и потребовал ОДИН промт на ОДНУ сессию. **Моя рекомендация была гнать** — всё, что прогон проверяет, от разомкнутого шва банкноты не зависит; цифра остатка дефектов — вход в решение о платной петле (D39.24); гейт согласия на пере-оплату ни разу не стрелял вживую. **Возражение владельца принято и оказалось правым:** раз мы доказываем работоспособность бэкенда, канал, который ни разу не стрелял, надо проверить тоже. **Решение — не смешивать, а разложить на два прохода в одной сессии:** (1) главный, шиппинг-форма, банкнота ВЫКЛЮЧЕНА — с него снимается чистая цифра остатка; (2) проба банкноты ≈$0.02 — отдельный проект, ТОЛЬКО волна черновика (проверено: `CheckRunnable` гейтит лишь `core` и `fanout`, стадия редактора не обязательна), копия промпта с блоком `⟦TM-BANK-v1⟧`, `gates.banknote.enabled: true`, `LOG_LLM_BODIES` (записи парсера код выбрасывает — сырые тела единственный способ увидеть сами предложения). Итог ~$0.120.19 за арм, проверено включая то, что не проверялось никогда. **Цена «одной сессии» названа в промте честно:** author≠reviewer снят, самоотчёт — доминирующий канал ошибок проекта (62/180), поэтому три компенсации обязательны — пре-рег ДО трат с заранее названным критерием ПРОВАЛА, заявление=команда, и приёмка оркестратора по СЫРЬЮ с ре-раном манифеста. Отдельный полигонный промт я написал и по требованию владельца слил обратно — верификация стала ШАГОМ 4 того же промта.
## Оркестратор №8 — ПРОМТ МИНИ-ПРОГОНА ВЫДАН (одна сессия: гигиена → прогон → верификация), 25.07
Решение владельца: всё делает ОДНА сессия — «тест на 10 глав, что все изменения работают и работают как надо». Принцип author≠reviewer снят владельцем ради простоты; **компенсация вписана в промт явно**: пре-регистрация ДО денег (пороги и критерий успеха фиксируются первым разделом отчёта и не переписываются), самопроверка исполнением по каждому узлу, и мой рубеж-2 по СЫРЬЮ (логи/БД/экспорт), а не по выводам сессии. **Шаг 0 — гигиена ($0-код) внутри той же сессии:** обязательный флип `Gates.RegressionGuard.Enabled` (невыполненное обязательство D38.4 п.5, D39.34) + два нита общности (условность снята D39.35 — терять нечего) + опц. проекция пере-оплаты в `status`. **Прогон:** новый проект, главы 110 из исходного GB18030, сквозная цепочка ingest→чанкер→драфт→майнинг-стоп(подпись владельца)→редактура→чекеры→экспорт; судья НЕ зовётся; петля ремонта остаётся выключенной, но read-only скан остатка — ГЛАВНОЕ измерение (цифра для решения о включении петли, D39.24). **Семь доказуемых утверждений** (каждое — с сырьём): живое срабатывание rebill-гейта (снапшот разошёлся ⇒ гейт обязан выстрелить — первое исполнение механизма пака-18) · майнинг-стоп с подписью · чекеры и остаток · наблюдаемость после флипа · лейбл-путь как no-op · деньги durable и факт против оценки $0.100.35 · семантика `escalation_model`. Второй арм (glm-5, итерация №2) — только по отдельному слову владельца (ещё ~$0.1 и принятый риск Z.AI). **Сид-дельта проверена мной по факту:** `春秋蝉` и `资质` уже в сиде; `学堂家老` отсутствует; `赤城` только внутри `古月赤城`; **семейство `元` расщеплено** (море истинной ци / истинная ци / первобытный камень) — единый корень ждёт слова владельца, иначе прогон идёт с ИЗВЕСТНЫМ разрывом канона, зафиксированным явно.
## Оркестратор №8 — КУРС АМЕНДИРОВАН ВЛАДЕЛЬЦЕМ (D39.33): масштаб последним, мини-прогоны ~10 глав как инструмент; пак-19 распаркован, 25.07
Владелец: «масштаб гонял бы уже при полностью построенном бэкенде — достроили весь идеал алгоритмический, и только тогда масштаб; мини-прогоны на глав 10 — чтобы доказать эффективность крупных изменений». Это правка ратифицированного курса D39.22, где масштаб стоял ПЕРВЫМ. Оформлено D39.33. **Усилил фактурой:** приёмочная книга — 7,78 млн символов, ~2284 раздела (`第N节`), то есть масштаб-прогон дорог не деньгами (по модели ~$1/ранобэ), а временем и необратимостью решений, снятых на форме, которую мы всё равно собирались менять; мерить эффект на 510 главах мы уже умеем (в rerun2 вся генерация стоила центы, дорогой была только судейская часть). **Мини-прогон закреплён как НОРМА:** ~10 глав · детерминированные чекеры и read-only скан остатка первыми · судья только когда от его вердикта зависит решение · каждый мини-прогон отвечает на НАЗВАННЫЙ вопрос. **Определение «алгоритмического идеала» сведено в 6 пунктов** (D21 · петля ремонта · слой-2 извлечение из тел промтов · ru-target · два нита · native-Gemini судья) — чтобы «достроено» было проверяемым; границу уточняют 4 вопроса владельцу (Annotator · семантический судья, по D38.4 от него отказались · ja→ru §B5 · ru-target до или после). **Пак-19 распаркован** — под новым курсом он законно первый. **Честная запись:** позицию пака-19 я накануне предложил сам, подав ре-ордеринг как исполнение плана; владелец усомнился, дословные цитаты (D39.22 + CURRENT-STATE) сомнение подтвердили, промт был запаркован. Директива сделала ту позицию верной по существу, но метод она не оправдывает: вывод, совпавший с репликой собеседника, обязан проверяться против документов ДО выдачи. Сплошной аудит корпуса (6 читателей + критик) на момент записи ещё идёт; его находки лягут отдельной записью.
## Оркестратор №8 — СВОДКА ПЛАНОВ (по запросу владельца) + ПАК-19 «голос и состояние» ВЫДАН, 25.07
Прошёл по коммитам, трекеру, шапке-таблице слоёв, D-логу и резидуалам отчётов — сверял, не полагаясь на память. **Свод:** долгов контракта у бэкенда НЕТ (пак-18 их закрыл); полигон-очереди НЕТ (пакет-5 закрыл всё); ToS-ось закрыта, кроме одного слова по Gemini и низкоприоритетной даты аккаунта OpenAI. **Непостроенное, по убыванию веса:** (1) механизмы D21 «голос и состояние» — самый крупный рычаг качества, ратифицирован 09.07, в коде только комментарии будущих таблиц в миграциях; (2) масштаб целой книги (волны/каденс/потолки/ETA на сотнях глав — гоняли максимум 5); (3) native-Gemini судья (Ф2); (4) извлечение дискурс-норм/few-shot из ТЕЛ промтов (слой 2, форсинг = ja→ru); (5) ru-target долг (слой 7, свой дизайн-пак, не срочен по текущей карте); (6) два нита общности — привязаны к ближайшему resnapshot. **Новая мелкая петля, вытащенная из отчёта пака-18:** проекция пере-оплаты в `tmctl status` сознательно не добавлена (спека §9 предлагает заменить булев `ConfigDrift` числом «N чанков, ~$X»; на снапшотной гранулярности дёшево и `omitempty`) — записываю, чтобы не потерялась.
**Решение по последовательности (моё, аргумент — деньги):** пак-19 берёт D21, и ниты общности едут ЕГО лендингом. Причина: ниты требуют `--resnapshot`, а D21 двигает провод сам по себе (инъекция голоса/обращений меняет сборку контекста ⇒ снапшот), то есть отдельный resnapshot ради нитов = вторая оплата за то же. По той же причине платный прогон отложен ЗА пак-19: мерить остаток и итерацию №2 на стеке, который мы прямо сейчас собираемся менять, — значит купить ответ про вчерашнюю форму. **Промт выдан:** `BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md` — двухфазный (дизайн V1V6 → ратификация → стройка); несущее в нём: реестр обращений как МАТЕРИАЛИЗАЦИЯ журнала ты/вы (не второе хранилище) · voice-профиль заморожен per-job до доказанного обратного · только CONFIRMED в инъекцию · **ты/вы = данные пары, не Go** (первый пак, где §0 проверяется по-настоящему — T/V есть не во всех языках) · Annotator и слой-2 детектора вынесены · ниты общности взяты ровно так · пере-капчер golden только с пустым маскированным диффом вне названных осей.
## Оркестратор №8 — ПАК-18 ПРИНЯТ (D39.31): согласие на пере-оплату построено, `escalation_model` исправлен под машинно-проверенный пере-капчер, ниты отложены ПО ЗАМЕРУ, 25.07
Приёмка execute-first. Пере-ранил всё: build/vet чисты · `gofmt` только `internal/llm/llm.go` (воспроизводится на HEAD — оговорка сессии честная) · `-race` 12/12 · shuffle зелёный · парити EXACT · **ценз диффом ИМЁН 455→475, удалено 0**. **Главное — санкционированный пере-капчер golden проверен МАШИННО, а не глазами:** замаскировал `esc_model="…"` в HEAD-версии и рабочей — файлы БАЙТ-ИДЕНТИЧНЫ; `brief_hash`, оба `snapshot_*_payload`, `memory_version` совпадают построчно ⇒ вердикт-изменение не утащило ни одной другой оси, пере-оплаты нет. Сдвинулись ровно 4 строки, все `ch3/0 draft` (кейс «хоп тоже отказал»). Новый baseline — `211c9013…089045d6`. **Мои независимые мутации:** формула порога `min``max` → 6 красных (включая оба CLI-провода); проекция считает строки, резюмящиеся за $0 → 3 красных. **Развилка сессии «`--resnapshot` не есть согласие» принята и оказалась даже не девиацией** — спека прямо говорит «отдельный от `--resnapshot`-алиаса» (`D15.2-*.md:590`), а её собственный аргумент сильнее: при алиас-прочтении ратифицированный порог превращается в гейт, который не может выстрелить. **Отсрочка нитов принята как ИЗМЕРЕННАЯ** (`pack.Version()` `a7d4be2c0465``133d71e8d132`; стендовая книга объявляет `langpack_root` на репозиторный каталог — проверил), плюс определительный аргумент по Detail-строкам (дефолт шаблона обязан рендерить сегодняшнюю строку ⇒ 时辰-литерал остаётся в Go при любой форме данных). **Своя ошибка, фиксирую:** запись бэкенд-сессии в PROGRESS уехала в мой прошлый коммит `3bc9eb4` — собрал общий файл целиком, пока её текст лежал в дереве; правило уточнено в D39.31 (для ОБЩИХ файлов смотреть `git diff --cached` по СОДЕРЖИМОМУ, а не по списку имён).
## Оркестратор №8 — РЕШЕНИЯ ВЛАДЕЛЬЦА ПО ФАКТАМ ToS (D39.30): `violence` не заводим + интерпретация подписана, риск Z.AI принят, две строки применены, 25.07
Владелец разобрал три развилки. **(1) `violence`** — лейбл механически не заводить, а подписанное чтение «нейтральное художественное изображение ≠ promoting/inciting/glorifying» зафиксировать письменно в контракте: аудит-след есть, книга едет, обратимость одной правкой данных сохранена. **(2) Z.AI** — риск принят сознательно (прогон исследовательский, на своей книге, без публикации), с записанными условиями пересмотра: публикация/клиентские книги · чужой контент · смена политики Z.AI (пере-проверка 25.10.2026); уточнение по коду: `glm-5.1` в `chains.default` недостижим (single-hop + `budget_usd: 0`), вектор был именно арм-конфиг. **(3) Подпись дана** — `xai` и `mistral` получили `accepts_labels: [sexually-explicit]` в `backend/configs/models.yaml` моими руками (зона бэкенда, но применение подписанных строк — процедура оркестратора, ратифицирована промтом пакета-5). Проверил исполнением: `go test ./internal/config/` зелёный, ни одна книга лейблов не несёт ⇒ применение ничего не запускает и не двигает (строки — данные провайдера, вне хешей и снапшотов). Механизм перестал быть пустым; для первой explicit-книги по-прежнему обязательны D22.7 и выбор редактора под лейблом.
## Оркестратор №8 — ПАКЕТ-5 ПОЛИГОНА ПРИНЯТ (D39.29): право по ToS добыто первоисточниками; по `violence` права нет ни у кого; две строки ждут подписи владельца, 25.07
Приёмка фактического пакета — своими копиями первоисточников, а не чтением отчёта. Проверил три клетки с наибольшей ставкой, все подтвердились: **mistral/sexually-explicit ALLOWED** (HTTP 200 на `legal.mistral.ai`, дата ревизии совпала, названы CSAM/NCII/sexual services, взрослая художественная эротика не названа, контентного катч-олла нет) · **xai** (прямой `x.ai` дал 403 и у меня — Cloudflare воспроизвёлся; Wayback `id_` 200, дата совпала, **`grep -c -i violen` = 0 по МОЕЙ копии** ⇒ сессия правильно перевернула собственный ALLOWED в UNCLEAR) · **zai FORBIDDEN оба** (п. f) «obscene, pornographic, **violent**…» плоско, п. g) «sexually explicit») — **чем закрыт открытый вопрос D39.27 п.7: glm-5 под лейблом недоступен**. Метод сессии (три контура: добыча → независимая перечитка «сломай» → собственный третий проход; 15 цитат с `grep -c -F`=1) сработал по целевому дефект-классу: адверсариальный контур снёс её же ALLOWED по xai/violence, подпёртый уликой ДРУГОГО лейбла. Доктрину принял целиком, включая решение ПРОТИВ собственного независимого контура (openai/violence → UNCLEAR из-за инкорпорированного катч-олла): последовательность правила дороже одной выигранной клетки. **Errata D14 п.1** (§3.4(5) верен дословно, но живёт в Terms of Use, а не в Open Platform ToS) записана в D39.29, тело исторического блока не переписано. **Мой добор (формулировку уточнил после проверки — первая была мягче правды):** `zai` запрещает «violent content» ПЛОСКО, а экспозиция УЖЕ состоялась — glm-арм (editor `glm-5`) гонялся живьём на 蛊真人 в rerun2 (D39.20); `glm-5.1` в `chains.default` при этом недостижим (single-hop + `budget_usd: 0`) ⇒ вектор — арм-конфиг, не цепочка. **Рекомендация по §5.1:** лейбл `violence` механически не заводить (статус-кво, под которым уже прошли exp10/rerun2), интерпретацию зафиксировать письменно за подписью — аудит-след без блокировки. Восемь пингов блока B закрыты; пинг-1: катовер `deepseek-chat` исполнен (404 и на пер-слаговом retrieve), цены не изменились.
## Оркестратор №8 — БЭКЕНДУ ВЫДАН ПАК-18 «долги контракта»; граница `--accept-rebill` ратифицирована по факту отсутствия `guard_hash`, 25.07
Вопрос владельца «а в бэкенде ничего не осталось?» — проверил по коду, не по памяти: осталось. Пак-18 берёт три ратифицированных-но-не-построенных долга, и он ЕДИНСТВЕННАЯ работа, не ждущая никого (полигон параллельно добывает ToS-факты, подписи владельца не нужно, платных вызовов ноль). **Несущее решение при выдаче:** проверил `grep guard_hash` — пер-чанковой проекции §7 спеки D15.2 в коде НЕТ ВООБЩЕ (дрейф булев: `ConfigDrift`/`SnapshotDrift`), поэтому **ратифицировал границу: согласие на пере-оплату строим на ТОЙ гранулярности, на которой движок реально пере-оплачивает — снапшотной** (проекция = Σ хранимых `chunk_status.cost_usd` единиц, промахивающих новый снапшот; `EstimateUSD` для единиц без цены), `guard_hash` НЕ строим, а ратифицированная оговорка спеки «каскад §7.1-бис ложится перед семантикой флага» на этой гранулярности ВЫРОЖДЕНА (пере-оплачивается всё) — не нарушение порядка, а неприменимость; сессии предписано зафиксировать это строкой, а при расхождении с кодом принести развилку с цифрами, а не строить мини-`guard_hash`. **Пункт 2** (`escalation_model` = авторитетная модель): пере-капчер golden САНКЦИОНИРОВАН ровно под этот дифф с дисциплиной «маскированный структурный дифф показывает ТОЛЬКО колонки `esc_model`, любая другая сдвинутая строка = стоп»; ни одна ось `RequestHash`/снапшота не двигается (доказать исполнением); миграции нет. **Пункт 3** — два нита общности, условные и байт-нейтральные, с правом отложить явно. **Явно вынесено:** ru-target долг (слой 7) получит СВОЙ дизайн-пак — в долговой не тащить.
## Оркестратор №8 — ПОЛИГОНУ ВЫДАН ПАКЕТ 5: факты ToS под `accepts_labels` + семь док-синк пингов одним промтом (решение владельца «отдать полигону всё»), 25.07
`POLYGON_PACKAGE5_SESSION_PROMPT.md`. **Блок A (ради него пакет):** после закрытия пака-17 между рабочим механизмом лейблов и первой помеченной книгой стоит ровно одна вещь — ФАКТЫ ToS/AUP, которых у нас нет. Несущее в промте: `accepts_labels` = ПРАВО отправлять по договору, а НЕ предсказание отказа (две оси эмпирически расходятся в обе стороны: Gemini fail-closed на эротике при отсутствии запрета — D22.6; DeepSeek переводил explicit ПРОТИВ своего ToS — exp11) · вердикт ПЕР-ЛЕЙБЛУ, потому что вся выгода ратифицированной пары держится на расхождении `violence`/`sexually-explicit` у одного вендора (D14 п.1) · три вердикта, где **UNCLEAR легитимен** и оставляет fail-closed · каждый вердикт несёт URL + дату ревизии + ДОСЛОВНУЮ цитату + дату проверки, гадать запрещено (правило двух направлений) · фиксируем факты, юридическое заключение не выдаём — подпись под строками ставит владелец · `backend/` read-only, строки данных ПРЕДЛАГАЮТСЯ в отчёте · ноль live-вызовов, это чтение документов. Мандат самопроверки заточен под типовой провал класса — **овер-атрибуцию** (верная цитата не тому вендору/пункту/ревизии): после написания таблицы перечитать каждую цитату в источнике и сверить тройку «вендор — документ+дата — вердикт». **Блок B (лёгкий хвост, без церемоний):** 7 накопленных док-синк пингов зоны полигона + восьмое следствие пака-17 (флаг `permissive` в quirks-доке больше не существует). Все петли трекера по полигону закрыты выдачей; на владельце осталась одна — ПОДПИСЬ под итоговыми строками.
## Оркестратор №8 — ДЕЛЬТА ПАКА-17 ПРИНЯТА и залендена: действие `allow` (assert-only) — ратифицированная ПАРА лейблов выразима ДАННЫМИ; ПАК-17 ЗАКРЫТ ЦЕЛИКОМ (D39.28), 25.07
Дельта закрыла работу, которую открыл ответ владельца по вокабуляру. Итог: тройка `route | allow | terminal`, где ВСЕ ТРИ несут ОДИН инвариант (каждая достижимая модель принимает все лейблы книги) и различаются остальным; `allow` не двигает маршрут и ЗАПРЕЩАЕТ `chain`/`label_models`/бюджет как бессмысленные (дисциплина «громко, а не игнор»). `checkContentRouting` править не пришлось — предсказание D39.27 п.6 подтвердилось. **Моя приёмка исполнением:** build/vet/gofmt чисты (единственная жалоба `internal/llm/llm.go` воспроизводится на HEAD — сессия файл не трогала, оговорка честная) · `-race` 12/12 · **golden `f7641993…0020f8` = HEAD байт-в-байт**, `testdata/` чист · парити EXACT `n=13618 … 0.9655` · **ценз диффом ИМЁН 451→455, удалено 0**. **Моя независимая мутация:** инвариант проверяет только ПЕРВЫЙ лейбл вместо объединения → красный `TestRatifiedLabelPairIsDataOnly` — союзная семантика, на которой стоит ПАРА, запинена тестом, кодирующим форму ответа владельца. Сквозняк `TestAssertOnlyLabelRunsWithoutMovingAnything` прочитан и НЕ вакуумен: число вызовов + каждое тело запроса + стоимость + оба волновых снапшота, всё при `budget_usd = 0`. **Данные:** `accepts_labels` осознанно пусты — ратифицировал как ВЕРНОЕ fail-closed состояние; в диффах данных ни одного ToS-утверждения от сессии (значения = факты по первоисточникам, ПЕР-ЛЕЙБЛУ, фиксирует полигон). Фикс-лист D39.27 закрыт. **Пак-17 отработан целиком (D39.26 · D39.27 · D39.28); промт переведён в архивный статус.**
## Оркестратор №8 — ПАК-17 ФАЗА 2 ПРИНЯТА (execute-first) и ЗАЛЕНДЕНА: механизм лейблов живой, вокабуляр владельца = ПАРА, дельта = assert-only action (D39.27), 25.07
Приёмка гоняла, а не читала. **Мой ре-ран манифеста:** build/vet чисты · `-race` 12 пакетов ok, 0 FAIL · **golden `f7641993…4f0020f8` байт-в-байт равен HEAD-версии фикстуры** (`git show HEAD:… | sha256sum`), `testdata/` чист ⇒ пере-капчера не было · **парити EXACT `n=13618 catastrophe{方源:0 蛊:1 蛊师:2 古月:22} recall 0.9655 (56/58)`** тождественно пакам 15/16 · **ценз проверен ДИФФОМ ИМЁН (не счётчиком): 433→451**, удалены ровно 8 объявленных (6 failover + `TestCheckAdultChannel` + `TestRunnerChannelBRequiresPermissive`) · `-shuffle=on` зелёный · шов на провод один. **Рубеж-2 — три МОИХ мутации в копии дерева (не из списка сессии), все пойманы именованными тестами:** лейблы обратно в канон `BriefHash``TestEditorOnlyLabelLeavesTheDraftWaveUntouched` красный (приятная находка: инвариант D39.26 п.1 запинён СЛЕДСТВИЕМ — снапшотом драфт-волны — что сильнее ассерта равенства хешей, моя гипотеза «инвариант не запинён» опровергнута исполнением) · отключение лейбл-проверки в `clientFor` → два красных · безусловный отказ маршрутизации → `TestLabelledReadPathStaysAlive` красный. **По коду подтверждено:** достижимость лейбл-зависима, `r.client(` больше нет, порядок `GetCheckpoint→clientFor→Reserve`, добор C закрыт именованным тестом рейт-гардов, отчётность вся `omitempty`, **шиппинг-конфиги без единой поведенческой правки**, **стенд чист** (0 файлов с `permissive:`/`channel:` вне git; все 5 книг ссылаются на репозиторный `models.yaml`) ⇒ отставки операционку не ломают. Сессия сама нашла и починила 8 дефектов ДО сдачи (CRIT: лейбл-фикстура была тождественным отображением ⇒ несущая половина пака не покрывалась) — ровно та самопроверка исполнением, которой мандат 12.07 и добивался. **Диспозиции:** форма добора B = **форма 2** (гейт независимо от `off`; форма 1 валит `models.yaml` через `echoMineViolation`×`control: effort` — проверено) + generic-предупреждение `sourceEchoExposure` · семантика хопа = следствие D39.26 п.1, не девиация · `labelsFor()` подписью — сильнее рантайм-ассерта · хвосты общности — отложено-с-записью. **Ответ владельца: вокабуляр = ПАРА `violence`/`sexually-explicit`****дельта: третье значение `action` (assert-only)** — без него пара невыразима данными (`route` требует chain+бюджет+`label_models`, `terminal` не обрабатывает). **Q2 редактор отложен с записью** (связывает только explicit-книги, которых нет; на violence остаётся dspro). **Новая петля, вскрытая вопросом владельца:** лейбл НЕ доезжает до промпта — это чистые данные маршрутизации; «промпт знает о свойстве контента» = отдельное решение промпт-слоя.
## Оркестратор №8 — ПАК-17 ФАЗА 1 (дизайн канала B) ПРИНЯТА и ратифицирована в редакции §14 (D39.26); три добора приёмки; фаза 2 размечена, 25.07
Приёмка **пропорциональная** (поправка 25.07: инлайн-пасс исполнением, без воркфлоу — как и в паке-16 тяжёлая ратификация не понадобилась). Эхо-блок отчёта сверен с промтом — сошёлся (7 инвариантов + мысленный тест генеральности + не-делать + канал вопросов; xAI-ключевая петля осознанно не эхнута — она «в пак не тащить»). **Метод сессии — образец пака-16:** 11 адверсариальных агентов, §14 отдельным слоем, тело не переписано; сессия сама отменила ТРИ своих решения и перевернула ДВЕ рекомендации — это ровно то поведение, которое нормы 5/10 поощряют. **Мой рубеж-2: ноль опровержений §14, три добора.** Пере-вывел сам: **M1 ре-деривирован независимо** (питон-канон по `book.go:214-228`) — все пять дайджестов посимвольно, `c2021b1b…cab0df` = `capture.golden:6`, omitempty-хвост при пустых лейблах байт-в-байт тот же ⇒ денежный кейстоун (защита $0-резюма драфта под замер остатка пака-16) стоит; **фантом-гард D-ссылок чист** (18 блоков/подпунктов, включая `:245` D20.2-Q1/Q2, `:247` D20.4, `:276` D22.7, `:310` D25 п.4); спот-чеки подтвердили §14.1 (`BriefHash` book-global в общем билдере обеих волн при пер-стадийном `stageSnap` + `waveStages`), §14.2 (сырое `reachableModels`; `chains.default[0]` = `escalate_to` драфта ⇒ неограниченный дедуп упал бы на шиппинге), §14.3 (`escMu`-пин «перерасход ≤ 1 хоп», `Waves.Workers` дефолт 1 ⇒ лок-на-итерацию правильно отменён), §14.5.6 (`GetCheckpoint:337``Reserve:379``client:410``Complete:442`), §14.6.1/2 (golden пинит `esc_model` на отказавшем хопе; `style_check_version` фолдится безусловно), 13 файлов вне git с `adult:`. Неточности, выводов не меняющие: «`accept-rebill` грепом пусто» — 9 попаданий, все в спеке `backend/docs/D15.2-*.md` (в коде действительно нет); «23 сайта `LoadPipeline`» включает строку определения. **Три добора (в D39.26):** (A) единый лейбл «adult» схлопывает ратифицированную violence-развязку D14 п.1 ⇒ вокабуляр лейблов — владельцу (механизм держит обе формы данными, стройку не блокирует); (B) `reasoning:"off"` — тихий выход из аддитивного гейта (внешнее условие `pipeline.go:541`) И из эхо-гейта (`echoes_when_thinking_off` только у deepseek — обобщение D19.1 п.2 «оба grok-слага» в данные не доехало) ⇒ закрытие обязательно; (C) рейт-гард молча деградирует в «неограниченно» при лейблованном переводчике mistral `max_concurrency: 2`. **Мои решения поверх §14:** `failover.go` УДАЛИТЬ (а не давать конструктору лейблы — least mechanism при нуле вызывающих), гард-тест шва `\.Complete(` с именованным аллоулистом `live_conformance_test.go`. **Q3/Q4/Q5/Q6 закрыл сам** (D12 pinned · B3-A один хоп · `chains.default` остаётся мёртвым · механизм `terminal` строим, значение не заводим); **Q1 = книга** по аргументу гарантии; **владельцу — вокабуляр лейблов + Q2 редактор** (деньги/продукт/18+). Выносы: `escalation_model`=ответившая · `--accept-rebill` · D22.7-предусловие — все три легли в трекер петель.
## Оркестратор №7 — DOC-ДИЕТА ИСПОЛНЕНА (санкция владельца 25.07, блоки A+B+C): онбординг-путь разгружен, `abdfbff`, 25.07
Мотив владельца: часть доков морально устарела/перегружена и мешает моделям погружаться. **A:** хроника 1325.07 (стройка паков 1116, rerun2) → третий слайс `archive/PROGRESS-2026-07-13-25.md`; PROGRESS 268→54 строк (CURRENT-STATE сжат: фазы/курс · стек · петли); «Текущее состояние» CLAUDE.md: параграф-монстр → 6 буллетов (детали паков живут в D-логе/отчётах). **B:** исполненные арх-доки 07-strategic-review · 08-sync-audit-ledger · 11-implementation-plan → `archive/architecture/` (`git mv`, история сохранена); 07 вычеркнут из «источников истины №2»; живые ссылки обновлены (README · ORCHESTRATOR_SESSION_PROMPT · шапка 09); тела D-лога не тронуты (D23.3 — его исторические относительные ссылки на 07/11 осознанно оставлены). **C:** правило чтения D-лога при онбординге: «целиком» → «карта актуальности + живая голова D39.x; корпус D1D38 — справочник по ссылкам/grep» — снимает ~100k токенов (375 КБ) с каждого онбординга; физический сплит D-лога ОТВЕРГНУТ (ломает file:line-ссылки из десятков доков). Не тронуты: 04-unhappy-paths (живая матрица) · 03 (контракты) · 09/10/12 (карта слоёв/реестр/нормы) · research/* (вне онбординг-пути, баннеры стоят). Заодно: стейл-шапка CLAUDE.md «кандидат glm-5» → dspro-интерим D39.22. **Дорезка по вопросу владельца:** ORCHESTRATOR_SESSION_PROMPT переписан хендоффом №6 (91→67 строк: мёртвая миссия эры «план→стройка» срезана, снапшот v5 → `archive/prompts/`; живое — роль/методология/уроки/нормы §111 — дословно; состояние больше НЕ дублируется, только указатели в PROGRESS/D-лог); D-лог решено НЕ резать (после правила чтения корпус не налог; физический сплит ломает file:line-ссылки ради нуля); +пинг №7 полигону (eval/README от 19.07).
## Оркестратор №7 — DOC-SYNC PASS ИСПОЛНЕН (аудит владельца 25.07): puml перерисованы, 14 доков синканы с D1D39.25, 6 пингов полигону, 25.07
Метод: 6-агентный аудит-воркфлоу (код-реальность для диаграмм + сверка каждого стейл-дока с D-логом/кодом, всё file:line) → мои спот-чеки несущих клеймов исполнением (6/6 сошлись: «F1 CLOSED» `snapshot.go:177` · `Escal.Chains` без потребителей в раннере · repair отсутствует в c1 = disabled · STM-кнобы удалены · tmctl-команды · `RepairCandidates` `checks/repair.go:71`) → правки моими руками. **Диаграммы:** `components.puml`/`pipeline.puml` перерисованы с нуля под пост-пак-16 реальность (волновой исполнитель · сплит пакетов пака-15 · снапшоты per-wave/BASE-ENRICHED · майнинг-стоп exit 3 · repair-петля [FLAG] · конфиг-слои данными · generic-лейблы D39.25 как план пака-17; НЕ рендерились — смотреть расширением). **Статус-баннеры (тела НЕ переписаны, дисциплина D23.3):** 01-decisions (dspro-интерим, xAI-концентрация распалась, Р4→D39.25) · 02-mvp-plan (дорожка v3.2 исполнена через арх-ресет) · 03-implementation-notes (география §3 перечёркнута сплитом; техдолг §6: clients-гонка/F4/F3 закрыты) · 04-unhappy-paths (чекеры/ремонт построены, карта сработала как ТЗ — дефект-классы rerun2 легли в её клетки) · 06-memory-risk-registry (банк ПОСТРОЕН, G1 закрыта иначе — майнер+банкнота без LLM-споттера; F1-остаток закрыт inline) · 07-strategic-review (курс исполнен) · 08-sync-audit-ledger (аудит отработан, диспозиции закрыты стройкой) · 09-target-architecture (таблица «слой → статус → пак/D»; врезка слоя 2 продлена до паков 14/15). **Ресёрч-свип «→ построено»:** 18/18-chatgpt (editor v3, арка закрыта) · 19 (чанкер/волны/exp15) · 20 (майнер/банкнота, гейт §D снят) · 21 (DEFER снят паком-12; Q7-абсорбция по-прежнему за вендор-сверкой) · 22 (Q6 gating+repair закрыт паком-16); research/15 честен — не тронут. **Освежены:** docs/README (D-диапазон D39.25, exp1216 в карте, archive/reports описан, статус 25.07, пак-17 ЗАПУЩЕН) · POLYGON_PACKAGE4-баннер (пост-D39.22 рамка, quirks-ссылка :74). Зона полигона не тронута — 6 пингов в трекере петель. Верификация: все баннер-клеймы грунтованы file:line аудиторами + мои спот-чеки; спорных inline-правок тел — две (F1-строка в 06, врезка слоя 2 в 09), обе high-confidence по коду.
## Оркестратор №7 — промт пака-17 «канал B вживую» ВЫДАН (двухфазный: дизайн B1B6 → ратификация → стройка), 25.07
Последний несущий кусок бэкенда перед следующим платным прогоном (прогон разом даст: итерация №2 dspro-vs-glm · замер остатка дефектов → решение о петле ремонта · живой канал B). Дизайн-вопросы: гранулярность adult-маркировки (приор: ручная, книга/главы, данные книги) · **редактор канала B** (dspro НЕЛЬЗЯ — DeepSeek вне 18+ по ToS; выбор интерим до замера) · refusal-каскад в лестнице эскалации · механическая гарантия «adult → только permissive» (флаг провайдера = данные models.yaml) · снапшот/резюм · отчётность. Инварианты: L3 — жёсткая линия (классификатор НЕ строится, спека D22.7 ждёт владельца) · live 18+ только по санкции · синтетические фикстуры · байт-точность канала A. Хвостом фазы 2 — ниты общности из петель.
## Оркестратор №7 — ПАК-16 фаза 2 ПРИНЯТА (execute-first: 5 линз + инлайн-дельта) и залендена; слой 3 ПОСТРОЕН, платный путь ждёт замера, 25.07
Приёмка по новой норме — гоняли, не читали: все три §9-блокер-сценария отклонены сквозными репродукциями через настоящий драйвер; шести MAJOR-фиксам без in-tree тестов построен overlay-харнесс; ценз `^func Test` воспроизведён исполнением (399→433, удалено 0). Мой двойной MAJOR (hourWordRE: «тотчас» отгружал удаление длительности + ru-парадигма в Go) закрыт дельтой: `hour_word_re` → пар-данные с обеими границами + fail-loud пары без пробы. **Решения:** §9.2 = (а), both-wave re-pin принят ($0-резюм — внутри-снапшотный инвариант, resnapshot = переоплата ОДНА; пер-волновой суб-хеш — записанная опция эры масштаба); §16.2 ратифицирована (дефолт-актуаторы = broken_word+latin_residue, dc1 — детекторы). **В очередь:** per-class исходы ремонта = схемное решение, вместе с включением петли. **Нормы:** правило 11 «сэндбокс-репродукции через драйвер» (девять дефектов прошли чтение — поймало исполнение); ценз-норма впервые сработала ДО отчёта (снос 7 тестов при механической правке пойман и восстановлен сессией). Инварианты: golden `f7641993…` байт-в-байт · парити EXACT · 12 пакетов `-race` · версия пака → `a7d4be2c0465` (только ратифицированные правки данных). Очередь: **пак-17 = канал B вживую** (батч со следующим платным прогоном: вопросы итерации №2 + замер остатка ремонта → решение владельца о включении петли).
*(Хроника 1325.07 — стройка паков 1116, rerun2, лендинги D39.12D39.24 — перенесена в [archive/PROGRESS-2026-07-13-25.md](archive/PROGRESS-2026-07-13-25.md), слайс 25.07.)*
## Бэкенд
*(Закрытая хроника пакетов №0№4 (0410.07) перенесена в [archive/PROGRESS-2026-07-04-10.md](archive/PROGRESS-2026-07-04-10.md) — ревизия D31.)*
*(Хроника пакетов 1112.07 (пакет-5, D15.2-этап-А, санитайзер-фикс D33) — в [archive/PROGRESS-2026-07-10-13.md](archive/PROGRESS-2026-07-10-13.md).)*
*(Трек-A пак-1/1.5 (D39.2/D39.5) — см. записи оркестратора №6 выше.)*
*(Хроника бэкенд-паков 1116 (1925.07, вкл. отчёт-запись пака-15) — в [archive/PROGRESS-2026-07-13-25.md](archive/PROGRESS-2026-07-13-25.md); отчёты паков — `archive/reports/`.)*
### Пак-18 «долги контракта» ОТРАБОТАН и ПРИНЯТ (D39.31, приёмка оркестратора №8), 25.07
Отчёт: [`archive/reports/PACK18_DEBTS_REPORT_2026-07-25.md`](archive/reports/PACK18_DEBTS_REPORT_2026-07-25.md). **П.1 `--accept-rebill[=usd]` ПОСТРОЕН** на снапшотной гранулярности (`internal/pipeline/rebill.go`): проекция = Σ хранимых `cost_usd` оплаченных строк под устаревшим снапшотом ЕГО ВОЛНЫ, порог `min($0.50, 5%×ProjectedBookUSD)` + флор $0.50 + переопределение книгой `rebill_consent_usd`; гейт стоит ДО денег в `TranslateBook` и ДО деструктивного сброса в `Redrive`; read-only пути ($0-контракт D20.4) не тронуты. `ProjectedBookUSD` вынесен в общий `projectBookUSD` — порог и `status` считают ОДНО число. **Развилка на ратификацию:** оговорка спеки «`--resnapshot` = алиас-синоним согласия» СОЗНАТЕЛЬНО не перенесена — флаги ортогональны (иначе ратифицированный порог = мёртвый код); 4 существующих теста получили строку согласия. Каскад §7.1-бис зафиксирован как ВЫРОЖДЕННЫЙ, ветка `EstimateUSD` — без предмета на этой гранулярности; `guard_hash` не строился. **П.2 `escalation_model` = АВТОРИТЕТНАЯ модель ПОСТРОЕН**; пере-капчер golden `f7641993…``211c9013…` проверен машинно: сдвинулись ровно 4 строки `ch3/0 draft`, дельта ТОЛЬКО в колонке `esc_model`, оба волновых снапшота/`brief_hash`/`memory_version` байт-идентичны ⇒ пере-оплаты нет; миграции нет, смешанная семантика записана в доккоммент `store.ChunkStatus`. **П.3 (два нита общности) ОТЛОЖЕН с замером:** одна новая строка в `configs/langpacks/zh-ru/dc-checkers.txt` двигает `pack.Version()` `a7d4be2c0465``133d71e8d132` и ОБА волновых снапшота (проба исполнением), а стендовые книги ссылаются ровно на этот каталог (`rerun2/book*.yaml:22-23`) ⇒ байт-нейтральной формы нет; для Detail-строк она нереализуема определительно. Готовый план на ближайший полный `--resnapshot` — в отчёте. **Приёмка:** build/vet чисты · `-race` 12/12 · `-shuffle=on` зелёный · парити EXACT `n=13618 … 0.9655 (56/58)` · ценз диффом ИМЁН 455→475, удалено 0 · **19 мутаций, 19 красных** (две сначала выжили и вскрыли дыры в тестах — обе закрыты, в т.ч. регресс-класс D20.4 «распарсено, но не проведено в раннер»).
## Полигон
(секция параллельной сессии — записи добавлять сюда)
*(Закрытая хроника сессий 13, 18+ пакетов и exp10/11 (0410.07) — в [archive/PROGRESS-2026-07-04-10.md](archive/PROGRESS-2026-07-04-10.md), D31.)*
*(Хроника exp12/exp13 (1112.07) — в [archive/PROGRESS-2026-07-10-13.md](archive/PROGRESS-2026-07-10-13.md).)*
## Память
(секция ресёрч-сессий памяти — записи добавлять сюда)
*(Хроника валидации банка (0405.07, research/1314, вердикт GO) — в [archive/PROGRESS-2026-07-04-10.md](archive/PROGRESS-2026-07-04-10.md), D31.)*
## Голос и состояние
(секция ресёрч-сессии — записи добавлять сюда)
*(Хроника сессии «Голос и состояние» (09.07 → research/15, D21) — в [archive/PROGRESS-2026-07-04-10.md](archive/PROGRESS-2026-07-04-10.md), D31.)*
## Ридер-IDE
(секция ресёрч-сессии — записи добавлять сюда)
*(Хроника сессии «Ридер-IDE» (11.07 → research/16, D29) — в [archive/PROGRESS-2026-07-04-10.md](archive/PROGRESS-2026-07-04-10.md), D31.)*