From 5aa843e85045531f5450e96bd8b3133f898d4b93 Mon Sep 17 00:00:00 2001 From: "Claude (backend session)" Date: Sun, 26 Jul 2026 02:09:43 +0300 Subject: [PATCH] Issue bank pack twenty with a mandatory implementation-to-docs sync step and polygon package six for the labeled checker set, ratifying the owner queue as D39.38 --- CLAUDE.md | 4 +- ...CKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md | 2 +- ...ACKEND_PACK20_BANK_TRUST_SESSION_PROMPT.md | 38 +++++++++++++++++++ ..._PACKAGE6_CHECKER_LABELS_SESSION_PROMPT.md | 30 +++++++++++++++ docs/PROGRESS.md | 8 +++- docs/README.md | 4 +- docs/architecture/05-decisions-log.md | 6 +++ 7 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 docs/BACKEND_PACK20_BANK_TRUST_SESSION_PROMPT.md create mode 100644 docs/POLYGON_PACKAGE6_CHECKER_LABELS_SESSION_PROMPT.md diff --git a/CLAUDE.md b/CLAUDE.md index bfecbf8a..7ebf2cbe 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,7 +14,7 @@ Go-бэкенд издательского художественного пер ## Источники истины (по убыванию) -1. **`docs/architecture/05-decisions-log.md` (D1–D39.37)** — ратифицированный контракт; при конфликте с любым другим доком побеждает он; сверху файла — карта актуальности (что чем superseded). **Правило чтения (онбординг-диета 25.07): карта + живая голова (эра D39.x); корпус D1–D38 = справочник — по ссылкам/grep по D-номеру, целиком НЕ читать.** +1. **`docs/architecture/05-decisions-log.md` (D1–D39.38)** — ратифицированный контракт; при конфликте с любым другим доком побеждает он; сверху файла — карта актуальности (что чем superseded). **Правило чтения (онбординг-диета 25.07): карта + живая голова (эра D39.x); корпус D1–D38 = справочник — по ссылкам/grep по D-номеру, целиком НЕ читать.** 2. `docs/experiments/00-provider-quirks.md` — wire-квирки провайдеров (читать ПЕРЕД правкой адаптеров/вызовами провайдеров). 3. `docs/architecture/09-target-architecture.md` (7 слоёв; статус стройки — шапка-таблица) · `12-go-style-notes.md` (норматив общности §0) · `10-prompt-architecture.md` (промпт-тема). 4. `docs/architecture/01-decisions.md` (Р1–Р10), `02-mvp-plan.md`, `04-unhappy-paths.md`, `06-memory-risk-registry.md` — тела исторические, читать через ⚠-баннеры 25.07. @@ -43,7 +43,7 @@ Go-бэкенд издательского художественного пер - **Фазы:** Ф0 ✅ · Ф1-инфра ✅ (D20–D28; golden = инвариант детерминизма №8) · арка «качество-первым» D26→D38.5 закрыта · **арх-ресет D39 исполнен ЦЕЛИКОМ**: 7 слоёв построены паками 11–16 (D39.13–D39.24; статус слоёв — шапка-таблица `09-target-architecture.md`; слой-3 diff-редактор — за `enabled:false`, включение = решение владельца по замеру остатка). - **Пере-прогон rerun2 прочитан (D39.20):** операционка живьём ($0-резюм ×3 арма, $6.63<$15, echo 0, майнинг-стоп→подпись); планка ≤2 НЕ пройдена; анти-корреляция гладкость↔верность ×3 → mistral-редактор вон. **Эксп ЗАКРЫТ (D39.22), итерация №2 отложена; редактор = deepseek-v4-pro ИНТЕРИМ** (glm-5 резерв). Книжные каноны — с книгой (`books/<книга>/CANON-NOTES.md`), не в контракте движка. -- **Курс — разработка бэкенда:** паки 17 (content-labels, D39.26–28) и 18 (долги контракта, D39.31) ЗАКРЫТЫ; право по ToS добыто и подписано (D39.29/30/32). **Курс амендирован владельцем (D39.33): масштаб — ПОСЛЕДНИМ, после достройки алгоритмического идеала; доказательство эффективности — мини-прогоны ~10 глав.** Очередь (D39.34/35): ~~мини-прогон~~ **ИСПОЛНЕН И ПРИНЯТ (D39.37, 26.07: $0.23, операционка живьём до цента, шов банкноты замкнут, остаток = 0 в трёх классах петли — решение о петле у владельца)** → пак-19 «голос/состояние» в урезанном скоупе (безусловная половина D21) → решение по шву банкноты (D39.36: канал WHAT выключен и выбрасывается — развилка после пробы) → слой-2/ru-target/native-Gemini → МАСШТАБ → пилот Ф2.5. +- **Курс — разработка бэкенда:** паки 17 (content-labels, D39.26–28) и 18 (долги контракта, D39.31) ЗАКРЫТЫ; право по ToS добыто и подписано (D39.29/30/32). **Курс амендирован владельцем (D39.33): масштаб — ПОСЛЕДНИМ, после достройки алгоритмического идеала; доказательство эффективности — мини-прогоны ~10 глав.** Очередь (D39.34/35): ~~мини-прогон~~ **ИСПОЛНЕН И ПРИНЯТ (D39.37, 26.07: $0.23, операционка живьём до цента, шов банкноты замкнут, остаток = 0 в трёх классах петли; петля НЕ включается — D39.38)** → **пак-20 «банк: флаговый стоп + покрытие WHAT→WHICH» (ТЕКУЩИЙ, двухфазный)** → пак-19 «голос/состояние» (урезанный скоуп) → свип гипотез стартового промта/ресёрчей → слой-2/ru-target/native-Gemini → МАСШТАБ → пилот Ф2.5. - **Стек:** draft deepseek-v4-flash thinking-ON → editor deepseek-v4-pro → судья gemini-preview + grok-фолбэк 18+ (~$0.85/ранобэ D30.4). Ключи: DEEPSEEK, ZAI, KIMI, OPENAI, GEMINI, XAI, MISTRAL (xAI: единый, data-sharing, off перед продом D27). - **Висит на владельце + открытые петли:** трекер в CURRENT-STATE `docs/PROGRESS.md` (единственное место). - **Стенд:** WSL2, GTX 1070 8GB (localhost из-под прокси = 403 — no-proxy транспорт для local). Книга `/home/ubuntu/books/gu-zhenren/` (GB18030; текст и производные ВНЕ git). diff --git a/docs/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md b/docs/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md index 59ae6f4a..2431aeaa 100644 --- a/docs/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md +++ b/docs/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md @@ -1,6 +1,6 @@ # Промт бэкенд-сессии: ПАК-19 «голос и состояние» (ДВУХФАЗНЫЙ: дизайн → ратификация → стройка) -**СТАТУС: СКОУП УРЕЗАН И ПОЗИЦИЯ УТОЧНЕНА АУДИТОМ (`D39.34`, 25.07). Стартует ПОСЛЕ мини-прогона-замера и сид-дельты.** Курс D39.33: масштаб последним, доказательство эффективности — мини-прогоны ~10 глав. Аудит корпуса вскрыл, что (а) сид/банк-дельта стоит раньше по D39.20, (б) замер остатка обязан пройти ПОКА ЖИВ $0-резюм драфта, то есть ДО пака, вызывающего resnapshot, (в) **инъекционная часть D21 ратифицирована УСЛОВНО** (D21 п.2: «Схема + детерминированный ты/вы-флаггер — безусловно; инъекционная часть — условно до полигон-эксперимента на ТРУДНЫХ парах»). +**СТАТУС: СКОУП УРЕЗАН И ПОЗИЦИЯ УТОЧНЕНА АУДИТОМ (`D39.34`, 25.07). Стартует ПОСЛЕ пака-20 «банк» (порядок D39.38; мини-прогон и сид-дельта закрыты).** Курс D39.33: масштаб последним, доказательство эффективности — мини-прогоны ~10 глав. Аудит корпуса вскрыл, что (а) сид/банк-дельта стоит раньше по D39.20, (б) замер остатка обязан пройти ПОКА ЖИВ $0-резюм драфта, то есть ДО пака, вызывающего resnapshot, (в) **инъекционная часть D21 ратифицирована УСЛОВНО** (D21 п.2: «Схема + детерминированный ты/вы-флаггер — безусловно; инъекционная часть — условно до полигон-эксперимента на ТРУДНЫХ парах»). **Статус выдачи: 25.07.2026, оркестратор №8.** Цель — построить последний крупный НЕпостроенный рычаг качества: механизмы D21 (voice-профиль · реестр обращений ты/вы · reveal-окна). Ратифицированы 09.07 как механизмы Ф2, в коде их НЕТ — есть только описания будущих таблиц в комментариях миграций. Пак **двухфазный** (образец паков 16/17): фаза 1 — дизайн + СТОП, фаза 2 — стройка по размеченному списку. diff --git a/docs/BACKEND_PACK20_BANK_TRUST_SESSION_PROMPT.md b/docs/BACKEND_PACK20_BANK_TRUST_SESSION_PROMPT.md new file mode 100644 index 00000000..88230eaf --- /dev/null +++ b/docs/BACKEND_PACK20_BANK_TRUST_SESSION_PROMPT.md @@ -0,0 +1,38 @@ +# Промт бэкенд-сессии: ПАК-20 «банк: флаговый стоп + покрытие WHAT→WHICH» (ДВУХФАЗНЫЙ: синк → дизайн → ратификация → стройка) + +**Статус: ВЫДАН 26.07.2026, оркестратор №8. Исполняется ПЕРЕД паком-19 (голос/состояние).** Санкция владельца: флаговый стоп — часть конечной архитектуры («отключение верификации и полное доверие бэкенду»). Ратифицированная база: D39.36 (семантика флага, слова владельца) · D39.37 (приёмка мини-прогона, замер покрытия) · research/20 §D (дизайн-оф-рекорд майнинга, D39.6) · exp16→D39.10 (расщепление: WHICH находит код, WHAT доставляет банкнота ИЗ КОНТЕКСТА; перевод со-встречаемостью запрещён). + +**Первый деливерабл — эхо-блок (≤10 строк): скоуп / инварианты / чего не делать. ДО работы.** + +## ШАГ 0 — ОБЯЗАТЕЛЬНЫЙ СИНК (мандат владельца 26.07, ДО дизайна) + +Владелец: «сессии синкуют свою имплементацию об документацию, код вокруг и так далее». Прежде чем проектировать — сверь ТЕКУЩУЮ реализацию банка с ратифицированной базой и положи в отчёт фазы 1 **таблицу «источник ↔ код ↔ вердикт (совпадает / расходится / не построено)»**. Расхождение = пинг оркестратору через владельца, НЕ тихая интерпретация. Что сверять: + +- `docs/research/20-*.md` §D — дизайн-оф-рекорд майнинга (ратифицирован D39.6); +- отчёт exp16 + D39.10 — почему dst обязан приходить из контекста, а не из со-встречаемости; +- D39.36/D39.37 в D-логе + `docs/archive/reports/MINIRUN_HANDOFF_2026-07-26.md` §3–6 — что уже починено, замер покрытия каналов (0/2 и 1/2), хвосты; +- код: `internal/pipeline/{mining,banknote}.go` · `internal/miner/miner_emit.go` · `internal/membank` (trust-gate, пост-чек, Ambiguous-инъекция) · `prompts/zh-ru/translator.md` (банкноты в нём НЕТ — проба шла на копии). + +## Семантика флага — «РОВНО ТАК» (слова владельца, D39.36) + +**Флаг НЕ передан** → бэкенд делает всю работу от начала до конца сам: предложения банкноты входят в банк как `auto` → инжектируются как `Ambiguous` («непроверено» + принудительный пост-чек), прогон НЕ останавливается. **Флаг передан** → стоп с таблицей (src · предложенный dst · частота · разброс вариантов · улики), предмет верификации — ТОЛЬКО термины; подпись → `approved` → `Confirmed`. В обоих режимах: провенанс сохраняется (поздняя подпись возможна), reject-set работает, ничего неподписанного не становится `Confirmed`. Флаг — операторский режим, НЕ ось wire/снапшота. + +## ФАЗА 1 — ДИЗАЙН (кода не трогать; отчёт → СТОП → ратификация) + +- **B1. Форма флага:** имя (`--verify-bank`? предложи), где живёт, как ложится на `translate`/`redrive`. +- **B2. Покрытие WHAT→WHICH — ядро пака.** Замер: банкнота покрыла кандидатов майнера в 0/2 и 1/2 раундов. Факт кода: майнер офлайн и читает ИСХОДНИК — может бежать ДО драфт-волны. Спроектируй и посчитай ДЕНЬГАМИ на главу: (а) кандидаты майнера → в банкнота-инструкцию драфт-промпта («предложи перевод для этих терминов»); (б) точечный дешёвый до-спрос на границе стопа с контекстом главы; (в) гибрид. Констрейнты: **dst только из контекста** (exp16 — со-встречаемость запрещена); **судью и веб-фетч НЕ вводить** (не ратифицированы; хочешь — развилка владельцу, не тихая вставка). +- **B3. Банкнота в шиппинг-промпт:** перенос блока `⟦TM-BANK-v1⟧` из пробной копии в `prompts/zh-ru/translator.md`; какие оси двигает (SHA промпта → resnapshot — заявить явно); бюджет строк; не-CJK пары не ломать хуже текущего fail-loud. +- **B4. Авто-режим на большой книге:** без флага раундов стопа нет вовсе — как копятся `auto`-термы, где их видно для поздней подписи, что показывает разброс вариантов (слабое предложение = сигнал, не блокер); риск закрепления auto-канона на всю книгу — назвать и показать смягчение. +- **B5. Тест-пин джойна** (фикс-лист №1 D39.37: мутация `DeltaYAML(mined, пустая_карта)` сегодня ВЫЖИВАЕТ всю сьюту — обязана краснеть сквозным тестом). + +**Приёмка фазы 1:** отчёт `docs/archive/reports/PACK20_BANK_DESIGN_<дата>.md` — эхо-блок · синк-таблица шага 0 · по каждому B варианты/рекомендация/деньги/риски · адверсариальный селф-ревью. **СТОП — ратификация** (контрольная точка владельца). + +## ФАЗА 2 — после ратификации + +Инварианты: golden-дисциплина (двигаешь промпт — объявляй оси, маскированный структурный дифф пуст вне заявленных) · парити EXACT · `-race` · **«пере-мерь свой вывод ДРУГИМ способом, чем получил»** (норма D39.37) · заявление = команда (приёмка ре-ранит) · мутация на каждую новую ветку · дифф `^func Test` исполнением · сессия НЕ коммитит, `git mv` декларировать. + +## НЕ делать + +Механизмы D21 (пак-19, после) · судья · веб-фетч-перевод · L3 · авто-подпись «умным» порогом (флаг бинарный — слова владельца) · платные прогоны (смета в фазе 1, живой прогон — отдельное решение) · книжный канон в код или в D-лог (гардрейл: книго-каноны → данные книги). + +**Канал вопросов:** непонятно / конфликт промта с кодом или доками → пинг оркестратору через владельца, НЕ тихая интерпретация. Аддендумы доезжают только релеем — подтверди получение строкой в отчёте. diff --git a/docs/POLYGON_PACKAGE6_CHECKER_LABELS_SESSION_PROMPT.md b/docs/POLYGON_PACKAGE6_CHECKER_LABELS_SESSION_PROMPT.md new file mode 100644 index 00000000..b8fe96b6 --- /dev/null +++ b/docs/POLYGON_PACKAGE6_CHECKER_LABELS_SESSION_PROMPT.md @@ -0,0 +1,30 @@ +# Промт полигон-сессии: ПАКЕТ 6 — размеченный набор для чекеров (линейки вместо глазомера) + +**Статус: ВЫДАН 26.07.2026, оркестратор №8.** $0, с бэкендом не пересекается. Зона записи: `eval/` + `docs/experiments/`; сам набор — НА СТЕНДЕ (он содержит текст книги — производные книги ВНЕ git). + +**Первый деливерабл — эхо-блок (≤10 строк). ДО работы.** + +## Зачем (контекст, из кода не выводится) + +Все цифры чекеров сегодня держатся на глазомере сессий, и мини-прогон это доказал на себе: «8→0» у `dialogue_dash` — замер на той же книге, под которую правило подогнали; «11 сигналов — 11 ложняков» частично перевернулось при перепроверке; **«остаток дефектов = 0» — вход в решение владельца о платной петле — тоже мнение с видом измерения**. Размеченный набор превращает правки чекеров из гадания в измерение: precision/recall против человеческой разметки. Это топ-хвост D39.37 — выбор и сессии мини-прогона, и оркестратора. + +## Задача + +1. **Классы** — сверь список с кодом (`internal/checks/` — код первичен): DC1-время (时辰/счётные единицы) · латиница-остаток · битые словоформы · `dialogue_dash` (тире диалога против внутренней речи — САМЫЙ важный: правило подогнано, честного замера нет) · число-дрейф/магнитуды · глоссарий-промахи. +2. **Материал** — реальные выходы прогонов на стенде: `rerun2/`, `minirun*/` (черновики и финалы из экспортов/БД). Не синтетика: чекеры будут жить на таком тексте. +3. **Объём** — ориентир 200–300 размеченных строк на класс; если класс редкий и строк физически меньше — честно скажи сколько есть, не добивай синтетикой молча (синтетическое дополнение — отдельной секцией с пометкой). +4. **Протокол разметки («ровно так»):** размечай ДО просмотра вердиктов чекеров — не якориться на то, что чекер уже сказал; определение каждого класса возьми из кода/комментариев чекера и зафиксируй в отчёте СВОИМИ словами до старта; спорные строки не решай сам — копи пачкой владельцу; стабильные ID строк (файл+позиция), чтобы чекеры можно было гонять против набора повторно. +5. **Первое измерение:** прогони ТЕКУЩИЕ чекеры против готового набора и отчитай precision/recall по классам — это первая честная цифра линеек и вход в любую будущую правку чекеров. + +## «РОВНО ТАК» + +- **Ты не автор чекеров и не чинишь их** — меряешь. Найденный дефект чекера — фиксация с file:line, не правка. +- **author ≠ reviewer:** твоя разметка независима; расхождение с вердиктами чекеров — результат, а не проблема. +- **Набор — на стенде** (`/home/ubuntu/books/gu-zhenren/labels/` или предложи своё), в git — только отчёт и методика без текста книги. +- Гардрейлы: `.env` не читать · 18+ L3 не трогать · `refusal_corpus` не открывать · платных вызовов ноль · сессия НЕ коммитит. + +## Приёмка + +Отчёт `docs/archive/reports/POLYGON_CHECKER_LABELS_<дата>.md`: методика и определения классов (зафиксированные ДО разметки) · объёмы по классам · precision/recall текущих чекеров · пачка спорных строк владельцу · **раздел «чего набор НЕ покрывает»**. Заявление = команда — приёмка ре-ранит чекеры против набора. + +**Канал вопросов:** непонятно / конфликт с кодом → пинг оркестратору через владельца, НЕ тихая интерпретация. diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 2a71a57c..a8dcf461 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -1,12 +1,16 @@ # Журнал прогресса -> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-07-25, пак-17 закрыт, право по ToS подписано, пак-18 принят — долгов контракта нет, D39.26–D39.31). **Источник истины по РЕШЕНИЯМ — `architecture/05-decisions-log.md` (D1–D39.37); этот файл — ЖУРНАЛ.** +> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-07-25, пак-17 закрыт, право по ToS подписано, пак-18 принят — долгов контракта нет, D39.26–D39.31). **Источник истины по РЕШЕНИЯМ — `architecture/05-decisions-log.md` (D1–D39.38); этот файл — ЖУРНАЛ.** > - **Фазы/курс:** Ф0 ✅ · Ф1-инфра ✅ (D20–D28; golden = инвариант №8) · арка «качество-первым» D26→D38.5 закрыта · **арх-ресет D39 исполнен ЦЕЛИКОМ** (7 слоёв → программа D39.1–D39.10 → паки 11–16, D39.13–D39.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.08–0.15/арм, судья НЕ зовётся ⇒ один арм ≈$0.10–0.17, два ≈$0.20–0.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 гарантия); нужно ли, чтобы переводчик/редактор ЗНАЛИ о свойстве контента — отдельное решение промпт-слоя · ~~мини-каноны сид-дельты~~ ЗАКРЫТО 26.07: все четыре пункта решены, правок сида ноль; книжные канон-решения живут С КНИГОЙ (`books/gu-zhenren/CANON-NOTES.md`), НЕ в D-логе — урок владельца: движок не строится вокруг одной книги · ~~включение платной петли ремонта — по замеру остатка~~ **ЗАМЕР ЕСТЬ (D39.37, 26.07): остаток = 0 в трёх классах, которые петля умеет чинить** (оговорка: узость набора классов, не чистота текста); **рекомендация оркестратора — НЕ включать**, петля остаётся за `enabled:false`; расширение набора классов — прежде повторного замера; ждёт слова владельца · 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-ссылок в чек-листе лендинга (действует). *Бэкенд:* **ХВОСТЫ МИНИ-ПРОГОНА (D39.37, 26.07, по убыванию веса):** (1) **размеченный набор для чекеров** — топ-выбор сессии и оркестратора: без него цифры качества держатся на глазомере · (2) **тест-пин джойна WHAT↔WHICH** (мутация оркестратора выжила — фикс-лист №1 следующего касания) · (3) покрытие WHAT↔WHICH (0/2 и 1/2) + флаговый майнинг-стоп (семантика владельца озвучена, D39.36 п.2; стоп очищается РАУНДАМИ) · (4) `dialogue_dash` мерить только на невиданном тексте (подогнан под 蛊真人) · (5) генеральность нарезки: кана/ханьцзи один класс ⇒ ja `est_out` ~1.7× завышен МОЛЧА; `EstimateTokens` недосчитывает кириллицу (резервации занижены) · (6) golden второй фикстурой С langpack · (7) `prompt_override` — честная формулировка гарантии слоя-2 · (8) майнер/банк не-CJK (едет с ja→ru) · (9) `request_log` скоуп/ретеншен + `first_flag_reason` третье представление истории · (10) флор-16000 без модели · (11) `max_tokens`-упоры вернутся на en · ~~пак-17 (фазы 1–2 + дельта)~~ **ЗАКРЫТ ЦЕЛИКОМ 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, перепись 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 гарантия); нужно ли, чтобы переводчик/редактор ЗНАЛИ о свойстве контента — отдельное решение промпт-слоя · ~~мини-каноны сид-дельты~~ ЗАКРЫТО 26.07: все четыре пункта решены, правок сида ноль; книжные канон-решения живут С КНИГОЙ (`books/gu-zhenren/CANON-NOTES.md`), НЕ в D-логе — урок владельца: движок не строится вокруг одной книги · ~~включение платной петли ремонта~~ **РЕШЕНО 26.07 (D39.38): НЕ включается** — замер 0 в её классах; вернуться при расширении классов и ненулевом остатке · 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-ссылок в чек-листе лендинга (действует). *Бэкенд:* **ХВОСТЫ МИНИ-ПРОГОНА (D39.37, 26.07, по убыванию веса):** (1) **размеченный набор для чекеров** — топ-выбор сессии и оркестратора: без него цифры качества держатся на глазомере · (2) **тест-пин джойна WHAT↔WHICH** (мутация оркестратора выжила — фикс-лист №1 следующего касания) · (3) покрытие WHAT↔WHICH (0/2 и 1/2) + флаговый майнинг-стоп (семантика владельца озвучена, D39.36 п.2; стоп очищается РАУНДАМИ) · (4) `dialogue_dash` мерить только на невиданном тексте (подогнан под 蛊真人) · (5) генеральность нарезки: кана/ханьцзи один класс ⇒ ja `est_out` ~1.7× завышен МОЛЧА; `EstimateTokens` недосчитывает кириллицу (резервации занижены) · (6) golden второй фикстурой С langpack · (7) `prompt_override` — честная формулировка гарантии слоя-2 · (8) майнер/банк не-CJK (едет с ja→ru) · (9) `request_log` скоуп/ретеншен + `first_flag_reason` третье представление истории · (10) флор-16000 без модели · (11) `max_tokens`-упоры вернутся на en · ~~пак-17 (фазы 1–2 + дельта)~~ **ЗАКРЫТ ЦЕЛИКОМ 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: стройка паков 11–16, rerun2). Записи ниже — живой хвост. +## Оркестратор №8 — САНКЦИИ ВЛАДЕЛЬЦА (D39.38): выданы пак-20 «банк» и полигон-пакет-6 «размеченный набор»; очередь ратифицирована, 26.07 + +Владелец разобрал повестку: (1) петля ремонта — НЕ включается (замер 0 в её классах; вернуться при ненулевом остатке); (2) флаговый стоп — СТРОИМ, «ляжет в конечную архитектуру: отключение верификации и полное доверие бэкенду»; его вопросы об алгоритме банка (кто переводит кандидатов, сохраняется ли контекст, хватает ли рассуждающей модели) получили grounded-ответ: дизайн ратифицирован research/20→D39.6, расщеплён exp16→D39.10 — dst доставляет САМ переводчик черновика в контексте главы (рассуждающая модель, контекст бесплатен), верификация = подпись+trust-gate+пост-чек; недоделано ровно покрытие каналов (0/2, 1/2) — оно и есть ядро пака-20; (3) мандат «сессии синкуют имплементацию об документацию и код вокруг» — вшит шагом 0 пака-20 (таблица «источник ↔ код ↔ вердикт», расхождение = пинг) и переносится во все кодинг-промты; (4) полигону — пакет-6. Очередь: пак-20 → пак-19 → свип гипотез стартового промта/ресёрчей (владельцу был дан честный ответ «не уверен, что прошлись по всем») → добор идеала → масштаб → пилот. Выданы: `BACKEND_PACK20_BANK_TRUST_SESSION_PROMPT.md` · `POLYGON_PACKAGE6_CHECKER_LABELS_SESSION_PROMPT.md`; пак-19 получает пометку «после пака-20». + ## Оркестратор №8 — МИНИ-ПРОГОН ПРИНЯТ ПО СЫРЬЮ (D39.37): операционка живьём до цента, шов замкнут, но не запинён (моя мутация выжила), остаток = 0 в трёх классах петли, 26.07 Приёмка по леджерам и БД, не по отчёту. Всё пере-ранено (build/vet · `-race` 13/13 · ценз 475→492/0 · golden: маскированный дифф пуст вне трёх заявленных осей · парити EXACT); **деньги до цента** ($0.234583, включая честно отчитанный брак $0.046668; проекция rebill-гейта совпала со списанием ТОЧНО — первое живое исполнение механизма пака-18); спот-чеки по сырым БД: банкнота 71/9из20, v11, dst «学堂家老 → старейшина школы» в `banknote_detail`, **`RegressionGuard` первое живое срабатывание подтверждено моим ре-раном**. **Находка рубежа-2: моя независимая мутация — отключение джойна WHAT в колл-сайте — ВЫЖИЛА по всей сьюте** ⇒ несущий фикс доказан прогоном, но не запинён; фикс-лист №1. **Открылось решение владельца:** замер для петли ремонта ЕСТЬ — остаток 0 в трёх классах петли (оговорка сессии: узость набора, не чистота текста); моя рекомендация — НЕ включать. Хвосты §5 хендоффа — в трекер (топ: размеченный набор для чекеров · генеральность нарезки кана/ханьцзи с est_out ~1.7× на ja · покрытие WHAT↔WHICH + флаговый стоп). Хендофф-дисциплина «чего числа НЕ доказывают» ратифицирована нормой отчётов; в промты идёт формула «пере-мерь свой вывод ДРУГИМ способом, чем получил». diff --git a/docs/README.md b/docs/README.md index 6dc34596..92791af8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,12 +11,12 @@ ## Структура -- `architecture/` — синтез. **Источник истины по решениям — [`05-decisions-log.md`](architecture/05-decisions-log.md) (D1–D39.37); при конфликте с любым доком он выше.** +- `architecture/` — синтез. **Источник истины по решениям — [`05-decisions-log.md`](architecture/05-decisions-log.md) (D1–D39.38); при конфликте с любым доком он выше.** - `01-decisions.md` — принципы Р1–Р10; `02-mvp-plan.md` — фазы и приёмка (v3, 09.07); `03-implementation-notes.md` — контракты Фазы 0; `04-unhappy-paths.md` — ~70 режимов отказа → механизм; `06-memory-risk-registry.md` — реестр рисков банка памяти; **[`09-target-architecture.md`](architecture/09-target-architecture.md) — целевая 7-слойная архитектура (D39; статус стройки — шапка-таблица; инвариант общности §0.1)** · [`10-prompt-architecture.md`](architecture/10-prompt-architecture.md) — консолидированная промпт-заметка (концерн 4) · [`12-go-style-notes.md`](architecture/12-go-style-notes.md) — норматив общности §0 + Go-ответы. **Исполненные (архив 25.07, санкция владельца, → `archive/architecture/`):** [`07-strategic-review.md`](archive/architecture/07-strategic-review.md) (стратаудит 09.07 — курс исполнен) · [`08-sync-audit-ledger.md`](archive/architecture/08-sync-audit-ledger.md) (ледджер синк-аудита — отработан) · [`11-implementation-plan.md`](archive/architecture/11-implementation-plan.md) (план пака-11 — исполнен целиком); `components.puml`/`pipeline.puml` — диаграммы (перерисованы 25.07 под пост-пак-16 реальность: волновой исполнитель, пакетный сплит пака-15, repair-петля за `enabled:false`, generic content-labels D39.25; владелец смотрит PlantUML-расширением VS Code; вручную НЕ рендерить). - `experiments/` — эмпирика «Полигона»: `00-provider-quirks` (читать перед любым вызовом провайдера), `01-token-calibration`, `02-refusal-benchmark`, `03-local-stand`, `04-editor-quality`, `06-local-extraction`, `07-coverage-precision`, `08-cost-model-v2` (актуальная денежная модель), `09-pilot-protocol` (пилот Ф2.5 + поправки D13), `10-explicit-benchmark` (18+ violence-рука канала B), `11-erotica-benchmark` (erotica по трём парам/регистрам — закрытие D14.4, D22), `12-quality-diagnosis`/`13-translator-bakeoff`/`14-quality-empirics`/`14b-meaning-battery` (дуга качества «мерить→строить», закрыты → D30/D32/D37/D38), `15-segmentation-empirics` (exp15: когезия под floor-шумом, фертильность — закрыт → D39.7/D39.8), `16-bank-mining` (exp16: WHICH/WHAT банк-майнинга — закрыт → D39.10). - `research/` — фактура исследований 04–05.07: `01–10` базовые, `11-gap-*` добор критиком, `12-*` режимы отказа/отзывы/таксономии (+ два внешних материала с провенанс-шапками), `13` валидация памяти, `14` адаптивная память, `15` голос и состояние (принят, D21), **`16` ридер-IDE (принят с ревью-шапкой, D29)**, **`17` внешняя критика GPT-5.6 (принят с ревью-шапкой, D25)** — у 16/17 читать шапку прежде тела. **`18` рычаги качества (два отчёта, D36)** · **`19` нарезка+когезия+контракт t/e (D39.1)** · **`20` банк-майнинг W1.5 (D39.6)** · **`21` обзор LLM-транспорта чужих харнессов (23.07: наш транспорт опережает/вровень со всеми 11)** · **`22` доменные харнессы перевода (24.07: калибрующий — ядро подтверждено, впереди COGS/18+/общность/измеренность, позади Q4-выпуск и gate+repair-петля; сиквел `02`/`05`)** — у всех ревью-шапки. ⚠ Часть под superseded-баннерами (01/02/03/04/05/09 и gap-1/2/5) — **читай баннер прежде содержимого**. - `PROGRESS.md` — **журнал** (CURRENT-STATE сверху, ниже хронология; НЕ источник решений). -- **Активные хендофф-промты (пост-пак-18, 25.07):** [`BACKEND_MINIRUN_SESSION_PROMPT.md`](archive/prompts/BACKEND_MINIRUN_SESSION_PROMPT.md) (**ТЕКУЩИЙ — мини-прогон ~10 глав ОДНОЙ сессией: гигиена → главный проход → проба банкноты → верификация по сырью; ~$0.12–0.19, судья не зовётся: мини-прогон ~10 глав одной сессией — гигиена (флип `RegressionGuard` + ниты) → сквозной платный прогон $0.10–0.35 → верификация сырьём; судья не зовётся**) · [`BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md`](BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный: механизмы D21 «голос и состояние» — voice-профиль · реестр обращений ты/вы · reveal-окна; двухфазный, ниты общности едут его лендингом**) · [`BACKEND_PACK18_DEBTS_SESSION_PROMPT.md`](archive/prompts/BACKEND_PACK18_DEBTS_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный: долги контракта — `--accept-rebill` (D20.2-Q2) на снапшотной гранулярности · семантика `escalation_model` с санкционированным пере-капчером golden · два нита общности условно; ru-target долг ЯВНО вынесен в свой будущий пак**) · [`BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md`](archive/prompts/BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md) (**пак-17 канал B (18+) вживую — ОТРАБОТАН ЦЕЛИКОМ 25.07: дизайн D39.26 · стройка D39.27 · дельта `allow` D39.28; вокабуляр = ПАРА `violence`/`sexually-explicit`, остаток — ФАКТЫ ToS в зоне полигона**; отчёты с ревью-шапками — [`archive/reports/PACK17_DESIGN_2026-07-25.md`](archive/reports/PACK17_DESIGN_2026-07-25.md), [`archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md`](archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md), [`archive/reports/PACK17_DELTA_2026-07-25.md`](archive/reports/PACK17_DELTA_2026-07-25.md); L3 — жёсткая линия, live только по санкции владельца) · [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (хендофф №6, 25.07 — только живое: роль/методология/уроки/нормы §1–11; состояние НЕ дублирует) · [`POLYGON_PACKAGE5_SESSION_PROMPT.md`](archive/prompts/POLYGON_PACKAGE5_SESSION_PROMPT.md) (**ТЕКУЩИЙ полигонный: блок A — ФАКТЫ ToS/AUP провайдер × лейбл под `accepts_labels` пака-17 (вердикты с дословными цитатами первоисточников, UNCLEAR легитимен); блок B — 7 док-синк пингов**) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual пилот/18+/echo). **Пак-16 ЗАЛЕНДЁН 25.07** (слой-3 diff-редактор: двухфазный дизайн D39.24 → стройка за `enabled:false`; отчёты с ревью-шапками — [`archive/reports/PACK16_DESIGN_2026-07-25.md`](archive/reports/PACK16_DESIGN_2026-07-25.md), [`archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md`](archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md)). **Паки 12/13/14/15 ЗАЛЕНДЕНЫ 24–25.07** (приёмка воркфлоу-линзами; отчёты с ревью-шапками — [`archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md`](archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md), [`archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md`](archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md); норматив — [`architecture/12-go-style-notes.md`](architecture/12-go-style-notes.md)). Дальше: **пак-17 = канал B вживую** (батч со следующим платным прогоном: вопросы итерации №2 + замер остатка ремонта → решение о включении петли) → голос/состояние D21 + C2/C3 → пилот Ф2.5. Закрытые — в `archive/prompts/`. +- **Активные хендофф-промты (26.07):** [`BACKEND_PACK20_BANK_TRUST_SESSION_PROMPT.md`](BACKEND_PACK20_BANK_TRUST_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный: флаговый майнинг-стоп + покрытие WHAT→WHICH + банкнота в шиппинг-промпт; двухфазный, шаг 0 = обязательный СИНК имплементации с ратифицированной базой**) · [`POLYGON_PACKAGE6_CHECKER_LABELS_SESSION_PROMPT.md`](POLYGON_PACKAGE6_CHECKER_LABELS_SESSION_PROMPT.md) (**ТЕКУЩИЙ полигонный: размеченный набор для чекеров, precision/recall вместо глазомера, $0**) · [`BACKEND_MINIRUN_SESSION_PROMPT.md`](archive/prompts/BACKEND_MINIRUN_SESSION_PROMPT.md) (**ТЕКУЩИЙ — мини-прогон ~10 глав ОДНОЙ сессией: гигиена → главный проход → проба банкноты → верификация по сырью; ~$0.12–0.19, судья не зовётся: мини-прогон ~10 глав одной сессией — гигиена (флип `RegressionGuard` + ниты) → сквозной платный прогон $0.10–0.35 → верификация сырьём; судья не зовётся**) · [`BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md`](BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный: механизмы D21 «голос и состояние» — voice-профиль · реестр обращений ты/вы · reveal-окна; двухфазный, ниты общности едут его лендингом**) · [`BACKEND_PACK18_DEBTS_SESSION_PROMPT.md`](archive/prompts/BACKEND_PACK18_DEBTS_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный: долги контракта — `--accept-rebill` (D20.2-Q2) на снапшотной гранулярности · семантика `escalation_model` с санкционированным пере-капчером golden · два нита общности условно; ru-target долг ЯВНО вынесен в свой будущий пак**) · [`BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md`](archive/prompts/BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md) (**пак-17 канал B (18+) вживую — ОТРАБОТАН ЦЕЛИКОМ 25.07: дизайн D39.26 · стройка D39.27 · дельта `allow` D39.28; вокабуляр = ПАРА `violence`/`sexually-explicit`, остаток — ФАКТЫ ToS в зоне полигона**; отчёты с ревью-шапками — [`archive/reports/PACK17_DESIGN_2026-07-25.md`](archive/reports/PACK17_DESIGN_2026-07-25.md), [`archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md`](archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md), [`archive/reports/PACK17_DELTA_2026-07-25.md`](archive/reports/PACK17_DELTA_2026-07-25.md); L3 — жёсткая линия, live только по санкции владельца) · [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (хендофф №6, 25.07 — только живое: роль/методология/уроки/нормы §1–11; состояние НЕ дублирует) · [`POLYGON_PACKAGE5_SESSION_PROMPT.md`](archive/prompts/POLYGON_PACKAGE5_SESSION_PROMPT.md) (**ТЕКУЩИЙ полигонный: блок A — ФАКТЫ ToS/AUP провайдер × лейбл под `accepts_labels` пака-17 (вердикты с дословными цитатами первоисточников, UNCLEAR легитимен); блок B — 7 док-синк пингов**) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual пилот/18+/echo). **Пак-16 ЗАЛЕНДЁН 25.07** (слой-3 diff-редактор: двухфазный дизайн D39.24 → стройка за `enabled:false`; отчёты с ревью-шапками — [`archive/reports/PACK16_DESIGN_2026-07-25.md`](archive/reports/PACK16_DESIGN_2026-07-25.md), [`archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md`](archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md)). **Паки 12/13/14/15 ЗАЛЕНДЕНЫ 24–25.07** (приёмка воркфлоу-линзами; отчёты с ревью-шапками — [`archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md`](archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md), [`archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md`](archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md); норматив — [`architecture/12-go-style-notes.md`](architecture/12-go-style-notes.md)). Дальше: **пак-17 = канал B вживую** (батч со следующим платным прогоном: вопросы итерации №2 + замер остатка ремонта → решение о включении петли) → голос/состояние D21 + C2/C3 → пилот Ф2.5. Закрытые — в `archive/prompts/`. - `archive/` — `prompts/`: закрытые сессионные промты (только история, инструкции оттуда не исполнять) · `reports/`: отчёты паков/ресёрч-сессий с ревью-шапками (живая фактура приёмок — на них ссылаются D-лог и активные промты) · `architecture/`: исполненные арх-доки (07 стратревью · 08 синк-ледджер · 11 план пака-11) · три слайса хроники `PROGRESS-2026-07-{04-10,10-13,13-25}.md`. ## Статус (2026-07-25, пак-17 ЗАКРЫТ ЦЕЛИКОМ — механизм content-labels живой, D39.26–D39.28 — механизация выпускного качества) diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index 1c9f852b..6dfe9c6c 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -1052,3 +1052,9 @@ API-529-долг закрыт: 8-осевой refute-by-default воркфлоу **НА ВЛАДЕЛЬЦЕ (открылось решение):** **включение платной петли ремонта (D39.24) — замер ЕСТЬ: остаток 0 в трёх классах, которые петля умеет чинить.** По этой цифре корректно решить «НЕ включать» (чинить нечего) — с оговоркой сессии: это узость набора классов, не чистота текста; расширение набора — прежде повторного замера. Рекомендация моя: не включать, петля остаётся построенной за `enabled:false`. **ХВОСТЫ (в трекер, по убыванию веса):** (1) **размеченный набор для чекеров** — топ-выбор сессии и мой: без него каждая цифра качества держится на глазомере очередной сессии; (2) тест-пин джойна WHAT↔WHICH (моя выжившая мутация); (3) покрытие WHAT↔WHICH (замер: 0/2 и 1/2 — следующая работа шва не «замкнуть», а «покрыть») + майнинг-стоп очищается РАУНДАМИ (вход в развилку D39.36 п.2 — флаговый стоп, семантика владельцем озвучена, реализация открыта); (4) `dialogue_dash` подогнан под 蛊真人 — честный замер только на невиданном тексте; (5) **генеральность нарезки: кана и ханьцзи в одном классе** (`TokenizeClassCounts`) — на ja-книге `est_out` завышен ~1.7×, чанки вдвое мельче, вызовов вдвое больше, МОЛЧА; + `EstimateTokens` недосчитывает кириллицу → резервации занижены на русско-тяжёлых вызовах; (6) golden пинит только фолбэк-путь (без langpack) — нужна вторая фикстура; (7) `prompt_override` — легальный обход гарантии слоя-2, сформулировать честно; (8) майнер/банк не-CJK конструктивно не работают (манифест = китайская ономастика) — граница признана, едет с ja→ru; (9) `request_log` без скоупа/ретеншена + `first_flag_reason` = ТРЕТЬЕ представление истории попыток (корень — неразведённые скоупы) ; (10) флор-16000 — калиброванная константа без модели «thinking в completion»; (11) две единицы упёрлись в `max_tokens` — вернётся на en-книге. **Проверено исполнением сессии ($0): ja/en книги падают громко ДО цента; с обойдённым гейтом проходят ingest/чанкер/read-model без правки Go** — §0 держится на уровне кода, но калибровки фактически китайские. + +## D39.38 — Санкции владельца (26.07): флаговый майнинг-стоп СТРОИМ (пак-20, двухфазный, ПЕРЕД паком-19); петля ремонта НЕ включается; полигону — размеченный набор чекеров; всем бэкенд-промтам — обязательный СИНК-шаг с ратифицированной базой. ✅ + +**Очередь ратифицирована владельцем:** пак-20 «банк: флаговый стоп + покрытие WHAT→WHICH» (двухфазный — синк → дизайн → ратификация → стройка) → пак-19 «голос/состояние» → свип «стартовый промт + гипотезы ресёрчей 01–22 против построенного» (владелец спросил «прошлись ли по всем?» — честный ответ был «не уверен»; свип $0, аудит-воркфлоу класса D39.34) → добор идеала (4 вопроса границы D39.33 всё ещё у владельца) → МАСШТАБ → пилот. Параллельно полигон: пакет-6 «размеченный набор для чекеров» (200–300 строк/класс, разметка до просмотра вердиктов, precision/recall текущих чекеров — линейки вместо глазомера). + +**Петля ремонта: НЕ включается** — отложено-с-записью: замер D39.37 дал 0 кандидатов в её классах, чинить нечего; вернуться при расширении набора классов и ненулевом остатке. **Мандат владельца в нормы промтов:** сессия ОБЯЗАНА синковать свою имплементацию об ратифицированную документацию и окружающий код ДО дизайна — таблица «источник ↔ код ↔ вердикт» в отчёте (шаг 0 пака-20; переносится во все последующие кодинг-промты). Контекст мандата: вопросы владельца об алгоритме банка показали, что доверие держится на прослеживаемости «ресёрч → ратификация → код», и её надо ПОКАЗЫВАТЬ, а не подразумевать.