diff --git a/CLAUDE.md b/CLAUDE.md index e691bb4f..28edd4af 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,7 +14,7 @@ Go-бэкенд издательского художественного пер ## Источники истины (по убыванию) -1. **`docs/architecture/05-decisions-log.md` (D1–D39.53)** — ратифицированный контракт; при конфликте с любым другим доком побеждает он; сверху файла — карта актуальности (что чем superseded). **Правило чтения (онбординг-диета 25.07): карта + живая голова (эра D39.x); корпус D1–D38 = справочник — по ссылкам/grep по D-номеру, целиком НЕ читать.** +1. **`docs/architecture/05-decisions-log.md` (D1–D39.63)** — ратифицированный контракт; при конфликте с любым другим доком побеждает он; сверху файла — карта актуальности (что чем 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. @@ -27,7 +27,7 @@ Go-бэкенд издательского художественного пер - **18+ уровень 3** (несовершеннолетние в сексуальном контексте) — не обрабатывать/не анализировать; `eval/data/refusal_corpus/*` не открывать без прямой задачи владельца. - **PUML не рендерить в svg/png** — владелец смотрит PlantUML-расширением VS Code. - **Коммиты**: английский, одно предложение ≤30 слов, без Co-Authored-By. `.claude/settings.local.json` НЕ коммитить (ломает пермишены). -- Провайдерские ловушки: **DeepSeek — НИКОГДА не отключать thinking** (эхо-мина; гейт `echoMineViolation` это принуждает); grok-4.3 reasoning off — только ЯВНЫЙ `reasoning_effort:"none"` (дефолт low; wire-квирк в силе, но из РЕДАКТОРСКИХ ролей reasoning-off снят — no-op, D30.1); слаги моделей не менять без live-фактчека `/models`. **Пробы/запросы падают или ведут себя странно (флейки, 404 живой модели, новый finish_reason, игнор параметров) → идём в официальную доку вендора (deprecations/changelog/status) и гуглим, НЕ гадаем** — интерпретацию аномалии без вендор-сверки в доки/промты не абсорбировать (решение владельца 10.07; правило двух направлений — `00-provider-quirks.md` шапка). +- Провайдерские ловушки: **DeepSeek — НИКОГДА не отключать thinking** (эхо-мина; гейт `echoMineViolation` это принуждает); grok-4.3 reasoning off — только ЯВНЫЙ `reasoning_effort:"none"` (дефолт low; wire-квирк в силе, но из РЕДАКТОРСКИХ ролей reasoning-off снят — no-op, D30.1); слаги моделей не менять без live-фактчека `/models`; ⚠ «слаг живой» ≠ «модель та же» — DeepSeek 31.07 сменил веса под слагом (D39.61), при аномалиях сверять поведение и вендор-лог обновлений. **Пробы/запросы падают или ведут себя странно (флейки, 404 живой модели, новый finish_reason, игнор параметров) → идём в официальную доку вендора (deprecations/changelog/status) и гуглим, НЕ гадаем** — интерпретацию аномалии без вендор-сверки в доки/промты не абсорбировать (решение владельца 10.07; правило двух направлений — `00-provider-quirks.md` шапка). - Дисциплина: не верь заголовкам — грунтуй выводы `file:line`/цитатой; спорное верифицируй адверсариально (author≠reviewer); эмпирика на PD-классике из претрейна считается предварительной до вебновелл-среза. - **Общность движка (владелец 24.07):** Go-логика НЕ ветвится по паре/книге; пара-данные → `internal/lang`+`configs/langpacks/`, книго-каноны → сид/brief (данные); книжный термин в общем пар-слое = утечка. Тест-данные пары легитимны. Норматив (только больные места): `docs/architecture/12-go-style-notes.md`. Ревью-вопрос по умолчанию: «заработает ли на паре, которой в репо ещё НЕТ, без правки Go?» - **Мандат самопроверки в промтах сессий (обязателен, решение владельца 12.07):** промты полигон-сессий — и вообще любых пишущих код / запросы к моделям — ДОЛЖНЫ явно требовать ревью ИСПОЛНЕНИЕМ: своего кода + сформированных запросов к моделям + полученных результатов. Полигон регулярно ошибается/багует, и это искажает эксперименты (D37: заявленные «0 ошибок» = 36 ошибок+биллинг, «13 катастроф» = ~5–6 при оверфлаге судьи; exp13 +10% бюджета). Бэкенд-промты — явный бэкенд-ревью после кода (обычно отрабатывает по опыту, но требовать явно). Пост-хок адверсариальная верификация оркестратора при лендинге — второй рубеж, НЕ замена самопроверки. @@ -39,11 +39,12 @@ Go-бэкенд издательского художественного пер 2. `docs/architecture/05-decisions-log.md`: карта актуальности (шапка) + живая голова (D39.x). Целиком НЕ читать — корпус D1–D38 по ссылкам/grep по мере надобности. 3. По роли: Бэкенд — `backend/README.md` + `03-implementation-notes.md` (через баннер) + `12-go-style-notes.md`; Полигон — `eval/README.md` + `experiments/00` + `09-pilot-protocol.md`; всем — шапка-таблица `09-target-architecture.md` (статус слоёв). -## Текущее состояние (2026-07-26, пак-20 закрыт целиком, голова D39.53) +## Текущее состояние (2026-08-01, голова D39.63 — эра «общность → автономность банка») -- **Фазы:** Ф0 ✅ · Ф1-инфра ✅ · арх-ресет D39 исполнен целиком (7 слоёв, паки 11–16) · мини-прогон принят (D39.37, $0.23, операционка до цента) · **пак-20 «банк» ЗАКРЫТ ЦЕЛИКОМ (D39.41–53): ТЕРМИНОЛОГ (роль пар-пака: переводит смердженный банк по KWIC-контекстам, durable-деньги) · флаговый стоп `--verify-bank` (дефолт = авто-продолжение) · ДВУХСЕКЦИОННАЯ редакторская инъекция (закон CONFIRMED + помеченная секция ⟨проверить⟩; ВСЕ строки банка фолдятся в версию) · точечная ре-редактура по ключу (bank-only-сдвиг → пере-пин $0) · банкнота отдельным шиппинг-файлом · языковой экран `gates.terminology.target_script` · дисциплина банкноты (кавычки в свёртке, агрегация из чекпойнтов по чанкам)**. Жанровый словарь ОТМЕНЁН КАК КЛАСС (D39.47: решение о переводе = подпись владельца на банк КНИГИ). Петля ремонта построена и НЕ включается (D39.38; «остаток=0» = ноль в охвате узких детекторов, D39.39). -- **Полигон:** пакеты 6/7/8 закрыты (D39.39/43–46/50/52): размеченный набор чекеров = постоянный измерительный стенд · рубрика K1–K12 ратифицирована · «контексты — главный рычаг терминолога» измерено · расширение эмиссии майнера закрыто ОТРИЦАТЕЛЬНО · частотного экрана для банкноты не существует · слепой судья годен только как катастроф-экран с декоем. -- **Очередь (D39.40/51/53):** пак-19 «голос/состояние» (промт актуализирован 26.07) → **ХОЛОДНЫЙ мини-прогон** (пустой сид, отдельная БД; закрывает ~десять вопросов за ≤$0.23, вкл. холодный старт банкноты, фикс не-CJK парсера, allow_short, судью-решение) → пак-21 «чекеры» (вход: 12 дефектов D39.39 + утечка алфавита) → свип гипотез → добор идеала → МАСШТАБ → пилот Ф2.5. -- **Стек:** draft deepseek-v4-flash thinking-ON (+банкнота) → терминолог (та же дешёвая модель, батчи) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (glm-5 резерв) → судья gemini-preview + grok-фолбэк 18+ (Ф2, только полигон). ~$0.85/ранобэ держится (D30.4); терминолог — центы на выборках, ≈$1.10 полный банк. -- **Висит на владельце + открытые петли:** ЕДИНЫЙ БЭКЛОГ — таблица в `docs/PROGRESS.md` (единственное место). +- **Сделано:** Ф0 ✅ · Ф1-инфра ✅ · арх-ресет D39 (7 слоёв, паки 11–16) ✅ · паки 17–20 ✅ (канал B · долги контракта · голос/состояние · банк+терминолог; D39.26–56) · мини-прогон (D39.37) и ХОЛОДНЫЙ прогон (D39.58: recall банка майнер∪банкнота 0.918/0.980, банк приходит переведённым) приняты · **карта языковой привязки движка (D39.60): долг 149 сайтов/45 файлов, книго-ось чиста (4 сайта), ja→ru безопасно без правки Go, en→ru — нет** · Р1–Р4 закрыты (D39.63: Р2 = детекторы единиц судят ЗНАЧЕНИЕ; Р4 = потолок recall в контракт правила) · пак-21 растворён (D39.62) · жанровый словарь ОТМЕНЁН КАК КЛАСС (D39.47) · петля ремонта построена и НЕ включается (D39.38). +- **Сейчас ПАРАЛЛЕЛЬ (D39.62):** бэкенд — фаза 2 общности ($0-код: П0 хеш эмбед-данных → П1 цель-шов → П2 скрипт-шов → П3 нарезка/оценка → П4 пак-манифест + шестёрка чекер-фиксов + малые 77/78; промт `docs/BACKEND_GENERALITY_PHASE2_SESSION_PROMPT.md`) ∥ полигон — $0-сырьё арки автономности банка (консистентность терминолога · веса консолидации · аудит типов 36а; промт `docs/POLYGON_BANK_RAWMATERIAL_SESSION_PROMPT.md`). Перекупок на этой фазе нет — стендовый корпус одноразовый (D39.63). +- ⚠ **DeepSeek-V4-Flash-0731 (31.07): веса сменились ПОД ТЕМ ЖЕ СЛАГОМ — боевая черновая форма покупает пустые ответы; платные прогоны СТОП до ре-пробы** (бэклог-строка 74, оперативно «ждём»; v4-pro/редактор не тронут). +- **Очередь дальше (D39.62):** дизайн арки АВТОНОМНОСТИ банка (подпись владельца опциональна — банк обязан приходить качественным автономно, D39.59) → ре-проба flash → свежий мини-прогон на новом стеке (оси голоса · авто-режим · итерация №2 редакторов) → свип гипотез → добор идеала → вторая пара живьём (ja→ru) → МАСШТАБ → пилот Ф2.5 → Ф3 ридер-IDE. +- **Стек:** draft deepseek-v4-flash thinking-ON (+банкнота) ⚠0731 → терминолог (та же дешёвая модель, батчи) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (glm-5 резерв) → судья gemini-preview + grok-фолбэк 18+ (Ф2, только полигон). ~$0.85/ранобэ (D30.4) — пере-калибровка после развилки 74; терминолог — центы на выборках, ≈$1.10 полный банк. +- **Висит на владельце + открытые петли:** ЕДИНЫЙ БЭКЛОГ — таблица в `docs/PROGRESS.md` (единственное место). Стоячие: ToS-триггер 25.10 · Ш-2 трипваер до go1.27. - **Стенд:** WSL2, GTX 1070 8GB (localhost из-под прокси = 403 — no-proxy транспорт для local). Книга `/home/ubuntu/books/gu-zhenren/` (GB18030; текст и производные ВНЕ git). diff --git a/docs/POLYGON_PACKAGE4_SESSION_PROMPT.md b/docs/POLYGON_PACKAGE4_SESSION_PROMPT.md index 1b6e85a7..a9e213e5 100644 --- a/docs/POLYGON_PACKAGE4_SESSION_PROMPT.md +++ b/docs/POLYGON_PACKAGE4_SESSION_PROMPT.md @@ -1,6 +1,7 @@ # Промт: полигон-сессия, пакет №4 — сид этапа B + fix-лист D22.8 + задачи D25 (2026-07-11) > **⚠ СТАТУС (оркестратор №4, D36.1, 12.07) — НЕ архивирован, ЧАСТИЧНО отработан, residual ЖИВ.** +> **Дельта 01.08 (оркестратор №9):** P4 fidelity-хвост (D21.9) из residual ЗАКРЫТ — D39.61, «цены верности не обнаружено», эмпирика P4 superseded весами 0731. Остальной residual (судья-дублёр D22.6 · echo-калибровка D25.7 · миграция `memory_eval` с gemini-2.5-flash, EOL 16.10 · пилот-пре-рег) жив, переупакуется в пилот-преп-промт при активации Ф2.5. > Как отдельная сессия пакет №4 **НЕ запускался**. Отработана только **Задача 1 (сид-мн.ч.)** — влита в сид v2 внутри exp13 (D32, `guzhenren-seed-v2.yaml`). **Открыто (пилот/18+/echo-трек — ортогонально бэкенд-курсу, в паки НЕ вносить):** > - **Задача 2 (fix-лист D22.8):** (а) content-filter матчер подстрокой + самотест; (б) параметризация языка/жанра `explicit_judges.py`; (в) **миграция судьи `memory_eval.py` с gemini-2.5-flash** (EOL 16.10.2026 — `00-provider-quirks.md:74`); **(ж) проба судьи-дублёра 18+ (D22.6) — НАЗВАННЫЙ БЛОКЕР ПИЛОТА** (`09-pilot-protocol.md`, CURRENT-STATE). > - **Задача 3 (D25):** echo-калибровка (D25.7); дополнения пре-регистрации пилота (D25.2/25.6/25.8 → `09-pilot-protocol.md`); minimal-pairs shadow fidelity (совместить с корпусом пилота). diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 29219874..95456c6a 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -1,21 +1,21 @@ # Журнал прогресса -> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-07-26: пак-20 закрыт ЦЕЛИКОМ D39.41–53 — терминолог · флаговый стоп · двухсекционная инъекция · точечная ре-редактура · языковой экран; жанровый словарь отменён D39.47; полигон-пакеты 6/7/8 закрыты). **Источник истины по РЕШЕНИЯМ — `architecture/05-decisions-log.md` (D1–D39.53); этот файл — ЖУРНАЛ.** -> - **Фазы/курс:** Ф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.40/51/53, актуализация 31.07):** пак-19 «голос/состояние» ЗАКРЫТ ЦЕЛИКОМ (D39.54–56, вкл. малую пачку 14а+14б) → ХОЛОДНЫЙ мини-прогон ИСПОЛНЕН ДОСТАТОЧНО (D39.58, Р7 владельца: recall банка 0.918/0.980, банк приходит переведённым; хвосты 16/21/22/24/13б — со следующим живым прогоном или полигон-пакетом) → **ПАРАЛЛЕЛЬ D39.59: бэкенд-ресёрч общности фаза 1 ПРИНЯТ (D39.60 — долг 149 сайтов/45 файлов, книго-ось чиста: 4 сайта; ja→ru безопасно без Go, en→ru нет; план П0–П5; СТОП — 5 вопросов §12 у владельца, строка 72) ∥ полигон Р6+P4 ПРИНЯТ (D39.61 — Р6 отрицателен: боевые промпты остаются русскими; гейт верности D21 п.6 пройден «цены верности не обнаружено», wiring отложен до предмета, префилл — новый кандидат; ⚠ **DeepSeek сменил веса под слагом 31.07 — боевая черновая форма покупает пустые ответы, развилка §12.4 у владельца = БЛОКЕР платных прогонов и resnapshot, строка 74**)** → фаза 2 общности ($0-код, от развилки не зависит: П0 → П1 цель-шов → П2 скрипт-шов → П3 нарезка → П4 пак-манифест + дешёвая шестёрка растворённого пака-21 + малые 77/78; **перекупок НЕТ — стендовый корпус одноразовый, D39.63**; после лендинга — ре-проба flash → СВЕЖИЙ мини-прогон на новом стеке, довесок = итерация №2 редакторов D39.22) → арка АВТОНОМНОСТИ банка (дизайн-пак оркестратора: веб-фетч пере-замер под АВТОНОМНЫМ критерием + 36а/36б/36в + Decl-шов/27; премиса «решение = подпись» амендирована D39.59; кормится $0-сырьём строк 21/22/36а — полигон-промт выдан) → **горизонт (D39.62, «планировать подальше»):** пере-замеры на новом стеке ОДНИМ живым мини-прогоном (закрывает 16/24 + оси голоса + остаточную цену; после развилки 74 и resnapshot) → свип гипотез качества (полигонский судейский свип дефект-классов на актуальном стеке; вход = рубрика K1–K12 + размеченный стенд пакета-6) → добор идеала → ВТОРАЯ ПАРА живьём (кандидат ja→ru; гейтит П5-майнер и впервые проверяет §0 фактом) → МАСШТАБ целой книги (7,78 млн симв., ~2284 раздела; каденс/потолки/ETA) → пилот Ф2.5 (судья native-Gemini; 18+ ветка через grok-фолбэк; строка 6 ToS) → Ф3 ридер-IDE (строки 69–71; якорь = чанк пайплайна). Стоячие обязательства поверх горизонта: ToS-триггер 25.10 · Ш-2 трипваер до go1.27 · строка 74 до любых платных прогонов. Хроника треков A/B, exp15/16 и стройки паков — архивы ниже + D-лог. -> - **Стек:** draft deepseek-v4-flash (thinking ON, +банкнота `translator-banknote.md`) → **терминолог** (роль пар-пака, deepseek-v4-flash, батчи, языковой экран `target_script` — D39.42/45/51/53) → **editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (D39.22; glm-5 резерв)**, промпт v3-discourse, инъекция двухсекционная (D39.45) → судья gemini-3.1-pro-preview (Ф2, полигон); канал B Mistral+grok; 7 ключей; ~$0.85/ранобэ (D30.4). -> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже (введён 26.07 по решению владельца: одна таблица вместо наслоений; ревью-пасс оркестратора сверил её с коммитами и обсуждённым, добавил 7 строк). Норма прежняя: каждая петля обязана иметь диспозицию (решено / отложено-с-записью / отклонено); ведёт оркестратор. Историческая развёртка петель до 26.07 — в git-истории этого файла и в D-логе.** -> - Архивы хроники: `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). Записи ниже — живой хвост. +> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-01, голова D39.63; актуализация-гигиена по санкции владельца). **Источник истины по РЕШЕНИЯМ — `architecture/05-decisions-log.md` (D1–D39.63); этот файл — ЖУРНАЛ.** +> - **Сделано (сводно; детали — D-лог и архив-слайсы):** Ф0 ✅ · Ф1-инфра ✅ · арх-ресет D39 (7 слоёв, паки 11–16) ✅ · паки 17 «канал B» · 18 «долги» · 19 «голос/состояние» · 20 «банк+терминолог» ✅ (D39.26–28/31/41–56) · мини-прогон (D39.37) и ХОЛОДНЫЙ прогон (D39.58: recall банка 0.918/0.980, банк приходит переведённым) приняты · полигон-пакеты 5–8, ToS-речек (D39.57), Р6+P4 (D39.61) закрыты · **карта языковой привязки движка (D39.60): 149 сайтов/45 файлов, книго-ось чиста (4), ja→ru безопасно без правки Go, en→ru — нет** · Р1–Р4 закрыты целиком (D39.63: Р2 = ЗНАЧЕНИЕ, Р4 = норма потолка recall) · жанровый словарь отменён как класс (D39.47) · петля ремонта построена и НЕ включена (D39.38). +> - **Курс (D39.59–63): ОБЩНОСТЬ → АВТОНОМНОСТЬ БАНКА. Сейчас ПАРАЛЛЕЛЬ:** бэкенд — фаза 2 общности ($0-код: П0 «байты есть версия» → П1 цель-шов (санкция D39.62, амендмент D39.24) → П2 скрипт-шов (ko/Hangul, строка 75) → П3 нарезка/оценка → П4 пак-манифест + дешёвая шестёрка растворённого пака-21 + малые 77/78; промт `BACKEND_GENERALITY_PHASE2_SESSION_PROMPT.md`) ∥ полигон — $0-сырьё арки банка (консистентность P1/веса/аудит типов 36а; промт `POLYGON_BANK_RAWMATERIAL_SESSION_PROMPT.md`). ⚠ **DeepSeek-V4-Flash-0731: веса сменились под слагом — боевая черновая форма покупает пустые ответы; платные прогоны СТОП до ре-пробы (строка 74; оперативно «(в) ждём», D39.63). Перекупок на этой фазе нет — стендовый корпус одноразовый (D39.63).** +> - **Горизонт (D39.62 «планировать подальше»):** фаза 2 → дизайн арки АВТОНОМНОСТИ банка (оркестратор: веб-фетч пере-замер под АВТОНОМНЫМ критерием + 36а/36б/36в + Decl-шов/27) → ре-проба flash → СВЕЖИЙ мини-прогон на новом стеке (оси голоса 16/24 · авто-режим · довесок: итерация №2 редакторов D39.22) → свип гипотез качества (рубрика K1–K12 + размеченный стенд пакета-6) → добор идеала → ВТОРАЯ ПАРА живьём (ja→ru; гейтит П5-майнер и §0 фактом) → МАСШТАБ (7,78 млн симв., ~2284 раздела) → пилот Ф2.5 (судья; строка 6 ToS) → Ф3 ридер-IDE (строки 69–71). **Стоячие:** ToS-триггер 25.10 · Ш-2 трипваер до go1.27 · строка 74 перед любым платным прогоном. +> - **Стек:** draft deepseek-v4-flash thinking-ON (+банкнота) **⚠0731** → терминолог (та же модель, батчи, экран `target_script`) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (вендором НЕ тронут; glm-5 резерв) → судья gemini (Ф2, полигон); канал B Mistral+grok; ~$0.85/ранобэ (D30.4) — пере-калибровка после развилки 74. +> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). +> - Архивы хроники: `archive/PROGRESS-2026-07-04-10.md` (D31) · `-10-13` (D39.6-гигиена) · `-13-25` (стройка паков 11–16, rerun2) · **`-25-31` (паки 17–20 · мини-прогон · полигон-пакеты 5–8 · ToS · холодный прогон; D39.26–58)**. Записи ниже — живой хвост (эра D39.59+). -## Бэклог (ЕДИНЫЙ, собран и сверен 26.07; правки — только через оркестратора) +## Бэклог (ЕДИНЫЙ, собран 26.07, актуализация 01.08; правки — только через оркестратора) Закрытые строки здесь НЕ хранятся — они уходят в D-лог с номером решения. Вес: «блокер-очереди» = мешает текущему шагу · «скоро» = ближайшие 1–2 касания · «когда-нибудь» = записано, не потеряно. | ID | Хвост (одной фразой) | Зона | Вес | Чем закрывается | Источник | |---|---|---|---|---|---| | **— ВИСИТ НА ВЛАДЕЛЬЦЕ —** | | | | | | -| 1 | Вопросы разметки Р1–Р4 — **ЗАКРЫТЫ ЦЕЛИКОМ (D39.63)**: Р2 = ЗНАЧЕНИЕ (жёсткий флаг семейства единиц/шкал — только неверное значение; неконвертированная форма = мягкий счётчик) · Р4 = норма (потолок recall by construction — в контракт правила) · Р3 закрыт D39.44 Q4 · Р1 расщеплён D39.60; контракт передан фазе-2 промтом | — | закрыто | — | D39.60, D39.63 | | 2 | Четыре вопроса границы «алгоритмического идеала» (Annotator · семантический судья · ja→ru §B5 · ru-target до/после) | владелец | скоро (гейт «добора идеала» перед МАСШТАБОМ) | отдельное решение | D39.33, D39.38 | -| 3 | Одноразовый `--resnapshot` стендовых книг с auto-строками | владелец | скоро | отдельное решение | D39.45(4) | | 4 | Ре-чек ToS по триггерам — первый ИСПОЛНЕН 31.07, дельт вердиктов нет (D39.57); предмет Google-мониторинга перевешен на цепочку договора (PUP · Additional ToS · Google APIs ToS); следующие: квартал 25.10.2026 · первая лейблованная книга · любая правка `accepts_labels` | владелец/полигон | скоро (следующий триггер 25.10.2026) | отдельное решение (правило) | D39.32, D39.57 | | 5 | Судья-с-декоем — условие «после холодного старта» НАСТУПИЛО (D39.58); форма возврата = рецензент второго мнения по банку, несогласия колонкой подписной таблицы (строка 36б) | владелец | скоро | дизайн 36б | D39.50 п.6, D39.51 п.4, D39.58 | | 6 | Строка Gemini в `accepts_labels` — ждёт слова владельца о подписи интерпретации сужения как разрешения; ре-чек 31.07 понизил приоритет: подпись даёт ПРАВО, но не судью 18+ (фильтр неконфигурируем D22.6 + обход запрещён договором) — возвращаться при вопросе, требующем именно права | владелец | когда-нибудь | отдельное решение | D39.32, D39.57 | @@ -24,10 +24,10 @@ | 9 | Промпт-слой под лейблом: лейбл не доезжает до промпта — должны ли переводчик/редактор знать о свойстве контента | владелец | когда-нибудь | отдельное решение | CURRENT-STATE (владелец, из пака-17) | | 10 | Дата создания аккаунта OpenAI (низкий приоритет, OpenAI вне цепочки) | владелец | когда-нибудь | отдельное решение | D39.32 | | 11 | Флип coverage-гейта (`enabled:false`, D12-Q4) — за подписью владельца | владелец | когда-нибудь | отдельное решение | D39.34(2) | -| 12 | `postcheck_gate` в hard-gate — требует пере-замера recall (recall чекеров теперь измерен и низок) | владелец | когда-нибудь (после пака-21) | отдельное решение | D39.34(2), D24.4+D28.1, D39.39 | +| 12 | `postcheck_gate` в hard-gate — требует пере-замера recall (recall чекеров теперь измерен и низок) | владелец | когда-нибудь (после фазы 2) | отдельное решение | D39.34(2), D24.4+D28.1, D39.39 | | 13 | Включение платной петли ремонта + per-class исходы ремонта (схемное решение принимается вместе) — вернуться при расширении классов детекторов и ненулевом остатке | владелец | когда-нибудь | отдельное решение | D39.38, D39.39(а), CURRENT-STATE | | 13а | Веса рубрики K1–K12 не выбраны (Q1: «по данным фазы B»; фаза B прошла на BWS без весов — выбор нужен к агрегатной приёмке качества книги) | владелец | когда-нибудь (к пилоту) | Ф2.5 / отдельное решение | D39.44 Q1, D39.46 | -| 13б | `speech-cue.txt` zh НЕ шипить до замера голос-флаггера на холодном прогоне (данные для недоказанного детектора = инерция; вывод обсуждения 31.07): оси пустые → файл не нужен, оси ловят → решение владельца о шипе (байты двигают `LangpackVersion`) | владелец | отложено-до-замера | холодный мини-прогон → отдельное решение | D39.56, PACK19_BUILD §7.2, чат 31.07 | +| 13б | `speech-cue.txt` zh НЕ шипить до замера голос-флаггера на холодном прогоне (данные для недоказанного детектора = инерция; вывод обсуждения 31.07): оси пустые → файл не нужен, оси ловят → решение владельца о шипе (байты двигают `LangpackVersion`) | владелец | отложено-до-замера | следующий живой прогон (оси голоса, строка 24) → отдельное решение | D39.56, PACK19_BUILD §7.2, чат 31.07 | | **— ХВОСТЫ ХОЛОДНОГО ПРОГОНА (исполнен достаточно, D39.58; Р7 владельца) —** | | | | | | | 16 | Полная цена холодного старта: edit-волна не гонялась (Р7); измерено всё ДО редактуры (драфт+банкнота $0.0247/волна · терминолог $0.006–0.013/проход) | бэкенд | когда-нибудь (следующий живой прогон) | следующий прогон | D39.58 | | 18 | `蛊` не приходит НИ ОДНИМ каналом (модель объявляет составные, майнер режет по длине) — структурная дыра эмиссии на голове частотного понятия; доставка подписанной короткой строки проверена $0-пином; третий сайт того же порога — алиас-канал `miner_alias.go:44,93` (D39.60) | бэкенд | когда-нибудь | отдельное решение (рядом с 36а) | D39.58, D39.60 | @@ -106,6 +106,10 @@ | 69 | Gemini API «под-18» обязательство на конечный продукт (независимо от лейблов) | владелец | когда-нибудь | Ф3 / отдельное решение | D39.32, D39.34(7) | | 70 | Action-security gate перед выдачей tools/webfetch (D25 п.5) | бэкенд | когда-нибудь | Ф3 | D39.34(7) | | 71 | Планы research/22: epub-tag-rewrite · Q7-леджер | бэкенд | когда-нибудь | Ф3 | D39.34(7) | +## Оркестратор №9 — АКТУАЛИЗАЦИЯ ДОКОВ по санкции владельца: хроника 25–31.07 в новый слайс, шапки переписаны под голову D39.63, пять промтов в архив, 01.08 + +Санкция: «спилить лишнее, архивировать, ничего живого не потерять». Сделано: (1) PROGRESS 331→~160 строк — 37 закрытых записей (эры №7/№8 + лендинги D39.54–58 + СТОП-запись общности) → новый слайс `archive/PROGRESS-2026-07-25-31.md`, указатели на местах вырезов; CURRENT-STATE переписан под голову D39.63 (сделано/курс/горизонт/стек/стоячие); (2) бэклог: строка 1 закрыта (D39.63), строка 3 снята (перекупок нет — D39.63), носители 12/13б поправлены; (3) CLAUDE.md и docs/README: статус-блоки переписаны (01.08, D1–D39.63), активные промты = 3 + PACKAGE4-трекер; в гардрейл добавлен урок «слаг живой ≠ модель та же»; (4) D-лог: титул D1–D39.63 + навигационная строка «карта покрывает до D39.28, голова — с хвоста»; (5) шапка 09-target: слой 7 «П1 в работе», актуализация-строка (пак-19, карта D39.60, фаза 2); (6) в архив с баннерами-исходами: промты пака-19, холодного прогона, общности-фазы-1, ToS-речека, Р6+P4; PACKAGE4 остался residual-трекером с дельтой «P4-хвост закрыт D39.61». Самопроверка — счёт строк вырезов = слайсу, фантом-гард D-ссылок, живость всех ссылок README/CLAUDE/PROGRESS, состав активных промтов (см. коммит). + ## Оркестратор №9 — Р2=значение, Р4=норма, реснапшот-фигура растворена посылкой владельца (D39.63), 01.08 Строка 1 (Р1–Р4) закрыта целиком; контракт единиц передан фазе-2. Владелец оспорил посылку «один общий resnapshot» — прав: стендовый корпус одноразовый, перекупать нечего, следующий замер = свежий мини-прогон на новом стеке; фигура выродилась в дисциплину «не покупать замеров до лендинга фазы-2». Развилка 74 — «(в) ждать» по умолчанию, ре-проба перед следующим платным прогоном. Само-ревью промтов по вопросу владельца: три дыры закрыты (Р2-контракт бэкенду · параллельность/заморозка бинаря обоим · карта чтения полигону); параллельный запуск двух сессий безопасен. @@ -120,132 +124,13 @@ Q1 = П1 цель-шов санкционирован («главное бэке ## Оркестратор №9 — РЕСЁРЧ ОБЩНОСТИ ФАЗА 1 ПРИНЯТ (D39.60): долг 149 сайтов/45 файлов, книго-ось чиста, план П0–П5; СТОП — пять вопросов владельцу, 31.07 -Короткая приёмка по норме 30.07: отчёт (запись сессии — ниже, `### РЕСЁРЧ ОБЩНОСТИ фаза 1 ИСПОЛНЕН`) прочитан целиком, восемь несущих утверждений пере-проверены исполнением — все сошлись (вкл. побайтный повтор хеша пака `a28ed743c99c` и счёт 27/12 живых CJK-строк); два нита некритичны (счёт сайтов `ExportNormalize`, атрибуция Ш-1). Ратифицировано как карта (D39.60): вёдра A27/B6/C104/D12/E106 · заморозки З1–З9 · актуальные якоря пака-21 (§8 отчёта — ссылки D39.39 устарели) · правило условного фолда §6.2. Новые строки: 75 (живой баг ko/Hangul → П2) · 76 (эмбед-плоскость без хеша → П0 первым). Строка 32 исправлена фактом (боевых call-site 6 и 2), Decl-находка уехала в арку банка (73). **На владельце пять вопросов §12 с моими рекомендациями (в D39.60): П1 в арку = ДА · один общий resnapshot = ДА (но после развилки DeepSeek — D39.61, строка 74) · П6 = не сейчас · Р1–Р4 = сократить до Р2+Р4 · пак-21 = растворить.** Фаза 2 не начинается до ответов. - -## Полигон — РЕ-ЧЕК ToS ПО КАЛЕНДАРНОМУ ТРИГГЕРУ ИСПОЛНЕН ($0): дельт вердиктов НЕТ, но триггер стоит не на том документе, 31.07 - -Отчёт: `archive/reports/TOS_RECHECK_2026-07-31.md`; факты — секция «Право по ToS/AUP» в `experiments/00-provider-quirks.md` (помечена датой ре-чека). **Триггер сработал буквально** — головной Google ToS сменил ревизию `May 22, 2024` → **`Effective July 30, 2026`**, — **но по нашей оси он пуст:** свой байтовый диф архивной и живой US-версий даёт 72 строки, все потребительско-правовые (сетевые расходы, дисклеймеры, калифорнийское право), а счётчики `violen*` = 0 и `sexual*` = 0 в ОБЕИХ ревизиях. Единственная контентная вставка — `Some content may not be suitable for everyone.` в разделе о генерируемом контенте: дисклеймер о ВЫХОДЕ Google, по D39.29 права не даёт, и специально помечена, чтобы её не приняли за сдвиг. **Пере-сняты пять вендоров цепочки — `gemini` · `mistral` · `xai` · `deepseek` · `zai`, все на ПРЕЖНИХ объявленных ревизиях, 34 цитаты подтверждены счётом = 1, дельт вердиктов ноль.** `kimi`/`openai` (403 Cloudflare, JS-шелл) вне названного промтом фокуса — помечены непере-проверенными. **Три находки сверх задачи.** (1) **Триггер поставлен на косвенно привязанный документ:** договор Gemini API — это `Google APIs ToS` (*Last modified: November 9, 2021*, прежде в записи ОТСУТСТВОВАЛ) + `Additional ToS` (*March 23, 2026*) → PUP; потребительский ToS цепляется лишь через API ToS §b `You will not violate any other terms of service with Google`. Предложение: мониторить три документа цепочки, а не `policies.google.com/terms`. (2) **Метод верификации цитат дефектен:** `grep -c -F` по стриппнутому тексту дал ЛОЖНЫЕ НУЛИ на трёх верных цитатах DeepSeek (жёсткие переносы + кавычки в отдельных тегах) — без поправки ре-чек показал бы фантомную дельту вендора; рабочая форма (сверка по копии без пробелов) вписана в quirks. Там же: **`r.jina.ai` как второй путь МЁРТВ (403)**, заменён двумя независимыми снимками Wayback с честной оговоркой «оба в прошлом»; **`ai.google.dev` больше не требует Wayback** — петля была на cookie `signin=autosignin`, лечится cookie-jar. (3) **Рассинхрон:** клетка `gemini` × `sexually-explicit` в quirks стояла `FORBIDDEN` против ратифицированного D39.32 п.2 `UNCLEAR` — помечена ссылкой на амендмент, молча не переписана. **Рекомендация по строке 6 (Gemini в `accepts_labels`): не подписывать сейчас** — ре-чек не дал новой фактуры ни за, ни против, а главное: подпись даст ПРАВО, но не даст судью 18+, потому что по оси ПОВЕДЕНИЯ Gemini fail-closed на графичной эротике (D22.6, 8× wire-verified, фильтр неконфигурируем), а Additional ToS теперь ещё и прямо запрещает обход фильтра (`You may not attempt to bypass these protective measures`). Строка стоит дешевле, чем выглядит: ничего не блокирует и почти ничего не открывает. Следующий триггер — квартальный **25.10.2026**, без изменений. Сессия не коммитила; `accepts_labels` не трогала; бэклог не правила (зона оркестратора). +Короткая приёмка по норме 30.07: отчёт ([`archive/reports/GENERALITY_RESEARCH_2026-07-31.md`](archive/reports/GENERALITY_RESEARCH_2026-07-31.md)) прочитан целиком, восемь несущих утверждений пере-проверены исполнением — все сошлись (вкл. побайтный повтор хеша пака `a28ed743c99c` и счёт 27/12 живых CJK-строк); два нита некритичны (счёт сайтов `ExportNormalize`, атрибуция Ш-1). Ратифицировано как карта (D39.60): вёдра A27/B6/C104/D12/E106 · заморозки З1–З9 · актуальные якоря пака-21 (§8 отчёта — ссылки D39.39 устарели) · правило условного фолда §6.2. Новые строки: 75 (живой баг ko/Hangul → П2) · 76 (эмбед-плоскость без хеша → П0 первым). Строка 32 исправлена фактом (боевых call-site 6 и 2), Decl-находка уехала в арку банка (73). **На владельце пять вопросов §12 с моими рекомендациями (в D39.60): П1 в арку = ДА · один общий resnapshot = ДА (но после развилки DeepSeek — D39.61, строка 74) · П6 = не сейчас · Р1–Р4 = сократить до Р2+Р4 · пак-21 = растворить.** Фаза 2 не начинается до ответов. ## Оркестратор №9 — КУРС АМЕНДИРОВАН ВЛАДЕЛЬЦЕМ (D39.59): общность вперёд, автономность банка, спаренный полигон-пакет, 31.07 Три решения владельца: (1) общность вперёд — бэкенду выдан ресёрч инвентаризации языковой привязки, пак-21 отложен до его карты; (2) банк — курс на автономность (подпись опциональна; веб-фетч-вопрос признан не отвеченным пакетом-7 — пере-замер в арке автономности); (3) полигону — Р6 «язык промптов» + fidelity-хвост P4 анти-эхо (петля D21 п.6 с 09.07). Эхо-причина сведена по первоисточникам в D39.59: класс reasoning-моделей на плотном CJK, промпт-положение решает (0/29), языковой констрейнт инвертирует, язык промпта не исследован. Промты: `BACKEND_GENERALITY_RESEARCH_SESSION_PROMPT.md` · `POLYGON_PROMPTLANG_ANTIECHO_SESSION_PROMPT.md`. -## Оркестратор №9 + бэкенд — ХОЛОДНЫЙ МИНИ-ПРОГОН ПРИНЯТ И ЗАЛЕНДЕН (D39.58): recall холодного банка 0.918/0.980, эхо-мина жива при thinking-ON, 31.07 - -Прогон закрыт владельцем после банк-стопа (Р7: замер достаточен, ~$0.12 сэкономлено). Главное: банк с нуля восстанавливает 45+3 из 49 подписанных термов и приходит владельцу ПЕРЕВЕДЁННЫМ (149/150) — против recall 0.069–0.103 у майнера соло. Построено до трат: пар-слепой парсер банкноты (строка 19), разделение версий канала (Р2, амендмент инварианта №2), S7 по провенансу (путь ii, экспозиция 0 на 1119 парах), линты промптов. П3 пре-регистрации сработал: эхо 2/20 при thinking-ON — гейт поймал, эскалация вылечила, факт в quirks. Деньги $0.126068, spend ≡ Σ checkpoints; брак+переработка $0.056 названы, из них норма «промпты итерировать на пробе 1–2 глав». Бэклог: 17/19/20/23 закрыты, 18 переформулирована (蛊 — структурная дыра эмиссии), +36а–36г (валидация type — приоритет · рецензент банка · серии · формат в шаблон). Отчёты: `COLDRUN_REPORT_2026-07-31.md` + `COLDRUN_HANDOFF_2026-07-31.md`. - -## Оркестратор №9 + полигон — ToS-РЕ-ЧЕК ПО ТРИГГЕРУ ИСПОЛНЕН (D39.57): дельт вердиктов нет, 31.07 - -Головной Google ToS сменил ревизию (30.07.2026), но по оси лейблов пуст; пять вендоров пере-сняты — вердикты не двигаются. Находки метода: триггер висел не на том документе — перевешен на цепочку договора (PUP · Additional ToS · Google APIs ToS, последний добавлен в запись); рассинхрон quirks-клетки gemini×SE с D39.32 закрыт; правило «двух путей» амендировано (jina мёртв). Строка 6 понижена в приоритете (подпись ≠ судья 18+). Параллельно бежит холодный мини-прогон (бэкенд). Отчёт: `archive/reports/TOS_RECHECK_2026-07-31.md`. - -## Оркестратор №9 — СТРОЙКА ПАКА-19 ПРИНЯТА И ЗАЛЕНДЕНА (D39.56), ПАК-19 ЗАКРЫТ ЦЕЛИКОМ, 31.07 - -Фаза 2 сдана и принята короткой приёмкой (норма 30.07): сьют `-race` перегнан — зелёный; `repin.go`/`snapshot.go`/golden не тронуты (запреты (д)/(и) держатся); мутации сессии 23/23. Построено: таблицы v13/v14 + условный фолд (ни байта при выключенной инъекции) · ты/вы-флаггер A–C + D-индикатор · флаггер спойлер-утечки · данные V5 (5 категорий `target-ru` + опциональный `speech-cue`). Инъекция голоса — на бумаге до полигон-эксперимента (D21 п.2). Ратифицированное отклонение: атрибуция целевая, не исходная. Бэклог: 14/15 закрыты; +13б (`speech-cue.txt` — владельцу, к холодному прогону), +49а (миграции неидемпотентны). Очередь: ХОЛОДНЫЙ мини-прогон — теперь несёт и первое измерение осей голоса (`gates.voice` ON, строка 24). Отчёт: `archive/reports/PACK19_BUILD_2026-07-30.md` (ревью-шапка). - -## Оркестратор №9 — ДИЗАЙН ПАКА-19 РАТИФИЦИРОВАН (D39.55), стройка ждёт «идём» владельца, 30.07 - -Фаза 1 принята: 82 клейма — 71 CONFIRMED / 9 PARTIAL / 2 REFUTED (полнота, не факты). Ратифицировано: типы записей банка + условный фолд в `memory_version` · CONFIRMED-only голос/обращения · свой гейт `gates.voice` без фолда · reveal сокращён до флаггера утечки (амендмент D21 п.3) · слот инъекции не выбран (амендмент D21 п.1г, решит полигон) · D21 п.8 model-bound. Девять новых «ровно так» фазы 2 — в D39.55. Отчёт: `archive/reports/PACK19_DESIGN_2026-07-30.md`. - -## Оркестратор №9 + бэкенд — МАЛАЯ ПАЧКА 14а+14б ПРИНЯТА И ЗАЛЕНДЕНА (D39.54), 30.07 - -Бэкенд-сессия (та же, что несёт пак-19) закрыла обе строки до дизайна: ingest грязных епабов на `x/net/html` (4 класса жёстких падений импортируются; ТРИ регрессии — CDATA, self-closed raw-text, несбалансированный ruby — пойманы адверсариальным ревью сессии до лендинга и запинены байт-эталоном старого ридера, мутации 17/17) + вырезание промпт-комментариев с провода (SHA по канонической форме; 9/10 файлов байт-неподвижны; снапшоты книг не двигаются, терминолог перекупает батчи один раз — центы). Приёмка исполнением оркестратора: независимый дампер old-vs-new — 205 документов трёх епабов стенда, дифф глав и ruby ПУСТ; сьют `-race` 14/14; 4/4 спот-мутации красные; посылки записки перемерены (126 itemref, не 958 · 8/8 книг стенда txt · 2/252 сущности — независимым стеком). chunkerVersion НЕ поднят — ратифицировано D39.54 (экспозиция — пустое множество; строгая буква — одна строка за подписью владельца). Отчёт с ревью-шапкой: `archive/reports/SMALLPACK_INGEST_PROMPTS_2026-07-30.md`. Бэклог: 14а/14б сняты, добавлена 34а (``-дыра, до-паковая). Пак-19 фаза 1 (дизайн) — следующий шаг той же сессии; жду `PACK19_DESIGN_*` и эхо-блок релеем. - -## Полигон — ПАКЕТ-7 Z4-ДОБОР + ФАЗА B ИСПОЛНЕНЫ ($0.31030 из потолка $2.60): БКРС взят, промпт-правка найдена, слепая оценка ОТБРАКОВАНА своим же контролем, 26.07 - -Отчёт: `archive/reports/POLYGON_TERM_RESEARCH_B_2026-07-26.md`. Код: `eval/pkg7/` (+`bkrs_lookup` · `build_termset` · `terminologist_arms` · `blind_judge` · `repair_judge` · `score_bws`). **Добор ($0):** (1) **БКРС ВЗЯТ** — страница не JS-рендерится, а ставит куки-челлендж `ca=`; воспроизведя куку, получили **84 словарные статьи** и закрыли **17 из 20 UNCLEAR-строк** словаря (сильнейший класс улики, ноль поисковой квоты); ключевое: словарь «культивации» не знает (`修炼` = «совершенствовать и закалять себя»), `修士` = «**христ. монах**» ⇒ строка `修士→культиватор` в `genre-glossary.txt` спорна, `筑基` = «закладывание фундамента» ⇒ строка ПОДТВЕРЖДЕНА; (2) **Ngram перевёл спор в измерение**: корреляция «культивация»×«культиватор» = **0.9715** на 120-летнем ряду (сельхоз-омонимия доказана), «совершенствование» частотнее в 119.6×, биграмма «мир совершенствующихся» — 0 вхождений; (3) **конкуренты по ЛОКАЛЬНЫМ клонам** (подсказка владельца, `/home/ubuntu/projects/tmp`): три независимые команды сошлись на форме `src→dst+примечание` с фильтрацией по текущему чанку; у GalTransl — трёхслойный словарь с **условной пост-заменой** (`pre_src/post_dst`, `!отрицание`) и ситуационными ключами `mono`/`diag`; у AiNiee — блок «не переводить»; у **TransAgents терминологии нет вовсе (0 файлов .py)**, а Эндрю Ын прямо называет нашу задачу открытой; (4) `Silversaint` → «**Серебряный Святой / среброносец**» (АСТ, Абдуллин) — первый живой человеческий эталон; (5) **search-inside закрыт ОТРИЦАТЕЛЬНО**: всех трёх ISBN в Google Books нет ⇒ **развилка Z2 по `修炼` НЕ снята**. **Фаза B (310 вызовов, 480 консолидаций, 0 ошибок):** объективный слой — контексты решают всё (совпадение с подписью владельца на S1: `P0b` 10/15 против `P1`/`P2`/`P0` **15/15**), а различия между армами с контекстами = один-два терма из девятнадцати; **глоссарный контраст не измерился по построению — 0 из 80 термов покрыты жанровым словарём** (WHICH-канал даёт книжный канон, словарь — жанровые понятия; множества не пересекаются, это прямое следствие recall `term`=0.040 фазы A). **Главная промпт-находка:** правило «имя собственное → транскрипция» систематически уводит от решения владельца и живого переводчика — `春秋蝉`→«Чуньцючань» вместо «Весенне-осенняя цикада» у ВСЕХ армов с правилом, `Silversaint`→«Сильверсейнт» у `P2`/`P3` против изданного «Серебряный Святой», прокси-мера на ловушке 0.50 против 0.25 ⇒ **рекомендация сузить правило до антропонимов и топонимов**. **Веб-фетч в v2 роли — НЕТ**: агрегатного выигрыша нет, единственный случай пользы (`时辰`, где справка дословно содержит «был равен 2 часам») даёт СЛОВАРЬ, а словарь — это данные, они живут офлайн и не ломают инвариант №8. **Слепая оценка ОТБРАКОВАНА собственным контролем пре-регистрации:** BWS-счета плоские (весь разброс ±0.09 при шкале ±1), F1/F1b/F3/F4 сработали, leave-one-out по судье МЕНЯЕТ победителя, эффект позиционного свопа (до 0.107) БОЛЬШЕ разброса между армами, а **`gpt-5-mini` назвал подписанный владельцем перевод катастрофой 6 раз из 19** ⇒ по §A2.4 п.4 вердикты судей не выдаются, выводы стоят на объективном слое. Урок: пре-регистрация окупилась — без `GOLD` в слепой выборке мы выдали бы «P4 победил» и не узнали бы, что измеритель негоден. **На владельце:** 17 строк словаря на подпись · `修炼` остаётся V0 · правка промпта §B3.2 · вердикт по веб-фетчу · нужен ли повторный замер ДРУГИМ инструментом. ⚠ **РЕВИЗИЯ ИСПОЛНЕНИЕМ (та же сессия, после сдачи; §B6 отчёта + `eval/pkg7/audit_phaseB.py`) — четыре вывода выше ИСПРАВЛЕНЫ, читать только вместе с §B6:** (а) **отбраковка судей СНЯТА** — контроль §A2.4 п.4 был структурно неизмерим: строка `GOLD` не была уникальной ни на одном из 19 термов, а все 6 «катастроф на подписи» судья проставил РОВНО на буквах с тем же текстом, то есть вёл себя согласованно и спорил с каноном по существу; (б) **вывод «судьи не имеют разрешающей способности» ОПРОВЕРГНУТ их же данными** — 35 термов из 80 вырождены (все семь кандидатов = одна строка), а на 45 невырожденных тем же скорером F1 переворачивается 0.044→**0.122** и F1b 0.056→**0.189**, причём `P0b` встаёт ПОСЛЕДНИМ, согласно объективному слою ⇒ негоден был НАБОР, а не измеритель; (в) **у правила транскрипции НЕ БЫЛО контрольного арма** — оно лежит в общей части промпта и присутствует во всех шести армах (канон выдал `P0`, у которого правил больше всех), поэтому рекомендация §B3.2 понижена до гипотезы (проверка — арм без правила, ≈$0.02); (г) **«три независимые улики» оказались одной** — весь разрыв прокси на S5 даёт единственный терм `春秋蝉`, а `Silversaint` держится на сводке веб-поиска, не сверенной с телом издания (в сводке — «угодник-среброносец» и «AST/EKSMO») ⇒ человеческого эталона для en у нас НЕТ. **Перепроверку прошли без правок:** §B1.1 до строки · покрытие 0/80 (и 0/80 даже на ПОЛНОМ словаре §Z4-Т) ⇒ Z-B6 устоял · деньги $0.31030 из сырья · весь Ngram до знака · якоря фазы A по пину `996bade`. **РАЗВЯЗКА — фаза B′ (санкция владельца, отчёт `archive/reports/POLYGON_TERM_RESEARCH_B2_2026-07-26.md`, $0.14013 из порога $0.30, 136 вызовов, 0 ошибок; пре-регистрация записана ДО трат):** три замера по порогам, названным заранее. **T — правило транскрипции:** арм `P5` = `P2` минус ОДНА строка (проверено diff-ом: 18641 против 18556 симв.) вернул `春秋蝉` в **точный канон владельца** и дал `Silversaint`→«Серебросвят», но агрегатный прокси-сдвиг `P2−P5 = +0.013` при пороге 0.05 ⇒ по решающему правилу **широкая формулировка §B3.2 ОПРОВЕРГНУТА, узкая ПОДДЕРЖАНА**: снятие правила помогает на предметах/приёмах (`Ashdrinker`→«Пепелитель») и ВРЕДИТ на антропонимах (`王婆`→«Старуха Ван», `月光蛊` теряет вершину `蛊`), а `提刑` без правила наоборот транслитерируется; T3 пройден (`P5` 18/19, на ловушке 4/4). **J — слепая оценка на ПОЧИНЕННОМ наборе** (45 расходящихся термов, дедуп кандидатов, подложен ДЕКОЙ): оба судьи проходят контроли с запасом — декой назван лучшим **0/45**, помечен катастрофой **43 и 45 из 45**, подпись владельца — **НИ РАЗУ**, а `grok-4.3` ставит её выше всех армов (+0.625) ⇒ **отбраковка фазы B неправомерна, находка «6 катастроф на подписи» НЕ ВОСПРОИЗВОДИТСЯ**; но ранговое согласие с объективным слоем ничтожно (ρ = +0.429 / −0.107) ⇒ **ранжировать армы слепой оценкой нельзя, её роль — катастроф-экран** (H7: разрыв до декоя 1.27–1.42 против межарменного 0.20). **R — разброс прогона:** три повтора дали `P0b` 11/12/12 против `P1` 19/18/18 ⇒ **разрыв 6 термов при размахе 1 — «контексты главный рычаг» УСТАНОВЛЕНО**, заодно объяснилась аномалия «случайный глоссарий 19/19» (лежит внутри шума прогона). H6 частично: вырожденность предсказывает не подписанность, а КЛАСС терма (S2 0.13 против S1/S4 0.53). Итого по пакету-7: $0.45043 из коридора $1.20–2.60. **На владельце теперь:** Z-B3 — принять узкую формулировку как редакторское решение · Z-B5 — менять не инструмент, а сборку набора · Z-B8 (новое) — «контексты решают» можно ратифицировать как измеренное. ⚠ **РЕШЕНИЕ ВЛАДЕЛЬЦА 26.07 — ЖАНРОВЫЙ СЛОВАРЬ ОТМЕНЁН КАК КЛАСС** (амендмент к D39.42 п.1, ратификация за оркестратором; записка полигона №10): решение о переводе принадлежит подписи владельца на банк памяти, а пар-словарь навязывал бы одно видение всем книгам пары («культивация» против «совершенствования» — законно разный выбор). **Полигон согласен, и обосновали отмену наши же улики:** V0 на центральной строке `修炼` (выбор регистра, а не факт) · ложная сходимость русских глоссариев сянься (один английский первоисточник + один блогер) · покрытие **0/80** · четыре строки из шести **вообще не встречаются** в книге стенда. **Снято:** Z-B2 (17 строк на подпись) · вторая половина Z-B4 (офлайн-словарь как пар-данные — снял сам полигон: польза 1 случай из 80) · подписной статус §A4.3/§Z4-Т (переведены в справочную фактуру) · §B3.1 п.4 из рекомендации в наблюдение. **Перепрогонов НЕ требуется** — ни один вывод на словарь не опирался (`P0b`↔`P1` без словаря вовсе; `P5`↔`P2` с одинаковыми инертными строками); обесценен один арм `P0`, **$0.01362 из $0.45043** (3%). **Разматывать в паке-20 (чужая зона, список read-only):** фактор `GenreDst` в формуле консолидации `terminology.go:357-359,432-436` · `genreGlossaryMap` в `terminologist.go:130,163-166,322` · загрузчик и `GenreGlossaryFor` в `langpack.go:73-80,255-262,590-635` · тесты `langpack_test.go:394` и `terminology_test.go:230` · файл `configs/langpacks/zh-ru/genre-glossary.txt`. **ГЛАВНОЕ СЛЕДСТВИЕ:** связывающим ограничением становится recall эмиссии на классе `term` = 0.040 — `修行` встречается в книге **326 раз** и не получит соответствия НИОТКУДА (`emissionEligible` пропускает только `name|place|title`); раньше дыру теоретически прикрывал словарь. Вопрос расширения эмиссии — основной, и он согласуется с принципом владельца: даёт больше строк НА ПОДПИСЬ, ничего не решая за него. **Процессный урок:** деливерабл промта не отменяет права сессии сказать «этого делать не надо» — мы измерили основание для отмены и всё равно принесли таблицу на подпись, вместо того чтобы поднять архитектурное возражение через канал вопросов. - -## Полигон — ПАКЕТ-7 ФАЗА A ИСПОЛНЕНА ($0), СТОП на ратификацию: recall WHICH-канала измерен и он 0.07–0.10, посылка «культивация» уликами не подтверждена, 26.07 - -Отчёт: `archive/reports/POLYGON_TERM_RESEARCH_A_2026-07-26.md`. Код: `eval/pkg7/` (нарезка книг · replace-харнесс боевого майнера с пином на 996bade · майнер каналов en/ja · KWIC · seed-recall · проба измеримости рубрики). Платных вызовов ноль. **Пять измерений на пяти книгах стенда:** (1) recall боевого WHICH-канала против ПОДПИСАННОГО банка 蛊真人 = **0.069–0.103**, по классам name 0.231 / title 0.077–0.154 / place 0.000 / **term 0.040**; 蛊 (8700 вхождений, заглавное понятие) не предлагается никогда — механизм в `emissionEligible` (тип обязан быть name|place|title, длина ≥2 рун); (2) **абляция даёт атрибуцию**: снятие потолка top-200 → 0.429, снятие фильтра типа → 0.875, снятие длины → 0.911, ценой эмиссии 17→15 418 строк при precision спот-чека ≈0.15 ⇒ покрытие ограничивает СЛОЙ ЭМИССИИ, а не детектор, и это количественное основание под D39.42; (3) покрытие не растёт с длиной книги (10гл 15 → 50гл 12), и подписанный на мини-прогоне `学堂家老` исчезает, проглоченный алиас-кластером фамилии `葛家` вместе с родовым `族长` — точечный дефект кластеризации; (4) генеральность: `lang.Load` для ja/en падает громко (D39.15 работает), но под zh-паком en даёт 0 термов и стоп МОЛЧА авто-продолжает, а ja — 8 термов с precision 0 и ключами, которых в книге нет (trad→simp: 範囲→范囲); (5) масштаб квадратичен, `t ≈ chars^2.013`, экстраполяция на приёмочную книгу ≈4.6 ч. Собрано 10 требований к generic-майнеру (хвост №8 D39.37). **Ресёрч:** 6 углов × адверсариальная верификация (84 проверки: 62 CONFIRMED / 14 PARTIAL / 7 MISQUOTED / 1 OVER_ATTRIBUTED / 0 фабрикаций) + критик полноты. Посылка D39.42 п.1 («индустрия — „культивация“») уликами НЕ подтверждена, но и обратное не доказано: издательская сторона стоит на маркетинговых аннотациях, тела изданий не читаны ⇒ владельцу предложен **V0 — не подписывать до одного $0-захода**. Вскрыта ложная сходимость: русские глоссарии сянься = один английский первоисточник + один блогер. **На владельце:** рубрика K1–K12 + Q1–Q6 · строка 修炼 · смета фазы B $1.20–2.60 · нужен ли добор улик перед B. - -## Оркестратор №8 — СЕССИЯ ЗАКРЫТА владельцем (26.07, вечер): пак-20 закрыт целиком, доки и бэклог актуализированы, хендофф №9 записан - -Итог сессии №8 (25–26.07): приёмки паков 17/18/20 (все фазы) и полигон-пакетов 5/6/7/8 · ратификации D39.26–D39.53 · мини-прогон · единый бэклог введён · доки актуализированы под D39.53 · промт пака-19 освежён. Хендофф №9 — шапка `ORCHESTRATOR_SESSION_PROMPT.md` (позиция, первые задачи, дельта норм, норма «дисциплина ответа» для Opus-класса). Незакоммичен только `START_PROMT.MD` владельца (его файл). - -## Оркестратор №8 — ПАК-20: фаза 1 принята (D39.41), архитектура фазы 2 решена владельцем (D39.42 — терминолог), 26.07 - -Фаза-1 сессии закончилась спроектированным СТОПом: синк вскрыл 18 расхождений «доктрина↔код» (4 структурных тупика), корпус доков дал непостроенные ратифицированные ответы (двухрежимная эмиссия §C2-7 · M2 · журнал ревизий), а свои же пять P-решений сессия завалила адверсариальным ревью (9 блокеров). Приёмка воркфлоу (7 верификаторов, 46 клеймов): 39 CONFIRMED / 7 PARTIAL / 0 REFUTED; новая находка приёмки — `bankTokenBudget=144` впритык/отрицателен. Дальше владелец СИНКОМ выправил курс: моя ошибка — его давнее «кто переводит термины, возможно вебфетч, возможно новая роль» я отгородил констрейнтом вместо развилки; его архитектура (терминолог переводит весь смердженный банк по полным контекстам) ратифицирована D39.42 и легла в директиву фазы 2 (промт пака переписан). Направленная банкнота и ось `lane` НЕ строятся; инвариант №2 НЕ трогается (все строки банка фолдятся в версию); поздняя подпись = точечная ре-редактура по ключу со сметой. Полигону добавлен ресёрч-кандидат «веб-фетч терминолога». Урок в копилку: реплика владельца с идеей архитектуры — это вход в развилку, а не шум; «не ратифицировано» — повод принести ратификацию, а не отгородиться. - -## Оркестратор №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 + флаговый стоп). Хендофф-дисциплина «чего числа НЕ доказывают» ратифицирована нормой отчётов; в промты идёт формула «пере-мерь свой вывод ДРУГИМ способом, чем получил». - -## Оркестратор №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.33–36. Активные промты теперь ровно три: `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.12–0.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`. **Прогон:** новый проект, главы 1–10 из исходного GB18030, сквозная цепочка ingest→чанкер→драфт→майнинг-стоп(подпись владельца)→редактура→чекеры→экспорт; судья НЕ зовётся; петля ремонта остаётся выключенной, но read-only скан остатка — ГЛАВНОЕ измерение (цифра для решения о включении петли, D39.24). **Семь доказуемых утверждений** (каждое — с сырьём): живое срабатывание rebill-гейта (снапшот разошёлся ⇒ гейт обязан выстрелить — первое исполнение механизма пака-18) · майнинг-стоп с подписью · чекеры и остаток · наблюдаемость после флипа · лейбл-путь как no-op · деньги durable и факт против оценки $0.10–0.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/ранобэ), а временем и необратимостью решений, снятых на форме, которую мы всё равно собирались менять; мерить эффект на 5–10 главах мы уже умеем (в 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` — двухфазный (дизайн V1–V6 → ратификация → стройка); несущее в нём: реестр обращений как МАТЕРИАЛИЗАЦИЯ журнала ты/вы (не второе хранилище) · 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:** хроника 13–25.07 (стройка паков 11–16, 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; корпус D1–D38 — справочник по ссылкам/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/`; живое — роль/методология/уроки/нормы §1–11 — дословно; состояние больше НЕ дублируется, только указатели в PROGRESS/D-лог); D-лог решено НЕ резать (после правила чтения корпус не налог; физический сплит ломает file:line-ссылки ради нуля); +пинг №7 полигону (eval/README от 19.07). - -## Оркестратор №7 — DOC-SYNC PASS ИСПОЛНЕН (аудит владельца 25.07): puml перерисованы, 14 доков синканы с D1–D39.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, exp12–16 в карте, archive/reports описан, статус 25.07, пак-17 ЗАПУЩЕН) · POLYGON_PACKAGE4-баннер (пост-D39.22 рамка, quirks-ссылка :74). Зона полигона не тронута — 6 пингов в трекере петель. Верификация: все баннер-клеймы грунтованы file:line аудиторами + мои спот-чеки; спорных inline-правок тел — две (F1-строка в 06, врезка слоя 2 в 09), обе high-confidence по коду. - -## Оркестратор №7 — промт пака-17 «канал B вживую» ВЫДАН (двухфазный: дизайн B1–B6 → ратификация → стройка), 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 + замер остатка ремонта → решение владельца о включении петли). - - -*(Хроника 13–25.07 — стройка паков 11–16, rerun2, лендинги D39.12–D39.24 — перенесена в [archive/PROGRESS-2026-07-13-25.md](archive/PROGRESS-2026-07-13-25.md), слайс 25.07.)* +*(Хроника 25.07–31.07 до курса D39.59 — эры №7/№8 и начало №9: паки 16–20, мини-прогон, полигон-пакеты 5–8, ToS-речеки, пак-19, холодный прогон (лендинги D39.26–58) — в [archive/PROGRESS-2026-07-25-31.md](archive/PROGRESS-2026-07-25-31.md).)* ## Бэкенд @@ -256,64 +141,12 @@ Q1 = П1 цель-шов санкционирован («главное бэке *(Хроника бэкенд-паков 11–16 (19–25.07, вкл. отчёт-запись пака-15) — в [archive/PROGRESS-2026-07-13-25.md](archive/PROGRESS-2026-07-13-25.md); отчёты паков — `archive/reports/`.)* -### РЕСЁРЧ ОБЩНОСТИ фаза 1 ИСПОЛНЕН ($0, read-only, кода не тронуто) — СТОП на ратификацию, 31.07 - -Отчёт: [`archive/reports/GENERALITY_RESEARCH_2026-07-31.md`](archive/reports/GENERALITY_RESEARCH_2026-07-31.md). Промт D39.59 отработан целиком: полный скан → пять вёдер → пересборка пака-21 → план пакетов с ценами → счёт масштаба → критик полноты. Метод: 8 срезов кода, каждый адверсариально перепроверен вторым проходом с прогоном чужих grep; 5 сквозных разборов (цены снапшота · синк с D-логом · пересборка пака-21 · сухой прогон второй пары · алгоритмы), каждый кросс-чекнут; несущие числа пере-мерены сессией лично. **Долг = 149 сайтов в 45 файлах** (133 в `.go`), 111 из них НЕ забуканы; вёдра A=27 · B=6 · C=104 · D=12 · легитимно E=106. **Ось: источник/пара 63% · ЦЕЛЬ (ru) 30% · КНИГА 3% (4 сайта поимённо)** — по книжной оси движок практически чист. **Долг меньше бэклога:** строка 32 пишет «isRuTarget×11 · TokenizeCyrillic×6» — это счёт грепа, боевых call-site **6 и 2**; живых CJK-литералов в исполняемом Go — 27 строк в 12 файлах из 201 (87% — комментарии). **Вторая пара:** golden-фикстура уже ja→ru (скелет доказан), но через `prompt_override`, без langpack и пар-конфига; ja→ru проходит безопасно без правки Go, **en→ru — небезопасно** (молча спят детектор эха `cjkShare`=0 и майнер `hanRuns`=0). Данными лечится 11 позиций, Go требуют 5 (+2 латентных), ни одна не блокирует запуск. **Цены:** сдвиг любой из 20 осей снапшота = перепокупка книги, ре-пинуема ровно одна (`memory_version`); вынос в `configs/langpacks/` двигает `LangpackVersion` включая КОММЕНТАРИИ (хеш над сырыми байтами), вынос в `internal/lang/data/` — $0; новая пара — $0 для существующих книг. Рецепт воспроизведения хеша пака без запуска Go проверен: даёт `a28ed743c99c`. **Две находки сверх задачи.** (1) `internal/lang/data/*.txt` (6 файлов, из них `injection.txt` едет на провод, `target-ru.txt` определяет вердикты санитайзера) **не хешируются ничем** — механизма «байты ЕСТЬ версия» на эмбед-плоскости НЕТ, правка байта без ручного бампа константы = тихая пере-оплата вне контура Р6 (`rebill.go:137-139`). (2) **Живой баг:** `isCJKLang` числит `ko`, а `cjkShare`/CJK-leak/гард ремонта Hangul не содержат — корейское эхо невидимо и не эскалируется. **Пак-21 пересобран:** все якоря D39.39 устарели (пак-19 их сдвинул) — даны актуальные; из 12 дефектов собственно zh-привязок ТРИ, остальное — ось ЦЕЛИ; Р3 закрыт D39.44 Q4, Р1 расщепляется ⇒ на владельце остаются ДВА вопроса вместо четырёх. **План — 6 пакетов** (П0 «байты есть версия» предусловием → П1 цель-шов → П2 скрипт-шов источника → П3 нарезка/оценка → П4 пак как механизм → П5 майнер, гейт на реальную вторую пару), приёмочный критерий каждого — «пара, которой нет в репо, проходит слой без правки Go». **Несущая рекомендация: один общий `--resnapshot` сейчас** — оплаченный корпус = два мини-прогона по $0.13–0.23, после МАСШТАБА тот же дифф стоит порядки. **Пять вопросов владельцу в §12 отчёта**, главный бьёт по посылке: больший и замороженный (D39.24 «НЕ чинить») кусок долга лежит на оси ЦЕЛИ, а директива названа по оси ПАРЫ. Сессия не коммитила; `backend/` не тронут ни строкой. - -### Пак-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 «распарсено, но не проведено в раннер»). - - -### Мини-прогон ~10 глав ИСПОЛНЕН одной сессией (гигиена → главный проход → проба банкноты → верификация), 25.07 - -Отчёт: [`archive/reports/MINIRUN_REPORT_2026-07-25.md`](archive/reports/MINIRUN_REPORT_2026-07-25.md) — пре-регистрация первым разделом (написана ДО первой траты, критерии провала названы заранее). **ШАГ 0 (гигиена, $0-код, НЕ закоммичен):** обязательный флип `Gates.RegressionGuard.Enabled` во всех 5 шиппинг-конфигах (D38.4 п.5, невыполненное обязательство D39.34) + 3 теста, что гейт РЕАЛЬНО стреляет через настоящий драйвер; два нита общности взяты в fail-loud форме БЕЗ Go-дефолта (множитель `dc1_unit_in_hours` и Detail-шаблоны `msg` → пар-данные; возражение D39.31 п.5 снято тем, что дефолта просто нет); проекция пере-оплаты в `tmctl status` (спека D15.2 §9, тем же `projectRebill`, что и гейт). Приёмка: build/vet чисты, `-race` 15/15, **golden `211c9013…089045d6` байт-в-байт равен HEAD**, ценз ИМЁН 475→483 (удалено 0), **5 мутаций — 5 красных**. Сдвинутая версионная ось ровно одна: `langpack_version` `a7d4be2c0465`→`a28ed743c99c`; флип гарда снапшот НЕ двигает (проверено исполнением). **Прогон:** новый проект `guzhenren-minirun` (главы 1–10, 20 драфт-чанков → 14 edit-единиц), **$0.114291** при оценке $0.10–0.19, 14/14 ok. **Семь утверждений подтверждены сырьём:** rebill-гейт отработал ЖИВЬЁМ впервые (проекция `34 единицы ~$0.114291` = списанному ТОЧНО; 3 отказа, деньги/строки побайтно не тронуты; пас-лег на микро-проекте за $0.003) · майнинг-стоп остановил и очистился, термы БЕЗ dst (D39.36 подтверждён живьём) · `escalation_model` = ОТВЕТИВШАЯ модель · лейбл-путь no-op (0 расхождений requested↔actual, полей маршрутизации в read-model НЕТ) · деньги durable (`committed == SUM(checkpoints)` точно, `finish=stop` 35/37) · `RegressionGuard` даёт честный ноль (перепроверен независимо: ratio 0.90–1.06, потеряно 0 чисел). **ГЛАВНОЕ ИЗМЕРЕНИЕ: `repair_candidates` = 0** — на этих 10 главах платная петля не нашла бы НИ ОДНОЙ работы; из 11 стилевых сигналов **11 — ложняки** (8 `dialogue_dash` бьют по законной русской типографике «мысль в «…» против речи в «—»», 2 `percent_scale` называют верный масштаб ошибкой масштаба, 1 `dc2` — гипербола, о которой предупреждает его же комментарий). **Проба банкноты ($0.021688): канал ФИЗИЧЕСКИ РАБОТАЕТ** — 71 строка на 9 из 20 чанков, `truncated` 0, сепаратор из чистого черновика срезан; предложения годятся как основа канона (~40–45% полезных: 智慧蛊 «гу Мудрости» и 古月陈博 «Гуюэ Чэньбо» дословно совпали с подписями rerun2). **Поправка к D39.36: предложенный dst НЕ теряется** — сырой блок лежит в `checkpoints.response_text` первичной попытки (9 строк), выбрасывается только распарсенная структура ⇒ починка шва не требует пере-прогона. **Сработали два пре-регистрационных критерия провала, не переопределяю:** П3 (эхо `cjk_artifact` 1/20 = 5% при thinking-ON; эскалация вылечила) и П8 (`parse_fail` 1 — модель выдала строку без ханьца в src, парсер отработал по контракту). **Найденные дефекты:** Д1 эхо-метрика слепа к эху, вылеченному эскалацией (отчёт говорит 0.0% там, где живьём 5%) · Д2 редакторский `max_tokens` всегда равен флору модели 8000, две единицы не поместились — **15.5% денег прогона ушло в брак** · Д3 `LOG_LLM_BODIES` режет тела на 4096 байт, банкноту в логах не увидеть · Д5 майнинг-стоп очищается РАУНДАМИ (подпись 学堂 расчехлила 学堂家老 — владелец подписывал дважды) · Д6 в сиде нет форм мн. ч. (4 из 9 промахов пост-чека — данные, не перевод) · реальный дрейф канона ровно один: 族长 → «глава рода» вместо «глава клана». Подписи владельца: 学堂 → «школа» (рассмотрел «академию», отклонил по фактуре), 学堂家老 → «старейшина школы». Сессия НЕ коммитила. - -### Фикс-пак по итогам мини-прогона: 4 дефекта починены, 2 кандидата ОТКЛОНЕНЫ исследованием, 25.07 - -Санкция владельца «исследование → правки → ревью». Детали — §14 [`archive/reports/MINIRUN_REPORT_2026-07-25.md`](archive/reports/MINIRUN_REPORT_2026-07-25.md). **Починено:** Д1 эхо-метрика (миграция **v11** `chunk_status.first_flag_reason`; `echo_draft` теперь считает эхо, ВЫЛЕЧЕННОЕ эскалацией, + `echo_draft_recovered` держит число честным в обе стороны) · **Д4 шов банкноты замкнут** (та же v11, `retrieval_state.banknote_detail`; майнинг-стоп джойнит предложения в подписную карту: `dst` = самое частое, альтернативы с весами в note, **`status: auto` не трогается** — trust-gate D39.2 по-прежнему не пускает неподписанное в инъекцию; развилки D39.36 п.2/п.3 НЕ трогались, это продуктовое решение владельца) · Д7a `dialogue_dash` перестал считать смешением стилей внутреннюю речь (данные таргета `inner_speech`, `CheapGateVersion` v4→v5) · Д3 `LOG_LLM_BODIES` кап 4096→32768 и обрезка СЕРЕДИНЫ (блок банкноты живёт в хвосте) · Д2 флор `deepseek-v4-pro` 8000→16000 по замеру (перебор бюджета бесплатен — списание по факту; недобор стоит целой генерации, на прогоне это 15.5% счёта). **Находка, удешевившая Д4:** сырой текст банкноты УЖЕ durable в чекпоинте, resume его пере-парсит ⇒ новой таблицы не понадобилось, хватило четвёртой `*_detail`-колонки. **ОТКЛОНЕНО после написания и прогона (обе правки откачены):** `percent_scale` — «стрелять только на цифровой форме» роняет ратифицированную фикстуру «шесть и шесть десятых»=6.6 (настоящая 100× ошибка тоже прописана словами), нужен разбор числительных таргета в данные · `dc2` 千万 — живой ложняк ШЕЙПОМ ТОЖДЕСТВЕНЕН ратифицированному ИСТИННОМУ (千万生灵), offline неразделим ⇒ это принятая неоднозначность класса, а не баг реализации (правит мой же §6.2 отчёта). **Ревью:** build/vet/gofmt чисты · `-race` 15/15 · **golden пере-капчер санкционирован и ДОКАЗАН — маскированный структурный дифф ПУСТ** (`211c9013…089045d6`→`1165e3a9…2132ea82`; двигались только версии и производные от них хеши, ни один вердикт/текст/стоимость) · ценз ИМЁН 483→491, удалено 0 · **6 мутаций — 6 красных** · **живая проверка на данных прогона**: 9 реальных блоков банкноты прогнаны через новый шов → 71 строка, 67 ключей, 2 терма с конкурирующими вариантами, среди них 学堂家老 — под фиксом подписная карта пришла бы с «старейшина школы», ровно тем вариантом, который владелец выбрал вслепую. **Цена:** две оси снапшота сдвинуты (`style_check_version`, `max_tokens` через флор) ⇒ следующий прогон стендовой книги требует `--resnapshot --accept-rebill`; сегодня это бесплатно (снапшот стенда и так разошёлся, D39.35), а экономия Д2 окупает пере-пин на первом же прогоне. **Моя ошибка в ходе ревью, фиксирую:** проверка миграции v9→v11 собрала конфиг «копия rerun2-БД + источник мини-прогона», движок увидел НОВУЮ книгу и реально перевёл — **$0.046668 (31 вызов) потрачено зря**; оригинал rerun2 и бэкап целы (v9, spend не изменился), трата осталась на выбрасываемой копии. Итог денег сессии: $0.139060 + $0.046668 брака = **$0.185728**. Сессия НЕ коммитила. - -### Сквозная проверка бэкенда после фикс-пака (вопрос владельца «а ты протестировал?»), 26.07 - -Честный ответ был «нет»: после правок гонялись ТЕСТЫ, а не бэкенд. Прогнал два проверочных прогона ($0.049, главы 1–2 и 4–5, банкнота ВКЛЮЧЕНА) — §15 отчёта. **Все узлы отработали:** миграция v11 на свежей БД · ingest/чанкер · драфт с банкнотой (`banknote_detail` пишется живьём) · майнинг-стоп + подпись + резюм за $0 · edit-волна 3/3 · санитайзер поймал РЕАЛЬНЫЙ дефект (гомоглиф «лицó») · **`RegressionGuard` дал ПЕРВОЕ ЖИВОЕ срабатывание** (`number_drift [66]` — «66%» → «шестьдесят шесть процентов»: ровно тот ложняк, что предсказан его же докой) · банк 56+12 · экспорт чист (сепаратор 0 раз) · деньги durable. **Найдено ТОЛЬКО сквозным прогоном:** (1) **поправка к моему вчерашнему утверждению** — банкнота НИКОГДА не предлагала `学堂` отдельно, только `学堂家老`, значит первая подпись всё равно пришла бы голой, фикс помог бы во ВТОРОМ раунде; (2) **структурный разрыв**: на verify2 стоп дал `terms_with_proposed_dst=0` — майнер предложил 花海/陈博, банкнота 古月方源/学堂家老/开窍大典/力量蛊/智慧蛊/灵泉, пересечение НУЛЕВОЕ (механизм исправен, но каналы выбирают разные популяции: майнер — частотные name/place/title, банкнота — новую терминологию) ⇒ следующая работа не «замкнуть шов» (замкнут), а заставить WHAT покрывать кандидатов WHICH; (3) **полярность дискриминатора чекера была неверной** — список глаголов МЫСЛИ безграничен (живьём тут же выдало «понимал», «размышлял»), перевернул на закрытый список глаголов РЕЧИ + вето «про себя»: замер по реальным экспортам по чанкам **8→0** и **1→0**, настоящее смешение речи по-прежнему флагается; (4) **дыра в моих тестах**: мутация «снять nil/no-data гард» ВЫЖИЛА (ветка книги без данных таргета не покрыта, там nil-разыменование) — закрыто тестом, пере-мутация красная с паникой. **Ревью:** `-race` 15/15 · golden пере-капчен второй раз, маскированный дифф снова ПУСТ (`281d7025…`) · ценз 475→492, удалено 0 · **9 мутаций — 9 красных**. Деньги сессии суммарно: $0.139060 прогон + $0.046668 мой брак + $0.048855 проверка = **$0.234583**. Сессия НЕ коммитила. - -### ХЕНДОФФ ОРКЕСТРАТОРУ: сессия бэкенда 25–26.07 закрыта владельцем, 26.07 - -Сводка для выдачи следующего промта (точечная зачистка + повторный прогон): [`archive/reports/MINIRUN_HANDOFF_2026-07-26.md`](archive/reports/MINIRUN_HANDOFF_2026-07-26.md). Содержит то, чего нет в отчёте прогона: **вес каждого числа** (в частности — «остаток дефектов = 0» означает «ноль в ТРЁХ классах, которые петля умеет чинить», а не «текст чистый»; по ней корректно решать «не включать петлю», но некорректно читать её как оценку качества) · **самооценка честности пяти фиксов** (один чистый, два обхода, два подогнанных под корпус; `dialogue_dash` — 29 глаголов, выведенных из отказов ОДНОЙ книги и проверенных НА НЕЙ ЖЕ, «8→0» = замер на обучающей выборке) · **мои методические ошибки** ($0.046668 брака от конфига, собранного sed-ом по чужому book.yaml; рекомендация владельцу раньше фактуры; утверждение о пользе фикса без проверки — банкнота НИКОГДА не предлагала `学堂` отдельно, значит первая подпись всё равно пришла бы голой; пре-рег П8 сформулирован мимо диагноза) · **8 хвостов, увиденных но не чиненных** (главный: генерик-фолбэк нарезки — китайские числа, а `TokenClassCounts` кладёт кану и ханьцзи в один класс: замер по книгам на диске — в японской кана 70% класса ⇒ est_out завышен ~1.7×, вдвое больше вызовов, и всё это МОЛЧА; плюс `EstimateTokens` недосчитывает кириллицу на резервациях, golden покрывает только фолбэк-путь без langpack, `prompt_override` — легальная дыра в гарантии слоя 2) · **что обязан измерить следующий прогон** (эхо-метрика на живом эхо; джойн WHAT↔WHICH при НЕПУСТОМ пересечении; `dialogue_dash` на тексте, которого сессия не видела — любой замер на 蛊真人 теперь загрязнён подгонкой). **Проверено исполнением, $0:** обе не-китайские книги с диска (`Kristoff_Jay_-_Empire_of_the_Vampire_3`, `isekai_majutsushi_jp`) падают ГРОМКО до единого цента, называя ожидаемый путь промпт-пакета; с обойдённым гейтом обе проходят ingest/чанкер/read-model без единой правки Go (EN 352 единицы, JA 138) — норматив общности §0 держится на уровне КОДА, но данные и фолбэки везде китайские. **Рекомендация сессии, если брать один хвост:** размеченный набор для чекеров — без него следующий прогон произведёт ещё один набор чисел, держащихся на глазомере. Дерево НЕ закоммичено (35 позиций, миграция v11, три сдвинутые оси снапшота). +*(Закрытые записи 25–31.07 — пак-18 · мини-прогон · фикс-пак · сквозная проверка · хендофф 26.07 · ресёрч общности фаза 1 — в [archive/PROGRESS-2026-07-25-31.md](archive/PROGRESS-2026-07-25-31.md).)* ## Полигон +*(Закрытые записи 26.07 — пакет-6 «размеченный набор» (D39.39) и пакет-8 «три пре-замера» (D39.43–46/50/52) — в [archive/PROGRESS-2026-07-25-31.md](archive/PROGRESS-2026-07-25-31.md); пакеты Р6+P4 и ToS — журнал выше (D39.57/61).)* (секция параллельной сессии — записи добавлять сюда) -### Пакет-8 «три пре-замера перед расширением эмиссии» ИСПОЛНЕН, СТОП на ратификацию ($0.11313 из $0.14), 26.07 - -Отчёт: [archive/reports/POLYGON_PREMEASURE_2026-07-26.md](archive/reports/POLYGON_PREMEASURE_2026-07-26.md). Пре-регистрация §0 написана до единого платного вызова; критик полноты — на каждую фазу; майнер и сборка запроса роли — из пин-копии `0a7fa5b` (эмиссия побайтно равна пину пакета-7 `996bade`, проверено `cmp`). - -**Главный итог — вопрос расширения переставлен.** Расширять эмиссию майнера незачем и недостаточно: 66 из 74 поверхностей банкноты лежат ВНЕ варианта C (потолок и фильтр типа сняты), потому что не входят в кандидатный алфавит по ЧАСТОТЕ, а не из-за снимаемых констант. Каналы почти не пересекаются — 2 общие поверхности из 78, и 5/6 объёма даёт банкнота, которая одна умеет класс `term` вместе с dst. - -**Замер 1 ($0) — пре-зарегистрированный стоп сработал.** Совместный recall против подписанного сида НЕИЗМЕРИМ на существующих артефактах: банкнота гонялась с непустым банком, 49 из 51 терма сида были инъектированы, а промт просит «новые, которых НЕТ в глоссарии»; свободных пар (терм × глава) 21 из 217, и все три их поверхности короткие. Цифру не подгонял — назвал цену измерения (холодный прогон с пустым банком). Страховочный выход дал главный результат выше. Побочно: банкнота невоспроизводима (Жаккар двух прогонов одних глав 0.077, после снятия `《》` 0.40), 48% её предложений разовые, `《咏梅》` и `咏梅` едут как две строки. Подписанные `蛊`/`转` не доезжают до модели НИ ОДНИМ каналом (`allow_short:false` при `SignificantLen=1`) — правка данных, не кода. Нашёл и дефект нарезки пакета-7: `--max-chapters` фильтрует по НОМЕРУ, а нумерация 节 перезапускается в каждом из 6 томов, поэтому «gu 25гл» был рассеянной выборкой; абсолютные recall занижены втрое (0.089 → 0.255 на непрерывном срезе), структурный вывод про класс `term` устоял. - -**Замер 2 ($0.0168, 3 повтора) — ВЕРДИКТ ПРОВАЛ по пре-зарегистрированному порогу.** На хвосте ранга варианта C роль выдумывает dst для 77 · 80 · 78 кандидатов из 100. Сентинел ⟦TM-NO-DST⟧ различает «переводимо/непереводимо», а не «терм/не терм» (огрызки отклоняет 7/7, `一天` переводит «один день»), и на своей же задаче нестабилен (размах 0.375). Контроль на подписанных термах: 8 из 9 ответов совпали с подписью — роль умеет отвечать верно и не умеет отказываться. Условие применения ратифицированного фолбэка (D39.46, судья-с-декоем) наступило; строить его не моё дело. - -**Замер 3 ($0.0963, 6 точек × 3 повтора + арм без якоря) — дефолт 3×40 достаточен, сетка неразличима.** Средние 0.533–0.633 при внутриточечном размахе 0.175; на расходящихся позициях то же (0.289–0.445 при размахе 0.273). Развилка владельца «широкая подача × узкий контекст vs узкая × широкий» НЕРАЗЛИЧИМА (8×40 = 0.533 против 3×120 = 0.567). 8×120 стоит в 4.9 раза дороже 0×0 и не точнее. **Напряжение с ратифицированным D39.46 («контексты — главный рычаг») называю прямо и за отмену не выдаю:** три различия постановки (лёгкая выборка по частоте вместо трудной S1, боевой якорь ⟦TM-CANON⟧, отсутствие строки `drafts:`), ни одно не устранял; закрывает вопрос пере-замер выборки пакета-7 на боевой сборке. - -**Самая тяжёлая находка — §3.4: якорь ⟦TM-CANON⟧ держит ЯЗЫК ответа.** Арм без якоря в одном прогоне из трёх вернул 22 строки из 40 по-английски («Rank 1», «Grade C», «cultivation», «Primordial Sea»); в 8×120 — 3 и 2 латинских ответа. Ни `ParseReply`, ни эхо-гейт этого не ловят, строка уезжает в карту подписи как `status:draft`. Пустой/короткий якорь — это ровно состояние книги сразу после расширения эмиссии. - -**Снял собственную рекомендацию замером (§5.1).** Предлагал дисциплинировать банкноту частотным порогом; посчитал частоты по всей книге и обнаружил, что разделяющего порога не существует: `少年` («юность») 1149 против `光阴之河` («Река времени») 15. Отбор здесь семантический — либо вызов модели, либо владелец. - -**Вопросов владельцу нет; в `backend/` не писал, не коммитил.** Открытым остаётся холодный старт с пустым банком — единственная цифра, на которой стоит цена расширения, и она стоит денег. - -**Добор §7 по D39.51 — два замера, $0.00960 (пакет-8 нарастающим итогом $0.12273).** Пре-регистрация §7.1–7.2 написана до трат и до счёта. **(а) Пример формата в промпте роли — критерий ВЫПОЛНЕН:** три строки `Пример строки ответа: 师父наставник` дают **0 не-целевых строк из 120** против **22 у контроля** (тот же арм 3×40 без якоря; фактор ровно один — доказано диффом собранных запросов, ключи и user-часть побайтно те же; пример-терм в срезе не встречается ни разу, эталон подсказать не может). Мощность названа ДО прогона и ограничивает вывод: срыв в контроле шёл 2 батча из 9, значит при нулевом эффекте шанс чистого прохода (7/9)⁹ = 0.104 — «согласуется с починкой», не доказательство; удвоение повторов уронило бы до ~0.011 за ≈$0.010. **Побочно (§7.4): пример НЕ чинит утечку алфавита и языковой экран её не поймает** — `甲等 → «категория A»` с ЛАТИНСКОЙ A против подписанного «класс А» с кириллической (то же на `乙等`/`丙等`, 7 строк в арме с примером, 3 в контроле; сравнение причинным считать нельзя — в контроле те же термы уехали целиком в английский). Ни один из 53 подписанных dst сида латиницы не содержит, то есть правило проверяемо. **(б) P1 consistency — НЕ разделяет, $0.** Разметка 74 поверхностей — **три независимых слепых разметчика** (согласие 0.973/0.986/0.986, единогласно 72 из 74, метка 37 TERM · 37 JUNK), им не давали ни частот, ни глав, ни самой метрики. Сработал заранее названный стоп: вырожденных (встречаются в ≤1 главе → P1 = 1.0 по построению) **54 из 73 = 0.740**, и среди них ровно **27 TERM и 27 JUNK** — максимум получают обе метки. Критерий ≥80%/≥60% не выполнен ни на полном наборе, ни на 19 невырожденных; AUC **P1 = 0.438** (ниже монетки) при **частоте 0.500** — арм-без-фактора провалился ровно как обязан, независимо подтвердив §5.1 на другом наборе и другой разметке. Отклонение «глава вместо чанка» (тексты боевых чанков не сохранены) названо заранее и его цена измерена: вырожденность 0.740 по главам против 0.730 по чанкам — мелкая единица не спасает. **Права на порядок подачи P1 не заработал.** Мерить его по-настоящему стоит на том же полном прогоне, что и холодный старт, отдельных денег не требуя. - -**Добор §6 по вопросу владельца «хватает ли одной книги, движок ведь универсальный» ($0, после СТОПа).** Прогнал боевой майнер с того же пина по стенду. `en→ru` сегодня не запускается вовсе: пары `en`/`en-ru` в `configs/langpacks/` нет, загрузчик отказывает ЛОУДНО (D39.15 работает как задумано — недостающее это данные). Когда загрузчик удовлетворён зеркалом zh-пака, канал WHICH на латинице даёт **0 кандидатов на 814k знаков** обеих английских книг (Кристофф и Fifty Shades) — механизм в `hanRuns` (`miner_substrate.go:46-48`): кандидатный алфавит есть пробеги ханьских иероглифов, в латинице их нет. На японском (`異世界魔術師`, 134k) канал не молчит, а **ошибается: 10 строк, все типа `name`, все ложные** (`何故` «почему» 44×, `王国` «королевство» 35×, `马鹿` «дурак» 21× — китайские фамильные паттерны на японских composites); настоящий ja-пак ложняки уберёт и не добавит ничего, потому что имена этой книги в катакане, а `hanRuns` её не видит. **Вывод: второй КНИГИ мало — для латиницы нужен второй ДЕТЕКТОР** (прототип и замеры есть: `eval/pkg7/mine_nonhan.py`, каналы ORTHO/DISP/CONTRAST, достаёт `Ashdrinker`/`San Michon`/`Forever King`). Попутно найден дефект общности: **`kwic_width` меряется в РУНАХ** (`terminology.go:332-349`), дефолт 40 живёт в Go одной константой на все пары и означает 43–84 морфемы на zh против 13 слов с обрубленной фразой на en — место такой константы в пар-данных, а мой вердикт «3×40 достаточен» читается только как «43–84 морфемы достаточно». Ничего не строил и не запускал платного: §6.4 — предложение, санкции на него не было. - -### Пакет-6 «размеченный набор для чекеров» ОТРАБОТАН И ПРИНЯТ (D39.39), 26.07 - -Сессия полигона собрала набор из 91 юнита шести реальных прогонов (~149k знаков исходника, 3015 размеченных позиций, 70 дефектов, 21 спорная; синтетики ноль), разметила ДО просмотра вердиктов и прогнала НАСТОЯЩИЕ чекеры replace-харнессом. Первый честный замер линеек: где линейка стреляет — почти не врёт (K1/K2/K3/K5b precision 1.000), но recall почти везде низкий (K4b 0.109 · K3 0.100 · K5a 0.000), K5c ИНВЕРТИРОВАН на реальном материале (супрессор «процент» погасил единственный юнит с 10×-ошибками шкалы), K6 шумит 14:1 (мн.число вне `decl.forms` + однознаковый ключ 转). 12 дефектов чекеров с file:line, 4 вопроса владельцу (Р1–Р4). Приёмка оркестратора: `metrics.json` побайтно ре-раном, независимый пересчёт разметки, живой репро U+0301, сверка K5c по сырому корпусу. Отчёт: [archive/reports/POLYGON_CHECKER_LABELS_2026-07-26.md](archive/reports/POLYGON_CHECKER_LABELS_2026-07-26.md); набор — на стенде (вне git), ре-ран детерминирован. - -*(Закрытая хроника сессий 1–3, 18+ пакетов и exp10/11 (04–10.07) — в [archive/PROGRESS-2026-07-04-10.md](archive/PROGRESS-2026-07-04-10.md), D31.)* - -*(Хроника exp12/exp13 (11–12.07) — в [archive/PROGRESS-2026-07-10-13.md](archive/PROGRESS-2026-07-10-13.md).)* - ## Память (секция ресёрч-сессий памяти — записи добавлять сюда) diff --git a/docs/README.md b/docs/README.md index b4291e99..b9931800 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,16 +11,17 @@ ## Структура -- `architecture/` — синтез. **Источник истины по решениям — [`05-decisions-log.md`](architecture/05-decisions-log.md) (D1–D39.53); при конфликте с любым доком он выше.** +- `architecture/` — синтез. **Источник истины по решениям — [`05-decisions-log.md`](architecture/05-decisions-log.md) (D1–D39.63); при конфликте с любым доком он выше.** - `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 сверху, ниже хронология; НЕ источник решений). -- **Активные хендофф-промты (26.07, всё остальное — в `archive/prompts/` с баннерами-исходами):** [`BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md`](BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный, актуализирован 26.07 пост-D39.53**: механизмы D21 — voice-профиль · реестр ты/вы · reveal-окна; двухфазный, ШАГ-0 синк с новой реальностью банка) · [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (роль/нормы, состояние НЕ дублирует) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual пилот/18+/echo). Закрытые 25–26.07: паки 17/18/20 (+дельты и достройки), мини-прогон, полигон-пакеты 5/6/7/8 — промты в `archive/prompts/`, отчёты с ревью-шапками в `archive/reports/` (`PACK20_BANK_DESIGN/BUILD`, `PACK20_BANKNOTE_DESIGN/BUILD`, `PACK20_DELTA`, `MINIRUN_*`, `POLYGON_CHECKER_LABELS`, `POLYGON_TERM_RESEARCH_A/B/B2`, `POLYGON_PREMEASURE` — все 2026-07-26). -- `archive/` — `prompts/`: закрытые сессионные промты (только история, инструкции оттуда не исполнять) · `reports/`: отчёты паков/ресёрч-сессий с ревью-шапками (живая фактура приёмок — на них ссылаются D-лог и активные промты) · `architecture/`: исполненные арх-доки (07 стратревью · 08 синк-ледджер · 11 план пака-11) · три слайса хроники `PROGRESS-2026-07-{04-10,10-13,13-25}.md`. +- **Активные хендофф-промты (01.08; всё остальное — в `archive/prompts/` с баннерами-исходами):** [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (роль/нормы; состояние НЕ дублирует) · [`BACKEND_GENERALITY_PHASE2_SESSION_PROMPT.md`](BACKEND_GENERALITY_PHASE2_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный**: rewrite-пакеты П0–П4 + шестёрка + малые 77/78; $0-код, без платных вызовов) · [`POLYGON_BANK_RAWMATERIAL_SESSION_PROMPT.md`](POLYGON_BANK_RAWMATERIAL_SESSION_PROMPT.md) (**ТЕКУЩИЙ полигонный**: $0-сырьё арки банка — консистентность/веса/аудит типов; проб-пакет по слову владельца) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual-трекер пилота/18+/echo, отложен; P4-хвост из него закрыт D39.61). Закрытые 30.07–01.08 (промты в `archive/prompts/`, отчёты с ревью-шапками в `archive/reports/`): пак-19 «голос/состояние» (D39.54–56) · холодный мини-прогон (D39.58) · ToS-речек (D39.57) · ресёрч общности фаза 1 (D39.60) · полигон Р6+P4 (D39.61). +- `archive/` — `prompts/`: закрытые сессионные промты (только история, инструкции оттуда не исполнять) · `reports/`: отчёты паков/ресёрч-сессий с ревью-шапками (живая фактура приёмок — на них ссылаются D-лог и активные промты) · `architecture/`: исполненные арх-доки (07 стратревью · 08 синк-ледджер · 11 план пака-11) · четыре слайса хроники `PROGRESS-2026-07-{04-10,10-13,13-25,25-31}.md`. -## Статус (2026-07-26, пак-20 закрыт целиком — эра «механизация выпускного качества», голова D39.53) +## Статус (2026-08-01, голова D39.63 — эра «общность → автономность банка») + +Полная карта состояния НЕ здесь: фазы/курс/очередь/горизонт — в шапке [`PROGRESS.md`](PROGRESS.md) (CURRENT-STATE + единый бэклог), решения — в [`architecture/05-decisions-log.md`](architecture/05-decisions-log.md) (карта актуальности; свежая голова — с хвоста файла). Коротко: Ф0/Ф1 ✅ · арх-ресет D39 (паки 11–16) ✅ · паки 17–20 ✅ · мини-прогон и холодный прогон приняты (D39.37/58) · карта языковой привязки движка снята (D39.60: книго-ось чиста; ja→ru безопасна без правки Go, en→ru — нет) · Р1–Р4 закрыты (D39.63) · пак-21 растворён (D39.62). Сейчас параллель: бэкенд — фаза 2 общности (П0–П4+шестёрка, $0-код) ∥ полигон — $0-сырьё арки автономности банка. ⚠ DeepSeek-0731 сменил веса под слагом — платные прогоны СТОП до ре-пробы (бэклог-строка 74). Дальше: арка автономности банка → свежий мини-прогон → свип гипотез → добор идеала → вторая пара (ja→ru) → МАСШТАБ → пилот Ф2.5 → Ф3 ридер-IDE. -Полная карта состояния НЕ здесь: фазы/курс/очередь — в шапке [`PROGRESS.md`](PROGRESS.md) (CURRENT-STATE + единый бэклог), решения — в [`architecture/05-decisions-log.md`](architecture/05-decisions-log.md) (карта актуальности + голова D39.x). Коротко: Ф0/Ф1 ✅ · арх-ресет D39 исполнен (паки 11–16) · мини-прогон принят (D39.37) · пак-20 закрыт целиком (терминолог · флаговый стоп · двухсекционная инъекция · точечная ре-редактура · языковой экран; D39.41–53) · жанровый словарь отменён как класс (D39.47) · полигон-пакеты 6/7/8 закрыты. Очередь: пак-19 → холодный мини-прогон → пак-21 → свип гипотез → добор идеала → масштаб → пилот Ф2.5. ## Доступные ключи от моделей DEEPSEEK_API_KEY, ZAI_API_KEY, KIMI_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, XAI_API_KEY, MISTRAL_API_KEY diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index 0b8cb5c8..3850222e 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -1,6 +1,7 @@ -# Журнал решений оркестратора — контракт D1–D39.28 (развязки 04.07 · пакеты 09–10.07 · приёмка/качество-первым/пивот/эмпирика 11–12.07 · арх-ресет+стройка пере-прогонного стека 13–19.07) +# Журнал решений оркестратора — контракт D1–D39.63 (развязки 04.07 · пакеты 09–10.07 · приёмка/качество-первым/пивот/эмпирика 11–12.07 · арх-ресет+стройка пере-прогонного стека 13–19.07) > **⟶ КАРТА АКТУАЛЬНОСТИ (ревизия D31, продлена до D38.2 [12.07]; исторические записи ниже НЕ переписываются — дисциплина D23.3).** Читая контракт целиком, держи под рукой, что чем перекрыто: +> ⚠ **Навигация (актуализация 01.08):** карта ниже детально покрывает D1–D39.28; решения D39.29–63 живут хронологически в теле файла, **свежая голова — С ХВОСТА** (новые ноты аппендятся вниз). Сводка текущей головы и очередь — CURRENT-STATE в `../PROGRESS.md`. > - **Полностью superseded:** **D1 (моно-редактор) → D17 → D30.1 (редактор БИЛИНГВ)** · D9 (ja-приёмка) → D18 (蛊真人 zh→ru; ja — второй прогон) · D17 → D30.1 · скобка D19.4 «ключ без data-sharing» и D20.3 «чистый ключ = блокер пилота» → **D27** (единый ключ С data-sharing, отключение перед продом) · exp04-дефолт «editor grok-4.3» (D3) → D30.1 (grok reasoning-off из редакторских ролей СНЯТ — no-op; кандидат glm-5-билингв; gemini — премиум-эскалация только за санитайзером D30.3). > - **Частично амендировано:** D3 (канал B → D14.1/D19.1 + оговорки D22.5/D22.6; апекс-слаг `-preview` — D22.4; draft под вопросом exp13 — D30.6) · D6 («off/minimal для draft/edit» эродирован: draft thinking-ON принудительно, editor-off снят D30.1; живы per-роль принцип и D6.2-буфер) · D10 (+D24.2 alias-слепое пятно, истинная консистентность ≈99.5%) · D11-числа → exp08 → **D30.4** (флип D1 = +15–25%, ~$0.85/ранобэ; «$1.5–2» = неподписанная опция Б) · D12 (+D24.3 флоры max_tokens; +D29.1в rollup — амендмент вердикт-правила) · D13.1-арм из решающего → ПОДТВЕРЖДАЮЩИЙ (D30.1); +D25.3 prefix-анализ судьи · D14.2 закрыт D19.1/D22.4; D14.4 закрыт D22.1 · D15.3 исполнен; спека D15.2: v2→v3→v3.1 (D22.2), реализация = текущий пакет (D30.9) · D24.4 +D28.1 (precision/recall-трейдофф; hard-gate требует пере-замера) · порядок D24.5 отложен D26.1 (этап B — после читаемых 25 глав). > - **Живое ядро без изменений:** D2 (+новый гейт-класс D30.3), D4, D5, D7, D8, D10-механизм, D12-таксономия отказов, D16, D18, D19.1–19.2, D21 (Ф2-механизмы voice/address/reveal), D22.5–22.7, D23 (golden = инвариант №8), D24–D39.28 — действующая голова контракта (**D39.28 = ПАК-17 ЗАКРЫТ ЦЕЛИКОМ: третье действие `allow` (assert-only) построено ⇒ ратифицированная ПАРА `violence`/`sexually-explicit` выразима ДАННЫМИ; тройка `route|allow|terminal` несёт ОДИН инвариант и различается остальным; `accepts_labels` пусты = верное fail-closed до ФАКТОВ ToS по первоисточникам (пер-лейблу, зона полигона)**; **D39.27 = пак-17 фаза 2 ПРИНЯТ и залендён [механизм построен по всем 15 «ровно так»; golden байт-в-байт, парити EXACT, `-race`, ценз 433→451 диффом имён; мои три мутации пойманы именованными тестами]; форма добора B = гейт над резолвнутой моделью НЕЗАВИСИМО от `off` + generic-предупреждение `sourceEchoExposure`; **вокабуляр владельца = ПАРА `violence`/`sexually-explicit`** (сохраняет D14 п.1 и dspro-редактора) ⇒ обязательная дельта: третье значение `action` assert-only; Q2 редактор ОТЛОЖЕН с записью (связывает только explicit-книги); новая петля: лейбл НЕ доезжает до промпта — промпт-слой решается отдельно**; **D39.26 = дизайн пака-17 «generic content-labels × provider-capabilities» ратифицирован В РЕДАКЦИИ §14 отчёта [лейблы НЕ входят ни в один хеш — назначенный слой D20.2-Q3 = резолвнутая модель стадии пер-стадийно/пер-волново · резолв ДО валидации, «достижимое» лейбл-зависимо · один хоп `chain[0]`, `len>1` громко, `budget_usd>0` обязателен · Q1 = книга по аргументу ГАРАНТИИ · вокабуляр `content_labels`(книга)/`accepts_labels`(модель, `*[]string` только сужает) · `permissive`+`Stage.Channel`+enum+блок D4.1 отставляются ОДНИМ диффом · `failover.go` удаляется · отказы за `forWrite`, резолв всегда]; добор оркестратора: единый лейбл «adult» схлопывает violence-развязку D14 п.1 → вокабуляр владельцу · `reasoning:"off"` — тихий выход из аддитивного И эхо-гейта на xai (обобщение D19.1 п.2 в данные не доехало) · рейт-гард деградирует молча; НА ВЛАДЕЛЬЦЕ: вокабуляр лейблов + Q2 редактор; D22.7 паком НЕ снимается**; **D39.25 = в движке НЕТ понятия 18+ [generic content-labels × provider-capabilities, refusal причино-агностичен, «adult» = значение данных; §0 п.6]**; **D39.24 = дизайн пака-16 diff-редактора ратифицирован с перестановкой: $0-части (позиционная детекция · read-only скан · фиксы ru_hours_re/半个时辰) строим, платная машинерия §D3–D5+§15.2 под enabled:false, включение = решение владельца по замеру остатка пост-профилактики; поправки §15.2 (позитивный ре-гейт+анти-удаление · счётчики из role='repair' без миграции · отбрасывание пересечений · reserve-деградация · classify-гард); ru-target-долг = ограничение**; **D39.23 = пак-15 «структура+форма» ратифицирован [хойст text/value-базы → сплит miner/checks/membank/chunk по ИЗМЕРЕННОЙ связности (прил. A пака-14 с поправкой ревью-шапки) · форм-фиксы Export/RequestHash/resolveChunkState · конфиг-слой пары (пар-калибровки из ран-конфигов, промпт-резолв конвенцией) · overlay-хвосты, unionStringMap-коллизия = громкая ошибка; §1 12-go-style амендирован; байт-точность+парити EXACT; crush-масштаб НЕ эмулируем]**; **D39.22 = эксп пере-прогона ЗАКРЫТ решением владельца; итерация №2 ОТЛОЖЕНА [её вопросы — довесок следующего платного прогона]; редактор = deepseek-v4-pro ИНТЕРИМ [судья №1 · проза/глоссарий · дефекты чинибельны · ×2 дешевле], glm-резерв, дефолт-конфиг при лендинге пака-13; курс = разработка бэкенда [масштаб книги · канал B · Ф2-механизмы · ja→ru §B5]**; **D39.21 = стайл-решения владельца: меры → единицы языка читателя [时辰=2ч] · generic-«гу» СРЕДНИЙ род, именные — по-термово из банка · стихи СМЫСЛОМ · 资质=«талант»; + директива аудита полноты банк-инъекции**; **D39.20 = ПЕРЕ-ПРОГОН исполнен+прочитан [операционка вся живьём: $0-резюм драфта ×3 арма · echo 0 · $6.63<$15; судья dspro 0.679>glm 0.589>>mistral 0.232 при floor-шуме 0; слепые чтения ×2: сводные выборы разошлись, чисто-художественные ИДЕНТИЧНЫ = mistral 4/5 → анти-корреляция гладкость↔верность доказана трижды]; планка ≤2 НЕ пройдена → пилот не открыт; mistral ИСКЛЮЧЁН как несущий редактор [критические смысловые вне гейтов; голос = north-star промпта]; dspro-vs-glm НЕ ратифицирован [зазор ~шум] → итерация №2 после механизации [драфт $0]; дефект-классы→механика: 时辰-юнит-чекер · число-масштабы · broken-word/latin · заголовок-шаблон · банк-дельта 元/资质/赤城 · mined_delta-крэш-фикс [пак-13]; решения владельца: род «гу»/меры/стихи/春秋蝉; полигон: авто-QA ключевать слепыми метками**; **D39.19 = пере-прогон-преп ЗАЛЕНДЕН [6 фиксов: R1-FL-A CLI-exit-3 · R1-FL-B reject-set-livelock-закрыт · R1-FL-C x/text-в-Ш-2 · echo-сплит · read-model-naming · ниты]; golden version-only [masked=0]; парити EXACT; §8-манифест полон; gender-signoff закрыт; бэкенд готов к пере-прогону**; **D39.18 = blast-radius edit-единицы: c-lite (редактура чистого остатка вместо бланка всей единицы; вариант владельца (c)+fallback (b)) залендён `488c8d4`, no-flag путь байт-идентичен; + 4 read-модель-фикса пост-лендинг-ревью [quality-echo/status-first-flagged/export-pairs/detail], открытое решение владельцу = echo-метрика семантика; R1-FL-A/B/C deferred в пере-прогон-преп**; **D39.17-errata = runWave parent-cancellation баг [мой рубеж-2 пропустил, 2-я сессия поймала], фикс `5fc4860`**; **D39.17 = R1 драйвер-свитч ЗАЛЕНДЕН [волновой исполнитель черновик∥→банк-майнинг-стоп→редактура∥; редактор не пере-рендерит draft; Ш-1/Ш-2; golden-рерайт; read-модели per-unit]; полный рубеж-2 [5 линз вкл. синк-с-ресёрчем] = clean bill по несущим осям, 3 MINOR/NOTE-фикса (R1-FL-A CLI-exit-код · R1-FL-B mining-стоп-reject · R1-FL-C x/text-версия) в стенд-only mining-пути → пере-прогон-преп; ПАК-11 ЗАВЕРШЁН**; **D39.16 = арх-проход ЗАЛЕНДЕН: майнер-данные (百家姓/Палладий/частицы/суффиксы) вынесены в `internal/lang`+`configs/langpacks/` [граница компиль-enforced, байт-точно — парити EXACT, golden байт-идентичен]; FL-1/2/3+тест-путь; РАТИФИЦИРОВАНЫ 3 дивергенции: language.Tag ОТВЕРГНУТ [CLDR-инстабильность в вердиктах], DC-чекеры+снапшот-фолд DEFER [майнер offline/нейтральность]; общность структурно доказана; промт отработан→архив**; **D39.15 = директива владельца: изоляция языковых данных из `pipeline/` [движок общий · `internal/lang/`+`configs/langpacks/` данными-файлами · `x/text/language.Tag` вместо `isRuTarget` · снапшот-folded как промпты · алгоритмы не трогать]; архитектурный проход ПЕРЕД R1 [ре-секвенс]; поведенчески нейтрально zh→ru [golden байт-стабилен]; не минор-хант/не rewrite-ради-rewrite; промт `BACKEND_ARCH_CLEANUP_SESSION_PROMPT.md` 5-фазный [ресёрч→синтез→фикс-лист→исполнение→ревью]; ja→ru = тест общности §B5 позже**; **D39.14 = пак-11 continuation ПРИНЯТ и залендён [R2 майнер паритет-EXACT · R3 банкнота 12-точек · R4 DC-чекеры+export--pairs · R5 арм-конфиги · R1-аддитив; рубеж-2 D39.13-долга погашен: 3 MINOR/PARTIAL-находки [FL-1 bankTokenBudget-фолд · FL-2 banknote-телеметрия-резюм · FL-3 emission-top-N-кап], все латентны → R1-продолжение; R1 драйвер-свитч резидуал; clean bill по деньгам/wire/порту]**; **D39.13 = пак-11 Block A ПРИНЯТ и залендён [WS2 целиком (вкл. src→dst-блок редактора = закрытие D30.1) + WS1a/b/c-инфра + WS4-ядро; 2 девиации ратифицированы; резидуал R1–R5 в PACK11_REPORT; промт остаётся активным; рубеж-2 приёмки — долг]**; **D39.12 = план `architecture/11-implementation-plan.md` РАТИФИЦИРОВАН [три рубежа: ревью-2 F1–F11 → 7-агентный адверсариал → подтверждающий пас; пер-волновой снапшот + инвариант секвенирования = «переоплата ОДНА»; EditCeilingOut=3200; лемматизатор дефолт B; 4 гейтнутых арма]; бэкенд-пак ЕДИНОЙ сессией — `BACKEND_PLAN11_SESSION_PROMPT.md`**; **D39.11 = директива владельца: стройка ТОЛЬКО после дизайн-синтез сессии с верифицированными алгоритмами; хендофф №5**; **D39.10 = exp16: WHICH подтверждена [V-C recall 0.97, $0] / WHAT→банкнота+Палладий [canon-recovery <70%], 9B-споттер не нужен, Z1→облако, ре-аудит exp14b чист [errata не требуется]; исследовательская программа ЗАВЕРШЕНА → бэкенд-пак слоёв 1+4**; **D39.9 = Q4a: верность НЕ на translate-стадии [flash уже верен, pro ×3.67 не ратифицирован], смысл ломает glm-РЕДАКТОР [свап-арм приоритетен], DET-пол 0.261; exp14b-правила дефектны → $0-ре-аудит в exp16**; **D39.8 = слепое чтение: планка не пройдена никем, дефекты распределены [читатель подтвердил floor-null], битва качества → дефект-классы [时辰-юниты, числа, gender-enforce, стих, регистр]**; **D39.7 = exp15 залендён REV.2: «граница вредит» отозван [артефакт окна судьи], все когезия-эффекты под floor 0.126, «sequential нигде не лучше» LOO-stable [не ратифицированный зелёный свет], фертильность 1.20/0.39, $12.79/$15; гейт = слепое чтение владельца**; **D39.6 = research/20 банк-майнинг залендён [детектор-лестница V-A/B/C, алиас-ярусы, banknote-v1 с 12 гейт-точками, §B5 плагины P1–P6, §D-пре-рег]; полигон-стадия после exp15**; **D39.5 = пак-1.5+F1–F9 залендены [tmctl export с manifest/drift-гардами · fold-first санитайзер · bounded глосс · пример zh-ru]; экстракция полигона впредь через tmctl export**; **D39.4 = адверсариал-долг ПОГАШЕН [8 осей: 0 CRIT/1 HIGH/6 MED], пак-1.5 придержан под фикс-лист F1–F9 в §T4**; **D39.3 = пакет банк-майнинга W1.5 [диспозиция H15/V4-п4] ратифицирован, research/20-промт с HOLD до фриза exp15**; **D39.2 = трек-A пак-1 залендён `d3f6b34`: trust-gated suppressor [терм-дрейф закрыт в КОДЕ] + export-contract нормализация + pair-сеам + реестры + quality-report; адверсариал-долг за 529**; **D39.1 = research/19 залендён: конфликт exp14↔research/18 разрешён [эмиссия≠окно≠связность], Go-спека чанкера+когезии, волновая архитектура W0–W3 [вводная владельца: параллелизм], пре-рег эмпирики Q0–Q5; оркестратор-ревью снято владельцем**; **D39 = АРХ-РЕСЕТ: синк-аудит сломанного телефона [65 находок, 0 refuted, `08-sync-audit-ledger.md`] + целевая 7-слойная архитектура [`09-target-architecture.md`] + фазовый план [трек A build-now ∥ трек B ресёрч, пере-прогон после]; формализует фантомный «D35.7» как цель слоя 1; терм-дрейф код-корень жив [сид-воркэраунд]; редактор 4-мандата-full-regen = причина инверсий**; D35 = пивот качество-первым; D36 = приёмка research/18; D37 = приёмка exp14: претензия-1=промпт-рычаг; D38 = приёмка exp14b: «только gpt-5.4» ОПРОВЕРГНУТО [mistral/deepseek-pro чинят], фронтир в дефолт НЕ нужен, корень терм-дрейфа = статус-draft сида; **D38.1 = слепой h2h P1a↔F-disc залендён [ChatGPT «фронтир сильнее» / Claude «near-parity» расходятся, СХОДЯТСЯ: дефекты = инфра] → РАЗВОРОТ «мерить→строить», выдан BACKEND_INFRA_PACK; D38.2 = консолидация/док-гигиена: спент exp-скрипты в `eval/exp12|13|14|14b/`, статус-доки+.puml актуализированы; D38.3 = инфра-пак читаемости залендён (санитайзер-классы strip+export + число/omission-гард), верифицирован исполнением [build/vet/test зелёные, 3 span-дефекта запинены]; D38.4 = аудит полноты exp14/14b: чэнъюй-рычаг забыт near-term→дописан в дискурс-промпт; inversion-гард D37 §2г не строился (число/omission ≠ полярность)→editor-swap = защита от инверсий (приоритет↑); нарезка = re-run-арм; гард-тумблер вкл. при resnapshot; D38.5 = компоненты resnapshot залендены+верифицированы [reseed-сид eb409f2 · дискурс+чэнъюй editor v3 0ac5f7a с few_shot-тумблером] → следующий шаг единый resnapshot + пере-прогон**). diff --git a/docs/architecture/09-target-architecture.md b/docs/architecture/09-target-architecture.md index d17e63c0..8c0c3e11 100644 --- a/docs/architecture/09-target-architecture.md +++ b/docs/architecture/09-target-architecture.md @@ -7,7 +7,7 @@ > > Это карта «куда и почему», а не пошаговая спека. Спеки — в хендофф-промтах сессий; контракт — в D-логе. -> **⟶ СТАТУС СТРОЙКИ (2026-07-26, пост-пак-20; баннер — не переписывание, тело ниже = замысел арх-ресета 13.07).** Карта «слой → статус → пак/D»: +> **⟶ СТАТУС СТРОЙКИ (2026-08-01, пост-D39.63; баннер — не переписывание, тело ниже = замысел арх-ресета 13.07).** Карта «слой → статус → пак/D»: > | Слой | Статус | Пак / D | > |---|---|---| > | 1 Сегментация | ✅ ПОСТРОЕН: бюджет в выходных токенах снапшот-folded (`chunk.SegBudget`), edit-единицы декаплены; когезия/carryover — НЕ строится (D39.7/8: эффекты под floor 0.126; кнобы `STMDepth`/`OverlapTokens` УДАЛЕНЫ, WS2 §2а), граница `logical` — не рычаг (exp15), greedy остался | пак-11 (D39.13 WS2 · D39.17 волны · D39.18 c-lite) | @@ -16,8 +16,9 @@ > | 4 Память | ✅ ПОСТРОЕН + ДОСТРОЕН паком-20: disposition-gated suppressor · **ТЕРМИНОЛОГ** (роль пар-пака: смердженный банк + KWIC → консолидированный dst, durable-деньги) · флаговый стоп `--verify-bank` (дефолт=авто) · ДВУХСЕКЦИОННАЯ редакторская инъекция (CONFIRMED + ⟨проверить⟩; все строки фолдятся в версию) · точечная ре-редактура (bank-only → пере-пин $0) · банкнота отдельным шиппинг-файлом · языковой экран `target_script` · дисциплина банкноты (кавычки/агрегация); жанровый словарь ОТМЕНЁН (D39.47) | пак-1 · пак-11 · **пак-20 (D39.41–45/47/50–53)** | > | 5 Качество | ✅ детерм. часть: `QualityReport` · число/omission-гард · DC/пак-13-чекеры · repair-остаток; семантический span-судья/полярность — НЕ строился (защита = editor-swap, D38.4) | D39.2 · D38.3 · пак-13 (`2f91b04`) · пак-16 | > | 6 Export | ✅ ПОСТРОЕН: `checks.ExportNormalize` на каждом финале; санитайзер-классы strip+export | D39.2 · D38.3 | -> | 7 Гигиена | ЧАСТИЧНО: реестр role→инъекция · вынос `foldModelWire` · снос сирот/`gatesEnabled` — сделаны; **target-aware гейты — ОТКРЫТО** (ru-target-долг = ограничение, D39.24 §15.3; едет с канал-B/таргет-работой) | D39.2 · паки 11–16 | +> | 7 Гигиена | ЧАСТИЧНО: реестр role→инъекция · вынос `foldModelWire` · снос сирот/`gatesEnabled` — сделаны; **target-aware гейты — П1 «цель-шов» В РАБОТЕ (фаза 2 общности, D39.62; заморозка D39.24 §15.3 амендирована)** | D39.2 · паки 11–16 | > +> **Актуализация 01.08:** пак-19 «голос/состояние» построен (D39.54–56: схема голоса/обращений v13/v14 c условным фолдом · tu-vous- и спойлер-флаггеры). **Карта языковой привязки ВСЕГО движка — `../archive/reports/GENERALITY_RESEARCH_2026-07-31.md` (D39.60)**; фаза 2 общности В РАБОТЕ (D39.62): П0 хеш эмбед-данных · П1 цель-шов (слой 7) · П2 скрипт-шов источника · П3 нарезка/оценка (слой 1) · П4 манифест пака (слой 2); П5 майнер гейтится второй книгой; пак-21 растворён. > §1 «как есть» читать как снимок ДО стройки (const-чанкер · glm-редактор · мёртвые `STMDepth`/`OverlapTokens` — всего этого больше нет). §4 отработан целиком: трек B исполнен (exp15/exp16 — программа ЗАВЕРШЕНА, D39.7/D39.10), гейт пере-прогона пройден фактом rerun2 (D39.20; планка ≤2 НЕ пройдена, эксп ЗАКРЫТ D39.22, редактор = deepseek-v4-pro интерим). Канал B — пак-17 **ЗАКРЫТ ЦЕЛИКОМ (дизайн D39.26 + стройка D39.27 + дельта D39.28: механизм лейблов живой, действия `route|allow|terminal` с одним инвариантом, golden байт-идентичен, `permissive`/`Stage.Channel`/D4.1-блок отставлены, `failover.go` удалён; вокабуляр = ПАРА `violence`/`sexually-explicit`; `accepts_labels` пусты до ФАКТОВ ToS — fail-closed)**; дизайн РАТИФИЦИРОВАН D39.26 (лейблы вне хешей — назначенный слой D20.2-Q3 = резолвнутая модель стадии пер-стадийно/пер-волново · резолв ДО валидации, «достижимое» лейбл-зависимо · один хоп `chain[0]` · гранулярность = книга · `content_labels`(книга) ⊆ `accepts_labels`(модель) · `Stage.Channel`/`permissive`/D4.1-блок отставляются одним диффом), фаза 2 = стройка; инженерная форма переопределена **D39.25**: в движке НЕТ понятия «18+» — generic content-labels × provider-capabilities, refusal причино-агностичен; «18+ линия» в §6 читать как продукт-линию, не механизм движка. --- diff --git a/docs/archive/PROGRESS-2026-07-25-31.md b/docs/archive/PROGRESS-2026-07-25-31.md new file mode 100644 index 00000000..ea68fd52 --- /dev/null +++ b/docs/archive/PROGRESS-2026-07-25-31.md @@ -0,0 +1,179 @@ +# Архив хроники PROGRESS — слайс 25.07–31.07.2026 (эры оркестраторов №7/№8 → начало №9) + +> Вырезано из `docs/PROGRESS.md` при актуализации 01.08 (санкция владельца). Закрытые записи: паки 16–20 · мини-прогон D39.37 · полигон-пакеты 5–8 · ToS-речеки · малая пачка 14а/14б · пак-19 · холодный мини-прогон D39.58 · ресёрч общности фаза 1 (СТОП-запись сессии). Решения — в `architecture/05-decisions-log.md` (D39.26–58); отчёты — `archive/reports/`. Историю НЕ переписывать (D23.3). + +## Полигон — РЕ-ЧЕК ToS ПО КАЛЕНДАРНОМУ ТРИГГЕРУ ИСПОЛНЕН ($0): дельт вердиктов НЕТ, но триггер стоит не на том документе, 31.07 + +Отчёт: `archive/reports/TOS_RECHECK_2026-07-31.md`; факты — секция «Право по ToS/AUP» в `experiments/00-provider-quirks.md` (помечена датой ре-чека). **Триггер сработал буквально** — головной Google ToS сменил ревизию `May 22, 2024` → **`Effective July 30, 2026`**, — **но по нашей оси он пуст:** свой байтовый диф архивной и живой US-версий даёт 72 строки, все потребительско-правовые (сетевые расходы, дисклеймеры, калифорнийское право), а счётчики `violen*` = 0 и `sexual*` = 0 в ОБЕИХ ревизиях. Единственная контентная вставка — `Some content may not be suitable for everyone.` в разделе о генерируемом контенте: дисклеймер о ВЫХОДЕ Google, по D39.29 права не даёт, и специально помечена, чтобы её не приняли за сдвиг. **Пере-сняты пять вендоров цепочки — `gemini` · `mistral` · `xai` · `deepseek` · `zai`, все на ПРЕЖНИХ объявленных ревизиях, 34 цитаты подтверждены счётом = 1, дельт вердиктов ноль.** `kimi`/`openai` (403 Cloudflare, JS-шелл) вне названного промтом фокуса — помечены непере-проверенными. **Три находки сверх задачи.** (1) **Триггер поставлен на косвенно привязанный документ:** договор Gemini API — это `Google APIs ToS` (*Last modified: November 9, 2021*, прежде в записи ОТСУТСТВОВАЛ) + `Additional ToS` (*March 23, 2026*) → PUP; потребительский ToS цепляется лишь через API ToS §b `You will not violate any other terms of service with Google`. Предложение: мониторить три документа цепочки, а не `policies.google.com/terms`. (2) **Метод верификации цитат дефектен:** `grep -c -F` по стриппнутому тексту дал ЛОЖНЫЕ НУЛИ на трёх верных цитатах DeepSeek (жёсткие переносы + кавычки в отдельных тегах) — без поправки ре-чек показал бы фантомную дельту вендора; рабочая форма (сверка по копии без пробелов) вписана в quirks. Там же: **`r.jina.ai` как второй путь МЁРТВ (403)**, заменён двумя независимыми снимками Wayback с честной оговоркой «оба в прошлом»; **`ai.google.dev` больше не требует Wayback** — петля была на cookie `signin=autosignin`, лечится cookie-jar. (3) **Рассинхрон:** клетка `gemini` × `sexually-explicit` в quirks стояла `FORBIDDEN` против ратифицированного D39.32 п.2 `UNCLEAR` — помечена ссылкой на амендмент, молча не переписана. **Рекомендация по строке 6 (Gemini в `accepts_labels`): не подписывать сейчас** — ре-чек не дал новой фактуры ни за, ни против, а главное: подпись даст ПРАВО, но не даст судью 18+, потому что по оси ПОВЕДЕНИЯ Gemini fail-closed на графичной эротике (D22.6, 8× wire-verified, фильтр неконфигурируем), а Additional ToS теперь ещё и прямо запрещает обход фильтра (`You may not attempt to bypass these protective measures`). Строка стоит дешевле, чем выглядит: ничего не блокирует и почти ничего не открывает. Следующий триггер — квартальный **25.10.2026**, без изменений. Сессия не коммитила; `accepts_labels` не трогала; бэклог не правила (зона оркестратора). + +## Оркестратор №9 + бэкенд — ХОЛОДНЫЙ МИНИ-ПРОГОН ПРИНЯТ И ЗАЛЕНДЕН (D39.58): recall холодного банка 0.918/0.980, эхо-мина жива при thinking-ON, 31.07 + +Прогон закрыт владельцем после банк-стопа (Р7: замер достаточен, ~$0.12 сэкономлено). Главное: банк с нуля восстанавливает 45+3 из 49 подписанных термов и приходит владельцу ПЕРЕВЕДЁННЫМ (149/150) — против recall 0.069–0.103 у майнера соло. Построено до трат: пар-слепой парсер банкноты (строка 19), разделение версий канала (Р2, амендмент инварианта №2), S7 по провенансу (путь ii, экспозиция 0 на 1119 парах), линты промптов. П3 пре-регистрации сработал: эхо 2/20 при thinking-ON — гейт поймал, эскалация вылечила, факт в quirks. Деньги $0.126068, spend ≡ Σ checkpoints; брак+переработка $0.056 названы, из них норма «промпты итерировать на пробе 1–2 глав». Бэклог: 17/19/20/23 закрыты, 18 переформулирована (蛊 — структурная дыра эмиссии), +36а–36г (валидация type — приоритет · рецензент банка · серии · формат в шаблон). Отчёты: `COLDRUN_REPORT_2026-07-31.md` + `COLDRUN_HANDOFF_2026-07-31.md`. + +## Оркестратор №9 + полигон — ToS-РЕ-ЧЕК ПО ТРИГГЕРУ ИСПОЛНЕН (D39.57): дельт вердиктов нет, 31.07 + +Головной Google ToS сменил ревизию (30.07.2026), но по оси лейблов пуст; пять вендоров пере-сняты — вердикты не двигаются. Находки метода: триггер висел не на том документе — перевешен на цепочку договора (PUP · Additional ToS · Google APIs ToS, последний добавлен в запись); рассинхрон quirks-клетки gemini×SE с D39.32 закрыт; правило «двух путей» амендировано (jina мёртв). Строка 6 понижена в приоритете (подпись ≠ судья 18+). Параллельно бежит холодный мини-прогон (бэкенд). Отчёт: `archive/reports/TOS_RECHECK_2026-07-31.md`. + +## Оркестратор №9 — СТРОЙКА ПАКА-19 ПРИНЯТА И ЗАЛЕНДЕНА (D39.56), ПАК-19 ЗАКРЫТ ЦЕЛИКОМ, 31.07 + +Фаза 2 сдана и принята короткой приёмкой (норма 30.07): сьют `-race` перегнан — зелёный; `repin.go`/`snapshot.go`/golden не тронуты (запреты (д)/(и) держатся); мутации сессии 23/23. Построено: таблицы v13/v14 + условный фолд (ни байта при выключенной инъекции) · ты/вы-флаггер A–C + D-индикатор · флаггер спойлер-утечки · данные V5 (5 категорий `target-ru` + опциональный `speech-cue`). Инъекция голоса — на бумаге до полигон-эксперимента (D21 п.2). Ратифицированное отклонение: атрибуция целевая, не исходная. Бэклог: 14/15 закрыты; +13б (`speech-cue.txt` — владельцу, к холодному прогону), +49а (миграции неидемпотентны). Очередь: ХОЛОДНЫЙ мини-прогон — теперь несёт и первое измерение осей голоса (`gates.voice` ON, строка 24). Отчёт: `archive/reports/PACK19_BUILD_2026-07-30.md` (ревью-шапка). + +## Оркестратор №9 — ДИЗАЙН ПАКА-19 РАТИФИЦИРОВАН (D39.55), стройка ждёт «идём» владельца, 30.07 + +Фаза 1 принята: 82 клейма — 71 CONFIRMED / 9 PARTIAL / 2 REFUTED (полнота, не факты). Ратифицировано: типы записей банка + условный фолд в `memory_version` · CONFIRMED-only голос/обращения · свой гейт `gates.voice` без фолда · reveal сокращён до флаггера утечки (амендмент D21 п.3) · слот инъекции не выбран (амендмент D21 п.1г, решит полигон) · D21 п.8 model-bound. Девять новых «ровно так» фазы 2 — в D39.55. Отчёт: `archive/reports/PACK19_DESIGN_2026-07-30.md`. + +## Оркестратор №9 + бэкенд — МАЛАЯ ПАЧКА 14а+14б ПРИНЯТА И ЗАЛЕНДЕНА (D39.54), 30.07 + +Бэкенд-сессия (та же, что несёт пак-19) закрыла обе строки до дизайна: ingest грязных епабов на `x/net/html` (4 класса жёстких падений импортируются; ТРИ регрессии — CDATA, self-closed raw-text, несбалансированный ruby — пойманы адверсариальным ревью сессии до лендинга и запинены байт-эталоном старого ридера, мутации 17/17) + вырезание промпт-комментариев с провода (SHA по канонической форме; 9/10 файлов байт-неподвижны; снапшоты книг не двигаются, терминолог перекупает батчи один раз — центы). Приёмка исполнением оркестратора: независимый дампер old-vs-new — 205 документов трёх епабов стенда, дифф глав и ruby ПУСТ; сьют `-race` 14/14; 4/4 спот-мутации красные; посылки записки перемерены (126 itemref, не 958 · 8/8 книг стенда txt · 2/252 сущности — независимым стеком). chunkerVersion НЕ поднят — ратифицировано D39.54 (экспозиция — пустое множество; строгая буква — одна строка за подписью владельца). Отчёт с ревью-шапкой: `archive/reports/SMALLPACK_INGEST_PROMPTS_2026-07-30.md`. Бэклог: 14а/14б сняты, добавлена 34а (``-дыра, до-паковая). Пак-19 фаза 1 (дизайн) — следующий шаг той же сессии; жду `PACK19_DESIGN_*` и эхо-блок релеем. + +## Полигон — ПАКЕТ-7 Z4-ДОБОР + ФАЗА B ИСПОЛНЕНЫ ($0.31030 из потолка $2.60): БКРС взят, промпт-правка найдена, слепая оценка ОТБРАКОВАНА своим же контролем, 26.07 + +Отчёт: `archive/reports/POLYGON_TERM_RESEARCH_B_2026-07-26.md`. Код: `eval/pkg7/` (+`bkrs_lookup` · `build_termset` · `terminologist_arms` · `blind_judge` · `repair_judge` · `score_bws`). **Добор ($0):** (1) **БКРС ВЗЯТ** — страница не JS-рендерится, а ставит куки-челлендж `ca=`; воспроизведя куку, получили **84 словарные статьи** и закрыли **17 из 20 UNCLEAR-строк** словаря (сильнейший класс улики, ноль поисковой квоты); ключевое: словарь «культивации» не знает (`修炼` = «совершенствовать и закалять себя»), `修士` = «**христ. монах**» ⇒ строка `修士→культиватор` в `genre-glossary.txt` спорна, `筑基` = «закладывание фундамента» ⇒ строка ПОДТВЕРЖДЕНА; (2) **Ngram перевёл спор в измерение**: корреляция «культивация»×«культиватор» = **0.9715** на 120-летнем ряду (сельхоз-омонимия доказана), «совершенствование» частотнее в 119.6×, биграмма «мир совершенствующихся» — 0 вхождений; (3) **конкуренты по ЛОКАЛЬНЫМ клонам** (подсказка владельца, `/home/ubuntu/projects/tmp`): три независимые команды сошлись на форме `src→dst+примечание` с фильтрацией по текущему чанку; у GalTransl — трёхслойный словарь с **условной пост-заменой** (`pre_src/post_dst`, `!отрицание`) и ситуационными ключами `mono`/`diag`; у AiNiee — блок «не переводить»; у **TransAgents терминологии нет вовсе (0 файлов .py)**, а Эндрю Ын прямо называет нашу задачу открытой; (4) `Silversaint` → «**Серебряный Святой / среброносец**» (АСТ, Абдуллин) — первый живой человеческий эталон; (5) **search-inside закрыт ОТРИЦАТЕЛЬНО**: всех трёх ISBN в Google Books нет ⇒ **развилка Z2 по `修炼` НЕ снята**. **Фаза B (310 вызовов, 480 консолидаций, 0 ошибок):** объективный слой — контексты решают всё (совпадение с подписью владельца на S1: `P0b` 10/15 против `P1`/`P2`/`P0` **15/15**), а различия между армами с контекстами = один-два терма из девятнадцати; **глоссарный контраст не измерился по построению — 0 из 80 термов покрыты жанровым словарём** (WHICH-канал даёт книжный канон, словарь — жанровые понятия; множества не пересекаются, это прямое следствие recall `term`=0.040 фазы A). **Главная промпт-находка:** правило «имя собственное → транскрипция» систематически уводит от решения владельца и живого переводчика — `春秋蝉`→«Чуньцючань» вместо «Весенне-осенняя цикада» у ВСЕХ армов с правилом, `Silversaint`→«Сильверсейнт» у `P2`/`P3` против изданного «Серебряный Святой», прокси-мера на ловушке 0.50 против 0.25 ⇒ **рекомендация сузить правило до антропонимов и топонимов**. **Веб-фетч в v2 роли — НЕТ**: агрегатного выигрыша нет, единственный случай пользы (`时辰`, где справка дословно содержит «был равен 2 часам») даёт СЛОВАРЬ, а словарь — это данные, они живут офлайн и не ломают инвариант №8. **Слепая оценка ОТБРАКОВАНА собственным контролем пре-регистрации:** BWS-счета плоские (весь разброс ±0.09 при шкале ±1), F1/F1b/F3/F4 сработали, leave-one-out по судье МЕНЯЕТ победителя, эффект позиционного свопа (до 0.107) БОЛЬШЕ разброса между армами, а **`gpt-5-mini` назвал подписанный владельцем перевод катастрофой 6 раз из 19** ⇒ по §A2.4 п.4 вердикты судей не выдаются, выводы стоят на объективном слое. Урок: пре-регистрация окупилась — без `GOLD` в слепой выборке мы выдали бы «P4 победил» и не узнали бы, что измеритель негоден. **На владельце:** 17 строк словаря на подпись · `修炼` остаётся V0 · правка промпта §B3.2 · вердикт по веб-фетчу · нужен ли повторный замер ДРУГИМ инструментом. ⚠ **РЕВИЗИЯ ИСПОЛНЕНИЕМ (та же сессия, после сдачи; §B6 отчёта + `eval/pkg7/audit_phaseB.py`) — четыре вывода выше ИСПРАВЛЕНЫ, читать только вместе с §B6:** (а) **отбраковка судей СНЯТА** — контроль §A2.4 п.4 был структурно неизмерим: строка `GOLD` не была уникальной ни на одном из 19 термов, а все 6 «катастроф на подписи» судья проставил РОВНО на буквах с тем же текстом, то есть вёл себя согласованно и спорил с каноном по существу; (б) **вывод «судьи не имеют разрешающей способности» ОПРОВЕРГНУТ их же данными** — 35 термов из 80 вырождены (все семь кандидатов = одна строка), а на 45 невырожденных тем же скорером F1 переворачивается 0.044→**0.122** и F1b 0.056→**0.189**, причём `P0b` встаёт ПОСЛЕДНИМ, согласно объективному слою ⇒ негоден был НАБОР, а не измеритель; (в) **у правила транскрипции НЕ БЫЛО контрольного арма** — оно лежит в общей части промпта и присутствует во всех шести армах (канон выдал `P0`, у которого правил больше всех), поэтому рекомендация §B3.2 понижена до гипотезы (проверка — арм без правила, ≈$0.02); (г) **«три независимые улики» оказались одной** — весь разрыв прокси на S5 даёт единственный терм `春秋蝉`, а `Silversaint` держится на сводке веб-поиска, не сверенной с телом издания (в сводке — «угодник-среброносец» и «AST/EKSMO») ⇒ человеческого эталона для en у нас НЕТ. **Перепроверку прошли без правок:** §B1.1 до строки · покрытие 0/80 (и 0/80 даже на ПОЛНОМ словаре §Z4-Т) ⇒ Z-B6 устоял · деньги $0.31030 из сырья · весь Ngram до знака · якоря фазы A по пину `996bade`. **РАЗВЯЗКА — фаза B′ (санкция владельца, отчёт `archive/reports/POLYGON_TERM_RESEARCH_B2_2026-07-26.md`, $0.14013 из порога $0.30, 136 вызовов, 0 ошибок; пре-регистрация записана ДО трат):** три замера по порогам, названным заранее. **T — правило транскрипции:** арм `P5` = `P2` минус ОДНА строка (проверено diff-ом: 18641 против 18556 симв.) вернул `春秋蝉` в **точный канон владельца** и дал `Silversaint`→«Серебросвят», но агрегатный прокси-сдвиг `P2−P5 = +0.013` при пороге 0.05 ⇒ по решающему правилу **широкая формулировка §B3.2 ОПРОВЕРГНУТА, узкая ПОДДЕРЖАНА**: снятие правила помогает на предметах/приёмах (`Ashdrinker`→«Пепелитель») и ВРЕДИТ на антропонимах (`王婆`→«Старуха Ван», `月光蛊` теряет вершину `蛊`), а `提刑` без правила наоборот транслитерируется; T3 пройден (`P5` 18/19, на ловушке 4/4). **J — слепая оценка на ПОЧИНЕННОМ наборе** (45 расходящихся термов, дедуп кандидатов, подложен ДЕКОЙ): оба судьи проходят контроли с запасом — декой назван лучшим **0/45**, помечен катастрофой **43 и 45 из 45**, подпись владельца — **НИ РАЗУ**, а `grok-4.3` ставит её выше всех армов (+0.625) ⇒ **отбраковка фазы B неправомерна, находка «6 катастроф на подписи» НЕ ВОСПРОИЗВОДИТСЯ**; но ранговое согласие с объективным слоем ничтожно (ρ = +0.429 / −0.107) ⇒ **ранжировать армы слепой оценкой нельзя, её роль — катастроф-экран** (H7: разрыв до декоя 1.27–1.42 против межарменного 0.20). **R — разброс прогона:** три повтора дали `P0b` 11/12/12 против `P1` 19/18/18 ⇒ **разрыв 6 термов при размахе 1 — «контексты главный рычаг» УСТАНОВЛЕНО**, заодно объяснилась аномалия «случайный глоссарий 19/19» (лежит внутри шума прогона). H6 частично: вырожденность предсказывает не подписанность, а КЛАСС терма (S2 0.13 против S1/S4 0.53). Итого по пакету-7: $0.45043 из коридора $1.20–2.60. **На владельце теперь:** Z-B3 — принять узкую формулировку как редакторское решение · Z-B5 — менять не инструмент, а сборку набора · Z-B8 (новое) — «контексты решают» можно ратифицировать как измеренное. ⚠ **РЕШЕНИЕ ВЛАДЕЛЬЦА 26.07 — ЖАНРОВЫЙ СЛОВАРЬ ОТМЕНЁН КАК КЛАСС** (амендмент к D39.42 п.1, ратификация за оркестратором; записка полигона №10): решение о переводе принадлежит подписи владельца на банк памяти, а пар-словарь навязывал бы одно видение всем книгам пары («культивация» против «совершенствования» — законно разный выбор). **Полигон согласен, и обосновали отмену наши же улики:** V0 на центральной строке `修炼` (выбор регистра, а не факт) · ложная сходимость русских глоссариев сянься (один английский первоисточник + один блогер) · покрытие **0/80** · четыре строки из шести **вообще не встречаются** в книге стенда. **Снято:** Z-B2 (17 строк на подпись) · вторая половина Z-B4 (офлайн-словарь как пар-данные — снял сам полигон: польза 1 случай из 80) · подписной статус §A4.3/§Z4-Т (переведены в справочную фактуру) · §B3.1 п.4 из рекомендации в наблюдение. **Перепрогонов НЕ требуется** — ни один вывод на словарь не опирался (`P0b`↔`P1` без словаря вовсе; `P5`↔`P2` с одинаковыми инертными строками); обесценен один арм `P0`, **$0.01362 из $0.45043** (3%). **Разматывать в паке-20 (чужая зона, список read-only):** фактор `GenreDst` в формуле консолидации `terminology.go:357-359,432-436` · `genreGlossaryMap` в `terminologist.go:130,163-166,322` · загрузчик и `GenreGlossaryFor` в `langpack.go:73-80,255-262,590-635` · тесты `langpack_test.go:394` и `terminology_test.go:230` · файл `configs/langpacks/zh-ru/genre-glossary.txt`. **ГЛАВНОЕ СЛЕДСТВИЕ:** связывающим ограничением становится recall эмиссии на классе `term` = 0.040 — `修行` встречается в книге **326 раз** и не получит соответствия НИОТКУДА (`emissionEligible` пропускает только `name|place|title`); раньше дыру теоретически прикрывал словарь. Вопрос расширения эмиссии — основной, и он согласуется с принципом владельца: даёт больше строк НА ПОДПИСЬ, ничего не решая за него. **Процессный урок:** деливерабл промта не отменяет права сессии сказать «этого делать не надо» — мы измерили основание для отмены и всё равно принесли таблицу на подпись, вместо того чтобы поднять архитектурное возражение через канал вопросов. + +## Полигон — ПАКЕТ-7 ФАЗА A ИСПОЛНЕНА ($0), СТОП на ратификацию: recall WHICH-канала измерен и он 0.07–0.10, посылка «культивация» уликами не подтверждена, 26.07 + +Отчёт: `archive/reports/POLYGON_TERM_RESEARCH_A_2026-07-26.md`. Код: `eval/pkg7/` (нарезка книг · replace-харнесс боевого майнера с пином на 996bade · майнер каналов en/ja · KWIC · seed-recall · проба измеримости рубрики). Платных вызовов ноль. **Пять измерений на пяти книгах стенда:** (1) recall боевого WHICH-канала против ПОДПИСАННОГО банка 蛊真人 = **0.069–0.103**, по классам name 0.231 / title 0.077–0.154 / place 0.000 / **term 0.040**; 蛊 (8700 вхождений, заглавное понятие) не предлагается никогда — механизм в `emissionEligible` (тип обязан быть name|place|title, длина ≥2 рун); (2) **абляция даёт атрибуцию**: снятие потолка top-200 → 0.429, снятие фильтра типа → 0.875, снятие длины → 0.911, ценой эмиссии 17→15 418 строк при precision спот-чека ≈0.15 ⇒ покрытие ограничивает СЛОЙ ЭМИССИИ, а не детектор, и это количественное основание под D39.42; (3) покрытие не растёт с длиной книги (10гл 15 → 50гл 12), и подписанный на мини-прогоне `学堂家老` исчезает, проглоченный алиас-кластером фамилии `葛家` вместе с родовым `族长` — точечный дефект кластеризации; (4) генеральность: `lang.Load` для ja/en падает громко (D39.15 работает), но под zh-паком en даёт 0 термов и стоп МОЛЧА авто-продолжает, а ja — 8 термов с precision 0 и ключами, которых в книге нет (trad→simp: 範囲→范囲); (5) масштаб квадратичен, `t ≈ chars^2.013`, экстраполяция на приёмочную книгу ≈4.6 ч. Собрано 10 требований к generic-майнеру (хвост №8 D39.37). **Ресёрч:** 6 углов × адверсариальная верификация (84 проверки: 62 CONFIRMED / 14 PARTIAL / 7 MISQUOTED / 1 OVER_ATTRIBUTED / 0 фабрикаций) + критик полноты. Посылка D39.42 п.1 («индустрия — „культивация“») уликами НЕ подтверждена, но и обратное не доказано: издательская сторона стоит на маркетинговых аннотациях, тела изданий не читаны ⇒ владельцу предложен **V0 — не подписывать до одного $0-захода**. Вскрыта ложная сходимость: русские глоссарии сянься = один английский первоисточник + один блогер. **На владельце:** рубрика K1–K12 + Q1–Q6 · строка 修炼 · смета фазы B $1.20–2.60 · нужен ли добор улик перед B. + +## Оркестратор №8 — СЕССИЯ ЗАКРЫТА владельцем (26.07, вечер): пак-20 закрыт целиком, доки и бэклог актуализированы, хендофф №9 записан + +Итог сессии №8 (25–26.07): приёмки паков 17/18/20 (все фазы) и полигон-пакетов 5/6/7/8 · ратификации D39.26–D39.53 · мини-прогон · единый бэклог введён · доки актуализированы под D39.53 · промт пака-19 освежён. Хендофф №9 — шапка `ORCHESTRATOR_SESSION_PROMPT.md` (позиция, первые задачи, дельта норм, норма «дисциплина ответа» для Opus-класса). Незакоммичен только `START_PROMT.MD` владельца (его файл). + +## Оркестратор №8 — ПАК-20: фаза 1 принята (D39.41), архитектура фазы 2 решена владельцем (D39.42 — терминолог), 26.07 + +Фаза-1 сессии закончилась спроектированным СТОПом: синк вскрыл 18 расхождений «доктрина↔код» (4 структурных тупика), корпус доков дал непостроенные ратифицированные ответы (двухрежимная эмиссия §C2-7 · M2 · журнал ревизий), а свои же пять P-решений сессия завалила адверсариальным ревью (9 блокеров). Приёмка воркфлоу (7 верификаторов, 46 клеймов): 39 CONFIRMED / 7 PARTIAL / 0 REFUTED; новая находка приёмки — `bankTokenBudget=144` впритык/отрицателен. Дальше владелец СИНКОМ выправил курс: моя ошибка — его давнее «кто переводит термины, возможно вебфетч, возможно новая роль» я отгородил констрейнтом вместо развилки; его архитектура (терминолог переводит весь смердженный банк по полным контекстам) ратифицирована D39.42 и легла в директиву фазы 2 (промт пака переписан). Направленная банкнота и ось `lane` НЕ строятся; инвариант №2 НЕ трогается (все строки банка фолдятся в версию); поздняя подпись = точечная ре-редактура по ключу со сметой. Полигону добавлен ресёрч-кандидат «веб-фетч терминолога». Урок в копилку: реплика владельца с идеей архитектуры — это вход в развилку, а не шум; «не ратифицировано» — повод принести ратификацию, а не отгородиться. + +## Оркестратор №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 + флаговый стоп). Хендофф-дисциплина «чего числа НЕ доказывают» ратифицирована нормой отчётов; в промты идёт формула «пере-мерь свой вывод ДРУГИМ способом, чем получил». + +## Оркестратор №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.33–36. Активные промты теперь ровно три: `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.12–0.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`. **Прогон:** новый проект, главы 1–10 из исходного GB18030, сквозная цепочка ingest→чанкер→драфт→майнинг-стоп(подпись владельца)→редактура→чекеры→экспорт; судья НЕ зовётся; петля ремонта остаётся выключенной, но read-only скан остатка — ГЛАВНОЕ измерение (цифра для решения о включении петли, D39.24). **Семь доказуемых утверждений** (каждое — с сырьём): живое срабатывание rebill-гейта (снапшот разошёлся ⇒ гейт обязан выстрелить — первое исполнение механизма пака-18) · майнинг-стоп с подписью · чекеры и остаток · наблюдаемость после флипа · лейбл-путь как no-op · деньги durable и факт против оценки $0.10–0.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/ранобэ), а временем и необратимостью решений, снятых на форме, которую мы всё равно собирались менять; мерить эффект на 5–10 главах мы уже умеем (в 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` — двухфазный (дизайн V1–V6 → ратификация → стройка); несущее в нём: реестр обращений как МАТЕРИАЛИЗАЦИЯ журнала ты/вы (не второе хранилище) · 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:** хроника 13–25.07 (стройка паков 11–16, 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; корпус D1–D38 — справочник по ссылкам/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/`; живое — роль/методология/уроки/нормы §1–11 — дословно; состояние больше НЕ дублируется, только указатели в PROGRESS/D-лог); D-лог решено НЕ резать (после правила чтения корпус не налог; физический сплит ломает file:line-ссылки ради нуля); +пинг №7 полигону (eval/README от 19.07). + +## Оркестратор №7 — DOC-SYNC PASS ИСПОЛНЕН (аудит владельца 25.07): puml перерисованы, 14 доков синканы с D1–D39.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, exp12–16 в карте, archive/reports описан, статус 25.07, пак-17 ЗАПУЩЕН) · POLYGON_PACKAGE4-баннер (пост-D39.22 рамка, quirks-ссылка :74). Зона полигона не тронута — 6 пингов в трекере петель. Верификация: все баннер-клеймы грунтованы file:line аудиторами + мои спот-чеки; спорных inline-правок тел — две (F1-строка в 06, врезка слоя 2 в 09), обе high-confidence по коду. + +## Оркестратор №7 — промт пака-17 «канал B вживую» ВЫДАН (двухфазный: дизайн B1–B6 → ратификация → стройка), 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 + замер остатка ремонта → решение владельца о включении петли). + + +*(Хроника 13–25.07 — стройка паков 11–16, rerun2, лендинги D39.12–D39.24 — перенесена в [archive/PROGRESS-2026-07-13-25.md](PROGRESS-2026-07-13-25.md), слайс 25.07.)* + +### РЕСЁРЧ ОБЩНОСТИ фаза 1 ИСПОЛНЕН ($0, read-only, кода не тронуто) — СТОП на ратификацию, 31.07 + +Отчёт: [`archive/reports/GENERALITY_RESEARCH_2026-07-31.md`](reports/GENERALITY_RESEARCH_2026-07-31.md). Промт D39.59 отработан целиком: полный скан → пять вёдер → пересборка пака-21 → план пакетов с ценами → счёт масштаба → критик полноты. Метод: 8 срезов кода, каждый адверсариально перепроверен вторым проходом с прогоном чужих grep; 5 сквозных разборов (цены снапшота · синк с D-логом · пересборка пака-21 · сухой прогон второй пары · алгоритмы), каждый кросс-чекнут; несущие числа пере-мерены сессией лично. **Долг = 149 сайтов в 45 файлах** (133 в `.go`), 111 из них НЕ забуканы; вёдра A=27 · B=6 · C=104 · D=12 · легитимно E=106. **Ось: источник/пара 63% · ЦЕЛЬ (ru) 30% · КНИГА 3% (4 сайта поимённо)** — по книжной оси движок практически чист. **Долг меньше бэклога:** строка 32 пишет «isRuTarget×11 · TokenizeCyrillic×6» — это счёт грепа, боевых call-site **6 и 2**; живых CJK-литералов в исполняемом Go — 27 строк в 12 файлах из 201 (87% — комментарии). **Вторая пара:** golden-фикстура уже ja→ru (скелет доказан), но через `prompt_override`, без langpack и пар-конфига; ja→ru проходит безопасно без правки Go, **en→ru — небезопасно** (молча спят детектор эха `cjkShare`=0 и майнер `hanRuns`=0). Данными лечится 11 позиций, Go требуют 5 (+2 латентных), ни одна не блокирует запуск. **Цены:** сдвиг любой из 20 осей снапшота = перепокупка книги, ре-пинуема ровно одна (`memory_version`); вынос в `configs/langpacks/` двигает `LangpackVersion` включая КОММЕНТАРИИ (хеш над сырыми байтами), вынос в `internal/lang/data/` — $0; новая пара — $0 для существующих книг. Рецепт воспроизведения хеша пака без запуска Go проверен: даёт `a28ed743c99c`. **Две находки сверх задачи.** (1) `internal/lang/data/*.txt` (6 файлов, из них `injection.txt` едет на провод, `target-ru.txt` определяет вердикты санитайзера) **не хешируются ничем** — механизма «байты ЕСТЬ версия» на эмбед-плоскости НЕТ, правка байта без ручного бампа константы = тихая пере-оплата вне контура Р6 (`rebill.go:137-139`). (2) **Живой баг:** `isCJKLang` числит `ko`, а `cjkShare`/CJK-leak/гард ремонта Hangul не содержат — корейское эхо невидимо и не эскалируется. **Пак-21 пересобран:** все якоря D39.39 устарели (пак-19 их сдвинул) — даны актуальные; из 12 дефектов собственно zh-привязок ТРИ, остальное — ось ЦЕЛИ; Р3 закрыт D39.44 Q4, Р1 расщепляется ⇒ на владельце остаются ДВА вопроса вместо четырёх. **План — 6 пакетов** (П0 «байты есть версия» предусловием → П1 цель-шов → П2 скрипт-шов источника → П3 нарезка/оценка → П4 пак как механизм → П5 майнер, гейт на реальную вторую пару), приёмочный критерий каждого — «пара, которой нет в репо, проходит слой без правки Go». **Несущая рекомендация: один общий `--resnapshot` сейчас** — оплаченный корпус = два мини-прогона по $0.13–0.23, после МАСШТАБА тот же дифф стоит порядки. **Пять вопросов владельцу в §12 отчёта**, главный бьёт по посылке: больший и замороженный (D39.24 «НЕ чинить») кусок долга лежит на оси ЦЕЛИ, а директива названа по оси ПАРЫ. Сессия не коммитила; `backend/` не тронут ни строкой. + +### Пак-18 «долги контракта» ОТРАБОТАН и ПРИНЯТ (D39.31, приёмка оркестратора №8), 25.07 + +Отчёт: [`archive/reports/PACK18_DEBTS_REPORT_2026-07-25.md`](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 «распарсено, но не проведено в раннер»). + + +### Мини-прогон ~10 глав ИСПОЛНЕН одной сессией (гигиена → главный проход → проба банкноты → верификация), 25.07 + +Отчёт: [`archive/reports/MINIRUN_REPORT_2026-07-25.md`](reports/MINIRUN_REPORT_2026-07-25.md) — пре-регистрация первым разделом (написана ДО первой траты, критерии провала названы заранее). **ШАГ 0 (гигиена, $0-код, НЕ закоммичен):** обязательный флип `Gates.RegressionGuard.Enabled` во всех 5 шиппинг-конфигах (D38.4 п.5, невыполненное обязательство D39.34) + 3 теста, что гейт РЕАЛЬНО стреляет через настоящий драйвер; два нита общности взяты в fail-loud форме БЕЗ Go-дефолта (множитель `dc1_unit_in_hours` и Detail-шаблоны `msg` → пар-данные; возражение D39.31 п.5 снято тем, что дефолта просто нет); проекция пере-оплаты в `tmctl status` (спека D15.2 §9, тем же `projectRebill`, что и гейт). Приёмка: build/vet чисты, `-race` 15/15, **golden `211c9013…089045d6` байт-в-байт равен HEAD**, ценз ИМЁН 475→483 (удалено 0), **5 мутаций — 5 красных**. Сдвинутая версионная ось ровно одна: `langpack_version` `a7d4be2c0465`→`a28ed743c99c`; флип гарда снапшот НЕ двигает (проверено исполнением). **Прогон:** новый проект `guzhenren-minirun` (главы 1–10, 20 драфт-чанков → 14 edit-единиц), **$0.114291** при оценке $0.10–0.19, 14/14 ok. **Семь утверждений подтверждены сырьём:** rebill-гейт отработал ЖИВЬЁМ впервые (проекция `34 единицы ~$0.114291` = списанному ТОЧНО; 3 отказа, деньги/строки побайтно не тронуты; пас-лег на микро-проекте за $0.003) · майнинг-стоп остановил и очистился, термы БЕЗ dst (D39.36 подтверждён живьём) · `escalation_model` = ОТВЕТИВШАЯ модель · лейбл-путь no-op (0 расхождений requested↔actual, полей маршрутизации в read-model НЕТ) · деньги durable (`committed == SUM(checkpoints)` точно, `finish=stop` 35/37) · `RegressionGuard` даёт честный ноль (перепроверен независимо: ratio 0.90–1.06, потеряно 0 чисел). **ГЛАВНОЕ ИЗМЕРЕНИЕ: `repair_candidates` = 0** — на этих 10 главах платная петля не нашла бы НИ ОДНОЙ работы; из 11 стилевых сигналов **11 — ложняки** (8 `dialogue_dash` бьют по законной русской типографике «мысль в «…» против речи в «—»», 2 `percent_scale` называют верный масштаб ошибкой масштаба, 1 `dc2` — гипербола, о которой предупреждает его же комментарий). **Проба банкноты ($0.021688): канал ФИЗИЧЕСКИ РАБОТАЕТ** — 71 строка на 9 из 20 чанков, `truncated` 0, сепаратор из чистого черновика срезан; предложения годятся как основа канона (~40–45% полезных: 智慧蛊 «гу Мудрости» и 古月陈博 «Гуюэ Чэньбо» дословно совпали с подписями rerun2). **Поправка к D39.36: предложенный dst НЕ теряется** — сырой блок лежит в `checkpoints.response_text` первичной попытки (9 строк), выбрасывается только распарсенная структура ⇒ починка шва не требует пере-прогона. **Сработали два пре-регистрационных критерия провала, не переопределяю:** П3 (эхо `cjk_artifact` 1/20 = 5% при thinking-ON; эскалация вылечила) и П8 (`parse_fail` 1 — модель выдала строку без ханьца в src, парсер отработал по контракту). **Найденные дефекты:** Д1 эхо-метрика слепа к эху, вылеченному эскалацией (отчёт говорит 0.0% там, где живьём 5%) · Д2 редакторский `max_tokens` всегда равен флору модели 8000, две единицы не поместились — **15.5% денег прогона ушло в брак** · Д3 `LOG_LLM_BODIES` режет тела на 4096 байт, банкноту в логах не увидеть · Д5 майнинг-стоп очищается РАУНДАМИ (подпись 学堂 расчехлила 学堂家老 — владелец подписывал дважды) · Д6 в сиде нет форм мн. ч. (4 из 9 промахов пост-чека — данные, не перевод) · реальный дрейф канона ровно один: 族长 → «глава рода» вместо «глава клана». Подписи владельца: 学堂 → «школа» (рассмотрел «академию», отклонил по фактуре), 学堂家老 → «старейшина школы». Сессия НЕ коммитила. + +### Фикс-пак по итогам мини-прогона: 4 дефекта починены, 2 кандидата ОТКЛОНЕНЫ исследованием, 25.07 + +Санкция владельца «исследование → правки → ревью». Детали — §14 [`archive/reports/MINIRUN_REPORT_2026-07-25.md`](reports/MINIRUN_REPORT_2026-07-25.md). **Починено:** Д1 эхо-метрика (миграция **v11** `chunk_status.first_flag_reason`; `echo_draft` теперь считает эхо, ВЫЛЕЧЕННОЕ эскалацией, + `echo_draft_recovered` держит число честным в обе стороны) · **Д4 шов банкноты замкнут** (та же v11, `retrieval_state.banknote_detail`; майнинг-стоп джойнит предложения в подписную карту: `dst` = самое частое, альтернативы с весами в note, **`status: auto` не трогается** — trust-gate D39.2 по-прежнему не пускает неподписанное в инъекцию; развилки D39.36 п.2/п.3 НЕ трогались, это продуктовое решение владельца) · Д7a `dialogue_dash` перестал считать смешением стилей внутреннюю речь (данные таргета `inner_speech`, `CheapGateVersion` v4→v5) · Д3 `LOG_LLM_BODIES` кап 4096→32768 и обрезка СЕРЕДИНЫ (блок банкноты живёт в хвосте) · Д2 флор `deepseek-v4-pro` 8000→16000 по замеру (перебор бюджета бесплатен — списание по факту; недобор стоит целой генерации, на прогоне это 15.5% счёта). **Находка, удешевившая Д4:** сырой текст банкноты УЖЕ durable в чекпоинте, resume его пере-парсит ⇒ новой таблицы не понадобилось, хватило четвёртой `*_detail`-колонки. **ОТКЛОНЕНО после написания и прогона (обе правки откачены):** `percent_scale` — «стрелять только на цифровой форме» роняет ратифицированную фикстуру «шесть и шесть десятых»=6.6 (настоящая 100× ошибка тоже прописана словами), нужен разбор числительных таргета в данные · `dc2` 千万 — живой ложняк ШЕЙПОМ ТОЖДЕСТВЕНЕН ратифицированному ИСТИННОМУ (千万生灵), offline неразделим ⇒ это принятая неоднозначность класса, а не баг реализации (правит мой же §6.2 отчёта). **Ревью:** build/vet/gofmt чисты · `-race` 15/15 · **golden пере-капчер санкционирован и ДОКАЗАН — маскированный структурный дифф ПУСТ** (`211c9013…089045d6`→`1165e3a9…2132ea82`; двигались только версии и производные от них хеши, ни один вердикт/текст/стоимость) · ценз ИМЁН 483→491, удалено 0 · **6 мутаций — 6 красных** · **живая проверка на данных прогона**: 9 реальных блоков банкноты прогнаны через новый шов → 71 строка, 67 ключей, 2 терма с конкурирующими вариантами, среди них 学堂家老 — под фиксом подписная карта пришла бы с «старейшина школы», ровно тем вариантом, который владелец выбрал вслепую. **Цена:** две оси снапшота сдвинуты (`style_check_version`, `max_tokens` через флор) ⇒ следующий прогон стендовой книги требует `--resnapshot --accept-rebill`; сегодня это бесплатно (снапшот стенда и так разошёлся, D39.35), а экономия Д2 окупает пере-пин на первом же прогоне. **Моя ошибка в ходе ревью, фиксирую:** проверка миграции v9→v11 собрала конфиг «копия rerun2-БД + источник мини-прогона», движок увидел НОВУЮ книгу и реально перевёл — **$0.046668 (31 вызов) потрачено зря**; оригинал rerun2 и бэкап целы (v9, spend не изменился), трата осталась на выбрасываемой копии. Итог денег сессии: $0.139060 + $0.046668 брака = **$0.185728**. Сессия НЕ коммитила. + +### Сквозная проверка бэкенда после фикс-пака (вопрос владельца «а ты протестировал?»), 26.07 + +Честный ответ был «нет»: после правок гонялись ТЕСТЫ, а не бэкенд. Прогнал два проверочных прогона ($0.049, главы 1–2 и 4–5, банкнота ВКЛЮЧЕНА) — §15 отчёта. **Все узлы отработали:** миграция v11 на свежей БД · ingest/чанкер · драфт с банкнотой (`banknote_detail` пишется живьём) · майнинг-стоп + подпись + резюм за $0 · edit-волна 3/3 · санитайзер поймал РЕАЛЬНЫЙ дефект (гомоглиф «лицó») · **`RegressionGuard` дал ПЕРВОЕ ЖИВОЕ срабатывание** (`number_drift [66]` — «66%» → «шестьдесят шесть процентов»: ровно тот ложняк, что предсказан его же докой) · банк 56+12 · экспорт чист (сепаратор 0 раз) · деньги durable. **Найдено ТОЛЬКО сквозным прогоном:** (1) **поправка к моему вчерашнему утверждению** — банкнота НИКОГДА не предлагала `学堂` отдельно, только `学堂家老`, значит первая подпись всё равно пришла бы голой, фикс помог бы во ВТОРОМ раунде; (2) **структурный разрыв**: на verify2 стоп дал `terms_with_proposed_dst=0` — майнер предложил 花海/陈博, банкнота 古月方源/学堂家老/开窍大典/力量蛊/智慧蛊/灵泉, пересечение НУЛЕВОЕ (механизм исправен, но каналы выбирают разные популяции: майнер — частотные name/place/title, банкнота — новую терминологию) ⇒ следующая работа не «замкнуть шов» (замкнут), а заставить WHAT покрывать кандидатов WHICH; (3) **полярность дискриминатора чекера была неверной** — список глаголов МЫСЛИ безграничен (живьём тут же выдало «понимал», «размышлял»), перевернул на закрытый список глаголов РЕЧИ + вето «про себя»: замер по реальным экспортам по чанкам **8→0** и **1→0**, настоящее смешение речи по-прежнему флагается; (4) **дыра в моих тестах**: мутация «снять nil/no-data гард» ВЫЖИЛА (ветка книги без данных таргета не покрыта, там nil-разыменование) — закрыто тестом, пере-мутация красная с паникой. **Ревью:** `-race` 15/15 · golden пере-капчен второй раз, маскированный дифф снова ПУСТ (`281d7025…`) · ценз 475→492, удалено 0 · **9 мутаций — 9 красных**. Деньги сессии суммарно: $0.139060 прогон + $0.046668 мой брак + $0.048855 проверка = **$0.234583**. Сессия НЕ коммитила. + +### ХЕНДОФФ ОРКЕСТРАТОРУ: сессия бэкенда 25–26.07 закрыта владельцем, 26.07 + +Сводка для выдачи следующего промта (точечная зачистка + повторный прогон): [`archive/reports/MINIRUN_HANDOFF_2026-07-26.md`](reports/MINIRUN_HANDOFF_2026-07-26.md). Содержит то, чего нет в отчёте прогона: **вес каждого числа** (в частности — «остаток дефектов = 0» означает «ноль в ТРЁХ классах, которые петля умеет чинить», а не «текст чистый»; по ней корректно решать «не включать петлю», но некорректно читать её как оценку качества) · **самооценка честности пяти фиксов** (один чистый, два обхода, два подогнанных под корпус; `dialogue_dash` — 29 глаголов, выведенных из отказов ОДНОЙ книги и проверенных НА НЕЙ ЖЕ, «8→0» = замер на обучающей выборке) · **мои методические ошибки** ($0.046668 брака от конфига, собранного sed-ом по чужому book.yaml; рекомендация владельцу раньше фактуры; утверждение о пользе фикса без проверки — банкнота НИКОГДА не предлагала `学堂` отдельно, значит первая подпись всё равно пришла бы голой; пре-рег П8 сформулирован мимо диагноза) · **8 хвостов, увиденных но не чиненных** (главный: генерик-фолбэк нарезки — китайские числа, а `TokenClassCounts` кладёт кану и ханьцзи в один класс: замер по книгам на диске — в японской кана 70% класса ⇒ est_out завышен ~1.7×, вдвое больше вызовов, и всё это МОЛЧА; плюс `EstimateTokens` недосчитывает кириллицу на резервациях, golden покрывает только фолбэк-путь без langpack, `prompt_override` — легальная дыра в гарантии слоя 2) · **что обязан измерить следующий прогон** (эхо-метрика на живом эхо; джойн WHAT↔WHICH при НЕПУСТОМ пересечении; `dialogue_dash` на тексте, которого сессия не видела — любой замер на 蛊真人 теперь загрязнён подгонкой). **Проверено исполнением, $0:** обе не-китайские книги с диска (`Kristoff_Jay_-_Empire_of_the_Vampire_3`, `isekai_majutsushi_jp`) падают ГРОМКО до единого цента, называя ожидаемый путь промпт-пакета; с обойдённым гейтом обе проходят ingest/чанкер/read-model без единой правки Go (EN 352 единицы, JA 138) — норматив общности §0 держится на уровне КОДА, но данные и фолбэки везде китайские. **Рекомендация сессии, если брать один хвост:** размеченный набор для чекеров — без него следующий прогон произведёт ещё один набор чисел, держащихся на глазомере. Дерево НЕ закоммичено (35 позиций, миграция v11, три сдвинутые оси снапшота). + +### Пакет-8 «три пре-замера перед расширением эмиссии» ИСПОЛНЕН, СТОП на ратификацию ($0.11313 из $0.14), 26.07 + +Отчёт: [archive/reports/POLYGON_PREMEASURE_2026-07-26.md](reports/POLYGON_PREMEASURE_2026-07-26.md). Пре-регистрация §0 написана до единого платного вызова; критик полноты — на каждую фазу; майнер и сборка запроса роли — из пин-копии `0a7fa5b` (эмиссия побайтно равна пину пакета-7 `996bade`, проверено `cmp`). + +**Главный итог — вопрос расширения переставлен.** Расширять эмиссию майнера незачем и недостаточно: 66 из 74 поверхностей банкноты лежат ВНЕ варианта C (потолок и фильтр типа сняты), потому что не входят в кандидатный алфавит по ЧАСТОТЕ, а не из-за снимаемых констант. Каналы почти не пересекаются — 2 общие поверхности из 78, и 5/6 объёма даёт банкнота, которая одна умеет класс `term` вместе с dst. + +**Замер 1 ($0) — пре-зарегистрированный стоп сработал.** Совместный recall против подписанного сида НЕИЗМЕРИМ на существующих артефактах: банкнота гонялась с непустым банком, 49 из 51 терма сида были инъектированы, а промт просит «новые, которых НЕТ в глоссарии»; свободных пар (терм × глава) 21 из 217, и все три их поверхности короткие. Цифру не подгонял — назвал цену измерения (холодный прогон с пустым банком). Страховочный выход дал главный результат выше. Побочно: банкнота невоспроизводима (Жаккар двух прогонов одних глав 0.077, после снятия `《》` 0.40), 48% её предложений разовые, `《咏梅》` и `咏梅` едут как две строки. Подписанные `蛊`/`转` не доезжают до модели НИ ОДНИМ каналом (`allow_short:false` при `SignificantLen=1`) — правка данных, не кода. Нашёл и дефект нарезки пакета-7: `--max-chapters` фильтрует по НОМЕРУ, а нумерация 节 перезапускается в каждом из 6 томов, поэтому «gu 25гл» был рассеянной выборкой; абсолютные recall занижены втрое (0.089 → 0.255 на непрерывном срезе), структурный вывод про класс `term` устоял. + +**Замер 2 ($0.0168, 3 повтора) — ВЕРДИКТ ПРОВАЛ по пре-зарегистрированному порогу.** На хвосте ранга варианта C роль выдумывает dst для 77 · 80 · 78 кандидатов из 100. Сентинел ⟦TM-NO-DST⟧ различает «переводимо/непереводимо», а не «терм/не терм» (огрызки отклоняет 7/7, `一天` переводит «один день»), и на своей же задаче нестабилен (размах 0.375). Контроль на подписанных термах: 8 из 9 ответов совпали с подписью — роль умеет отвечать верно и не умеет отказываться. Условие применения ратифицированного фолбэка (D39.46, судья-с-декоем) наступило; строить его не моё дело. + +**Замер 3 ($0.0963, 6 точек × 3 повтора + арм без якоря) — дефолт 3×40 достаточен, сетка неразличима.** Средние 0.533–0.633 при внутриточечном размахе 0.175; на расходящихся позициях то же (0.289–0.445 при размахе 0.273). Развилка владельца «широкая подача × узкий контекст vs узкая × широкий» НЕРАЗЛИЧИМА (8×40 = 0.533 против 3×120 = 0.567). 8×120 стоит в 4.9 раза дороже 0×0 и не точнее. **Напряжение с ратифицированным D39.46 («контексты — главный рычаг») называю прямо и за отмену не выдаю:** три различия постановки (лёгкая выборка по частоте вместо трудной S1, боевой якорь ⟦TM-CANON⟧, отсутствие строки `drafts:`), ни одно не устранял; закрывает вопрос пере-замер выборки пакета-7 на боевой сборке. + +**Самая тяжёлая находка — §3.4: якорь ⟦TM-CANON⟧ держит ЯЗЫК ответа.** Арм без якоря в одном прогоне из трёх вернул 22 строки из 40 по-английски («Rank 1», «Grade C», «cultivation», «Primordial Sea»); в 8×120 — 3 и 2 латинских ответа. Ни `ParseReply`, ни эхо-гейт этого не ловят, строка уезжает в карту подписи как `status:draft`. Пустой/короткий якорь — это ровно состояние книги сразу после расширения эмиссии. + +**Снял собственную рекомендацию замером (§5.1).** Предлагал дисциплинировать банкноту частотным порогом; посчитал частоты по всей книге и обнаружил, что разделяющего порога не существует: `少年` («юность») 1149 против `光阴之河` («Река времени») 15. Отбор здесь семантический — либо вызов модели, либо владелец. + +**Вопросов владельцу нет; в `backend/` не писал, не коммитил.** Открытым остаётся холодный старт с пустым банком — единственная цифра, на которой стоит цена расширения, и она стоит денег. + +**Добор §7 по D39.51 — два замера, $0.00960 (пакет-8 нарастающим итогом $0.12273).** Пре-регистрация §7.1–7.2 написана до трат и до счёта. **(а) Пример формата в промпте роли — критерий ВЫПОЛНЕН:** три строки `Пример строки ответа: 师父наставник` дают **0 не-целевых строк из 120** против **22 у контроля** (тот же арм 3×40 без якоря; фактор ровно один — доказано диффом собранных запросов, ключи и user-часть побайтно те же; пример-терм в срезе не встречается ни разу, эталон подсказать не может). Мощность названа ДО прогона и ограничивает вывод: срыв в контроле шёл 2 батча из 9, значит при нулевом эффекте шанс чистого прохода (7/9)⁹ = 0.104 — «согласуется с починкой», не доказательство; удвоение повторов уронило бы до ~0.011 за ≈$0.010. **Побочно (§7.4): пример НЕ чинит утечку алфавита и языковой экран её не поймает** — `甲等 → «категория A»` с ЛАТИНСКОЙ A против подписанного «класс А» с кириллической (то же на `乙等`/`丙等`, 7 строк в арме с примером, 3 в контроле; сравнение причинным считать нельзя — в контроле те же термы уехали целиком в английский). Ни один из 53 подписанных dst сида латиницы не содержит, то есть правило проверяемо. **(б) P1 consistency — НЕ разделяет, $0.** Разметка 74 поверхностей — **три независимых слепых разметчика** (согласие 0.973/0.986/0.986, единогласно 72 из 74, метка 37 TERM · 37 JUNK), им не давали ни частот, ни глав, ни самой метрики. Сработал заранее названный стоп: вырожденных (встречаются в ≤1 главе → P1 = 1.0 по построению) **54 из 73 = 0.740**, и среди них ровно **27 TERM и 27 JUNK** — максимум получают обе метки. Критерий ≥80%/≥60% не выполнен ни на полном наборе, ни на 19 невырожденных; AUC **P1 = 0.438** (ниже монетки) при **частоте 0.500** — арм-без-фактора провалился ровно как обязан, независимо подтвердив §5.1 на другом наборе и другой разметке. Отклонение «глава вместо чанка» (тексты боевых чанков не сохранены) названо заранее и его цена измерена: вырожденность 0.740 по главам против 0.730 по чанкам — мелкая единица не спасает. **Права на порядок подачи P1 не заработал.** Мерить его по-настоящему стоит на том же полном прогоне, что и холодный старт, отдельных денег не требуя. + +**Добор §6 по вопросу владельца «хватает ли одной книги, движок ведь универсальный» ($0, после СТОПа).** Прогнал боевой майнер с того же пина по стенду. `en→ru` сегодня не запускается вовсе: пары `en`/`en-ru` в `configs/langpacks/` нет, загрузчик отказывает ЛОУДНО (D39.15 работает как задумано — недостающее это данные). Когда загрузчик удовлетворён зеркалом zh-пака, канал WHICH на латинице даёт **0 кандидатов на 814k знаков** обеих английских книг (Кристофф и Fifty Shades) — механизм в `hanRuns` (`miner_substrate.go:46-48`): кандидатный алфавит есть пробеги ханьских иероглифов, в латинице их нет. На японском (`異世界魔術師`, 134k) канал не молчит, а **ошибается: 10 строк, все типа `name`, все ложные** (`何故` «почему» 44×, `王国` «королевство» 35×, `马鹿` «дурак» 21× — китайские фамильные паттерны на японских composites); настоящий ja-пак ложняки уберёт и не добавит ничего, потому что имена этой книги в катакане, а `hanRuns` её не видит. **Вывод: второй КНИГИ мало — для латиницы нужен второй ДЕТЕКТОР** (прототип и замеры есть: `eval/pkg7/mine_nonhan.py`, каналы ORTHO/DISP/CONTRAST, достаёт `Ashdrinker`/`San Michon`/`Forever King`). Попутно найден дефект общности: **`kwic_width` меряется в РУНАХ** (`terminology.go:332-349`), дефолт 40 живёт в Go одной константой на все пары и означает 43–84 морфемы на zh против 13 слов с обрубленной фразой на en — место такой константы в пар-данных, а мой вердикт «3×40 достаточен» читается только как «43–84 морфемы достаточно». Ничего не строил и не запускал платного: §6.4 — предложение, санкции на него не было. + +### Пакет-6 «размеченный набор для чекеров» ОТРАБОТАН И ПРИНЯТ (D39.39), 26.07 + +Сессия полигона собрала набор из 91 юнита шести реальных прогонов (~149k знаков исходника, 3015 размеченных позиций, 70 дефектов, 21 спорная; синтетики ноль), разметила ДО просмотра вердиктов и прогнала НАСТОЯЩИЕ чекеры replace-харнессом. Первый честный замер линеек: где линейка стреляет — почти не врёт (K1/K2/K3/K5b precision 1.000), но recall почти везде низкий (K4b 0.109 · K3 0.100 · K5a 0.000), K5c ИНВЕРТИРОВАН на реальном материале (супрессор «процент» погасил единственный юнит с 10×-ошибками шкалы), K6 шумит 14:1 (мн.число вне `decl.forms` + однознаковый ключ 转). 12 дефектов чекеров с file:line, 4 вопроса владельцу (Р1–Р4). Приёмка оркестратора: `metrics.json` побайтно ре-раном, независимый пересчёт разметки, живой репро U+0301, сверка K5c по сырому корпусу. Отчёт: [archive/reports/POLYGON_CHECKER_LABELS_2026-07-26.md](reports/POLYGON_CHECKER_LABELS_2026-07-26.md); набор — на стенде (вне git), ре-ран детерминирован. + +*(Закрытая хроника сессий 1–3, 18+ пакетов и exp10/11 (04–10.07) — в [archive/PROGRESS-2026-07-04-10.md](PROGRESS-2026-07-04-10.md), D31.)* + +*(Хроника exp12/exp13 (11–12.07) — в [archive/PROGRESS-2026-07-10-13.md](PROGRESS-2026-07-10-13.md).)* diff --git a/docs/BACKEND_COLDRUN_SESSION_PROMPT.md b/docs/archive/prompts/BACKEND_COLDRUN_SESSION_PROMPT.md similarity index 92% rename from docs/BACKEND_COLDRUN_SESSION_PROMPT.md rename to docs/archive/prompts/BACKEND_COLDRUN_SESSION_PROMPT.md index 161f4c49..d189f2d9 100644 --- a/docs/BACKEND_COLDRUN_SESSION_PROMPT.md +++ b/docs/archive/prompts/BACKEND_COLDRUN_SESSION_PROMPT.md @@ -1,3 +1,5 @@ +**ИСПОЛНЕН ДОСТАТОЧНО И ПРИНЯТ (D39.58), 31.07.2026, АРХИВ.** Закрыт владельцем после банк-стопа (Р7 «замер достаточен», $0.126 из $0.50): recall холодного банка 0.918/0.980, банк приходит переведённым; расщепление версий канала банкноты ратифицировано; эхо-мина жива при thinking-ON (2/20). Хвосты — бэклог-строки 16/18/21/22/24. Отчёты: `../reports/COLDRUN_REPORT_2026-07-31.md` · `../reports/COLDRUN_HANDOFF_2026-07-31.md`. + # Промт бэкенд-сессии: ХОЛОДНЫЙ МИНИ-ПРОГОН (пустой сид, отдельная БД; конфиг D39.51 §6) **Выдан 31.07.2026, оркестратор №9, санкция владельца.** Ты — бэкенд-сессия TextMachine (онбординг: CLAUDE.md → README → CURRENT-STATE → голова D-лога D39.50–56). Зона: `backend/` + каталог нового прогонного проекта. Сессия НЕ коммитит — лендинг оркестратора. diff --git a/docs/BACKEND_GENERALITY_RESEARCH_SESSION_PROMPT.md b/docs/archive/prompts/BACKEND_GENERALITY_RESEARCH_SESSION_PROMPT.md similarity index 93% rename from docs/BACKEND_GENERALITY_RESEARCH_SESSION_PROMPT.md rename to docs/archive/prompts/BACKEND_GENERALITY_RESEARCH_SESSION_PROMPT.md index 08426c25..c5264138 100644 --- a/docs/BACKEND_GENERALITY_RESEARCH_SESSION_PROMPT.md +++ b/docs/archive/prompts/BACKEND_GENERALITY_RESEARCH_SESSION_PROMPT.md @@ -1,3 +1,5 @@ +**ФАЗА 1 ИСПОЛНЕНА И ПРИНЯТА (D39.60), ответы владельца — D39.62/63; АРХИВ 01.08.2026.** Карта = рабочая истина: 149 сайтов/45 файлов, книго-ось чиста, план П0–П5. Фаза 2 идёт ПО НОВОМУ промту `../../BACKEND_GENERALITY_PHASE2_SESSION_PROMPT.md`. Отчёт: `../reports/GENERALITY_RESEARCH_2026-07-31.md`. + # Промт бэкенд-сессии: РЕСЁРЧ ОБЩНОСТИ — инвентаризация языковой привязки движка (фаза 1, read-only, $0) **Выдан 31.07.2026, оркестратор №9, по курсовой директиве владельца (D39.59).** Директива дословно по смыслу: движок НЕ строится под конкретную пару языков (пары — данными или отдельными модулями), НИКОГДА — под конкретную книгу; эдж-кейсы решаются только если класс МАССОВЫЙ для всех книг. Владелец видит в Go-слое жёсткую языковую привязку, накопленную инерцией обследования китайского и Мастера Гу. Этот пак строит КАРТУ привязки и ПЛАН переписывания. **Кода не трогать вовсе.** diff --git a/docs/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md b/docs/archive/prompts/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md similarity index 97% rename from docs/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md rename to docs/archive/prompts/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md index cb72cbff..97798df2 100644 --- a/docs/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md +++ b/docs/archive/prompts/BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md @@ -1,3 +1,5 @@ +**ПАК ЗАКРЫТ ЦЕЛИКОМ 31.07.2026, АРХИВ.** Дизайн ратифицирован D39.55 (9 инвариантов) · стройка принята D39.56 (схема голоса/обращений v13/v14 с условным фолдом · tu-vous-флаггер · спойлер-лик-флаггер; golden байт-идентичен; девиация target-side атрибуции ратифицирована). Отчёты: `../reports/PACK19_DESIGN_2026-07-30.md` · `../reports/PACK19_BUILD_2026-07-30.md`. + # Промт бэкенд-сессии: ПАК-19 «голос и состояние» (ДВУХФАЗНЫЙ: дизайн → ратификация → стройка) **АКТУАЛИЗИРОВАН 26.07 (пост-D39.53), оркестратор №8; дельта 30.07 (пост-D39.54), оркестратор №9.** С момента выдачи (25.07) закрыт ВЕСЬ пак-20 с продолжениями: построены терминолог (роль пар-пака, `internal/terminology`), флаговый стоп `--verify-bank` (дефолт = авто), **авто-провод неподписанного — редакторская инъекция теперь ДВУХСЕКЦИОННАЯ** (закон CONFIRMED + помеченная секция ⟨проверить⟩; ВСЕ строки банка фолдятся в версию памяти — D39.42/45), **точечная ре-редактура по ключу** (bank-only-сдвиг → пере-пин $0 + оплата только затронутых юнитов, `repin.go`), языковой экран `target_script`, дисциплина банкноты (кавычки, агрегация по чанкам); жанровый словарь ОТМЕНЁН КАК КЛАСС (D39.47: решение о переводе = подпись владельца на банк КНИГИ). После этого пака идёт **ХОЛОДНЫЙ мини-прогон** (D39.51 §6: пустой сид, отдельная БД) — твои метрики флаггера попадут в него. Устаревшие места исходного промта исправлены по тексту; при любом конфликте промта с кодом — код и D-лог первичны, пинг обязателен. diff --git a/docs/POLYGON_PROMPTLANG_ANTIECHO_SESSION_PROMPT.md b/docs/archive/prompts/POLYGON_PROMPTLANG_ANTIECHO_SESSION_PROMPT.md similarity index 90% rename from docs/POLYGON_PROMPTLANG_ANTIECHO_SESSION_PROMPT.md rename to docs/archive/prompts/POLYGON_PROMPTLANG_ANTIECHO_SESSION_PROMPT.md index 0a8c619b..e7715495 100644 --- a/docs/POLYGON_PROMPTLANG_ANTIECHO_SESSION_PROMPT.md +++ b/docs/archive/prompts/POLYGON_PROMPTLANG_ANTIECHO_SESSION_PROMPT.md @@ -1,3 +1,5 @@ +**ИСПОЛНЕН И ПРИНЯТ (D39.61), 01.08.2026, АРХИВ.** Р6 отрицателен (боевые промпты остаются русскими) · гейт верности D21 п.6 пройден («цены верности не обнаружено») · вендор-катовер DeepSeek-0731 вскрыт (развилка — бэклог-строка 74). Действующая редакция выводов = §12 отчёта `../reports/POLYGON_PROMPTLANG_ANTIECHO_2026-07-31.md`. + # Промт полигон-сессии: язык промптов (Р6) + fidelity-хвост анти-эхо P4 (открытая петля D21 п.6) **Выдан 31.07.2026, оркестратор №9, санкция владельца.** Зона: `eval/` + `docs/experiments/`. **Потолок $0.15 суммарно**, пре-регистрация ДО первой траты (конфиг+смета+пороги в отчёт, не переписывается), стоп-гейт при упоре — стоп и пинг. Платные вызовы вне пиков DeepSeek (UTC 01–04/06–10). **Первый деливерабл — эхо-блок ≤10 строк.** diff --git a/docs/POLYGON_TOS_RECHECK_SESSION_PROMPT.md b/docs/archive/prompts/POLYGON_TOS_RECHECK_SESSION_PROMPT.md similarity index 87% rename from docs/POLYGON_TOS_RECHECK_SESSION_PROMPT.md rename to docs/archive/prompts/POLYGON_TOS_RECHECK_SESSION_PROMPT.md index eb0c3b0b..416830ac 100644 --- a/docs/POLYGON_TOS_RECHECK_SESSION_PROMPT.md +++ b/docs/archive/prompts/POLYGON_TOS_RECHECK_SESSION_PROMPT.md @@ -1,3 +1,5 @@ +**ИСПОЛНЕН И ПРИНЯТ (D39.57), 31.07.2026, АРХИВ.** Дельт вердиктов нет; Google-мониторинг пере-якорен на цепочку договора (PUP · Additional ToS · Google APIs ToS); следующий триггер 25.10.2026 — СВЕЖИЙ промт. Отчёт: `../reports/TOS_RECHECK_2026-07-31.md`. + # Промт полигон-сессии: ре-чек ToS по календарному триггеру (строка 4 бэклога; D39.32) **Выдан 31.07.2026, оркестратор №9.** Триггер «30.07.2026» наступил. Зона: `eval/` + `docs/experiments/`. Деньги: $0 (веб-чтение первоисточников). Лёгкий пак — без церемоний, но с дисциплиной ответа (улика/«мнение», плотность).