textmachine/docs/PROGRESS.md

132 KiB
Raw Blame History

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

⟶ ТЕКУЩЕЕ СОСТОЯНИЕ (на 2026-08-04, голова D39.105; сессия оркестратора №13 ЗАКРЫТА — передача №14).

  • ПЕРЕДАЧА №13 → №14 (D39.105, 04.08). №14 ПЕРВЫМ: приёмка P0 платформы (в №13 НЕ исполнена — переходит; клеймы журнала платформы — СО СЛОВ, перепроверять исполнением; дерево platform/* ЖИВОЕ целиком, включая go.mod, — не трогать и не заметать коммитом; там 3 открытых вопроса, один — владельцу: авто-резюме paused) · приёмки по готовности отчётов: фикс-пак банка 128 (промт BACKEND_BANK_CLUSTER_FIXPACK_SESSION_PROMPT.md, санкция D39.103 п.1) и проба редакторского провода (промт POLYGON_EDITOR_WIRE_PROBE_SESSION_PROMPT.md, ≤$0.30 + фронтир ≤$0.50 «go» дан; отчёт будет docs/experiments/18-editor-wire-probe.md) — обе сессии готовы к запуску, порядок любой; приёмка всегда адверсариальная, клеймы с репликацией · строка 134 (дата-правка инжект-заголовков под доктрину D39.104) — ПОСЛЕ отчёта пробы 18 · дальше бэкенд-очередь: промт пака экрана 46 (D39.94 п.3: фикстура 113 ПЕРВОЙ, денежный шаг ТОЛЬКО с подписью владельца) · малый пак tools/go.mod (строка 118, D39.97 п.4) · блокеры контракта 99/100/101/103/125 · лендинг S3 при её запуске. Вахта deepseek-v4-pro: дата-триггер >05.08 (реестр 108; при аномалии редакторского арма — пере-проба + вендор-changelog; medium на DeepSeek не ставить). Открыто на владельце: 116 (порог подан) · мини-проба 44 «low+16k» (~$0.05) · подпись денежного шага 46 · лист В-3+К-6 (фразы замечаний) · запуск S3 (первым шагом правки спеки D39.100) · вопрос платформы (авто-резюме paused после сброса лимитов).
  • Сессия №13 (04.08) — закрыта: приёмка банк-арбитража — research/24 ПРИНЯТ и заленден, все числа чисты пере-раном, строки 128132 заведены (D39.102, 271f8b0) · решения владельца: фикс-пак 128 и проба редакторского провода санкционированы, промты выданы с двойным аудитом, фронтир-«go» дан, алиасы §E-1 отложены до первого длинного прогона (D39.103) · ДОКТРИНА ИНЖЕКТА ратифицирована (D39.104: банк на проводе = закон для всех ролей независимо от статуса строки, свобода — только оговоркой области употребления; «Гуюэ» — не чинить, канал сида; дата-правка = строка 134) · полный док-свип закрытия (D39.105). Лендинги: 271f8b0 · d653aa1 + закрывающий.
  • Сделано (сводно; детали — D-лог и архив-слайсы): Ф0 · Ф1-инфра · арх-ресет D39 (7 слоёв, паки 1116) · паки 17 «канал B» · 18 «долги» · 19 «голос/состояние» · 20 «банк+терминолог» (D39.2628/31/4156) · мини-прогон (D39.37) и ХОЛОДНЫЙ прогон (D39.58: recall банка 0.918/0.980, банк приходит переведённым) приняты · полигон-пакеты 58, 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.5978) → ФРОНТ-ЭРА открыта (D39.81100: зоны 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.7997, сюда НЕ дублируются.
  • Горизонт (D39.62/67, освежён D39.95): ре-проба flash ИСПОЛНЕНА и строка 74 закрыта (D39.86/91; порог 6/6 → пере-ратификация выборочным, строка 116; проба Q2 ИСПОЛНЕНА — research/24, D39.102: семейства не окупаются, остаток = рецензент спорных кластеров при ре-пробе 74; эмиссия Q7 — по слову) → ДОБОР ИДЕАЛА (первым прогоном: оси голоса 24 · авто-режим · итерация №2 редакторов 65 · цена 16 · веса K1K12 13а · вне-претрейн чекпоинт 55) → ВТОРАЯ ПАРА живьём (ja→ru; преп 81) → МАСШТАБ → пилот Ф2.5 (гейт резюме-строки 80; строки 6268, 85) → Ф3 ридер-IDE (6971). Стоячие: ToS-триггер 25.10 · Ш-2 до go1.27 (⚠ + x/text-таблицы Unicode 17 тем же тулчейном — строка 119/реестр 108) · проба провода исполнена и 117 закрыта (D39.97), конфиги 112 залендены — платные прогоны разблокированы.
  • Стек: draft deepseek-v4-flash thinking-ON (+банкнота) ⚠0731 → терминолог (та же модель, батчи, экран target_script) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (⚠ вендор АНОНСИРОВАЛ смену маппинга эффорта pro «early August 2026» — вахта в реестре 108; glm-5 резерв) → судья gemini (Ф2, полигон); канал B Mistral+grok; ~$0.85/ранобэ (D30.4) — 112 залендена (D39.97), пере-калибровка цены при следующем платном прогоне.
  • ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). СЧЁТ ОЧЕРЕДИ на 04.08 (D39.105, скриптом по таблице; обновлять при каждом лендинге): всего 109 строк · зона бэкенд 60 строго (ячейка ровно «бэкенд») / 72 широко (ячейка содержит «бэкенд») · блокеров очереди 0, платные прогоны разблокированы · «скоро» 24 (2·4·18·46·49·55·99·100·101·103·108·109·113·114·116·118·119·120·121·125·128·129·130·134); строка 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 (стройка паков 1116, rerun2) · -25-31 (паки 1720 · мини-прогон · полигон-пакеты 58 · ToS · холодный прогон; D39.2658) · -08-01-02 (сессии №9/№10: общность · качество банка · coldrun-b · открытие фронта/платформы; D39.5990, срез D39.105). Записи ниже — живой хвост (№11+, эра D39.91+).

Бэклог (ЕДИНЫЙ, собран 26.07, актуализация 04.08 D39.99/D39.101; правки — только через оркестратора)

Закрытые строки здесь НЕ хранятся — они уходят в D-лог с номером решения. ID строки стабилен навсегда (не перенумеровывается и не переиспользуется — на «строку N» ссылаются доки и промты, D39.80). Вес: «блокер-очереди» = мешает текущему шагу · «скоро» = ближайшие 12 касания · «когда-нибудь» = записано, не потеряно. Длинная строка начинается жирным лидом — таблица сканируется по лидам. Зонные бэклоги (решение владельца 02.08, D39.84): фронт и платформа ведут СВОИ бэклоги (frontend/docs/BACKLOG.md · platform/BACKLOG.md) — их строки сюда НЕ заходят; здесь движок/полигон/доки, включая движковые стыки фронта (зона «бэкенд», как 99102); строки 96/97 переехали в платформенный (П-1/П-2), надгробия-указатели сохранены.

ID Хвост (одной фразой) Зона Вес Чем закрывается Источник
— ВИСИТ НА ВЛАДЕЛЬЦЕ —
2 Четыре вопроса границы «алгоритмического идеала» (Annotator · семантический судья · ja→ru §B5 · ru-target до/после) владелец скоро (гейт «добора идеала» перед МАСШТАБОМ) отдельное решение D39.33, D39.38
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 Арбитраж банка: замер ИСПОЛНЕН и ПРИНЯТ (research/24, D39.102). Закрыто классом: равноправный совет · кросс-модельные веса уверенности · self-consistency · селекция из вариантов · отказ-сигнал ⟦TM-NO-DST⟧; Q2 отвечен — семейства не окупаются (C3SC=+3 и все три добычи = один кластер; glm-соло 25/45 > совет 23/45). ОСТАТОК СТРОКИ: рецензент-другого-семейства ТОЛЬКО на спорных КЛАСТЕРАХ (слот при ре-пробе 74), роутинг целыми family/series-юнитами (G4), эмиссия рецензента — та же draft/⟨проверить⟩. История захода — D39.89/90/101/102 полигон/ресёрч ОСТАТОК ГЕЙЧЕН ре-пробой 74 (D39.102 п.2) замер (остаток) → решение D39.89, D39.102
6 Строка Gemini в accepts_labels — ждёт слова владельца о подписи интерпретации сужения как разрешения; ре-чек 31.07 понизил приоритет: подпись даёт ПРАВО, но не судью 18+ (фильтр неконфигурируем D22.6 + обход запрещён договором) — возвращаться при вопросе, требующем именно права владелец когда-нибудь отдельное решение D39.32, D39.57
7 Q2 «редактор под sexually-explicit» (grok-4.3 интерим · glm-5 после сверки ToS Z.AI · mistral вон) владелец когда-нибудь (перед первой explicit-книгой) отдельное решение D39.27 п.7
8 D22.7 пер-чанковый L3-скрин — несня­тое предусловие первой erotica-книги в проде, отдельный гейт владелец когда-нибудь отдельное решение D22.7, CURRENT-STATE (оркестратор)
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) владелец когда-нибудь (после фазы 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а Веса рубрики K1K12 не выбраны (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
14 Четыре data-инженерных флага фазы-2 общности, каждый с рекомендованным дизайном (§5 отчёта): ё-фолд → target-данные (char_fold; смена сигнатуры core-примитива через вердикт-несущий банк, сдвиг memory_version) · segmentation-фолбэк громким (ломает контракт corridor-фолбэка pipeline.go:839-848 + голден-фикстура на нём; лечение — объявить блок в голден-yaml) · Fertility per-script map (калибровка ждёт боевого токенизатора) · source-encoding.txt + Go-реестр декодеров владелец когда-нибудь (следующий пак общности) отдельное решение D39.64, GENERALITY_PHASE2 §5.15.4
86 Мелкие открытые решения одним списком (свип D39.66): echo-семантика дропнутого c-lite-члена (D39.18 — оставить pre-c-lite?) · magnitude-кап тяжёлой CJK-утечки (D38.3 п.4в; сейчас strip+flag) владелец когда-нибудь отдельные решения D39.66, D39.69(feed_cap закрыт §1)
— ХВОСТЫ ХОЛОДНОГО ПРОГОНА (исполнен достаточно, D39.58; Р7 владельца) —
16 Полная цена холодного старта: edit-волна не гонялась (Р7); измерено всё ДО редактуры (драфт+банкнота $0.0247/волна · терминолог $0.0060.013/проход). ⚠ Прогон НЕ НАЧАТ и закрыт владельцем как неуспешный на этом этапе (02.08, D39.90) — деньги фазы C не тронуты ($0). Свежие числа с пробы bank-low (10 глав, low на черновике И на бэнк-ролях): черновая волна 20/20 ok — $0.031639 flash + $0.010350 pro · терминолог $0.005750 · классификатор $0.004286 · весь заход $0.045095, леджер ≡ независимому пересчёту до нуля. Редакторская волна по-прежнему НЕ гонялась ⇒ строка жива, и она же держит оси голоса (13б/24) бэкенд когда-нибудь (первый прогон добора идеала — после решения по 46) добор идеала D39.58, D39.90
18 Эмиссия головы 蛊: сид-половина = чек-лист (определяющий терм книги сидится allow_short, D39.50); эмиссия-КАНАЛ демотирован до ИЗМЕР-ГЕЙТА (Q7): полигон-замер «меняет ли эмиссия головы рендер композитов» — строить ТОЛЬКО по эффекту и ПОСЛЕ #10 (однознаковый пост-чек чинится чекер-паком); перед стройкой резолвить K-гейт и KWIC-грязь одиночной головы полигон → бэкенд скоро (санкция Q7 D39.70 — после #10, очередью с ре-пробой) полигон-замер → решение D39.58, D39.60, D39.69
24 Остаток: авто-режим флага (проект Б не гонялся) · оси голоса AD (профили не подписаны; черновик готов — coldrun-a/SIGN-PACKAGE.md §3) ; + слот инъекции голоса и решение gates.voice при ненулевых осях (D39.55/D21 п.2) · слой-2 voice не строим до доказательства слоя-1 · сверить until_ch 白凝冰 при курации сида (D19.3в) бэкенд когда-нибудь (первый прогон добора идеала) добор идеала D39.40, D39.58
— ТЕКУЩАЯ ОЧЕРЕДЬ (D39.59) —
78 Леджер денег = НИЖНЯЯ граница: «2xx body decode failed (call IS billed)» — провайдер списал, исходная попытка в request_log НЕ попадает (≤$0.009/сессия); дизайн фикса ГОТОВ (GENERALITY_PHASE2 §5.6: BilledDecodeFails + per-billed-attempt settle с Estimated=true), но это money/ledger-путь — не $0-хастл. Живое число (D39.86): на ре-пробе 74 — 3 таких вызова на 14, неизвестность $0.015111 при леджере $0.114378 (13% захода); движок засеттлил оценку и честно напечатал estimated-cost rows: 3 ⇒ канал ВИДЕН, но decode_error при этом ещё и терминален (не retryable, не escalatable) — 3 из 7 терминальных флагов пробы A бэкенд когда-нибудь (money-паком) отдельное решение (дизайн §5.6) D39.61, D39.64, D39.86
79 Граница ПЛОТНОСТИ письма для серий: enabled через Go-константу cjkScriptNames — новый плотный скрипт требует правки Go (head-finality уже в данных script-series.txt; пре-существующая граница, D39.75). Первые два компонента строки (isCyrLetter→isTargetWordLetter · magnitude SourceScripts-гейт) исполнены пакетом-чекеров, D39.78 бэкенд когда-нибудь следующий пак общности / касание чекеров D39.64, D39.78
90 Ф2-кандидаты 02-mvp-плана без носителя (свип-хвост, D39.73): CometKiwi/T-index метрики судьи · Batch API судьи (экономия) · llama-server-интеграция локали · стриминг — взять/закрыть при пилот-препе; + H16 самоулучшение (V3-п.2, ПТ-26): дизайн петли по данным судьи — тем же препом полигон/бэкенд когда-нибудь (Ф2.5) пилот-преп-промт (с 85) 02-mvp-plan, D39.66, D39.73, D39.80
— НАХОДКИ СВИПА ПОЛНОТЫ (D39.66: 951 обязательство проверено, потери возвращены в трекер) —
80 Резюме-слой памяти — проза-суммарайзер ЗАКРЫТ (D39.69); строка = ГЕЙТ ПИЛОТА Ф2.5: первый деливерабл пилота — «допускает ли автономная нарратив-состояние-строка ДЕТЕРМИНИРОВАННЫЙ верификатор (source-anchored) — или это D1-компаундинг со схемой»; не-покрытые классы (source-anchored reveal · арк-колбэки без ключа) реальны, но не измерены как дефект Ф2.5 (Q3 подтверждён D39.70) когда-нибудь (пилот) Ф2.5 пре-рег D25 п.89, 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
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
98 DC7 грейд-консистентность — пере-гейчен по сид-покрытию (D39.82): замер пачки реален (25 юнитов/93 «разряд» ≠ канон «класс» на labels-финалах), НО финалы — прогоны до/вне сид-v2-канона, а грейды 甲/乙/丙/丁等 теперь approved-записи сида с decl-формами: mempostcheck флагнёт «разряд» промахом dst; строить DC7 только если ОСТАТОК девиаций переживёт сид-покрытие — замер на первом СИДОВОМ прогоне добора идеала; дом канона при стройке = book.yaml (как register_blocklist; ратифицировано D39.82 — НЕ dc-checkers.txt, посылка D39.79 исправлена) бэкенд когда-нибудь (гейт: первый сидовый прогон добора идеала) замер остатка → решение D39.79, D39.82, SMALLPACK §5-E1
28 Банк-линт латиницы в dst или строгая форма языкового предиката (7 строк утечки алфавита проходят экран) бэкенд когда-нибудь (добор идеала — носитель «свежий мини-прогон» растворён D39.67, актуализация D39.79) касание чекеров при данных добора (помнить оговорку 36а: «甲等 → класс Цзя» строгой формой не ловится) D39.52, D39.62, D39.64, D39.79
28а Prompt-injection-проба входного текста ($0): сепаратор ⟦TM-BANK-v1⟧ и якорь-подобные маркеры В ТЕКСТЕ КНИГИ — поведение среза/парсера/инъекции (книга = недоверенные данные; инструментов у моделей нет, но канал банкноты читает вывод по маркеру) бэкенд/полигон когда-нибудь малая проба сводка-ревью 26.07
— СВИП ГИПОТЕЗ —
30а Перерисовка puml-диаграмм под пост-пак-20 пайплайн (терминолог, банкнота отдельным файлом); дом диаграмм теперь backend/docs/ — правятся одним коммитом с кодом (D39.80); PUML НЕ рендерить (гардрейл) бэкенд когда-нибудь ближайший пак, касающийся pipeline аудит доков 26.07, D39.80
— ОТДЕЛЬНЫЕ ПАКИ/РЕШЕНИЯ (бэкенд, добор идеала) —
31 Слой-2: извлечение дискурс-норм/few-shot из ТЕЛ промтов (форсинг = ja→ru) бэкенд когда-нибудь отдельный пак (идеал D39.33) CURRENT-STATE, D39.33
33 native-Gemini судья (Ф2-механизм) ; до прод-заводки: $0.01-проба thinking⊆max_tokens на боевом слаге (D22.3) + включить sanitizer в pipeline-c2 при оживлении (D33.4б) бэкенд когда-нибудь отдельный пак (идеал) CURRENT-STATE, D39.33
34 Генеральность нарезкиОСТАТОК после фазы 2: сами per-script коэффициенты (est_out ja завышен ~1.7× МОЛЧА · EstimateTokens недосчитывает кириллицу); консолидация класса письма СДЕЛАНА (один дом DenseScript, D39.64) — лечение = Fertility-map (строка 14) + офлайн-калибровка при боевом токенизаторе бэкенд когда-нибудь строка 14 + отдельный пак (с ja→ru) D39.37(5), D39.64
34а Экран кодировки не видит <meta charset> без XML-объявления (епаб с gb18030-метой прочтётся как UTF-8) — до-паковая дыра, сознательно не тронута пачкой 14а (паритет со старым ридером) бэкенд когда-нибудь отдельное решение D39.54, SMALLPACK §8
35 Не-CJK майнер/банк: en-детектора не существует (hanRuns=0), ja с zh-таблицами активно неверен (0/10); нужен второй ДЕТЕКТОР (прототип mine_nonhan.py) + G1G10 требования generic-майнера (вкл. квадратичность G9 ≈4.6 ч) бэкенд когда-нибудь отдельный пак generic-майнера (с ja→ru) D39.37(8), D39.43, D39.50 п.8, POLYGON_PREMEASURE §6
36 Кластеризация майнера глотает родовые титулы (族长/学堂家老 в кластере 葛家) — закрыто на границе сборки входа, сама кластеризация не чинилась бэкенд когда-нибудь отдельное решение D39.43, D39.45
36б Второе мнение по банку: рецензент ДРУГОЙ моделью, несогласия — отдельной колонкой подписной таблицы (судья-с-декоем в роли рецензента; решает владелец, D39.46-ограничение не бьёт). ⚠ Бэкенд-стройки НЕТ (D39.69 закрыл по нужности); замер ИСПОЛНЕН (research/24, D39.102) — остаток = строка 5: рецензент спорных КЛАСТЕРОВ при ре-пробе 74, роутинг family/series-юнитами; переживёт замер → тонкая колонка наблюдаемости, не гейт полигон (замер) → бэкенд (только если переживёт) когда-нибудь (слот при ре-пробе 74, остаток строки 5) замер остатка → решение D39.69, D39.90, D39.102
36г Проводной формат каналов пересказан прозой в каждом пар-промпте, парсер в Go, связи нет — формат в шаблон движка ({{banknote_format}}); линты держат класс, дублирование остаётся бэкенд когда-нибудь (со следующей правкой промптов) отдельное решение (Р5) D39.58
37 Квадратичности: AttachKWIC (16.8 с / 2000 кандидатов; фикс — многошаблонный поиск; кандидат-носитель — опция фикс-пака 128, Aho-Corasick в membank готов) + src-правило банкноты при промахе чанк-пути (строка × длина книги; на 10 главах не видна) бэкенд когда-нибудь отдельное решение D39.45, PACK20_BANK_BUILD §8.5.1, D39.58
38 Смета не видит пере-покупку прохода терминолога на каждой итерации подписи (роль не пишет chunk_status, не видна projectRebill) · хвост приёмки №13 (СО СЛОВ слепого ревью, НЕ верифицировано): адрес чекпойнта батча = ординал при частотной сортировке растущего набора кандидатов ⇒ реюз чекпойнтов прохода ~0 на инкрементальной книге (terminology.go:925-931) бэкенд когда-нибудь отдельное решение D39.45, PACK20_BANK_BUILD §8.5.2, D39.102
39 S12 частичен: malformedSeparatorAt не ловит подмену слова разделителя и обрыв токена (комментарий обещает) бэкенд когда-нибудь отдельное решение D39.45, PACK20_BANK_BUILD §8.5.3
40 bankTokenBudget: worst-case зашит zh→ru (признанная утечка §0; CJK-цель недобирает вдвое) бэкенд когда-нибудь отдельное решение D39.45, PACK20_BANK_BUILD §8.5.4
41 golden: вторая фикстура С langpack (сейчас пинится только фолбэк-путь) ; + golden-счётчики голоса (хвост D39.58) бэкенд когда-нибудь отдельное решение D39.37(6)
42 prompt_override — легальный обход гарантии слоя-2, сформулировать честно бэкенд когда-нибудь отдельное решение D39.37(7)
43 request_log без скоупа/ретеншена + first_flag_reason = третье представление истории попыток (корень — неразведённые скоупы) бэкенд когда-нибудь отдельное решение D39.37(9)
44 Флор — калиброванная константа без модели «thinking в completion»: МОДЕЛЬ ПОЛУЧЕНА замером (D39.86), сама строка сужена до выбора числа. Замер боевой формы: при вендор-дефолте high размышление на плотном хане потолком НЕ ограничивается (8496 → 0/9 пригодных, 16992 → 1/5; вендорская норма вывода для high = 384K) ⇒ флор не является рычагом против неограниченного думания — рычаг это reasoning_effort; при low размышление 170313 ток. и флор 8000 избыточен. Остаток строки: какое число ставить ПОСЛЕ развилки 74 (и помнить, что у deepseek-v4-pro эффорт не настраивается — вендор-маппинг low→high, quirks п.3а). ⚠ РАСХОЖДЕНИЕ ТРЕКЕРА СНЯТО (D39.90): строка 74 объявляла 44 «закрытой этим замером» — это верно только для ПОЛОВИНЫ «поднять флор» (фальсифицирована). Живой остаток — обратный: опустить/пере-калибровать число по числам пробы bank-low, где стена на low не исчезла, а разредилась (упавший батч: content="", finish=length, completion=7999, reasoning=7999 — тот же тяжёлый хвост, 1/5 вместо 4/5, и это стохастика вызова: батч не самый большой по входу). ⚠ Флор при low НЕ варьировался ни разу — упавший батч умер ровно на потолке 8000, так что «сколько ставить» остаётся незамеренным вопросом, а не выводом бэкенд когда-нибудь (триггер «приёмка 104» НАСТУПИЛ — D39.91, ручка заленжена; «сколько ставить» остаётся НЕзамеренным — нужен вариационный замер флора при low) отдельное решение D39.37(10), D39.86, D39.90
45 max_tokens-упоры (две единицы) — вернутся на en-книге ; halve-chunk-on-retry (research/22 §2 №7) ОТКЛОНЁН D39.74 — вернуться сюда же при живых упорах бэкенд когда-нибудь отдельное решение (с en) D39.37(11)
46 Экран целевого языка на выходе НЕ-ПОСЛЕДНЕЙ стадии — ЖИВОЙ НОСИТЕЛЬ ПОЛУЧЕН, класс поднят (D39.86). Было: 38/40 дефектов латиницы живут в черновиках вне охвата гейтов (waverun.go:486). Стало: на ре-пробе 74 при effort:low 1 черновик из 18 пришёл ПОЛНЫМ связным переводом НА АНГЛИЙСКИЙ и прошёл как disposition=okclassify экранирует ИСХОДНУЮ письменность, пустоту, обрыв и отказ, а «не исходный и не целевой» не ловит ни один предикат (частично ловится лишь третий язык, ДЕЛЯЩИЙ письменность с источником, и ловится под ЛОЖНОЙ причиной cjk_artifact). ⚠ Последний рубеж УСЛОВЕН тройкой isFinal && Gates.Sanitizer.Enabled && checkers.TargetActive() (chunkrun.go:52), и дыра на оси ЦЕЛИ двусторонняя: (i) без данных цели слой 7 инертен ПО ОТСУТСТВИЮ (осознанный дизайн, disposition.go:302-305) ⇒ для не-русской цели рубежа нет вовсе; (ii) а с данными будущей ЛАТИНОПИСЬМЕННОЙ цели detectLatinInsertion (checks/sanitizer.go:228) сработает на ЧИСТОЙ целевой прозе и дропнет 100% чанков — внутри санитайзера он НЕ обусловлен TargetScriptNonLatin(), хотя доккоммент это объявляет (реальный гард только на репэйре — quality.go:215, repair.go:208), а частичный файл цели невозможен (CompileCheckers паникует). ⇒ ревью-вопрос «заработает ли пара, которой в репо нет, без правки Go?» для →en/→de отвечается НЕТ; кандидат фикса — тот же шов, что уже применён к репэйру. (Контрпример «pipeline-c2.yaml — легальная сборка без санитайзера» проверен и СНЯТ: c2 неисполняем CheckRunnable, его санитайзер забукован строкой 33.) Даже при включённом санитайзере худший исход — не потеря юнита, а ТИХО ОТГРУЖЕННЫЙ релейный перевод zh→en→ru, если билингв-редактор отрендерит русский с английского черновика. Область фикса — «выход любой НЕ-последней стадии», не «черновик» (isFinal позиционный, stagerun.go:145). ⚠ ДИЗАЙН ПОДАН, КОДА НЕТ — СТОИТ НА РЕШЕНИИ ВЛАДЕЛЬЦА (D39.90). Три поправки сессии к посылке, все замером: (1) боевой гейт уже ловит 18 из 20 off-target событий (sourceScriptShare > 0.15, disposition.go:224,275; 0 ложных на 1055 здоровых, запас 13×) ⇒ остаточная дыра 2 чанка из ~1100 = 0.18%, оба английские, японский ловится долей ханьцзы; (2) второй рубеж существует, но стоит не там — санитайзер поймал бы те самые байты («Latin insertion»), но chunkrun.go:52 требует isFinal, а в двухстадийной топологии черновик НИКОГДА не финальный; тот же isFinal глушит на черновике латинный линт, флаггер голоса и глоссарный пост-чек; (3) здоровый минимум на тексте, который РЕАЛЬНО видит гейт (после среза банкноты), = 0.9767 при n=1055. Развилка владельцу: (а) предикат внутри classify() + бамп classifierVersion — двигает снапшот у всех книг, голден пере-захват один раз, на свежем стенде $0; (б) отдельный опциональный гейт вне classify() — снапшот не двигает, но это второй способ сказать «ответ непригоден», и он выключен по умолчанию; (в) языковой детектор. Выбор сессии — (а). Носитель данных — lang.LangScripts(Book.TargetLang), НОВЫЙ go:embed-файл не заводить (EmbeddedVersion фолдится безусловно = перекупка всех книг всех пар); порог 0.50 не калиброван, а поставлен в середину пустого интервала. Три мины наивной реализации названы: новый флаг провалился бы мимо escalatable()/retryable() (⇒ переиспользовать FlagCJKArtifact), классификатор ложно флагался бы 16/16, экран слеп к ПОДМНОЖЕСТВАМ письменности (чисто китайский выход для →ja наберёт 1.000). Вторая половина дыры (detectLatinInsertion без TargetScriptNonLatin()) — чинить тем же диффом, для ru вердикты не двигаются. Константы и хвосты дизайна, без которых подпись неполна: порог abstain 200 букв (ниже экран воздерживается; самое короткое off-target событие 346 букв, ниже 200 падают лишь 5 из 1055 здоровых, все со счётом 1.0000) · ⚠ опубликованная база «~1.5% off-target» НЕВЕРНА по знаменателю — он пулит черновики с редакторскими выходами, а редактор такой отказ произвести не может; на ЧЕРНОВОЙ вызов база 3.02%, то есть вдвое хуже · ⚠ не проверено, что делает РЕДАКТОР с английским черновиком — вытащит обратно в русский или отредактирует как английский; именно этот неизвестный решает, чем является остаточные 0.18%: потерей юнита или тихо отгруженным релейным zh→en→ru · английских черновика найдено ДВА (fb51e135a395, 4080ee8287af), плюс японский в exp15 · cultivation чинить в СИДЕ, а не порогом: 86 из 1055 здоровых несут голое английское cultivation внутри беглого русского, и все 32 абзаца ниже 0.90 содержат именно его, ни один — ханьцзы; правка пар-данных двигает LangpackVersion с omitempty ⇒ перекупка ограничена книгами ЭТОЙ пары (чинить на плане, где перекупка уже) · Hunspell и GlotScript-эмбед — не строить · база замера = строка 113 · 02.08 вечер (D39.92): владелец пере-поставил задачу closed-set («вернуло НЕ тот язык, что просили»; полноценный LID — только запасной флаггер вне пути вердикта; проверку изолировать отдельным слоем) — ресёрч §5.15.3 отвечает постановке, форма (а)+изолированный модуль подтверждена, слой-0 владельца (полоса len(out)/len(in)) добавить замером на фикстуре 113 владелец → бэкенд скоро (порядок §5.4: сначала 113, шаг 6 — под подпись) правка Go по плану §5.4 D39.39(д), D39.86, D39.90
47 M2-кэш / доктрина Д2 — кандидат на отдельную ратификацию оркестратор/бэкенд когда-нибудь отдельное решение D39.42
48 Направленная банкнота — вернуться по замеру покрытия терминолога бэкенд когда-нибудь отдельное решение D39.42
48а Серийный шаринг банка — РЕАЛИЗАЦИЯ (экспорт подписанного глоссария как сид-YAML следующей книги серии; спойлер-окна плющатся в since_ch=0); контракт round-trip держится тестом, самой фичи нет бэкенд когда-нибудь (перед второй книгой серии) отдельное решение D39.42 задел (а), PACK20_BANK_BUILD З-а
48б Импорт «оригинал + чужой перевод» как режим данных терминолога (target-агностичный вход есть контрактом; сам режим + провенанс источника + юр-сторона в юр-пакете) бэкенд/владелец когда-нибудь отдельное решение + Ф2.5 (юр) D39.42 задел (б), PACK20_BANK_BUILD З-б
128 Фикс-пак банка (вход §G research/24, класс D39.71): G1 семейный со-батч из ПАР-ДАННЫХ (имя=префикс/реалия=суффикс, без транзитивности, серия сильнее семьи; + многорунные модификаторы серий — 十一转 рвёт со-батч равнодлинности на ранге 11; + майнерские containment-пары в один юнит) · G2 intra-run ConsolidationConflicts ($0; 18/149 на живом банке) · G3 наблюдаемость (Signals/Invented/Conf в стоп-таблицу · ловушка числового хвоста ParseReply · alias-джойн подписной карты miner_emit.go:242 — владелец подписывает, не видя alias-рендерингов · имена эвиктнутых при NEvicted · per-batch спросили/ответили + WARN на пустой ответ батча/классификатора) · G5 счёт голосов по нормализованной форме + Via-провенанс фолда (первый-выигрывает врёт на wire) · опции: перф 37 (Aho-Corasick в membank готов) · гигиена (мёртвая колонка BanknoteTruncated + стейл-комменты · NoDst-префикс-матч для латиница-target). Цена фолда: перекупка бэнк-батчей один раз (центы), волны/снапшоты не двигаются; вне снапшота — G2 и печать (G5 двигает wire, аудит промта) бэкенд скоро — САНКЦИОНИРОВАН владельцем 04.08 (D39.103 п.1), ПРОМТ ВЫДАН (docs/BACKEND_BANK_CLUSTER_FIXPACK_SESSION_PROMPT.md) фикс-пак одним промтом D39.102, D39.103, research/24 §G
129 Банкнота-парсер теряет хвост многословного dst (находка приёмки №13 против клейма A10): banknote.go:236 берёт parts[1] голым при 3-польном формате — «Фан Юань» с двойным пробелом банкует полу-имя «Фан», хвост уезжает в колонку типа и падает в "term"; ре-джойн терминолога (terminology.go:880-885) ровно этот класс чинит с комментарием. Фикс = ре-джойн середины при последнем поле ∈ закрытому словарю типов; двигает observed → авто-банк (memory_version там, где случай реален) — цену назвать при выдаче бэкенд скоро (хвостом 128 либо отдельно) малое касание D39.102 п.3
130 emitRankCap × writeAutoBank: терм, выпавший из топ-200, МОЛЧА стирается из авто-банка посреди книгиminer_emit.go:119-123 кап ДО эмиссионных фильтров (seed/rejects слотов НЕ освобождают — исключаются после капа), mining.go:448-460 перезапись файла целиком без мерджа против «накопительного» замысла пака-20; оплаченная консолидация теряется, редактор теряет строку банка (по D39.104 — закон на проводе) без сигнала; FL-3 ратифицирован ДО авто-провода D39.42 — взаимодействие не ратифицировалось. Минимум $0 = дифф старого/нового авто-файла + WARN с именами; накопительный мердж/освобождение слотов — СТОП-решение (двигает банк → memory_version) бэкенд скоро $0-минимум + СТОП-решение D39.102 п.3
131 Кап инъекции не считает маркер и гендер-ноты: glossaryLineTokens бюджетирует только «src → dst» (memory.go:512-515 против рендера :698-708) — авто-книга (все строки Ambiguous с ⟨проверить⟩) превышает glossary_token_budget ~на 4060% при budget 800; биллинг/потолки компенсированы (резервация по фактическому рендеру, stagerun.go:469-477), сам кап не исполняется. Фикс двигает состав инъекций → RequestHash → перекупка волн ⇒ СТОП-решение с названной ценой. ⚠ После строки 134 (единый блок, маркер снят с провода — D39.104) превышение пере-замерить: состав рендера сменится бэкенд когда-нибудь СТОП-решение D39.102 п.3
132 Стойкий (пост-ретрайный) аутедж ТОЛЬКО банк-провайдера валит весь ран вопреки коммент-контракту «optional step never aborts» (terminologist.go:630-634 — деградация только на ceiling; транспортные ретраи гасят transient, httpllm.go:126-160; потерь нет — чекпойнты реплеятся за $0): решить — деградировать в «термы неконсолидированы»+WARN либо честно переписать коммент бэкенд когда-нибудь малое касание через СТОП-решение D39.102 п.3
134 Дата-правка инжект-заголовков под доктрину D39.105 (единый закон-блок редактора вместо двухсекционки · оговорка ОБЛАСТИ употребления · снятие маркера ⟨проверить⟩ с провода; статусы строк и подписная таблица НЕ меняются): кандидат-тексты — §B промта пробы 18; вносить ПОСЛЕ отчёта пробы (двигает рендер → RequestHash → перекупка, цену назвать при внесении) бэкенд скоро (ГЕЙТ: отчёт пробы 18) малое касание D39.104 п.2
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-шаги миграций v8v14 не идемпотентны вопреки шапке migrate.go:9-11 (полу-применённая БД не сходится; счётчик версий скрывает) — находка критика полноты пака-19 бэкенд когда-нибудь отдельное решение D39.56, PACK19_BUILD §6.9
50 F3-остаток идемпотентности бэкенд когда-нибудь отдельное решение D39.34(4)
51 human_override LOCK (D29 п.1г, в коде 0 вхождений) бэкенд когда-нибудь отдельное решение D39.34(4)
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) полигон скоро полигон-пакет D39.37(4), D39.40, D39.46
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
59 Вендор-чек префикс-кэша ZAI/GLM (на нём стоит вся кэш-экономика W1/Q2c) ; + GLM context-overflow гард (finish=model_context_window_exceeded — NOT-do пака-12 без решения) ; + Mistral-strip гейт message-builder (research/21 §1.1: extra_forbidden на reasoning-поля; ЛАТЕНТЕН при нашем single-shot wire — гейт перед прод-путём mistral в канале B / любым multi-turn; D39.74) полигон когда-нибудь (до МАСШТАБА) полигон-пакет D39.34(6)
60 Scheduler-aware волны под peak-valley DeepSeek (прямой COGS-рычаг) полигон/бэкенд когда-нибудь (до МАСШТАБА) отдельное решение D39.34(6)
61 Прайс/wire-гигиена: продление prices_checked без правки чисел · гейтнутые платные армы (edit-единица >3200 и др.) · wire-probe temperature в thinking-канале DeepSeek полигон когда-нибудь полигон-пакет D39.34(6)
— Ф2.5 / ПИЛОТ / ПРОД —
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 владелец когда-нибудь (первый прогон добора идеала) добор идеала / отдельное решение D39.20, D39.22, CURRENT-STATE
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
— Ф3 / ПРОДУКТ —
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-леджер ; + F3-brief из D29 п.3 (chat-edit · Not-useful-петля · cost-of-fix) + Ф3-скоуп 02-mvp-plan (TMX/TBX · Bertalign · дистилляция 714B); + V5: фронт ВЕБ-ПЕРВЫЙ, SEO/ранжирование (куки · страницы-сироты · актуальные алгоритмы Google) — определяет выбор фреймворка (SSR vs SPA), в Ф3-дизайн ДО выбора стека (ПТ-23) бэкенд когда-нибудь Ф3 D39.34(7), START_PROMT V5, D39.80
94 Продукт-механика входа и прогона (V2, ПТ-16..18): абьюз/misuse-прескрин дёшево и точно ДО трат токенов (H8) + UI-контракт отказа (проект-решение D39.80) · лимит размера входа настройкой (H7) · продукт-кнопки «стоп/продолжить» поверх построенных graceful stop и redrive, абьюзивный прогон НЕ продолжать (H10); API-форма — по контракту 14 (D39.99; статус отказа — открытый К-9) бэкенд к подключению фронта (ПОДТЯНУТА D39.81; лимит можно раньше, к пилоту) отдельный пак при Ф3-препе (контракт 14 ратифицирован) START_PROMT V2, H7/H8/H10, D39.80, D39.81
96 → переехала в platform/BACKLOG.md П-1 (зонные бэклоги, D39.84: HTTP/SSE-слой, обвязка, аутентификация, порядок деплоя); здесь остаётся ратифицированным сам ИНВАРИАНТ D39.81 — движок = процесс-на-прогон (EXCLUSIVE flock store.go:43), сервер в backend НЕ пишется платформа зонный бэклог D39.81, D39.84
97 → переехала в platform/BACKLOG.md П-2 (глобальный брокер рейт-лимитов; гейт «до второго параллельного пользователя» зафиксирован там же) платформа зонный бэклог D39.81, D39.84
99 Пофазный прогресс draft N/M ∥ edit N/M: unit = done только при всех draft-строках членов + edit-строке (status.go:328-331/365) — индикатор «готово N/M» стоит 0% ВСЮ черновую волну; данные уже есть (chunk_status — строка-на-стадию, migrate.go:111-126; status уже делит стадии по волнам status.go:332-334) — вывод пофазных счётчиков в StatusReport/JSON без миграции схемы бэкенд скоро (БЛОКЕР контракта API, D39.99) малое касание read-model релей фронта 02.08, D39.84
100 Персист манифеста глав/чанков (+ chunker_version из снапшота + хеш источника): каждый read-вызов заново ингестит и режет исходник (status.go:177-195 bookChunks; redrive — дважды за вызов; замер фронта 1.421.51 с CPU на книге 23 МБ, умножается на число книг) — нужен под экран разбора и дерево глав; дизайн обязан пережить смену чанкера (--resnapshot) бэкенд скоро (БЛОКЕР контракта API — стабильный id главы, D39.99) отдельное решение (дизайн по контракту 14, D39.99) релей фронта 02.08, D39.84
101 Машиночитаемая таблица подписи банка: кап 20 — только stdout (render.go:98), полная таблица — текстовый сайдкар .bank-stop.txt, JSON/структурного выхода нет (mined-signature.yaml — сид-дельта без freq/spread/evidence); нужна фронту S5; помнить ловушку «подпись ≠ UPDATE» (банк пересобирается: seeding.go:18/110, glossary.go:158-162 — контракт подписи пишет в файлы-источники) бэкенд скоро (БЛОКЕР контракта API — экран подписи, D39.99) малое касание (форма — по контракту 14, D39.99) релей фронта 02.08, D39.84
102 Приём внешнего trace-контекста в tmctl: TraceID минтится заново каждым вызовом (main.go:67-70; внутри вызова трасса цельная, request_log.trace_id есть) — прогон, запущенный платформой, должен быть одной трассой бэкенд когда-нибудь (Ф3, с 96) малое касание релей фронта 02.08, D39.84
103 NDJSON-эмиттер прогонных событий со стабильным словарём (машинный канал живого статуса для платформы, research/23 §2): NDJSON-логи уже есть (LOG_FORMAT=json, авто-оси trace/book/chapter/stage/role — obs/logging.go:15-54), но сообщения прозой, version-хендшейка нет, а событие потолка отсутствует вовсе (деньги только в тексте ошибки stagerun.go:472-494); нужен словарь-enum + version-хендшейк первой строкой (образец terraform -json: минор = ignore-unknown, мажор = reject) + событие потолка; все границы — единичные call-sites в pipeline рядом с готовыми slog; человеческие логи уже на stderr — stdout-дисциплина соблюдена бэкенд скоро (БЛОКЕР контракта API: словарь §6 + событие note per-unit + ceiling, D39.99) малое касание research/23, D39.85
125 Артефакт экспорта БАНКА (полный банк тремя статусами — канал чтения /bank контракта 14): строка 101 это таблица ПОДПИСИ (кап 20 stdout, cmd/tmctl/render.go:98), не экспорт; сам банк в приватном SQLite, платформе закрыт (D39.85) — нужен экспорт-артефакт движка на границе стадии/стопе бэкенд скоро (БЛОКЕР контракта API, D39.99) дизайн + малое касание export ревью контракта 04.08, D39.99
126 Механизм поднятия потолка для resume после ceiling-стопа: движок продолжает «once the ceiling is raised» (stagerun.go:488-489), канала поднятия в контракте нет и в MVP-UI быть не может (деньги, D39.84) — платформенный механизм/политика; продуктовое слово стопа — К-8 у владельца платформа/бэкенд когда-нибудь (до подключения фронта к живым прогонам) дизайн-вход П-1 ревью контракта 04.08, D39.99
127 Устаревший DDL-коммент glossary.source (migrate.go:193: «seed ruby auto», фактические пути записи — seed/ruby/mined, auto не пишет никто; фантом уже утёк во фронт-доки дважды) — поправить коммент бэкенд когда-нибудь (попутно любым паком store)
105 Роль classifier мис-вердиктится как эхо + честность двух новых строк наблюдаемости (D39.86). (а) classifyOutput даёт поблажку SourceEchoExpected только roleTerminologist (chunkrun.go:37), а ответ классификатора по формату состоит из исходных ханьских термов ⇒ доля исходного письма 0.200.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 объявлен завершённым владелец → бэкенд когда-нибудь (смена контракта ролей = решение владельца) ресёрч-арм → дизайн → крупная стройка 09 §Слой 3, D39.90
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 шаги 12, §7
114 Конфиго-слой ручки эффорта: два дешёвых хвоста приёмки (вне снапшота, $0 прогонов). (а) Д4 отчёта: gates.terminology.target_script НЕ сверяется с book.target_langtarget_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
116 Порог классификатора «6/6» ратифицирован для ОДНОГО вызова, не для выборки — и на рекомендованном low риг N=5 КРАСНЫЙ: 4/5 (Д8 отчёта). Контракт обязан стать выборочным («≥4/5 при N=5» или иная форма — решение) ДО применения (б) к любому конфигу, иначе рекомендация low противоречит собственному приёмочному числу. Честная граница чисел (D39.86, подтверждена приёмкой по сырью): 2 из 6 термов (元石/灵泉) стоят дословно в промпте классификатора = припоминание; падение low — ровно по дискриминирующему подмножеству (1/4 против 4/4); единственный промах — вызов на 91 completion-токене (модель не подумала), уровень ни при чём 02.08 вечер: рекомендация подана владельцу — «≥4/5 прогонов N=5 достигают 6/6» (альтернатива жёстче: 4/4 по дискриминирующему подмножеству без термов-припоминаний); ждёт слова владелец → оркестратор скоро (112 залендена (D39.97) — порог не должен отстать) пере-ратификация порога, $0 D39.91, EFFORT_HANDLE Д8, D39.86
108 Реестр ЗАГЕЙЧЕННЫХ ТРИГГЕРОВ + норма закрытия «по нужности». ⚠ Первый жилец реестра, найденный тем же лендингом: сиблинг-угроза экрана целевого языка — выход на языке, БЛИЗКОМ к целевому (украинский/болгарский для ru): ни одного события не наблюдалось, но если появится, дискриминатор — плотность РУССКО-ЭКСКЛЮЗИВНЫХ букв (ы/э/ё) НИЖЕ ожидания, а НЕ замыкание алфавита (EFFORT_HANDLE §5.4 шаг 8). Шесть остальных реопенов живут только в телах D-нот и не имеют места, где их поднимут: МАСШТАБ (uniformity-пасс D12 · эмбеддинг A7/D2 «реопен = измеренный recall-разрыв, только batch-time лейн» · STITCH «бюджет ИЛИ измеренный эффект размера инъекции» · канон-пин серий) · вторая пара живьём (C-триггер softsign-decl · автономная Decl-эмиссия) · вторая книга того же жанра (жанровый shared-слой) · первая traditional-книга (probe-литералы 时辰/千万/数十万 цельным дата-батчем) · появление Go-кода платформы (go.work — ⚠ platform/go.mod УЖЕ заведён, триггер наступил) · перед стройкой fix-8 (ёлочный экстрактор атрибуции + корпус-замер). +Два жильца приёмки D39.91: Д5 — enum эффорта провайдер-слеп (medium на DeepSeek не определён, max/xhigh недостижимы; пер-модельную таблицу решено НЕ строить — механизм без носителя качества/денег, misconfig ограничен бюджетами и назван в доккомменте ValidReasoningEffort; триггер: первый живой инцидент кривого поведения уровня на проводе) · Д9 — аддитивные провайдеры отказываются бэнк/repair-гейтам, блок не несёт reasoning_max_tokens (fail-closed в лоадере; триггер: первая потребность гейта в аддитивной модели). +Вахта D39.92: вендор анонсировал смену МАППИНГА эффорта deepseek-v4-pro «early August 2026» ⇒ квирк 3а («low→high, эффорт не настраивается») может устареть (триггер: аномалия редакторского арма ИЛИ дата > 05.08 ⇒ пере-проба маппинга + сверка changelog; абсорбция в 00-provider-quirks.md — полигоном). Норма D39.66 «каждое отложено обязано ТЕМ ЖЕ лендингом получить строку или явное закрытие» нарушена ≥6 раз ПОСЛЕ собственной ратификации, и класс потерь узкий — теряются именно ЗАГЕЙЧЕННЫЕ РЕОПЕНЫ. Лечение: короткий реестр триггер→что вернётся→источник, сверяемый на каждом переходе горизонта (горизонт расписан до Ф3, точки сверки известны заранее) · (D39.96) тулчейн go1.27 переключит x/text на таблицы Unicode 17.0.0 МОЛЧА (xTextVersion пинит go.mod-строку, не таблицы) — триггер: любое движение тулчейна к 1.27 ⇒ строка 119 ПЕРВОЙ · (D39.96) CI-воркфлоу Forgejo (удалёнка 10.0.3, раннер не подтверждён; решение владельца 03.08 — не писать) — триггер: появление раннера ⇒ файл workflow; до того точка входа make battery оркестратор скоро ($0, гигиена трекера) завести реестр + сверку в норму лендинга D39.66, D39.90
109 Продуктовые требования БЕЗ строки-носителя (сверка 02.08): ПТ-6 структурные традиции целевого языка (короткие zh-абзацы → читаемые ru-структуры) — держится только редакторскими мандатами в пар-промптах, поверхности измерения нет, в составе Ф2-гейтов (52) структуры абзацев нет · ПТ-7 «слабый оригинал: подправлять художественно или быть верным» — вопрос владельца, не заведён даже в блоке «висит на владельце»; после ответа: режим параметром запуска (данные, не ветка Go) + мандат в промпте + гейт «улучшение vs отсебятина» · ПТ-22 продуктовый ИНТЕЙК настроек (сегодня = рукописный book.yaml; частично покрыт 67 в части «версия исходника») · ПТ-10 сам механизм веб-фетча (tool-calling, провенанс/кэш добытого, инжект под правилом «книга = недоверенные данные») — есть только гейт безопасности 70. Гигиена реестра тем же касанием: ПТ-24 не проставлена 101, ПТ-1/ПТ-11 не проставлена 105, ПТ-2 не проставлены 46 и 34а оркестратор/владелец скоро ($0 — расписать носители) завести строки/вопросы → диспозиции D39.90, product-requirements
110 Детектор повторов лемм / защита авторских рефренов (04-unhappy-paths.md:97,130 п.5): $0-минимум исполнен промптом (editor.md, пакет-чекеров 02.08), механизм явно не строился — «нет размеченного класса; связка с alignment/Bertalign». Строки-носителя не было; предмет живой, потому что отличить дефектный повтор от авторского рефрена без выравнивания нельзя бэкенд/полигон когда-нибудь (с корпусом пилота, строка 85) размеченный класс → решение 04-unhappy §5, D39.90
111 Дубль ключа пар-файла: фикс накрыл половину. D39.82 закрыл строку 53 через putUniqueDC в parseDCCheckers, но генерик-парсер категорий parseCategoryRows (internal/lang/langpack.go:806-826, строка cats[f[0]][f[1]] = val) по-прежнему МОЛЧА last-wins — а якорь техдолга указывал именно на него. Пар-данные с опечаткой-дублем тихо теряют первую строку бэкенд когда-нибудь (малое касание, с любой правкой langpack) fail-loud + тест 13-tech-debt-anchors, D39.82, D39.90
118 tools/go.mod — РЕШЕНИЕ ПРИНЯТО (D39.97 п.4): строить отдельным малым паком. cmd/tmvet+internal/archguard → отдельный модуль (backend/tools/); make battery гоняет оба модуля; tool-директива Go 1.24 НЕ решает (MVS общий). Выигрыш: бамп инструментов физически не двигает x/net/x/text. Sqlite 1.55 остаётся (D39.97 п.4) бэкенд скоро (до следующего бампа зависимостей) малый пак по D39.97 п.4 D39.96 п.6, D39.97
119 x/text-детерминизм: вердикт-несущие вызовы НЕ свёрнуты в версии (находки-5/6 приёмки). SanitizerVersion не сворачивает ничего x/text-ного, а detectCJKLeak зависит от width.Fold (sanitizer.go:211,687) — смена x/text перевернула бы вердикт БЕЗ смены снапшота; ExportNormalize меняет экспортные байты вне хешей (sanitizer.go:709); xTextVersion пинит строку go.mod, НЕ скомпилированные таблицы — тулчейн go1.27 переключит x/text на Unicode 17.0.0 МОЛЧА (tables17.0.0.go //go:build go1.27; жилец реестра 108). Делать: явные версии-свёртки + механическую сверку «таблицы↔константа» вместо совпадения бэкенд скоро правка версий-свёрток + тест D39.96 п.6, отчёт §5 находки-5/6
120 buildCheckers жёстко берёт lang.Load(root,"zh","ru"), бейзлайны ключуются по классу, не по паре (§7-8) — приезд ja-ru требует правки Go, против мандата общности §0.1. Родня строки 115 (явный embed-список целей) — брать одним касанием бэкенд скоро правка Go + тест на паре-которой-нет D39.96 п.6, отчёт §7-8
121 archguard v2 (посадки приёмки D39.96 + §7-12/13 + §7-9). ⚠ Пункты (0а)/(0б) — РЕГРЕССИЯ против снесённого байт-гарда; дофикс ИСПОЛНЕН и принят D39.97 — (0а)/(0б)/(а) ЗАКРЫТЫ, плюс блокер type-param, ось имени и ложное срабатывание сверх промта; остаток строки — (б)/(в)/(г)/(д). (0а) egressseam пропускает пакетную llm.Complete(...): nil-Selections → молчаливый выход (archguard.go:240-242; фикс — fallback на Uses); (0б) пропускает интерфейс с llm-типами внутри композита (Complete(ctx, []llm.LLMRequest)…touchesPkg не рекурсивен, :79-82); старый регекс .Complete( ловил обе формы; комменты «cannot be hidden» (:250-253 и фикстура) фальсифицированы — переписать честно; (а) runRequestSeam обходит ТОЛЬКО *ast.CompositeLit (archguard.go:197): var r pipeline.Request+присваивание и new(pipeline.Request) проходят МОЛЧА — подтверждено на реконструкции: дыра ОБЩАЯ со старым гардом (не регрессия); фикс ~10 строк: симметрия ValueSpec/CallExpr со stage-сеамом + негативная фикстура, документирующая осознанные пропуски; (б) класс «встраивание · make+присваивание · дженерик-ноль» закрывается не свитчем, а ТИПОМ (нулевое значение config.Stage непригодно вне пакета); (в) политика build-тегов vet (сегодня default+live; чужой тег невидим — других в репо нет); (г) кандидат 4-й анализатор границы импортов — backend/README.md:3 заявляет «проверяет go list -deps», что не автоматизировано ничем; (д) семь осознанных пропусков после дофикса 03.08 (принят D39.97; фикстуры БЕЗ want — покраснеют, когда начнут ловиться): llm.Ask-класс · пара внутри named-обёртки · встраивание/make/generic-zero · internal/llm исключён целиком (второй провод внутри адаптеров ловится только ревью) · внешние тест-пакеты · рефлексия (статикой не закрывается) · файлы за третьим сборочным тегом — всё, что закрываемо, закрывается типовым швом (б), не свитчем бэкенд скоро (остаток: (б) тип вместо свитча · (в) build-теги · (г) 4-й анализатор · (д) семь пропусков) правка анализатора + посадки D39.96 п.2/п.6, отчёт §7-9/12/13
122 Гигиена пака стандартов (не-блокеры приёмки). TestCheckerLabelsCandidates — ни одного ассерта (дизайн-REPL в одежде теста) · сообщение TestMemoryVersionPinsTheUnverifiedRenderRevision не различает «изменился рендер»/«изменилась нормализация» · Makefile: regex GO_MIN_VERSION пропускает go1.26.01.26.3 (патч-уровень не проверяется) · включить unconvert (1) и wastedassign (2) — дешевле уже включённых по собственному правилу конфига · .skips.log не в gitignore (прерванная battery оставляет мусор в дереве) · Fprint-исключение errcheck скоупить на cmd/ (сейчас весь модуль — будущий писатель файла экспорта получит молча съеденную ошибку) · w\.Write-исключение ключуется ИМЕНЕМ receiver-а вопреки собственному принципу конфига · miningstop-исключение глушит текстом весь файл — якорить на функцию · provenance-числа конфига дрейфуют от дерева (293/31/93 против 294/33/91; контрпример «все прод-Close — читатели»: chunktest/epub.go:51) · коммент c1 «echo mine unarmed» поправлен дофиксом 03.08 (снят) · инвариант-коммент httpllm.go:77 «zero wire bytes» — верен для полей пинга, неверен для бампа x/net, который их привёз (находка-4 D39.96) — переписать честно бэкенд когда-нибудь мелкие правки D39.96 п.6, отчёт §7-6/7, §9 хвост
123 Полигон: jieba==0.42.1 — build-time зависимость артефакта контраста eval/exp16/data/jieba_dict_general_zh.txt (пере-собран бэкенд-сессией 03.08, полный sha256 сошёлся с пином 16-bank-mining.md); дописать в манифест окружения полигона с пометкой «build-time, не runtime» полигон когда-нибудь строка манифеста D39.96 п.6, отчёт §7-4/§6
124 Калибровка снапшота (вопрос владельца 04.08, разбор D39.97 п.5): нацеленность, не агрессивность. Три оси одним дизайн-паком: (а) недо-чувствительность — вердикт-несущие вызовы x/text не свёрнуты (вход: строка 119); (б) пере-охват — EmbeddedVersion фолдит все пары разом → пер-парный хеш (родня 115/120); (в) дешёвая перекупка: tmctl resnapshot --dry-run — байт-сверка тел по чекпойнтам (msgsContentHash), идентичные юниты пере-привязываются без пере-вызова, платятся только изменившиеся. «Поведенческий отпечаток вместо строки версии» отложен (пол ≠ доказательство) бэкенд когда-нибудь (перед МАСШТАБОМ — когда перекупки станут реальными деньгами) дизайн-пак по D39.97 п.5 D39.97

Оркестратор №13 — ЗАКРЫТИЕ СЕССИИ, передача №14 (D39.105), 04.08

Итог №13: приёмка банк-арбитража (D39.102, 271f8b0) · решения владельца + доктрина инжекта, два промта выданы (D39.103/104, d653aa1) · полный док-свип закрытия (5 сканеров; хроника №9/№10 и закрытые бэкенд-записи срезаны в archive/PROGRESS-2026-08-01-02.md). Очередь №14 — шапка CURRENT-STATE (первым — приёмка P0 платформы).

Оркестратор №13 — решения владельца + ДОКТРИНА ИНЖЕКТА, два промта выданы (D39.103/104), 04.08

Фикс-пак банка 128 санкционирован (промт выдан, $0) · проба редакторского провода санкционирована (промт выдан, ≤$0.30; фронтир-пасс ≤$0.50, «go» дан; отчёт будет experiments/18-editor-wire-probe.md) · алиасы §E-1 отложены до первого длинного прогона · доктрина инжекта: банк на проводе = ЗАКОН для всех ролей независимо от статуса строки, свобода — только оговоркой ОБЛАСТИ употребления; единый закон-блок редактора, маркер ⟨проверить⟩ с провода снимается (строка 134 — после пробы 18) · «Гуюэ» — не чинить, канал сида. Оба промта дважды аудированы до выдачи (факты по file:line + понятность холодным исполнителем).

Оркестратор №13 — ПРИЁМКА БАНК-АРБИТРАЖА: research/24 ПРИНЯТ и заленден (D39.102), 04.08

Адверсариальная приёмка тремя контурами: 12-агентный воркфлоу пере-ранил все строки «заявление=команда» — 8/8 CONFIRMED без расхождения чисел, 23/23 адресов §A подтверждены по HEAD 7f6270a; независимый пересчёт денег из сырья $0.107334 ≈ леджер (расхождение пинга = склейка инкрементов C+E — маркер в «Полигоне»); слепое ревью кода банка (author≠reviewer) + 12 опровергателей дали находки СВЕРХ отчёта → строки 128132 (главные: банкнота-парсер теряет хвост многословного dst; emitRankCap×writeAutoBank молча стирает термы из авто-банка; кап инъекции не считает маркер/гендер-ноты). Корзина «закрыть по нужности» ратифицирована целиком; строка 5 пере-скоуплена (остаток — рецензент спорных кластеров при ре-пробе 74, роутинг кластерными юнитами). 4 вопроса владельцу — D39.102 п.4; оговорки приёмки — ревью-шапка research/24.

Оркестратор №12 — ЗАКРЫТИЕ СЕССИИ, передача №13 (D39.101), 04.08

Доки актуализированы и подрезаны (CURRENT-STATE сжат, банк-промт заархивирован исполненным, README без стейла), голова D-лога D39.101. №13 начинает с приёмки банк-арбитража, дальше бэкенд-очередь (промт экрана 46 · tools/go.mod · блокеры контракта); вахта deepseek НАСТУПАЕТ >05.08. Грабли и нормы передачи — D39.101 п.4.

Оркестратор №12 — решения владельца по контракту ратифицированы, платформа открыта промтом P0 (D39.100), 04.08

Четыре К закрыты владельцем (десять статусов · лимиты «как Claude Code» → ПТ-35/П-5/paused · ETA показывать · метка главы из данных — канон-урок: зашитого «Глава N» нет) + принцип К-6; правки спеки переданы S3 первым шагом. Платформа: полноценный промт P0 (platform/docs/PLATFORM_SESSION_PROMPT.md), зонный журнал заведён; норма name-PROGRESS вписана в CLAUDE.md/README. Confirm-хвосты D39.98 закрыты. Детали — D39.100.

Оркестратор №12 — КОНТРАКТ API v0 РАТИФИЦИРОВАН: строка 95 закрыта, форма OpenAPI, три пасса приёмки (D39.99), 04.08

S3 упёрлась в замок (контракта нет) — по слову владельца написала вход Ф-14 + черновик; форма по решению владельца сменена на OpenAPI 3.1 (типы генерятся, спека линтуется — класс «фикстура выдумала форму», случившийся четырежды, закрыт механически). Приёмка: три воркфлоу-пасса (16+6 агентов), 19 подтверждённых находок (2 high: withheld ≠ «текст не выдан» — движок отгружает текст под флагом; чтения без канала шва), ноль опровергнутых; все вправлены двумя раундами дофикса, каждый раунд перепроверен. Пост-мортем процесса — в D39.99 п.4 (промт S3 велел пинговать в чужую зону — противоречие канона и зонного решения владельца закрыто правкой CLAUDE.md; чек-пункты в промт оркестратора). Детали — D39.99.

Оркестратор №12 — фронт S2 + дофикс по ревью приняты и залендены 02872b6, git-канон v2 по носителям (D39.98), 04.08

Приёмка S2 — адверсариальный воркфлоу (5 линз × скептики с ре-раном): батарея и виртуализация подтверждены исполнением, стек без дрифта, три дефекта (пар-слепой шрифтовой токен · выдуманный тип org с фабрикованной цитатой журнала · ключ рядов банка без учёта полисемии) вправлены дофиксом и залендены; три находки ревьюеров опровергнуты скептиками. Детали и остаточное — D39.98.

Оркестратор №12 — приёмка дофикса archguard, лендинг всего пака семью коммитами, ответы владельцу (D39.97), 04.08

Дофикс archguard + проба приняты короткой приёмкой исполнением (⚠ «короткой» — об объёме дельты; норма 03.08: приёмка всегда адверсариальная, свои посадки вне карты отчёта были) (батарея EXIT=0 · деньги дельта $0.000000 · две СВОИ посадки вне карты отчёта, включая method expression — форма отсутствовала и в таблице, и в пропусках, поймана; негативный контроль чист). CONFIRM владельца по @latest записан входом приёмки. Весь пак заленден семью pathspec-коммитами (e8d4ac0 конфиги · 5a97020 дефект-фиксы · b155da3 механика · cb368c0 бамп · 6356471 анализаторы · 5a81bff линт-инфра · 0e64efe live-проба); фронт коммитил параллельно (ece94ef) — pathspec исключил коллизию. Строки 107/112/117 закрыты; оба промта архивированы. Решения: tools/go.mod — строить (118, D39.97 п.4); вопрос владельца о снапшоте разобран — калибровка нацеленности вместо ослабления, три оси одним дизайн-паком (новая строка 124: недо-чувствительность 119 · пер-парный EmbeddedVersion · дешёвая перекупка байт-сверкой). Хвост httpllm.go:77 → 122.

Оркестратор №12 — приёмка пака «стандарты репо» ДВУМЯ пассами (D39.96), 03.08

Пасс-1 — шесть верификаторов по клеймам отчёта + 7 своих посадок (нашёл дыру requestseam). Владелец вскрыл метод-дефект пасса-1 («след отчёта»: проверялась истинность названных клеймов, не направление; два экспериментальных клейма приняты со слов; пять «решений владельца» ратифицированы со слов сессии) → пасс-2 из пяти АНТИ-СЛЕДОВЫХ линз: мнение-до-отчёта · поиск вне карты · реконструкция снесённых гардов из HEAD · аудит исключений линтера по коду · независимая репликация клеймов. Итог пасса-2: регрессия egress-паритета против снесённого байт-гарда (две исполнимые формы — снос в текущем виде нарушает букву промта) · мисхарактеризация «порядка HPACK-заголовков» в находке-4 (рандомен под обеими версиями; реальная дельта — только SETTINGS) · клейм x/text-эквивалентности реплицирован независимо · «не регрессия requestseam» подтверждена исполнением на реконструкции. Вердикт: пак принят по качеству кода, лендинг гейчен тремя решениями владельца (проба 117 · confirm пяти санкций · развилка этапа E) — D39.96 п.7. Урок закреплён нормой «анти-паттерны приёмки» в ORCHESTRATOR_SESSION_PROMPT.md. Отчёт с ревью-шапкой — archive/reports/REPO_STANDARDS_2026-08-03.md.

Оркестратор №11 — ЗАКРЫТИЕ СЕССИИ И ПЕРЕДАЧА №12 (D39.94), 02.08

Итог сессии: приёмка пака ручки эффорта исполнением — принят, заленден 553f1a3, строка 104 закрыта (D39.91); решения владельца ратифицированы: 46 → closed-set «не тот язык» изолированным пакетом с именованными причинами (D39.92 п.1 + D39.93), 107 → санкция целиком, промт BACKEND_REPO_STANDARDS_SESSION_PROMPT.md выдан, 112 → санкция (этап 0 промта); вендор-сверка DeepSeek: 0731 не деградация, а смена политики дефолта thinking=high; вахта на смену маппинга v4-pro (реестр 108). Преемнику: приёмка пака стандартов + выдача промта экрана 46. На владельце: 116 · строка 5 · мини-проба 44 · подпись шага 6 по 46. Очередь: 97 строк · «скоро» 15 · блокеров 0. Пост-скриптум закрытия: 0d1c08f — коммит START_PROMT.MD ПО ЯВНОМУ СЛОВУ владельца (разовое исключение из гардрейла, прекоммит-гейт обойдён --no-verify осознанно; правило «не коммитить» в силе); V5-п.2 из диффа уже разобран как ПТ-23, невидимых требований нет. Второй речек владельца («перечитай онбординг») добил хвосты: строка 74 закрыта (её буква «закрывается приёмкой пака» исполнилась в D39.91), промт EFFORT_HANDLE заархивирован, карта README и буллеты Курс/Горизонт/Стек освежены — D39.95; очередь после закрытия 74 — 96 строк.

Оркестратор №11 — РЕШЕНИЯ ВЛАДЕЛЬЦА ПО 46/107/112 РАТИФИЦИРОВАНЫ, ПРОМТ СТАНДАРТОВ ВЫДАН, ВЕНДОР-СВЕРКА DEEPSEEK (D39.92), 02.08

Владелец: 46 — пере-постановка closed-set («вернуло не тот язык, что просили», LID только запасной флаггер, проверку изолировать) — ресёрч бэкендеров ЗАПИСАН (§5.15.3 отчёта EFFORT_HANDLE) и отвечает постановке; два расхождения замером (гарантия FPR≤0.1% не покупается на n=114 — порог константой-контрактом; L2/L4 отвергнуты числами этой книги, реопен через реестр 108), слой-0 (полоса длин) — добавить замером на фикстуре 113. 107 — САНКЦИЯ целиком: CI+линтер+бамп x/net и библиотек, «осторожно, затем полностью», анти-хак-правило; выдан BACKEND_REPO_STANDARDS_SESSION_PROMPT.md (этап 0 = строка 112 · A замер · B состав · C Makefile/CI · D бамп с живой пробой ≤$0.50 · E гарды→analyzer, паритет 12 посадок, Д7). 112 — САНКЦИЯ (перекупка принята). Вендор-сверка по правилу 10.07: 0731 = офиц. релиз flash, бенчи вверх — «модель хуже» интернет НЕ подтверждает, наш отказ = смена ПОЛИТИКИ ДЕФОЛТА thinking=high на плотном хане; ⚠ анонс смены маппинга эффорта v4-pro «early August 2026» — вахта в реестре 108. Миграция черновика — замер по слову владельца, не решение. Открыто на владельце: 116 (рекомендация «≥4/5 при N=5» подана) · строка 5 (вытащить находки прерванного захода или пере-запуск $1.20) · подпись шага 6 по 46.

Оркестратор №11 — ПРИЁМКА ПАКА РУЧКИ ЭФФОРТА: ПРИНЯТ И ЗАЛЕНДЕН (D39.91), 02.08

Задача №1 хендоффа исполнена целиком, всё исполнением: батарея с фрозен-числами пере-прогнана (5/5 совпали, голден без пере-захвата), деньги пере-выведены вторым путём из сырья (леджер $0.045095 ≡ независимый usage×цены ≡ Σ request_log, дельта $0.000000, decode/estimated 0), адверсариал — пять НЕЗАВИСИМЫХ посадок в гарды (алиас-литерал · []cfg.Stage{{…}} · hoisted Request · var · new()) все CAUGHT, N=5 сверен с classifier-6of6-{low,high}.json побайтно (low 4/5 $0.001016 · high 5/5 $0.002335 · ×2.298 · промах = 91 ток., 1/4 дискриминирующих). Обе девиации строки 104 РАТИФИЦИРОВАНЫ (repair-ключ свой — подтверждён по пяти шиппинг-конфигам; ThinksOnWire — ровно случай «ключ отсутствует», провод не менялся). Две находки приёмки: метка «$0.031639 (flash)» врёт — это flash+pro черновой волны (flash-only $0.021289; суммы верны; скопировано и в D39.90 п.2) · стейл-доккоммент capability.go:78. Хеш-клейм «8e4495006b978ed4 в обе стороны» невоспроизводим (старая форма удалена) — принят по эквивалентности. Код: 553f1a3 (13 файлов backend/, pathspec; чужое — фронт живой, START_PROMT.MD — не тронуто). Отложки Д4Д9 → носители тем же лендингом: 114 · 115 · 116 · реестр 108 (+Д5/Д9) · 107 (+Д7); гейт строки 44 наступил — пере-диспозиционирована. Сверка §5.4 отчёта ПУНКТАМИ — потерь сжатия НЕТ (шаг 3 уже исполнен №10 в теле строки 46). Очередь скриптом: 97 строк · «скоро» 15 · блокеров 0.

(Хроника сессий №9/№10, 31.0702.08 (D39.5990: курс «общность вперёд» · свип полноты · качество банка · фикс-пак · coldrun-b · фронт/платформа открыты · шов движок↔платформа · промт арбитража банка) — в archive/PROGRESS-2026-08-01-02.md.)

(Хроника 25.0731.07 до курса D39.59 — эры №7/№8 и начало №9: паки 1620, мини-прогон, полигон-пакеты 58, ToS-речеки, пак-19, холодный прогон (лендинги D39.2658) — в archive/PROGRESS-2026-07-25-31.md.)

Бэкенд

⟶ Свежее состояние бэкенда: пак стандартов + дофикс приняты и залендены (D39.96/97, e8d4ac00e64efe; точка входа make battery); АКТИВНЫЙ промт бэкенда — docs/BACKEND_BANK_CLUSTER_FIXPACK_SESSION_PROMPT.md (фикс-пак банка 128, санкция D39.103); ниже — хроника до №11. ⟶ Приёмка №11 (D39.91, 02.08): пак ниже ПРИНЯТ, код заленден 553f1a3; поправки приёмки (метка flash+pro · хеш по эквивалентности · capability.go:78) — в ревью-шапке отчёта и D39.91.

(Закрытые бэкенд-записи 0102.08 — общность фаза 2 · качество банка (оба этапа) · фикс-пак банка · finding-1 · пакет-чекеров · мелкая пачка · coldrun-b · ручка эффорта — в archive/PROGRESS-2026-08-01-02.md.)

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

(Хроника пакетов 1112.07 (пакет-5, D15.2-этап-А, санитайзер-фикс D33) — в archive/PROGRESS-2026-07-10-13.md.) (Трек-A пак-1/1.5 (D39.2/D39.5) — см. записи оркестратора №6 выше.)

(Хроника бэкенд-паков 1116 (1925.07, вкл. отчёт-запись пака-15) — в archive/PROGRESS-2026-07-13-25.md; отчёты паков — archive/reports/.)

(Закрытые записи 2531.07 — пак-18 · мини-прогон · фикс-пак · сквозная проверка · хендофф 26.07 · ресёрч общности фаза 1 — в archive/PROGRESS-2026-07-25-31.md.)

Полигон

Арбитраж банка (строка 5, пере-запуск промта D39.89 по слову владельца, потолок $1.00) — ИСПОЛНЕН, отчёт docs/research/24-bank-arbitration.md, потрачено $0.0896 (04.08). Главное: (1) голд 53 approved сида → 45 в BANK-FULL, из них у 27 промахов прод-банка верный dst лежал в вариантах черновиков лишь у 5 ⇒ потолок любого «выбора из вариантов» = 17/45, селекционный арбитраж закрыт классом; (2) свежий терминолог-соло (flash-low) бьёт бесплатный базис §C2-3 +8/0, а равноправный консилиум НЕ окупается: +3 к само-согласованности = одна конвенция 古月; лучший одиночка glm-5 25/45 > лучший совет 23/45; добавление grok РОНЯЕТ совет 23→20; C3conf(взвешенный уверенностью) ≡ C3; ⟦TM-NO-DST⟧ = 0 на 35 вызовах трёх семейств; (3) вербализованная ЧИСЛОВАЯ уверенность разделяет внутри модели (AUC 0.770.85, слова хуже 0.63) при тотальной overconfidence (~88 при точности ~50%) — жить ей ordinal-очередью ревью, не арбитром; (4) химера семьи 古月 воспроизведена причинно на границе батча (свежий deepseek: «Гу Юэ» ровно в батче 2, «Гуюэ» ровно в батче 0), а по-терминная МАРШРУТИЗАЦИЯ (улики-первым) сама создала химеру 转-серии ⇒ единица арбитража/роутинга — кластер; DetectSeries разнодлинные семьи (古月×15, 蛊×14) не видит; (5) проба инжекта: инъекция поднимает следование канону 43%→95%, НЕВЕРНАЯ строка законом принимается 6/6, с маркером ⟨проверить⟩ — тоже 6/6 (Δ=0 п.п.): пометка на транслятор-проводе поведенчески пуста, цена неверной строки банка = ~100% заражение; (6) индустриальный обзор: стандарта арбитража термов не существует, наш дизайн впереди ближайшего аналога (DelTA first-wins); пропущенных стандартов нет. Рекомендации тремя корзинами в §D (строить: кластер-канал семей · intra-run CanonConflicts · наблюдаемость Signals/invented/conf · нормализованный голос foldVariants; закрыть: равноправный совет · кросс-модельные веса · self-consistency · селекция · отказ-сигнал). 4 вопроса владельцу в отчёте (мини-голд алиасов · конвенция составных фамилий · проба редакторского провода · фикс-пак корзины 1). Два адверсариальных раунда author≠reviewer пройдены (р.2 поймал 4 неточности, все вправлены; моя ложная оговорка про grok-ростер снята сырьём). Достройка по вопросам владельца (тот же день, +$0.0161, итог $0.0960): (а) $0-демо ценности на живом банке — intra-run чек связности поймал бы 18 невидимых противоречий на 149 финалов (12%), а нормализованный фолд голосов двигает топ лишь 1/75 (понижен до косметики); (б) мультиязычная проверка ja→ru и en→ru (multilang_probe.py): направление инжект-выводов ПЕРЕНОСИТСЯ — закон слушается, неверная строка принимается (ja 2/2, en 1/1), маркер Δ=0 на обеих парах; попутно ja-батч бэнк-вызова вернул термы упрощённым китайским — off-language класс, который парослепой экран OffLanguage отбил бы (несущая защита для будущей ja-пары). Кросс-пары по слову владельца (тот же день, +$0.0113, итог $0.1073): §F/§G отчёта. F1 zh→en: свежая en-редакция по тому же ростеру дала «Rank 1..9 · Grade A/B/C/D · Aperture · Gu Master» — 41/45 (91%) совпадений класса решения с подписями владельца (банк НЕ однобокий; буквенный маппинг 甲→A, недостижимый для ru-моделей, en-моделью взят — довод за сид/бриф-канал); fan-канон RI по памяти сессии ещё ближе к владельцу (元石 primeval stone = «первобытный камень»); ру-специфика ровно одна — слитность «Гуюэ». F2 en→zh (Кристофф-2026): deepseek идеально связал семью *-blood (X血者), glm сломал корень внутри ОДНОГО батча и разошёлся в имени Aaron между соседними окнами (艾伦↔亚伦) — дрейф, от которого банк существует, воспроизведён на en→zh; deepseek выдумал 5 незапрошенных строк (нужность гарда want[key] кросс-парно подтверждена); личная оценка прозы обеих моделей — «редактируемо-издательская», узкое место всех направлений — термы, не слог. §G — дизайн-синк алгоритмов бэкенда (готовый вход фикс-пака класса D39.71): G1 DetectFamilies (данные-гейтед, имя=префикс/реалия=суффикс, без транзитивности, мёрж в seriesID) · G2 ConsolidationConflicts (18/149 на живом банке) · G3 наблюдаемость (Signals/Invented/Conf + фикс ParseReply-джойна) · G4 кластерный роутинг рецензента · G5 фолд-косметика · G6 явные «не делать». Финальный рерайт отчёта по слову владельца (04.08): сага/хроника правок убраны, факты и оговорки сохранены, §G сведён к уровню алгоритмов; раунд 3 адверсариала (независимый агент по диффу v1→v2): числа 100% чисты пере-раном, новые клеймы подтверждены первоисточниками; его блокер (рерайт сжал зарегистрированные пре-реги §0/§E/§F) закрыт восстановлением пре-регов дословно с явной пометкой девиаций, потери фактов возвращены. v1-черновик — docs/archive/reports/DRAFT_BANK_ARBITRATION_V1_2026-08-04.md (помечен черновиком в шапке и именем; перенесён по слову владельца 04.08). Сырьё durable ~/books/gu-zhenren/bank-arbitration/ (84 json), харнесс eval/bank_arbitration/. НЕ закоммичено — лендит оркестратор.

→ ПРИЁМКА №13 (04.08, D39.102): ПРИНЯТО и залендено. Поправка арифметики пинга выше: инкремент §E = +$0.0065 ($0.0896 → $0.0960); «+$0.0161» — склейка инкрементов пробы C и §E ($0.0097+$0.0065), леджер отчёта чист (независимый пересчёт из сырья $0.107334). Оговорки приёмки — ревью-шапка research/24; находки сверх отчёта — строки 128132. Вопросы отчёта закрыты ВСЕ (D39.103/104). АКТИВНЫЙ промт полигона — docs/POLYGON_EDITOR_WIRE_PROBE_SESSION_PROMPT.md (проба редакторского провода ≤$0.30 + фронтир ≤$0.50; отчёт — docs/experiments/18-editor-wire-probe.md).

Сырьё арки банка + пробы фиксов (01.08) — приняты и залендены, детали в журнале выше (D39.65).

(Закрытые записи 26.07 — пакет-6 «размеченный набор» (D39.39) и пакет-8 «три пре-замера» (D39.4346/50/52) — в archive/PROGRESS-2026-07-25-31.md; пакеты Р6+P4 и ToS — журнал выше (D39.57/61).) (секция параллельной сессии — записи добавлять сюда)

Память

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

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

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

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

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

Ридер-IDE

(секция ресёрч/движковых записей Ридер-IDE; записи фронт-сессий с 04.08 — ТОЛЬКО в frontend/docs/frontend-PROGRESS.md, D39.100)

Фронт-сессия — исследование стека закрыто (02.08). 15 агентов (7 направлений × независимый скептик-опровергатель + синтез), версии сверены с вебом 02.08; скептики дали 5 blocker/45 major — записаны исправленные варианты. Артефакты: frontend/docs/STACK_DECISIONS.md (пины точными версиями · ловушки «вся документация в сети описывает прошлые версии» · работы движка §8) + переписанный frontend/docs/FRONTEND_SESSION_PROMPT.md (фронт режется на этапы S0S7; первая кодовая сессия кончается витриной токенов). — ЛЕНД D39.84 (10-агентный refute-воркфлоу оркестратора: все несущие бэкенд-утверждения CONFIRMED, 8/8 веб-пинов подтверждены первоисточниками; работы движка = строки 99102; ПТ-34/ПТ-21/ПТ-23 в реестре; вопрос коммит-прав фронт-сессий — у владельца; РЕШЁН дважды: D39.88 право дано → D39.98 отозвано, коммитит только оркестратор).

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