From fe755fe7f01eb8ff5a5b00260503d58726236527 Mon Sep 17 00:00:00 2001 From: heaven Date: Sat, 8 Aug 2026 04:36:08 +0300 Subject: [PATCH] Ratify experiment 21 acceptance with owner confirmations, close line 65, re-disposition lines 55 106 142, add lines 149-153, correct the stack banner --- docs/PROGRESS.md | 29 +++++++++++++++++---------- docs/architecture/05-decisions-log.md | 25 +++++++++++++++++++++-- 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 3089205b..8fcce3ef 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -1,12 +1,13 @@ # Журнал прогресса -> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-08, голова D39.116; хендофф №14→№15 — D39.107). ⚠⚠ **ИНЦИДЕНТ 08.08 00:13 (D39.113): агент моей панели откатил незакоммиченные правки СЕМИ файлов чужих сессий** — `git checkout -- .` в реальном дереве вместо песочницы. Пинг полигона в этом файле ВОССТАНОВЛЕН из бэкапа 00:08; безвозвратно потеряны правки отчёта эксп-21, промта полигона, Приложения А контракта и трёх скриптов `eval/role_topology/`. Коммиты целы. Инвентарь и норма изоляции панелей — D39.113. ⚠ **Оркестраторов сейчас ДВА, зоны разведены явно (решение владельца 07.08):** №15 — приёмка ПЛАТФОРМЫ (исполнена, D39.109–D39.114: P1+P2 приняты, фикс-пак P3 принят и заленден `99f049c` — девять строк регистра закрыты, 8/8 моих посадок поймано, PD-80 и PD-91 пере-проверены исполнением; записи верифицированы независимым агентом, поправки — D39.112) · ВТОРОЙ, параллельный — приёмка ПОЛИГОНА (эксп-21, ждёт результатов; его пинг лежит в секции «Полигон» незакоммиченным). **Номер второму НЕ выдан намеренно:** канонический счётчик один и живёт в `ORCHESTRATOR_SESSION_PROMPT.md`, а выдавать номер сессии, которой я не писал промт, — второй носитель состояния. Одновременно не запускаются; CURRENT-STATE ведут оба, каждый пишет про свою зону и чужую строку не трогает. -> - **Сессия №15 (07.08, ИСПОЛНЕНА):** **приёмка платформы P1+P2 — ПРИНЯТО и ЗАЛЕНДЕНО `fcdab81`** (62 файла, +7066/−252; D39.109). Адверсариально: своя батарея с живым PostgreSQL 18.4 (скипов ноль) · 45 СВОИХ мутаций (33 поймано, 8 выжило, 4 моих посадки негодны и разобраны) · живые пробы на боевом бинаре (PD-2 отпускает на 30.0 с; RFC 9207 сверен у Google) · панель 7 линз с опровергателем на каждую находку. Ратифицировано 6 решений (срок сессии 30 суток — **CONFIRM владельца 07.08 получен** · `iss` авторизационного ответа + миграция 00008 · §13 политики сессий · ломающие изменения зоны · `MemoryMax=80%`+`OOMPolicy=continue` · PD-71 риском). Регистр зоны доведён до **PD-107**. На момент приёмки открытыми были тридцать семь строк, весом major — три: PD-80 (вход выключается ~3 rps, и 429 колбэка добивает начатые входы) плюс PD-95 и PD-105, поднятые эрратой как задание эмиттеру. ⚠ **Числа здесь ИСТОРИЧЕСКИЕ — это то, что нашла приёмка;** живой счёт регистра меняется с каждым фиксом зоны и берётся командой `python3 docs/scripts/counts.py`, а не из этой строки (норма D39.112: один носитель на факт). **Живой уязвимости нет.** ⚠ **ЭРРАТА 07.08 (поймано вопросом владельца, не процессом):** приёмка пропустила, что **D39.106 п.3 снял пайп-транспорт** («PD-59 superseded; пайп-путь `supervisor.go` P1 = дев-режим»), и приняла зонную секцию «канал остаётся stdout» как живое решение. Ратифицированная форма — транзиентный systemd-юнит на прогон, платформа НЕ родитель, события = `events.jsonl` каталога книги, платформа ТЕЙЛИТ с курсором (`research/25` §Форма; родитель+пайп 0/15 голосов). Исправлено: секция журнала помечена superseded, PD-95 переписан и поднят в вес, PD-92 понижен до info, PD-105 повышен, PD-60 пере-диспозиционирован; вердикт лендинга не меняется (код и был дев-путём по D39.107 п.3). ⚠ Пять строк реестра — движковые по существу и должны быть разрулены ДО промта эмиттера (строка 103): PD-95 (транспортная история зоны устарела против D39.106 в двух местах — эмиттер-сессия прочтёт её как задание) · PD-105 (дубль `seq` = убитый платный прогон против норматива «дубль не ошибка»; при тейле файла повторная доставка — норма) · PD-79 (строковый `"null"` в цене = ноль денег) · PD-99 (argv на INFO — деньги/book-id при воркере) · PD-107 (удаление аккаунта обходит гарантию PD-25) · **PD-60 и PD-61** (обратное давление и сброс буфера — свойства эмиттера, задаются дешевле ДО постройки, чем миграцией после; PD-60 переформулируется под файл-транспорт). **Потолок прогона РЕШЁН владельцем 07.08 и ратифицирован формой (D39.110):** шкала в интерфейсе от минимума (ноль нельзя) до баланса аккаунта ⇒ Р7 не амендируется, «выключено» не существует как состояние. Добор: единица шкалы — ГЛАВЫ, не доллары (иначе амендмент D39.84) · потолок в `book.yaml` НЕ пишется, движку нужен приём на прогон — НОВАЯ строка **145** · максимум шкалы = баланс минус открытые холды. **Фри-тир:** ответ дан нормой (автогрант без якоря — не стандарт; `email_verified` Google якорем не является), предложение оркестратора — на бете дефолт в НОЛЬ и начисление руками, при платежах $5 вместе с суточным потолком; **ждёт слова владельца** (PD-104, там же расхождение док↔код: реестр обещает ноль, код начисляет $5) · **приёмка экспов 18/19/20 ИСПОЛНЕНА и залендена** (D39.108: приняты с ревью-шапками; §5.2 экспа 20 — «со слов»; деньги сессии полигона $2.0720; квирк §3б отозван, §3а в силе; D21.4/D21.10 закрыты) · **эксп-21 «топология ролей» — промт выдан** (`POLYGON_ROLE_TOPOLOGY_SESSION_PROMPT.md`: скрин моделей по 7 ключам → бейк-офф топологий на невиданном срезе; потолки ПРЕДВАРИТЕЛЬНЫЕ ≈$7.3 стадиями; **ЗАПУСК = слово владельца**) · строки 135–144 заведены, 103/106/134/65/55/12 пере-диспозиционированы · дальше по D39.107 п.3: промты эмиттера (бэкенд) и денег шва (платформа) — по команде · **S3 «слой данных» ПРИНЯТ и заленден `60595f6` (D39.115): контракт 0.2.0 в каноне, копии байт-равны, блоки компаньона 2.14–2.16 внесены; сессия нашла ТРИ ошибки оркестратора — «баланс минус холды» (вычитание дважды, пере-мерено), `nullable: true` невалиден в 3.1, инструкция внутри нормативного дока протухла от исполнения; норма «не ходить в чужую зону» амендирована: не ПИСАТЬ, а читать код для сверки — можно и нужно** · вахта deepseek-v4-pro — пере-проба маппинга вшита в Ф1 эксп-21 · мини-проба флора 44 — одобрена, промт не выдан. **Открыто на владельце:** запуск эксп-21 (потолки + готовность слепого чтения ~50 пар) · передача платформы · Приложение А `14-api-contract` (незакоммичено) · **НОВОЕ 08.08 (D39.115, фронт):** продуктовое слово «остановлена: лимиты» (сжатие вашей фразы сделала сессия, В-3) · **К-13/Ф-31:** упереться в СВОЙ потолок прогона и остаться без кредита сегодня неразличимо — `paused_reason` имеет одно значение, и первому фраза врёт · **В-4/Ф-30:** глава без заголовка показана голым номером, синтез «Глава N» запрещён К-3 · **фри-тир (PD-104):** дефолт в ноль и начисление руками против автогранта $5 с суточным потолком · **Приложение А (строка 148):** брать реконструкцию с баннером или заполнять заново · 116 (порог подан) · мини-проба 44 · подпись денежного шага 46 · лист В-3+К-6 · вопрос платформы (авто-резюме `paused`). +> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-08, голова D39.117; хендофф №14→№15 — D39.107). ⚠⚠ **ИНЦИДЕНТ 08.08 00:13 (D39.113): агент моей панели откатил незакоммиченные правки СЕМИ файлов чужих сессий** — `git checkout -- .` в реальном дереве вместо песочницы. Пинг полигона в этом файле ВОССТАНОВЛЕН из бэкапа 00:08; безвозвратно потеряны правки отчёта эксп-21, промта полигона, Приложения А контракта и трёх скриптов `eval/role_topology/`. Коммиты целы. Инвентарь и норма изоляции панелей — D39.113. ⚠ **Оркестраторов сейчас ДВА, зоны разведены явно (решение владельца 07.08):** №15 — приёмка ПЛАТФОРМЫ (исполнена, D39.109–D39.114: P1+P2 приняты, фикс-пак P3 принят и заленден `99f049c` — девять строк регистра закрыты, 8/8 моих посадок поймано, PD-80 и PD-91 пере-проверены исполнением; записи верифицированы независимым агентом, поправки — D39.112) · ВТОРОЙ, параллельный — приёмка ПОЛИГОНА (эксп-21 ПРИНЯТ — D39.117; промт эксп-22 выдан). **Номер второму НЕ выдан намеренно:** канонический счётчик один и живёт в `ORCHESTRATOR_SESSION_PROMPT.md`, а выдавать номер сессии, которой я не писал промт, — второй носитель состояния. Одновременно не запускаются; CURRENT-STATE ведут оба, каждый пишет про свою зону и чужую строку не трогает. +> - **Сессия №15 (07.08, ИСПОЛНЕНА):** **приёмка платформы P1+P2 — ПРИНЯТО и ЗАЛЕНДЕНО `fcdab81`** (62 файла, +7066/−252; D39.109). Адверсариально: своя батарея с живым PostgreSQL 18.4 (скипов ноль) · 45 СВОИХ мутаций (33 поймано, 8 выжило, 4 моих посадки негодны и разобраны) · живые пробы на боевом бинаре (PD-2 отпускает на 30.0 с; RFC 9207 сверен у Google) · панель 7 линз с опровергателем на каждую находку. Ратифицировано 6 решений (срок сессии 30 суток — **CONFIRM владельца 07.08 получен** · `iss` авторизационного ответа + миграция 00008 · §13 политики сессий · ломающие изменения зоны · `MemoryMax=80%`+`OOMPolicy=continue` · PD-71 риском). Регистр зоны доведён до **PD-107**. На момент приёмки открытыми были тридцать семь строк, весом major — три: PD-80 (вход выключается ~3 rps, и 429 колбэка добивает начатые входы) плюс PD-95 и PD-105, поднятые эрратой как задание эмиттеру. ⚠ **Числа здесь ИСТОРИЧЕСКИЕ — это то, что нашла приёмка;** живой счёт регистра меняется с каждым фиксом зоны и берётся командой `python3 docs/scripts/counts.py`, а не из этой строки (норма D39.112: один носитель на факт). **Живой уязвимости нет.** ⚠ **ЭРРАТА 07.08 (поймано вопросом владельца, не процессом):** приёмка пропустила, что **D39.106 п.3 снял пайп-транспорт** («PD-59 superseded; пайп-путь `supervisor.go` P1 = дев-режим»), и приняла зонную секцию «канал остаётся stdout» как живое решение. Ратифицированная форма — транзиентный systemd-юнит на прогон, платформа НЕ родитель, события = `events.jsonl` каталога книги, платформа ТЕЙЛИТ с курсором (`research/25` §Форма; родитель+пайп 0/15 голосов). Исправлено: секция журнала помечена superseded, PD-95 переписан и поднят в вес, PD-92 понижен до info, PD-105 повышен, PD-60 пере-диспозиционирован; вердикт лендинга не меняется (код и был дев-путём по D39.107 п.3). ⚠ Пять строк реестра — движковые по существу и должны быть разрулены ДО промта эмиттера (строка 103): PD-95 (транспортная история зоны устарела против D39.106 в двух местах — эмиттер-сессия прочтёт её как задание) · PD-105 (дубль `seq` = убитый платный прогон против норматива «дубль не ошибка»; при тейле файла повторная доставка — норма) · PD-79 (строковый `"null"` в цене = ноль денег) · PD-99 (argv на INFO — деньги/book-id при воркере) · PD-107 (удаление аккаунта обходит гарантию PD-25) · **PD-60 и PD-61** (обратное давление и сброс буфера — свойства эмиттера, задаются дешевле ДО постройки, чем миграцией после; PD-60 переформулируется под файл-транспорт). **Потолок прогона РЕШЁН владельцем 07.08 и ратифицирован формой (D39.110):** шкала в интерфейсе от минимума (ноль нельзя) до баланса аккаунта ⇒ Р7 не амендируется, «выключено» не существует как состояние. Добор: единица шкалы — ГЛАВЫ, не доллары (иначе амендмент D39.84) · потолок в `book.yaml` НЕ пишется, движку нужен приём на прогон — НОВАЯ строка **145** · максимум шкалы = баланс минус открытые холды. **Фри-тир:** ответ дан нормой (автогрант без якоря — не стандарт; `email_verified` Google якорем не является), предложение оркестратора — на бете дефолт в НОЛЬ и начисление руками, при платежах $5 вместе с суточным потолком; **ждёт слова владельца** (PD-104, там же расхождение док↔код: реестр обещает ноль, код начисляет $5) · **приёмка экспов 18/19/20 ИСПОЛНЕНА и залендена** (D39.108: приняты с ревью-шапками; §5.2 экспа 20 — «со слов»; деньги сессии полигона $2.0720; квирк §3б отозван, §3а в силе; D21.4/D21.10 закрыты) · **эксп-21 «топология ролей» — промт выдан** (`POLYGON_ROLE_TOPOLOGY_SESSION_PROMPT.md`: скрин моделей по 7 ключам → бейк-офф топологий на невиданном срезе; потолки ПРЕДВАРИТЕЛЬНЫЕ ≈$7.3 стадиями; **ЗАПУСК = слово владельца**) · строки 135–144 заведены, 103/106/134/65/55/12 пере-диспозиционированы · дальше по D39.107 п.3: промты эмиттера (бэкенд) и денег шва (платформа) — по команде · **S3 «слой данных» ПРИНЯТ и заленден `60595f6` (D39.115): контракт 0.2.0 в каноне, копии байт-равны, блоки компаньона 2.14–2.16 внесены; сессия нашла ТРИ ошибки оркестратора — «баланс минус холды» (вычитание дважды, пере-мерено), `nullable: true` невалиден в 3.1, инструкция внутри нормативного дока протухла от исполнения; норма «не ходить в чужую зону» амендирована: не ПИСАТЬ, а читать код для сверки — можно и нужно** · вахта deepseek-v4-pro — пере-проба маппинга вшита в Ф1 эксп-21 · мини-проба флора 44 — одобрена, промт не выдан. **Открыто на владельце:** прогон Sol-пакетов руками (строка 150) · кредиты xAI (арбитр grok + судья 18+) · запуск эксп-22 (промт выдан, D39.117) · передача платформы · Приложение А `14-api-contract` (незакоммичено) · **НОВОЕ 08.08 (D39.115, фронт):** продуктовое слово «остановлена: лимиты» (сжатие вашей фразы сделала сессия, В-3) · **К-13/Ф-31:** упереться в СВОЙ потолок прогона и остаться без кредита сегодня неразличимо — `paused_reason` имеет одно значение, и первому фраза врёт · **В-4/Ф-30:** глава без заголовка показана голым номером, синтез «Глава N» запрещён К-3 · **фри-тир (PD-104):** дефолт в ноль и начисление руками против автогранта $5 с суточным потолком · **Приложение А (строка 148):** брать реконструкцию с баннером или заполнять заново · 116 (порог подан) · мини-проба 44 · подпись денежного шага 46 · лист В-3+К-6 · вопрос платформы (авто-резюме `paused`). +> - **Сессия параллельного оркестратора (приёмка полигона, 08.08, D39.117):** **эксп-21 ПРИНЯТ** — гейты пере-гнаны исполнением (`verify_report.py` 90/90 код 0 · `itog.py` код 0); подтверждения владельца по тратам и агент-судейству получены, риг-девиация ратифицирована (девиация от промта оркестратора, не решение владельца). Несущее (числа — ИТОГ отчёта 21 и D39.117, здесь не дублируются): **работает ТОПОЛОГИЯ, а не жилец** (нога 2×2) · **черновик — главный рычаг качества финала**, самая недоинвестированная роль · закон-блок ОБЯЗАТЕЛЕН (двойное подтверждение) · роутинг/обратная связка/ремонт-как-замена — отклонены. Диспозиции: 65 ЗАКРЫТА (жилец = цена) · 142 принята формой «пре-гейт перед редактором» · 106 не закрыта (довод, не опровержение) · 55 частично (остаток = чистый zh-срез, заказ повторён). **Промт эксп-22 «панель жильцов» выдан** (149) · Sol-арбитраж вместо слепого чтения (150) · строки 151–153 заведены · три провод-факта в quirks 00. ⚠ Величины эксп-21 предварительны до чистого zh-среза. > - **Сделано (сводно; детали — 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) · **ФАЗА 2 ОБЩНОСТИ ✅ (D39.64: П0 эмбед-хеш · П1 цель-шов · П2 скрипт-шов, ko-баг закрыт · П3 нарезка · П4 манифест-по-каналам; голден вердикт-нейтрален 0/172, майнер-парити EXACT)** · жанровый словарь отменён как класс (D39.47) · петля ремонта построена и НЕ включена (D39.38). > - **Курс:** ОБЩНОСТЬ ✅ → КАЧЕСТВО БАНКА ✅ → ПАКЕТ-ЧЕКЕРОВ ✅ (D39.59–78) → **ФРОНТ-ЭРА открыта** (D39.81–100: зоны `frontend/`+`platform/` живые, контракт API ратифицирован). Развилка блокера 0731 решена вариантом (б) и ИСПОЛНЕНА (D39.87/91: `reasoning_effort:"low"` черновику + ручка эффорта бэнк-ролям, код `553f1a3`); отладочный прогон C не стартовал ⇒ **строка 16 жива и оси голоса 13б без данных**; пак экрана 46 — дизайн заморожен (D39.92 п.1 + D39.93), промт ждёт выдачи; coldrun-b фаза C заморожена чекпойнтом — легитимный исход (D39.86); эталон денег/поведения — coldrun-a (read-only). Числа и хроника закрытых паков — D-лог D39.79–97, сюда НЕ дублируются. -> - **Горизонт (D39.62/67, освежён D39.95):** ре-проба flash ИСПОЛНЕНА и строка 74 закрыта (D39.86/91; порог 6/6 → пере-ратификация выборочным, строка 116; проба Q2 ИСПОЛНЕНА — research/24, D39.102: семейства не окупаются, остаток = рецензент спорных кластеров при ре-пробе 74; эмиссия Q7 — по слову) → **ДОБОР ИДЕАЛА** (первым прогоном: оси голоса 24 · авто-режим · итерация №2 редакторов 65 · цена 16 · веса K1–K12 13а · вне-претрейн чекпоинт 55) → ВТОРАЯ ПАРА живьём (ja→ru; преп 81) → МАСШТАБ → пилот Ф2.5 (гейт резюме-строки 80; строки 62–68, 85) → Ф3 ридер-IDE (69–71). **Стоячие:** ToS-триггер 25.10 · Ш-2 до go1.27 (⚠ + x/text-таблицы Unicode 17 тем же тулчейном — строка 119/реестр 108) · проба провода исполнена и 117 закрыта (D39.97), конфиги 112 залендены — платные прогоны разблокированы. -> - **Стек:** draft deepseek-v4-flash thinking-ON (банкнота: ⚠ канал в shipping-c1 НЕ включён — жив ран-локальным конфигом книги, строка 140) **⚠0731** → терминолог (та же модель, батчи, экран `target_script`) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (⚠ exp20/D39.108: второй проход на dspro отрицателен по слепому суду — судьба роли = эксп-21; ⚠ вендор АНОНСИРОВАЛ смену маппинга эффорта pro «early August 2026» — вахта в реестре 108; glm-5 резерв) → судья gemini (Ф2, полигон); канал B Mistral+grok; ~$0.85/ранобэ (D30.4) — 112 залендена (D39.97), пере-калибровка цены при следующем платном прогоне. -> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 08.08 (D39.116, скриптом по таблице; обновлять при каждом лендинге):** всего **123** строк · зона бэкенд **64** строго (ячейка ровно «бэкенд») / **82** широко ⚠ (испр. 08.08: было 62/79 — мой счётчик читал колонки СЛЕВА и на строке 127 с `seed|ruby|auto` внутри ячейки принимал за зону слово «ruby»; теперь колонки читаются с конца, а битая форма строки — расхождение, а не тишина) (ячейка содержит «бэкенд») · **блокеров очереди 0**, платные прогоны разблокированы · «скоро» **33** (2·4·18·46·49·55·99·100·101·103·108·109·113·114·116·118·119·120·121·125·**126**·128·129·130·134·**135·136·138·139·140·143·145**) · гейт-строки эксп-21: 65·106·142; строка 5 — остаток гейчен ре-пробой 74 (D39.102 п.2); остальное «когда-нибудь». ⚠ **Счёт — НИЖНЯЯ граница долга, а не потолок:** трекер содержит только замеченное, и 02.08 дважды за $0 свежие глаза вытащили из кода дефекты, которых в нём не было (релей фронта → строки 99/100/102; приёмочное ревью → третий шов `repair.go:384` в 104 и честность `quality.go:436` в 105). Лента ✅ выше — про ЗАКРЫТЫЕ паки, читать её как «долга нет» неверно (разбор — вопрос владельца 02.08, D39.89). +> - **Горизонт (D39.62/67, освежён D39.95):** ре-проба flash ИСПОЛНЕНА и строка 74 закрыта (D39.86/91; порог 6/6 → пере-ратификация выборочным, строка 116; проба Q2 ИСПОЛНЕНА — research/24, D39.102: семейства не окупаются, остаток = рецензент спорных кластеров при ре-пробе 74; эмиссия Q7 — по слову) → **ДОБОР ИДЕАЛА** (первым прогоном: оси голоса 24 · авто-режим · цена 16; жильцы ролей решаются ДО прогона отдельным эксп-22 — строка 149 · веса K1–K12 13а · вне-претрейн чекпоинт 55) → ВТОРАЯ ПАРА живьём (ja→ru; преп 81) → МАСШТАБ → пилот Ф2.5 (гейт резюме-строки 80; строки 62–68, 85) → Ф3 ридер-IDE (69–71). **Стоячие:** ToS-триггер 25.10 · Ш-2 до go1.27 (⚠ + x/text-таблицы Unicode 17 тем же тулчейном — строка 119/реестр 108) · проба провода исполнена и 117 закрыта (D39.97), конфиги 112 залендены — платные прогоны разблокированы. +> - **Стек:** draft deepseek-v4-flash thinking-ON (банкнота: ⚠ канал в shipping-c1 НЕ включён — жив ран-локальным конфигом книги, строка 140) **⚠0731** → терминолог (та же модель, батчи, экран `target_script`) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (⚠ эксп-21/D39.117: топология ПОДТВЕРЖДЕНА — второй проход покупает +2.5 ошибки/ед. при неразличимости жильцов dspro/glm-5, прежний вывод exp20 «на dspro отрицателен» опровергнут; закон-блок ОБЯЗАТЕЛЕН — строка 134; величины предварительны до чистого zh-среза; ⚠ вендор АНОНСИРОВАЛ смену маппинга эффорта pro «early August 2026» — вахта в реестре 108; glm-5 резерв) → судья gemini (Ф2, полигон); канал B Mistral+grok; ~$0.85/ранобэ (D30.4) — 112 залендена (D39.97), пере-калибровка цены при следующем платном прогоне. +> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 08.08 (D39.117, скриптом по таблице; обновлять при каждом лендинге):** всего **127** строк · зона бэкенд **64** строго (ячейка ровно «бэкенд») / **84** широко ⚠ (испр. 08.08: было 62/79 — мой счётчик читал колонки СЛЕВА и на строке 127 с `seed|ruby|auto` внутри ячейки принимал за зону слово «ruby»; теперь колонки читаются с конца, а битая форма строки — расхождение, а не тишина) (ячейка содержит «бэкенд») · **блокеров очереди 0**, платные прогоны разблокированы · «скоро» **36** (2·4·18·46·49·55·99·100·101·103·108·109·113·114·116·118·119·120·121·125·126·128·129·130·134·135·136·138·139·140·**142**·143·145·148·**149·150**) · гейт-строки эксп-22: 55·153 (плюс 150 — руки владельца); строка 5 — остаток гейчен ре-пробой 74 (D39.102 п.2); остальное «когда-нибудь». ⚠ **Счёт — НИЖНЯЯ граница долга, а не потолок:** трекер содержит только замеченное, и 02.08 дважды за $0 свежие глаза вытащили из кода дефекты, которых в нём не было (релей фронта → строки 99/100/102; приёмочное ревью → третий шов `repair.go:384` в 104 и честность `quality.go:436` в 105). Лента ✅ выше — про ЗАКРЫТЫЕ паки, читать её как «долга нет» неверно (разбор — вопрос владельца 02.08, D39.89). > - Архивы хроники: `archive/PROGRESS-2026-07-04-10.md` (D31) · `-10-13` (D39.6-гигиена) · `-13-25` (стройка паков 11–16, rerun2) · **`-25-31` (паки 17–20 · мини-прогон · полигон-пакеты 5–8 · ToS · холодный прогон; D39.26–58)** · **`-08-01-02` (сессии №9/№10: общность · качество банка · coldrun-b · открытие фронта/платформы; D39.59–90, срез D39.105)**. Записи ниже — живой хвост (№11+, эра D39.91+). ## Бэклог (ЕДИНЫЙ, собран 26.07, актуализация 04.08 D39.99/D39.101; правки — только через оркестратора) @@ -25,7 +26,7 @@ | 9 | Промпт-слой под лейблом: лейбл не доезжает до промпта — должны ли переводчик/редактор знать о свойстве контента | владелец | когда-нибудь | отдельное решение | CURRENT-STATE (владелец, из пака-17) | | 10 | Дата создания аккаунта OpenAI (низкий приоритет, OpenAI вне цепочки) + применимость OpenAI Sharing & publication policy 2022 (quirks:128) | владелец | когда-нибудь | отдельное решение | D39.32 | | 11 | Флип coverage-гейта (`enabled:false`, D12-Q4) — за подписью владельца ; при флипе решить судьбу v1.1 quote-absorption (D12-Q1, Python-first лок-степ) | владелец | когда-нибудь | отдельное решение | D39.34(2) | -| 12 | **`postcheck_gate` в hard-gate** — требует пере-замера recall (recall чекеров измерен и низок); ⚠ «fn=0» демоции #10 класс-вакуумен на labels (ноль одно-Han-позитивов, D39.78) — пере-замер обязан добрать одно-Han-позитивы, на «fn=0» не опираться; одно-Han-класс при gate-on вне гейта (Unverified+Demoted); тем же решением строится HARD-value-детектор 成/万 (Q3 §6 — честный hard-gate требует value-чека; либо раньше при ненулевом потоке value-дефектов добора, D39.79) · recall существующих гейтов на невиданном срезе печатает арм C эксп-21 (D39.108) | владелец | когда-нибудь (после фазы 2) | отдельное решение | D39.34(2), D24.4+D28.1, D39.39, D39.78, D39.79 | +| 12 | **`postcheck_gate` в hard-gate** — требует пере-замера recall (recall чекеров измерен и низок); ⚠ «fn=0» демоции #10 класс-вакуумен на labels (ноль одно-Han-позитивов, D39.78) — пере-замер обязан добрать одно-Han-позитивы, на «fn=0» не опираться; одно-Han-класс при gate-on вне гейта (Unverified+Demoted); тем же решением строится HARD-value-детектор 成/万 (Q3 §6 — честный hard-gate требует value-чека; либо раньше при ненулевом потоке value-дефектов добора, D39.79; **$0-прототип получен эксп-21: `battery.check_numbers`, симметричный разбор, синтетика 16/16 — D39.117**) · recall существующих гейтов печатал арм C эксп-21 на контаминированном срезе (D39.108/D39.117) | владелец | когда-нибудь (после фазы 2) | отдельное решение | D39.34(2), D24.4+D28.1, D39.39, D39.78, D39.79 | | 13 | **Включение платной петли ремонта + per-class исходы ремонта** (схемное решение принимается вместе) — вернуться при расширении классов детекторов и ненулевом остатке; ⚠ при включении: репэйр-гард №5 после #10 слеп на одно-Han-дифференциал (демоция в обоих прогонах ⇒ 0>0 — репэйр, стёрший верно отрендеренный одно-Han-термин, не ветируется; D39.78-ревью) | владелец | когда-нибудь | отдельное решение | D39.38, D39.39(а), D39.78, 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.86):** поверхность вывода построена (строка `VOICE` в `tmctl report`), и живое чтение coldrun-a даёт `flags=0 over attributed=0 of replies=0` — но это НЕ «оси пустые»: флаггер живёт на ФИНАЛЬНОЙ волне (`waverun.go:392,512`), а редакторская волна там не гонялась ⇒ оси не считались НИ РАЗУ. ⚠ И поле `rules=` в новой строке говорит «гейт СКОНФИГУРИРОВАН» (читается из конфига ВРЕМЕНИ ОТЧЁТА, `quality.go:436`), а не «гейт отработал» — честный дискриминатор это ЗНАМЕНАТЕЛИ (`replies=`); читать так до фикса (строка 105) | владелец | отложено-до-замера | первый прогон добора идеала С РЕДАКТОРСКОЙ ВОЛНОЙ (оси голоса, строка 24) → отдельное решение | D39.56, PACK19_BUILD §7.2, чат 31.07, D39.86 | @@ -42,7 +43,7 @@ | **— НАХОДКИ СВИПА ПОЛНОТЫ (D39.66: 951 обязательство проверено, потери возвращены в трекер) —** | | | | | | | 80 | **Резюме-слой памяти** — проза-суммарайзер ЗАКРЫТ (D39.69); строка = ГЕЙТ ПИЛОТА Ф2.5: первый деливерабл пилота — «допускает ли автономная нарратив-состояние-строка ДЕТЕРМИНИРОВАННЫЙ верификатор (source-anchored) — или это D1-компаундинг со схемой»; не-покрытые классы (source-anchored reveal · арк-колбэки без ключа) реальны, но не измерены как дефект | Ф2.5 (Q3 подтверждён D39.70) | когда-нибудь (пилот) | Ф2.5 пре-рег | D25 п.8–9, D39.66, D39.69 | | 81 | **ja-преп B6-ja (сужено пост-сверкой D39.66)**: Поливанов-валидатор (`translit_policy` = «Phase 2»-заглушка, migrate.go:186/194) + kana-омограф POS/known-word гейтинг / B6-токенизатор (memory.go:1048); чек-лист kana-алиасов сида УЖЕ построен (backend/README §ja + `AttachRubyAliasesToManual`) — остаток в нём только дизамбигуация двойных чтений (тот же B6) | бэкенд | когда-нибудь (перед ja→ru) | ja→ru-пак (рядом 35) | D16.4, D17.1, D18, D39.66 | -| 82 | **Морфо-гейт РОДА** (C3: русский глагол прош. вр. при gender=hidden = механический спойлер-канал; «жалоба №1 читателей MTL»; python-сайдкар/pymorphy, связка с морфопроходом Decl из 73) | бэкенд | когда-нибудь (Ф2-гейты) | отдельный пак (с 52) | 06-реестр C3, research/12, D39.66 | +| 82 | **Морфо-гейт РОДА** (C3: русский глагол прош. вр. при gender=hidden = механический спойлер-канал; «жалоба №1 читателей MTL»; python-сайдкар/pymorphy, связка с морфопроходом Decl из 73). **$0-прототип получен эксп-21** (`battery.check_gender`: карточки из подписанного сида, фильтр по именительному падежу, 86–112 сверок/арм — D39.117); движковый гейт не построен | бэкенд | когда-нибудь (Ф2-гейты) | отдельный пак (с 52) | 06-реестр C3, research/12, D39.66, **D39.117** | | 85 | **Пилот-преп добор** (к переупаковке PACKAGE4): Bertalign GOLD-пары + zh→ru spot-check (D29.2в; GPL-тулинг отдельно) · fidelity-каскад R2 shadow с корпус-подготовкой (D25.2) · exp08 v3 пере-съём COGS до фиксации budget_usd (D21.8) | полигон | когда-нибудь (Ф2.5) | пилот-преп-промт | D25, D29, D21.8, D39.66 | | **— ПАК-21 «чекеры»: РАСТВОРЁН (D39.62); шестёрка исполнена 2/6 фазой 2 (D39.64: #11 · строка 26), остаток — ниже —** | | | | | | | 93 | **Остатки строки 93 после пачки (D39.82):** строгий OffLanguage (36а, deferred D39.78) · 分之-разметка прежде стройки DC2 word↔word (полигон) · F4-хвост: `redrive --dry-run` обходит pre-flight, а `store.Open` мутирует SPOF-файл (миграции + recoverReservations; коммент «mutates nothing» неверен) — pre-flight и на dry-run при существующей БД либо read-only план; заодно stat-скип точной формой `fs.ErrNotExist`. ⚠ **Остаток НЕ однороден по гейту (сверка 02.08):** F4-хвост и строгий OffLanguage свободны, а `分之`-часть ГЕЙЧЕНА полигон-разметкой среза («строить вслепую против мандата» — якорь техдолга) ⇒ не подавать строку как «малое касание без гейта» | бэкенд/полигон | когда-нибудь | малое касание / полигон-слот | D39.78, D39.82 | @@ -89,13 +90,18 @@ | **— НАХОДКИ ПРИЁМКИ ЭКСПОВ 18–20 (D39.108) —** | | | | | | | 140 | **Банкнота: shipping-конфиг c1 канал НЕ несёт при декларации «+банкнота» в CURRENT-STATE** — канал жив только ран-локальным конфигом книги (ратифицированный путь D39.42 п.4; coldrun 56/128); решить: включить в c1 (двигает промпт драфта → RequestHash — цену назвать) либо поправить декларацию; родня 36г | владелец → бэкенд | скоро | СТОП-решение | D39.108, exp20 §6 | | 141 | **Дыра детектора примечаний: сноска «[1] …» без слова-заголовка проходит мимо** (`sanitizer.go:273-278` требует «Примечание:/прим. перев.») — после StripCosmetic уезжает в экспорт с дырой на месте вырезанного ханьцзы | бэкенд | когда-нибудь | малое касание + тест | D39.108 (приёмка 20) | -| 142 | **Механизм «гейты флагают → точечная починка по флагу» как прод-путь**: exp20 §3.3 — $0.0002/дефект, 12/12 (при ИДЕАЛЬНОЙ детекции); механизм конкурентов (research/22:179), у нас петля пака-16 за `enabled:false` (строка 13); детекторы «выдуманное слово»/«инверсия» прототипируются эксп-21 Ф0 | владелец → бэкенд | гейт: эксп-21 | решение владельца по итогам эксп-21 | D39.108 | +| 142 | **Механизм «гейты флагают → точечная починка по флагу» как прод-путь**: exp20 §3.3 — $0.0002/дефект, 12/12 (при ИДЕАЛЬНОЙ детекции); механизм конкурентов (research/22:179), у нас петля пака-16 за `enabled:false` (строка 13); детекторы «выдуманное слово»/«инверсия» прототипированы эксп-21. **ДИСПОЗИЦИЯ D39.117:** ОТКЛОНЁН как замена редактора (`C2/A_law` −3.75 Holm 0.0006; «$0.0002 чинит всё» мерилось при идеальных флагах и при реальной детекции пало), ПРИНЯТ формой «механический ПРЕ-ГЕЙТ перед редактором» — брак 5 клеток против 10/23 при половинной цене ($0.00298/$0.00602); ремонт ТОЛЬКО с банком (без банка ломает канон 0.917→0.895) | владелец → бэкенд | скоро (форма решена D39.117; стройка — бэкенд-промтом по команде владельца) | бэкенд-промт | D39.108, **D39.117** | | 143 | **Абсорбция норматива судейства в `09-pilot-protocol.md`**: разброс инструмента ДО замера · объявленный порог различимости · MQM-lite/error-span первичен, pairwise только для стиля · декой обязателен · запрет судьи семейства жильца арма | полигон/оркестратор | скоро ($0) | правка дока | D39.108, exp20 §7 | | 144 | **Вахта: grok `reasoning_tokens` ВНЕ `completion_tokens`** — формула цены харнессов может недосчитывать (до $0.0325 на exp20); вендор-сверка биллинга xAI при следующем прогоне с grok | полигон | когда-нибудь (следующий xAI-прогон) | вендор-чек | D39.108 (приёмка) | | 145 | **Движок обязан принимать потолок НА ПРОГОН, а не только из `book.yaml`** — сегодня флага/ENV нет вовсе (проверено: `tmctl` таких флагов не имеет, значение приходит только через `Ceilings.BookUSD`, `stagerun.go:480,505`). Пока так, платформа для управляемого потолка (строка 126) вынуждена ПРАВИТЬ конфиг книги — то есть пользовательское число становится постоянной записью в данных движка, что смешивает зоны против D39.81/D39.85. Форма: аргумент прогона (флаг или ENV), потолок остаётся состоянием ПРОГОНА. Смежное: `Ceilings` в `BriefHash` не входит (`book.go:280-297`) ⇒ ни снапшот, ни ре-билл не двигаются — цена правки нулевая | бэкенд | скоро (денежным промтом, со строками 135–139) | малое касание CLI + проводка | D39.110, приёмка платформы D39.109 | | 146 | **Два техдолга движка без строки трекера** (свип 08.08): `prices_checked` (120 д) гейтит read-only `report` и $0-resume — свежесть цен проверять только на ПЛАТНОМ пути (`03-implementation-notes:244`) · `cache_ttl` ↔ `cache_write_per_m`: цена записи в кэш задана под ОДИН TTL (5 м), при другом TTL расчёт врёт (`:246`). Оба жили только в справочнике якорей, то есть вне единственного трекера | бэкенд | когда-нибудь | малое касание | свип доков 08.08 | | 147 | **Транспортные частичные из research/21 без носителя** (свип 08.08): п.16 HTTP/1.1-escape на последней попытке как ДИАГНОСТИКА тихого усечения 2–8k [PARTIAL, GATED] · п.17 assistant-prefill continuation на `finish=length` вместо ре-рана всего вызова [PARTIAL, DEFER]. Оба помечены в ресёрче как отложенные и ни в одной строке трекера не появились | бэкенд/полигон | когда-нибудь | замер → решение | свип доков 08.08, research/21 §16–17 | | 148 | **Приложение А контракта потеряно инцидентом 08.08 и подлежит восстановлению** (D39.113): карта «вердикт движка → продуктовая фраза → ступень» была заполнена №14, откатилась к ЗАГОТОВКЕ с плейсхолдерами. Текст реконструкции держит оркестратор №15; решение владельца — брать реконструкцию черновиком С БАННЕРОМ «требует сверки» либо оставить заготовку и заполнять заново. Карта нужна фронту для замечаний (Ф-14) | владелец → оркестратор | скоро | решение владельца | D39.113, свип доков 08.08 | +| 149 | **Эксп-22 «панель жильцов»**: профиль-скрин (pass/fail пороги ДО замера; урок эксп-21 — скрин, убивший 2 из 12, скрином не был) → панель черновиков (слот несёт ~70% эффекта финала, мерился ТОЛЬКО flash за всю историю) → панель редакторов поверх замороженных черновиков (обязательный кандидат `gemini-3.1-pro` — аутлаер-гипотеза эксп-04) + шумовой пол + прямой `D_/A` довесками; агент-судейство под капом ≤60; невиданный zh-срез — повторный жёсткий заказ | полигон | скоро — ПРОМТ ВЫДАН (`docs/POLYGON_TENANT_PANEL_SESSION_PROMPT.md`), запуск = слово владельца | прогон по промту | **D39.117** | +| 150 | **Sol-арбитраж — внешний контур вместо слепого чтения владельца**: пере-суд расходящихся контрастов эксп-21 (`A/F`: luna +0.84 против gemini +3.03 — расхождение 14 sd шума судьи-замены) и слепых пар эксп-22 руками владельца через подписку (третье семейство, high reasoning); пакеты готовит эксп-22 Ф0.4 (слепые метки · оба порядка · декой), транскрипты персистятся как голоса внешнего судьи; luna-клетки Sol не судит (своё семейство) | владелец + полигон | скоро (пакет арбитража — из существующего сырья) | эксп-22 Ф0.4 + руки владельца | **D39.117** | +| 151 | **Отказной режим связки**: эхо-мина черновика воспроизводима на материале (глава 11 — 3/3 попыток; частота 31% на zh), связка покрыла 9/10 подряд идущих глав против 10/10 у однопроходки — единственный довод ПРОТИВ связки во всём эксп-21; движку нужен fallback при невозможности годного черновика (вариация ре-гена · эскалация модели черновика · деградация в однопроходку) | владелец → бэкенд | когда-нибудь (до МАСШТАБА) | СТОП-решение | **D39.117**, exp21 §14 | +| 152 | **Слипание абзацев — слепое пятно детерминированного контура**: батарея на тех же текстах даёт ДРУГОЙ порядок армов (`D` — худший по судье — лучший по правилам), расхождение локализовано в слипании, которого не проверяет ни одно правило; правило в батарею полигона + кандидат в гейты движка | бэкенд/полигон | когда-нибудь | малое касание + тест | **D39.117**, exp21 §13 | +| 153 | **Чистый контраст мандата перевёрстки**: `D/D_` загрязнён (объём промта ×1.92 + вёрсточная строка + правило чэнъюй); уравненные промты и пере-гон ≈$0.35; по грязному контрасту мандат ВРЕДИТ по оси ФОРМА (−1.09 из −3.31 `D/A`) | полигон | когда-нибудь (опция эксп-22 Ф3 — реши сессия) | замер | **D39.117**, exp21 §16.3 | | 49 | **Этапы Б+В спеки D15.2** (content-addressed resume / `guard_hash` — D39.31 сознательно не строил) ; этап В = tmctl export-контракт D29.1 (annot-v1 · цвет-мап+rollup · политика красных fail-closed) + операторский протокол-документ релиза гендер-твиста (D5.1): сам механизм УЖЕ построен — until_ch-правка → точечный re-edit со сметой и $0-пере-пином (`repin.go`/`rebill.go`, D39.42 п.5/D39.45) | бэкенд | скоро (ПОДТЯНУТА D39.81: annot-v1 = источник замечаний для фронта — критический путь подключения) | отдельное решение (annot-половина — по контракту 14, D39.99) | D39.34(4), D33 п.5, D39.81 | | 49а | **ALTER-шаги миграций v8–v14 не идемпотентны вопреки шапке `migrate.go:9-11`** (полу-применённая БД не сходится; счётчик версий скрывает) — находка критика полноты пака-19 | бэкенд | когда-нибудь | отдельное решение | D39.56, PACK19_BUILD §6.9 | | 50 | F3-остаток идемпотентности | бэкенд | когда-нибудь | отдельное решение | D39.34(4) | @@ -103,7 +109,7 @@ | 52 | **Ф2-гейты вне идеала**: морфо-гейты канцелярита + L1-лемматизация (python-сайдкар) · полный OpenCC · опциональный пре-перевод гейт ; состав явно: канцелярит + РОД (строка 82) + класс Ф2-гейтов карты 04-unhappy (обсцен-гейт/феминитивы/время сцены — состав решить паком) ; + класс идиоматики (свип-хвост, D39.73): сехоуюй-словарь · вэньянь-классификатор (zh) · васэй-эйго ложные друзья (к ja-паку 81) — данные пары или закрытие «банк книги покрывает» тем же паком | бэкенд | когда-нибудь | отдельное решение | D39.34(4) | | 54 | Масштаб целой книги: волны/каденс/потолки/ETA на сотнях глав (гоняли максимум 10; книга 7,78 млн симв., ~2284 раздела) | бэкенд | когда-нибудь (последним по курсу) | МАСШТАБ | D39.33, CURRENT-STATE | | **— ПОЛИГОН (кандидаты пакетов) —** | | | | | | -| 55 | **`dialogue_dash` мерить только на невиданном тексте** (подогнан под 蛊真人; цифры мини-прогона аргументом не считаются) ; расширено до вне-претрейн чекпоинта целиком: r-коэффициенты exp01/08 · precision чекеров · частота эха · чистовик exp15-выводов ; + arity-полоса паспорта (D29.2г): решить — dialogue_dash покрывает диалоговую половину или мерить (D39.73). **Частично закрывает эксп-21 (D39.108):** невиданный срез + $0-довесок (dialogue_dash · частота эха · precision чекеров) заказаны промтом | полигон | скоро (довесок — эксп-21) | полигон-пакет / эксп-21 | D39.37(4), D39.40, D39.46, **D39.108** | +| 55 | **`dialogue_dash` мерить только на невиданном тексте** (подогнан под 蛊真人; цифры мини-прогона аргументом не считаются) ; расширено до вне-претрейн чекпоинта целиком: r-коэффициенты exp01/08 · precision чекеров · частота эха · чистовик exp15-выводов ; + arity-полоса паспорта (D29.2г): решить — dialogue_dash покрывает диалоговую половину или мерить (D39.73). **Частично закрыта эксп-21 (D39.117):** направление главного вывода воспроизведено на чистом en-материале (узнавание 1/5), $0-довесок исполнен частично; **срез эксп-21 НЕ купил** (главный zh-замер на книге 4/5, без пинга) — остаток = неконтаминированный zh-срез | полигон | скоро (эксп-22 Ф0 — повторный ЖЁСТКИЙ заказ, стоп при неисполнимости) | эксп-22 | D39.37(4), D39.40, D39.46, D39.108, **D39.117** | | 56 | Ёфикатор/санитайзер-классы не размечены (§6.5 отчёта пакета-6) | полигон | когда-нибудь | полигон-пакет | D39.46, CURRENT-STATE | | 57 | Пере-замер «контексты — главный рычаг» на трудной выборке пакета-7 с боевой сборкой (до него kwic-веса/семантику не трогать; перф-опция AttachKWIC в фикс-паке 128 легитимна — семантика не меняется) — напряжение с D39.46 названо, не отменено | полигон | когда-нибудь | полигон-пакет | D39.50 | | 58 | **Не покрыто пакетом-8**: вторая книга/пара/модель · строка `drafts:` · ось `batch_runes` · разметчики-модели (не люди) · precision роли на «расширенном, но осмысленном» материале ; + контрастивный регрессионный сьют по каталогам режимов отказа (12-*) · чистовик exp15-выводов | полигон | когда-нибудь | полигон-пакет | POLYGON_PREMEASURE §1.8/§2.5/§3.5/§7.6 | @@ -114,7 +120,6 @@ | 62 | Билингв-якорь (D25 п.9 Q1) | владелец | когда-нибудь | Ф2.5 | D25 п.9, CURRENT-STATE | | 63 | Контаминация корпуса (D27 п.4) | владелец/полигон | когда-нибудь | Ф2.5 | D27 п.4, CURRENT-STATE | | 64 | Судья-дублёр (D22.6) | бэкенд | когда-нибудь | Ф2.5 | D22.6, CURRENT-STATE | -| 65 | **Планка запуска ≤2 не пройдена rerun2** — итерация №2 редакторского экспа отложена (dspro ИНТЕРИМ, glm-5 резерв) ; инструментарий слепого чтения = D39.8(3) + гигиена D39.20. **Довесок ЕДЕТ эксп-21 (D39.108):** бейк-офф несёт dspro-vs-glm и слепое чтение владельца на финалистах | владелец | гейт: эксп-21 | эксп-21 → решение | D39.20, D39.22, **D39.108** | | 66 | Пилотные D25-гейты: publishable/waiver (п.1) · FN-bound L3 (п.4) | владелец | когда-нибудь | Ф2.5 | D25, CURRENT-STATE | | 67 | **Прод-гигиена: юр-пакет · провенанс 12-*-доков · xAI-ключ off перед продом** (D27) ; + юрисдикционные annex-ре-чеки при новых рынках (D39.29) + поле «версия исходника» book.yaml на интейке (04-unhappy §5) | владелец | когда-нибудь | Ф2.5 | D27, CURRENT-STATE | | 68 | Residual-тачпойнты exp16, не влитые в сид-дельту: мини-голд алиасов (ОТЛОЖЕН до первого длинного прогона — D39.103) · precision@30 (`books/gu-zhenren/exp16/`) | полигон | когда-нибудь | Ф2.5 / полигон-пакет | CURRENT-STATE | @@ -134,7 +139,7 @@ | 126 | **Потолок прогона — УПРАВЛЯЕМЫЙ, решение владельца 07.08: настройка в интерфейсе фронта, шкала от минимума (ноль выбрать НЕЛЬЗЯ, подсвечен серым) до максимума баланса аккаунта.** Форма снимает конфликт с Р7 бесплатно: максимум = баланс ⇒ движок всегда получает положительное число и состояния «выключено» не существует, валидатор `book.go:250` не правится. **Три следствия, ратифицированы формой (D39.110):** (а) **единица — НЕ доллары**, а главы (или % баланса): тогда минимум объясняет себя сам («одна глава»), а D39.84 цел — читатель не видит структуру расходов; доллары на пользовательском экране = осознанный амендмент D39.84, не побочный эффект виджета; (б) это потолок ПРОГОНА ⇒ в `book.yaml` он не пишется, движку нужен приём потолка на прогон — строка 145; (в) **максимум шкалы = ДОСТУПНЫЙ ОСТАТОК, то есть `Balance` как есть** — ⚠ испр. 08.08 (D39.115): формулировка «баланс минус открытые холды» была ОШИБКОЙ приёмки, вычитанием дважды. Холд — это дебет в момент взятия (`credits.go:179`), поэтому баланс уже без него; замерено: $10 грант + $1 холд = `Balance` 9, `Reserved` 1, «минус Reserved» дало бы 8. Спека несёт верную форму: `max_chapters` приходит УЖЕ подрезанным и по остатку, и по непереведённому хвосту книги, клиенту подрезать второй раз ЗАПРЕЩЕНО. **НОСИТЕЛЬ ПЕРЕСЧЁТА НАЗВАН (добор после верификации 07.08):** «сколько глав влезает в доступный остаток» считает ПЛАТФОРМА (по оценке движка) и отдаёт фронту ГРАНИЦЫ шкалы и выбранное значение в главах; сама формула наружу не выходит. Ручки под это в контракте НЕТ — сегодняшний `GET /v0/usage` несёт только процент, поэтому поверхность объявляется при правке спеки вместе с созданием прогона (работа П-1 + S3), и до её объявления фронт максимум шкалы взять неоткуда. Прежнее тело строки (механизм поднятия потолка для resume после ceiling-стопа: движок продолжает «once the ceiling is raised», `stagerun.go:488-489`) — половина этой же работы. Продуктовое слово стопа — К-8 у владельца | платформа/фронт/бэкенд | скоро (форма решена, стройка — промтами) | дизайн-вход П-1 + правка спеки + строка 145 | ревью контракта 04.08, D39.99, **D39.110** | | 127 | **Устаревший DDL-коммент `glossary.source`** (`migrate.go:193`: «seed|ruby|auto», фактические пути записи — seed/ruby/mined, `auto` не пишет никто; фантом уже утёк во фронт-доки дважды) — поправить коммент | бэкенд | когда-нибудь (попутно любым паком store) | однострочная правка | ревью контракта 04.08, D39.99 | | 105 | **Роль `classifier` мис-вердиктится как эхо + честность двух новых строк наблюдаемости (D39.86).** (а) `classifyOutput` даёт поблажку `SourceEchoExpected` только `roleTerminologist` (`chunkrun.go:37`), а ответ классификатора по формату состоит из исходных ханьских термов ⇒ доля исходного письма 0.20–0.29 > порога 0.15 на каждом батче: живой артефакт пробы 6/6 несёт `verdict=cjk_artifact` при `bad_lines=0`. Ущерб узкий — `runBankRoleBatches` кладёт `run.texts[i] = att.text` без проверки диспозиции (`terminologist.go:603`), посчитанные эхо-ставки (`quality.go:313-321`) берутся из `chunk_status`, куда бэнк-путь не пишет ⇒ портятся только строки `tmctl report`/лога; **латентно** (`classify_types` выключен во всех шиппинг-конфигах). ⚠ Цена дисциплинированного фикса, которую надо знать заранее: бамп `classifierVersion` (литерал, сам не двигается) меняет payload снапшота → snapshot id → `RequestHash` ⇒ промах ВСЕХ чекпойнтов книги, то есть `--resnapshot` + пере-покупка. (б) тем же касанием — честность поверхностей: строка `VOICE` берёт `rules=` из конфига ВРЕМЕНИ ОТЧЁТА (`quality.go:436`), поэтому включение `gates.voice` после прогона печатает «измерено, чисто» для неизмеренной книги (воспроизведено); и она печатается при выключенном гейте, если `SpoilerLeaks>0` (дизъюнкция — поведение верное, формулировка отчёта/коммента неверна); знаменатель `BANKNOTE` = `len(states)` включая призрачные строки `retrieval_state`, тогда как соседний агрегатор их фильтрует (`quality.go:259-260`) ⇒ после пере-чанковки покрытие занижается | бэкенд | когда-нибудь (ближайшее касание банка/наблюдаемости; (б) — дешёвая часть, вердиктов не двигает) | малое касание + вердикт-двигающая половина (а) через СТОП-решение | D39.86 | -| 106 | **Слой 3 НЕ достроен: контракт редактора = full-regen, а целевой — узкие мандаты + ДИФФЫ.** `09-target-architecture.md:121-126` дословно: «research/07 предписывает узкие мандаты + диффы, а не полную перегенерацию — сейчас ровно наоборот (4 мандата, full-regen), что и породило хвост инверсий»; целевой контракт — редактор правит anchored search/replace-спанами с детерминированным Go-apply (ограниченный blast-radius, дешевле, аудируемо, структурно omission-safe). Пак-16 построил петлю РЕМОНТА (починка флагнутого спана постфактум), а не diff-контракт роли ⇒ это разные вещи. **Строки не было ни одной** — дыра учёта, найденная сверкой 02.08 (грепы `diff`/`мандат`/`span` по бэклогу = 0). Смежное: арм Q4b «diff-fidelity+style редактор» (`exp15:108`) не прогонялся НИ РАЗУ, хотя трек B объявлен завершённым. **ЭМПИРИКА ПОЛУЧЕНА (D39.108, экспы 19/20):** дифф-контракт механически исправен (комплаенс 0.966 на боевой единице, аппликатор 15/15), но по замороженному гейту Q4b диффы ОТЛОЖЕНЫ (fidelity-trap 11/12; дороже full-regen на dspro×ru ×2.5–2.9 при невскрытой причине; D21.4/D21.10 закрыты явно). Дальше — эксп-21 (топология) → решение владельца | владелец → бэкенд | гейт: эксп-21 | решение владельца по бейк-оффу эксп-21 | 09 §Слой 3, D39.90, **D39.108** | +| 106 | **Слой 3 НЕ достроен: контракт редактора = full-regen, а целевой — узкие мандаты + ДИФФЫ.** `09-target-architecture.md:121-126` дословно: «research/07 предписывает узкие мандаты + диффы, а не полную перегенерацию — сейчас ровно наоборот (4 мандата, full-regen), что и породило хвост инверсий»; целевой контракт — редактор правит anchored search/replace-спанами с детерминированным Go-apply (ограниченный blast-radius, дешевле, аудируемо, структурно omission-safe). Пак-16 построил петлю РЕМОНТА (починка флагнутого спана постфактум), а не diff-контракт роли ⇒ это разные вещи. **Строки не было ни одной** — дыра учёта, найденная сверкой 02.08 (грепы `diff`/`мандат`/`span` по бэклогу = 0). Смежное: арм Q4b «diff-fidelity+style редактор» (`exp15:108`) не прогонялся НИ РАЗУ, хотя трек B объявлен завершённым. **ЭМПИРИКА ПОЛУЧЕНА (D39.108, экспы 19/20):** дифф-контракт механически исправен (комплаенс 0.966 на боевой единице, аппликатор 15/15), но по замороженному гейту Q4b диффы ОТЛОЖЕНЫ (fidelity-trap 11/12; дороже full-regen на dspro×ru ×2.5–2.9 при невскрытой причине; D21.4/D21.10 закрыты явно). **Эксп-21 (D39.117):** полный regen выигрывает у точечного ремонта (`C2/A_law` −3.75 Holm 0.0006) — довод против диффов, НЕ опровержение: чинил дешёвый фиксер по предложению, а не сильный редактор узким мандатом; гейт «перепроверить до стройки» в силе, приоритет понижен | владелец → бэкенд | когда-нибудь (пере-проверка «сильный редактор × узкий мандат» — перед стройкой слоя 3) | замер → решение владельца | 09 §Слой 3, D39.90, D39.108, **D39.117** | | 113 | **Запас боевого гейта не зафиксирован тестом, а харнесс, давший число, УДАЛЁН (Д-хвост D39.90).** Числа «18 из 20 · 0 ложных на 1055 · запас 13× (0.0117 против 0.15)» и «санитайзер поймал бы английский черновик» получены ВРЕМЕННЫМ тестом в пакете pipeline (`splitBanknote`+`StripThink`+`sourceScriptShare`), который сессия удалила после снятия. Число ушло в контракт (строка 46), воспроизвести его нечем. **Делать:** корпус-фикстура в репо (~20 off-target + ~40 здоровых, с движковой предобработкой; снапшот НЕ двигает) + регресс-тест на реальный запас — это база, которую обязано побить любое предложение по 46. СТОП, если фикстура не воспроизводит 18/20 при 0 FP, или если запас меньше 3× | бэкенд | скоро (перед любой правкой по строке 46) | $0 фикстура + регресс-тест | D39.90, EFFORT_HANDLE §5.4 шаги 1–2, §7 | | 114 | **Конфиго-слой ручки эффорта: два дешёвых хвоста приёмки (вне снапшота, $0 прогонов).** (а) **Д4 отчёта:** `gates.terminology.target_script` НЕ сверяется с `book.target_lang` — `target_lang: ru` + `target_script: Latin` грузится чисто и **ИНВЕРТИРУЕТ** банковский экран (ловит целевой, пропускает чужой); сверка при загрузке против `lang.LangScripts(TargetLang)` — тот же дата-план, что у экрана строки 46, громкий отказ на несовпадении. (б) **Находка-2 приёмки:** стейл-доккоммент `capability.go:78` — у константы `ReasoningExtraBodyDisable` до сих пор «effort "" leaves the provider default», противореча проводу (`applyToBody` мержит disable на `""`, комментарий в теле arm это прямо объясняет) и починенному `ThinksOnWire`; однострочник тем же касанием | бэкенд | скоро (мелкий пак или попутно со строкой 46) | правка Go, снапшот не двигает | D39.91, EFFORT_HANDLE Д4 | | 115 | **`//go:embed` целевых данных — ЯВНЫЙ список файлов: новая ЦЕЛЬ требует правки Go (Д6 отчёта).** `internal/lang/embedded.go:22` перечисляет файлы поимённо, `CompileCheckers` паникует при неполном файле цели ⇒ на канон-вопрос «заработает ли пара, которой в репо НЕТ, без правки Go» ответ сегодня **НЕТ** — дыра в ратифицированной «ФАЗЕ 2 ОБЩНОСТИ ✅» (D39.64), и она не про язык, а про строку эмбеда. Решить форму: `embed data/*` (и как манифест фолдится в `EmbeddedVersion`, чтобы НЕ перекупать чужие пары) против явного списка как осознанного гейта полноты данных цели | оркестратор → бэкенд | когда-нибудь (триггер: первая новая целевая пара; учтён в реестре 108) | отдельное решение | D39.91, EFFORT_HANDLE Д6, D39.64 | @@ -224,6 +229,8 @@ S3 упёрлась в замок (контракта нет) — по слов ## Полигон +**ПРИЁМКА ЭКСП-21 (параллельный оркестратор, 08.08, D39.117): ПРИНЯТ.** Гейты пере-гнаны исполнением (`verify_report.py` 90/90 код 0 · `itog.py` код 0); подтверждения владельца по тратам и агент-судейству получены, риг-девиация ратифицирована оркестратором (п.2в ноты); диспозиции строк 142/65/106/55 — D39.117 п.3. Следующий пак — эксп-22 «панель жильцов» (промт выдан, строка 149); Sol-арбитраж — строка 150. + **ЭКСП-21 ЗАКРЫТ 08.08 — тело отчёта дописано, несущие числа поставлены под гейт. Перепрогон НЕ ТРЕБУЕТСЯ.** Два независимых агента прошли пак навстречу (снизу вверх: заказ промта → посылки → код → результаты, с запретом открывать ИТОГ до последней ступени; сверху вниз: каждое утверждение ИТОГа → число → сырьё → код → посылка). Оба вердикта совпали: все несущие числа воспроизводятся из персистированного сырья за $0, расхождения РЕДАКЦИОННЫЕ, а не замерные. Сделано ($0, без покупок): **§11–§18 написаны** (прибор · свод двух проходов · инструменты · дрейф · роутинг · деконфаунды · Ф2б · пост-хок аудиты) — до этого тело обрывалось на §10, и читатель уносил три СНЯТЫХ вывода третьей редакции; над §10 поставлен баннер снятия · заведён **`eval/role_topology/itog.py`** — пере-считывает КАЖДОЕ число блока ИТОГ из сырья (прежде нога 2×2, кластеризация, L2O, контрасты Ф2б и отборщики арма G считались ВНЕ дерева и пути воспроизведения не имели) · гейт вырос **63 → 90 проверок**, добавлен блок `§ИТОГ`: прежде он сторожил §2, деньги и батарею — и ни одного числа блока решения · `absjudge --score4` печатал ПУСТУЮ таблицу (в `FAMILY` нет контрастов Ф2б) — заведено `FAMILY_2B`, провенанс прохода 4 объявлен НЕПОЛНЫМ (в ключ впечатано неприменимое семейство Ф2а). **Правки чисел по находкам аудитов:** значимый контраст **`E2/A_law` −2.06 Holm 0.0443** в таблице ИТОГа отсутствовал — напечатан · «контроль воспроизведён ТРИЖДЫ (+2.50/+2.75/+2.81)» сшивало РАЗНЫЕ армы и панели (+2.50 — это `A/F3`, а `A_law/F3` даёт +1.75 пул / +2.75 abs3 / +2.81 abs4) — снято · расход фазы Ф2б **$0.11819**, а не $0.10916 (печатался только тег `p2b-*`, без старых `rp-*`) · цена ремонта **$0.00298** (боевой C2), а не $0.00290 (испорченный прогон C) · QE на самом крупном контрасте даёт **r=−0.32 — АНТИкорреляцию**, а не слепоту (+0.06) · оси `D/A` по пулу ЯЗЫК −1.34 / ФОРМА −1.09 · доля выигрыша арма G считалась по маршрутизированным окнам вместо оставленных стражем. ⚠ Числа прежнего §15 «43/91» и «r=+0.06» не воспроизводятся ни одним вариантом счёта — помечены «утрачено инцидентом 08.08, D39.113, в дереве кода пути нет». diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index 14b57f39..7366e939 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -1,4 +1,4 @@ -# Журнал решений оркестратора — контракт D1–D39.116 (развязки 04.07 · пакеты 09–10.07 · приёмка/качество-первым/пивот/эмпирика 11–12.07 · арх-ресет+стройка пере-прогонного стека 13–19.07) +# Журнал решений оркестратора — контракт D1–D39.117 (развязки 04.07 · пакеты 09–10.07 · приёмка/качество-первым/пивот/эмпирика 11–12.07 · арх-ресет+стройка пере-прогонного стека 13–19.07) > **⟶ КАРТА АКТУАЛЬНОСТИ (ревизия D31, продлена до D38.2 [12.07]; исторические записи ниже НЕ переписываются — дисциплина D23.3).** Читая контракт целиком, держи под рукой, что чем перекрыто: > ⚠ **Навигация (актуализация 07.08, эра D39.1xx):** append-only-дисциплина (D23.3) означает, что @@ -9,7 +9,12 @@ > успешная ре-аутентификация, NIST не говорит — наш жёсткий предел это НАШ выбор, строже нормы») · > **D39.109 п.4 читать через D39.106 п.3** (PD-59 superseded, пайп-путь `supervisor.go` = дев-режим) > · **D39.109 п.1 и «живой уязвимости не нашла» читать через D39.112 п.2(в)** (отказ в обслуживании -> входа ЕСТЬ — PD-80) · **D39.110 п.1 «дословно по смыслу» читать как ПЕРЕСКАЗ** решения, не цитату. +> входа ЕСТЬ — PD-80) · **D39.110 п.1 «дословно по смыслу» читать как ПЕРЕСКАЗ** решения, не цитату · +> **D39.108 (продуктовый вывод «второй проход на dspro отрицателен», эксп-20 §5.2 «со слов») читать +> через D39.117 п.4** — опровергнут эксп-21 честным ригом: `A/F3` +2.50 Holm 0.0004, топология +> подтверждена, жильцы неразличимы · **D39.113 (таблица потерь: «правки промта — параллельный +> оркестратор») читать через D39.117 п.7** — ошибочная атрибуция: правки параллельного не терялись +> (его HEAD — финальная версия); чьи модификации были в дереве — достоверно неизвестно. > ⚠ **Навигация (актуализация 04.08):** два supersede-указателя эры D39.9x: **D39.88/D39.84 п.8 (право самокоммита фронта/платформы) → отозвано, коммитит ТОЛЬКО оркестратор** (D39.98 п.3; тела переписаны на месте с санкцией владельца, pre-rewrite — git `2b166b7`) · **норма 30.07 «короткая приёмка» → амендирована владельцем 03.08: приёмка всегда адверсариальная** (носитель — промт оркестратора §Анти-паттерны + D39.101 п.1) — упоминания «короткой приёмки» в телах читать через эту пометку · **двухсекционная редакторская инъекция и смягчающая роль маркера ⟨проверить⟩ → доктрина инжекта D39.104**: банк на проводе = ЗАКОН для всех ролей независимо от статуса строки, право «перевести иначе» упразднено, блок редактора — ЕДИНЫЙ, маркер с провода снимается (статусы строк и подписная таблица не меняются; внесение в движок — строка 134 после пробы 18) — упоминания двухсекционки/смягчения в телах читать через это. > ⚠ **Навигация (актуализация 01.08):** карта ниже детально покрывает D1–D39.28; решения D39.29+ живут хронологически в теле файла, **свежая голова — С ХВОСТА** (новые ноты аппендятся вниз). Сводка текущей головы и очередь — CURRENT-STATE в `../PROGRESS.md`. @@ -1653,3 +1658,19 @@ API-529-долг закрыт: 8-осевой refute-by-default воркфлоу **6. Норма изоляции панелей перенесена из D-лога в промт оркестратора** — она жила только в ноте, а читают промт. Там же пустой заголовок «Текущее состояние и очередь — НЕ здесь» получил тело: где именно они живут и что числа берутся скриптом. **7. Что НЕ сделано и почему.** Срез хроники PROGRESS в архивный слайс (живой хвост несёт №11–№13, эра D39.91–105) — не делал: файл прямо сейчас держит полигон-сессия, а срез это перекладывание сотни строк в контендящемся файле, то есть способ потерять чужую работу второй раз за сутки. Режет тот, кто лендит полигон. Из 78 находок закрыт первый эшелон (промты, статусы, висячие ссылки, незанесённое) — остаток воды (дубли пин-таблиц, историческое тело `API_CONTRACT_DRAFT.md`, §1 «как есть» в `09-target-architecture.md`) в этот проход не тронут: он не вводит сессию в заблуждение, а только удлиняет чтение. + +## D39.117 — ЭКСП-21 ПРИНЯТ; подтверждения владельца по тратам и агент-судейству получены; строка 65 закрыта; курс — эксп-22 «панель жильцов» + Sol-арбитраж (08.08, параллельный оркестратор — приёмка полигона, мандат владельца 08.08). ✅ + +**1. Вердикт: ПРИНЯТ.** Проверено исполнением 08.08: `verify_report.py` — 90 проверок, ноль провалов, код 0; `itog.py` пере-снимает каждое число ИТОГа из сырья, код 0. Встречные аудиты полигона (снизу вверх / сверху вниз) приняты; мой краш-репорт `med = med(costs)` (`verify_report.py:237`, неточное восстановление после инцидента D39.113) полигоном починен, линтер зоны заведён. Приёмка по норме пропорциональности — инлайн + исполнение гейтов, без панели. Механика — пинг «Полигон» и §18 отчёта, здесь не дублируется (D39.112). + +**2. Подтверждения владельца 08.08** (в чате этой сессии; пересказ, не цитаты): **(а)** траты 07.08 — устная санкция владельца по ходу сессии БЫЛА и подтверждена («я разрешал тратить»); против буквы промта пробития остаются зафиксированными в отчёте, промт эксп-22 закрывает класс механическим стопом и тестом кассы на свои теги. **(б)** Амендмент «судья пака не покупается за токены» (агент-судейство вместо платного) — подтверждён ⇒ числа §11–§18 легитимны, платный пере-суд не нужен. **(в)** Правка риг-требований («оба порядка» → абсолютная шкала) — это девиация от промта ОРКЕСТРАТОРА, не решение владельца, ратифицирую сам: требование зеркальности писалось под платного ПАР-судью; в абсолютном протоколе позиции пары не существует, а позиционный сдвиг замерен и вычтен (+0.147/шаг метки); все четыре агента независимо свернули парные пакеты в абсолютные оценки — инструмент сам отверг форму. Для ПАРНЫХ предъявлений (Sol-пакеты) оба порядка остаются обязательными. + +**3. Диспозиции гейт-строк (гейт «эксп-21» исполнен).** **142** — точечная починка ОТКЛОНЕНА как замена редактора (`C2/A_law` −3.75 Holm 0.0006; при реальной детекции не лучше черновика, `C2/F3` −0.94; гипотеза эксп-20 «$0.0002 чинит всё» мерилась при идеальных флагах и пала) и ПРИНЯТА формой «механический пре-гейт ПЕРЕД редактором» (брак 5 клеток против 10/23 при половинной цене $0.00298/$0.00602; ремонт ТОЛЬКО с банком — без банка ломает канон 0.917→0.895); стройка — бэкенд-промтом по команде владельца. **65** — ЗАКРЫТА: движки dspro/glm-5 неразличимы (`A/B` +0.06 p=0.95; `A_law/B` −0.69 порога не проходит) ⇒ жилец редактора — вопрос ЦЕНЫ, то есть конфиг; остаток строки (слепое чтение инструментарием D39.8(3)) переезжает в Sol-протокол, строка 150. **106** — НЕ закрывается: эксп-21 дал довод против диффов (полный regen выигрывает у ремонта), но с оговоркой полигона — чинил дешёвый фиксер по предложению, а не сильный редактор узким мандатом; гейт «перепроверить до стройки» в силе, приоритет понижен. **55** — частично закрыта (направление главного вывода воспроизведено на чистом en-материале, узнавание 1/5); остаток «неконтаминированный zh-срез» — заказ ПОВТОРЁН эксп-22 Ф0 жёстко: эксп-21 его не исполнил (главный zh-замер на книге 4/5, без пинга). + +**4. Опровергнута продуктовая строка D39.108 «второй проход на dspro отрицателен по слепому суду»** — она стояла на непersisted замере §5.2 эксп-20 и была помечена «со слов»; эксп-21 честным ригом дал обратное (`A/F3` +2.50 Holm 0.0004 · `A_law/F3` +2.81 Holm 0.0098 · нога 2×2: работает топология, не жилец). Стек-баннер CURRENT-STATE поправлен, supersede-указатель добавлен в карту. Пометка «со слов» отработала как задумано — величина не успела стать основанием стройки. + +**5. Курс владельца 08.08:** **(а)** эксп-22 «панель жильцов» — промт выдан (`docs/POLYGON_TENANT_PANEL_SESSION_PROMPT.md`): профиль-скрин с pass/fail порогами, записанными ДО замера → панель черновиков (слот несёт ~70% эффекта финала — §16.2; за всю историю проекта черновиком была одна модель) → панель редакторов поверх замороженных черновиков (обязательный кандидат `gemini-3.1-pro` — аутлаер-гипотеза эксп-04, современным ригом не мерена) + шумовой пол (§8 п.1) + прямой `D_/A` (§8 п.2) довесками. **(б)** Слепое чтение владельца ЗАМЕНЕНО Sol-арбитражем (владелец черновики читать не хочет; ChatGPT Sol high-reasoning руками владельца через подписку = внешний контур третьего семейства): пере-суживаются расходящиеся контрасты эксп-21 (`A/F`: luna +0.84 против gemini +3.03 — расхождение 2.19 балла = 14 стандартных отклонений шума судьи-замены, собственным шумом не объясняется) и слепые пары эксп-22. **Правило ничьей эксп-22 ратифицировано:** при перевесе ниже порога различимости рекомендация отчёта — самый дешёвый жилец. Оговорка записана честно: Sol — LLM, «издательское качество для человека» им не доказывается; человеческий контур остаётся за пилотом Ф2.5. **(в)** Агент-судейство — под явным капом (агенты не бесплатны — слово владельца 08.08; кап ≤60 запусков в промте эксп-22). + +**6. Хвосты в трекер:** строки **149–153** заведены (эксп-22 · Sol-арбитраж · отказной режим связки · слипание абзацев · чистый контраст мандата); строки **12 и 82** получили $0-прототипы эксп-21 (`battery.check_numbers` — синтетика 16/16 · `battery.check_gender` по карточкам сида, 86–112 сверок/арм) — указатели внесены в их тела, сами строки живы (движковые гейты не построены); кредиты xAI — в лист владельца; три провод-факта эксп-21 §8 внесены в quirks 00 (Gemini fail-closed приходит БЕЗ объекта `message` · `gpt-5.6-luna` без ручки эффорта — пустой оплаченный выход · `glm-5` гасится `extra_body`). + +**7. Поправка к D39.113:** строка таблицы потерь «незакоммиченные правки промта — параллельный оркестратор» — ошибочная атрибуция: HEAD `73a7e7a` и был финальной версией промта параллельного оркестратора, его правки не терялись. Чьи модификации были в дереве — достоверно неизвестно; вероятно, полигона (его пинг предлагает правку требования стр.59 того же файла), и тогда их суть уцелела в пинге. Буква D39.113 не переписывается (D23.3) — читать через эту поправку.