textmachine/docs/PROGRESS.md

58 KiB
Raw Blame History

Журнал прогресса

⟶ ТЕКУЩЕЕ СОСТОЯНИЕ (на 2026-07-25, пак-17 закрыт, право по ToS подписано, пак-18 принят — долгов контракта нет, D39.26D39.31). Источник истины по РЕШЕНИЯМ — architecture/05-decisions-log.md (D1D39.32); этот файл — ЖУРНАЛ.

  • Фазы/курс: Ф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] · гранулярность = книга) → следующий платный прогон (разом: итерация №2 dspro-vs-glm · замер остатка ремонта → решение о петле D39.24 · живой канал B) → сид-дельта (元 · 赤城 · 学堂家老 · 春秋蝉) → Ф2-механизмы (голос/состояние D21 · native-Gemini судья) · ja→ru §B5 → пилот Ф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-оговорка читается СУЖЕНИЕМ ⇒ вердикт FORBIDDENUNCLEAR, но по доктрине это НЕ разрешение: строку 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).
  • Архивы хроники: 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 — СВОДКА ПЛАНОВ (по запросу владельца) + ПАК-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. Мои независимые мутации: формула порога minmax → 6 красных (включая оба CLI-провода); проекция считает строки, резюмящиеся за $0 → 3 красных. Развилка сессии «--resnapshot не есть согласие» принята и оказалась даже не девиацией — спека прямо говорит «отдельный от --resnapshot-алиаса» (D15.2-*.md:590), а её собственный аргумент сильнее: при алиас-прочтении ратифицированный порог превращается в гейт, который не может выстрелить. Отсрочка нитов принята как ИЗМЕРЕННАЯ (pack.Version() a7d4be2c0465133d71e8d132; стендовая книга объявляет 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 — три МОИХ мутации в копии дерева (не из списка сессии), все пойманы именованными тестами: лейблы обратно в канон BriefHashTestEditorOnlyLabelLeavesTheDraftWaveUntouched красный (приятная находка: инвариант 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:337Reserve:379client:410Complete: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, слайс 25.07.)

Бэкенд

(Закрытая хроника пакетов №0№4 (0410.07) перенесена в archive/PROGRESS-2026-07-04-10.md — ревизия D31.)

(Хроника пакетов 1112.07 (пакет-5, D15.2-этап-А, санитайзер-фикс D33) — в 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/reports/.)

Пак-18 «долги контракта» ОТРАБОТАН и ПРИНЯТ (D39.31, приёмка оркестратора №8), 25.07

Отчёт: 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() a7d4be2c0465133d71e8d132 и ОБА волновых снапшота (проба исполнением), а стендовые книги ссылаются ровно на этот каталог (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, D31.)

(Хроника exp12/exp13 (1112.07) — в archive/PROGRESS-2026-07-10-13.md.)

Память

(секция ресёрч-сессий памяти — записи добавлять сюда)

(Хроника валидации банка (0405.07, research/1314, вердикт GO) — в archive/PROGRESS-2026-07-04-10.md, D31.)

Голос и состояние

(секция ресёрч-сессии — записи добавлять сюда)

(Хроника сессии «Голос и состояние» (09.07 → research/15, D21) — в archive/PROGRESS-2026-07-04-10.md, D31.)

Ридер-IDE

(секция ресёрч-сессии — записи добавлять сюда)

(Хроника сессии «Ридер-IDE» (11.07 → research/16, D29) — в archive/PROGRESS-2026-07-04-10.md, D31.)