From 4bfc097966234377381f3cd7cd587abc4a7cc689 Mon Sep 17 00:00:00 2001 From: "Claude (backend session)" Date: Sat, 25 Jul 2026 01:17:13 +0300 Subject: [PATCH] Issue two-phase pack-16 diff-editor prompt: design D1-D6 with ratification gate, then build with byte-identical no-repair path and strict decode tails --- CLAUDE.md | 2 +- ...CKEND_PACK16_DIFF_EDITOR_SESSION_PROMPT.md | 34 +++++++++++++++++++ docs/PROGRESS.md | 4 +++ docs/README.md | 2 +- 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 docs/BACKEND_PACK16_DIFF_EDITOR_SESSION_PROMPT.md diff --git a/CLAUDE.md b/CLAUDE.md index 364594c0..4a2af019 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -41,4 +41,4 @@ Go-бэкенд издательского художественного пер ## Текущее состояние (2026-07-25, пост-пак-15 — эра «механизация выпускного качества») -Фаза 0 ✅; **Ф1-инфра ✅** (D20–D28; golden = инвариант детерминизма, №8 README = экспорт-контракт). Арка «качество-первым» D26→D38.5 ЗАКРЫТА; **АРХ-РЕСЕТ D39 ИСПОЛНЕН ЦЕЛИКОМ**: 7-слойная архитектура (`09-*`) → исследовательская программа (D39.1–D39.10) → план (D39.12) → **стройка пака-11 завершена** (D39.13–D39.19: волновой исполнитель + чанкер output-бюджет + src→dst-редактор + Go-майнер паритет-EXACT + банкнота + `internal/lang`+langpacks + reject-set + echo-сплит; хроника — D-лог). **ПЕРЕ-ПРОГОН rerun2 ИСПОЛНЕН И ПРОЧИТАН (D39.20, 23.07, `books/gu-zhenren/rerun2/`):** вся операционка подтверждена живьём — ОДИН resnapshot, **$0-резюм драфта на всех 3 армах**, echo 0, $6.63<$15; майнинг-стоп→подпись→reject-set отработали. **Вердикт качества:** планка ≤2 претензии НЕ пройдена (пилот не открыт); три независимых сигнала (судья dspro 0.679>glm 0.589>>mistral 0.232 при floor-шуме 0 · два слепых чтения) → **анти-корреляция гладкость↔верность доказана трижды** (чисто-художественные выборы обоих читателей идентичны = mistral 4/5 — арм с критическими смысловыми); **mistral исключён как несущий редактор** (голос = north-star промпта), **dspro-vs-glm решает итерация №2 после механизации** (драфт $0 → ~$0.08/арм + судья-lite). **Эксп ЗАКРЫТ решением владельца (D39.22), итерация №2 отложена** (её вопросы — довесок следующего платного прогона); **редактор = deepseek-v4-pro ИНТЕРИМ** (судья №1 · проза/глоссарий · дефекты чинибельны · ×2 дешевле; glm-5 резерв, отмена = один арм-конфиг); стайл-решения D39.21: меры → единицы читателя (时辰=2ч) · generic-«гу» средний род, именные по-термово · стихи смыслом · 资质=«талант». research/21: транспорт наш опережает/вровень, рефакторинг ОТВЕРГНУТ. **Курс — разработка бэкенда:** паки 12/13/14 ЗАЛЕНДЕНЫ 24.07 (транспорт-гигиена `7fe0a5b` · выпускной QA `2f91b04` · **генеральность-пасс**: пара/книга-данные → langpack+`internal/lang/data` embedded, книго-overlay `langpack_extend` (古月 вон из общего zh-пака), пар-агностичный `checkers.go`, generic-Палладий; приёмка воркфлоу 11+4 линз, байт-сверка против HEAD, отчёт с ревью-шапкой в `docs/archive/reports/`) → **пак-15 ЗАЛЕНДЁН 25.07** (движок разложен: `internal/{text,seed,chunk,miner,checks,membank}` + композит-корень `pipeline`, латеральных импортов 0; конфиг-слой пары `configs/pairs/` + промпт-конвенция `prompts/<пара>/<роль>.md`; строгий KnownFields-декод pipeline-конфигов; golden пере-снят байт-в-байт, парити EXACT) → **пак-16** (канал B вживую / слой-3 diff-редактор — прецедент AiNiee/LinguaGacha; в первое касание: строгий декод book.yaml [санкционирован] + pair/models-слои) → сид-дельта (元-корень · 赤城 · 学堂家老 · 春秋蝉) → канал B (18+) вживую · слой-3 diff-редактор (прецедент AiNiee/LinguaGacha, research/22) · Ф2-механизмы (голос/состояние D21 · native-Gemini судья) · ja→ru §B5 → пилот Ф2.5. Стек: draft flash thinking-ON → **editor deepseek-v4-pro** → судья gemini-preview + grok-фолбэк на 18+ (~$0.85/ранобэ D30.4). **Висит на владельце:** мини-каноны сид-дельты (元-корень · 春秋蝉) · ja→ru-реплика (§B5) · старые (пилот Ф2.5: билингв-якорь D25.9-Q1, корпус, судья-дублёр D22.6). Ключ xAI: единый, data-sharing, off перед продом (D27). Книга на стенде `/home/ubuntu/books/gu-zhenren/` (GB18030; текст и производные ВНЕ git). Ключи: DEEPSEEK, ZAI, KIMI, OPENAI, GEMINI, XAI, MISTRAL. Стенд: WSL2, GTX 1070 8GB (localhost из-под прокси = 403 — no-proxy транспорт для local). +Фаза 0 ✅; **Ф1-инфра ✅** (D20–D28; golden = инвариант детерминизма, №8 README = экспорт-контракт). Арка «качество-первым» D26→D38.5 ЗАКРЫТА; **АРХ-РЕСЕТ D39 ИСПОЛНЕН ЦЕЛИКОМ**: 7-слойная архитектура (`09-*`) → исследовательская программа (D39.1–D39.10) → план (D39.12) → **стройка пака-11 завершена** (D39.13–D39.19: волновой исполнитель + чанкер output-бюджет + src→dst-редактор + Go-майнер паритет-EXACT + банкнота + `internal/lang`+langpacks + reject-set + echo-сплит; хроника — D-лог). **ПЕРЕ-ПРОГОН rerun2 ИСПОЛНЕН И ПРОЧИТАН (D39.20, 23.07, `books/gu-zhenren/rerun2/`):** вся операционка подтверждена живьём — ОДИН resnapshot, **$0-резюм драфта на всех 3 армах**, echo 0, $6.63<$15; майнинг-стоп→подпись→reject-set отработали. **Вердикт качества:** планка ≤2 претензии НЕ пройдена (пилот не открыт); три независимых сигнала (судья dspro 0.679>glm 0.589>>mistral 0.232 при floor-шуме 0 · два слепых чтения) → **анти-корреляция гладкость↔верность доказана трижды** (чисто-художественные выборы обоих читателей идентичны = mistral 4/5 — арм с критическими смысловыми); **mistral исключён как несущий редактор** (голос = north-star промпта), **dspro-vs-glm решает итерация №2 после механизации** (драфт $0 → ~$0.08/арм + судья-lite). **Эксп ЗАКРЫТ решением владельца (D39.22), итерация №2 отложена** (её вопросы — довесок следующего платного прогона); **редактор = deepseek-v4-pro ИНТЕРИМ** (судья №1 · проза/глоссарий · дефекты чинибельны · ×2 дешевле; glm-5 резерв, отмена = один арм-конфиг); стайл-решения D39.21: меры → единицы читателя (时辰=2ч) · generic-«гу» средний род, именные по-термово · стихи смыслом · 资质=«талант». research/21: транспорт наш опережает/вровень, рефакторинг ОТВЕРГНУТ. **Курс — разработка бэкенда:** паки 12/13/14 ЗАЛЕНДЕНЫ 24.07 (транспорт-гигиена `7fe0a5b` · выпускной QA `2f91b04` · **генеральность-пасс**: пара/книга-данные → langpack+`internal/lang/data` embedded, книго-overlay `langpack_extend` (古月 вон из общего zh-пака), пар-агностичный `checkers.go`, generic-Палладий; приёмка воркфлоу 11+4 линз, байт-сверка против HEAD, отчёт с ревью-шапкой в `docs/archive/reports/`) → **пак-15 ЗАЛЕНДЁН 25.07** (движок разложен: `internal/{text,seed,chunk,miner,checks,membank}` + композит-корень `pipeline`, латеральных импортов 0; конфиг-слой пары `configs/pairs/` + промпт-конвенция `prompts/<пара>/<роль>.md`; строгий KnownFields-декод pipeline-конфигов; golden пере-снят байт-в-байт, парити EXACT) → **пак-16 = слой-3 diff-редактор** (двухфазный промт ВЫДАН 25.07: дизайн D1–D6 → ратификация → стройка; no-repair путь байт-идентичен; + хвосты: строгий декод book.yaml/pair/models) → пак-17 = канал B вживую (батчится со следующим платным прогоном + вопросы итерации №2) → сид-дельта (元-корень · 赤城 · 学堂家老 · 春秋蝉) → канал B (18+) вживую · слой-3 diff-редактор (прецедент AiNiee/LinguaGacha, research/22) · Ф2-механизмы (голос/состояние D21 · native-Gemini судья) · ja→ru §B5 → пилот Ф2.5. Стек: draft flash thinking-ON → **editor deepseek-v4-pro** → судья gemini-preview + grok-фолбэк на 18+ (~$0.85/ранобэ D30.4). **Висит на владельце:** мини-каноны сид-дельты (元-корень · 春秋蝉) · ja→ru-реплика (§B5) · старые (пилот Ф2.5: билингв-якорь D25.9-Q1, корпус, судья-дублёр D22.6). Ключ xAI: единый, data-sharing, off перед продом (D27). Книга на стенде `/home/ubuntu/books/gu-zhenren/` (GB18030; текст и производные ВНЕ git). Ключи: DEEPSEEK, ZAI, KIMI, OPENAI, GEMINI, XAI, MISTRAL. Стенд: WSL2, GTX 1070 8GB (localhost из-под прокси = 403 — no-proxy транспорт для local). diff --git a/docs/BACKEND_PACK16_DIFF_EDITOR_SESSION_PROMPT.md b/docs/BACKEND_PACK16_DIFF_EDITOR_SESSION_PROMPT.md new file mode 100644 index 00000000..e16da0bd --- /dev/null +++ b/docs/BACKEND_PACK16_DIFF_EDITOR_SESSION_PROMPT.md @@ -0,0 +1,34 @@ +# Промт бэкенд-сессии: ПАК-16 «слой-3 diff-редактор» (ДВУХФАЗНЫЙ: дизайн → ратификация → стройка) + +**Статус: ВЫДАН 25.07.2026, оркестратор №7.** Слой 3 `09-target-architecture.md` — крупнейший остаток плана; мандат редактора до сих пор full-regen (D39: причина инверсий). Приоритет подтверждён research/22 (§2 №1): прецеденты — AiNiee ProofreadTask (typed-error → адресный proofread строки), LinguaGacha retranslation-by-keyword; наш способ ДОЛЖЕН остаться нашим — детерминированные чекеры уже есть (`internal/checks`, паки 13/15), недостаёт петли gate→repair→re-gate. North-star: ИЗМЕРЕННЫЙ вклад петли (сколько дефект-классов чинится, на живом дефект-корпусе rerun2), не вера. + +**Цель:** флаг типизированного чекера → адресный ремонт минимального спана дешёвым вызовом → re-gate → при неудаче прежний flag+skip (дисциплина D2 сохраняется, мусор не течёт в TM/экспорт). + +## Онбординг + +`CLAUDE.md` → `09-target-architecture.md` (слой 3) → `internal/checks` (typed-факты: CheapGateResult/SanitizerResult/DC-чекеры) → отчёты паков 13/15 (дефект-классы D39.20 → механизмы) → research/22 §2 №1 (прецеденты; их код GPL/AGPL — НЕ копировать, только идеи). + +## ФАЗА 1 — ДИЗАЙН (без единой правки кода) + +Дизайн-отчёт с вариантами и рекомендацией по каждому пункту; СТОП после отчёта — ратификация оркестратора (через владельца), стройка только после неё. + +- **D1. Единица ремонта** (спан / предложение / чанк / edit-единица) и маппинг флаг→спан: инвентаризация — какие чекеры дают ПОЗИЦИИ, какие только факт; что нужно дотипизировать в checks (не ломая паки 13/15). +- **D2. Дефект-классы петли v1** vs flag-only: кандидаты в петлю — юнит-конверсия (时辰), число-масштабы (千万/成), broken-word, latin-residue, заголовок-шаблон, глоссарий-строгость; остаётся flag-only — register/style (недетерминируемо чинится). Критерий: детерминированный ре-чек возможен. +- **D3. Механика вызова:** промпт ремонта (src-спан + draft-спан + типизированная ошибка → исправление; ЯЗЫК промпта = данные пары, §0 — pair-keyed файл конвенции) · где живёт (новая стадия конфига? суб-шаг edit?) · модель (дешёвая, flash?) · потолок вызовов/бюджет · loop-guard (1 раунд, потом flag+skip). +- **D4. Wire/снапшот-дисциплина:** ремонт = НОВЫЙ класс wire-вызовов → RequestHash/чекпойнты/resume ($0-резюм не сломать); снапшот-фолд промпта ремонта; resnapshot ОДИН; golden — эволюция capture новым классом вызовов (пере-капчер по санкции с классификацией диффа; no-repair путь ОБЯЗАН остаться байт-идентичным). +- **D5. Деньги/отчётность:** repair-вызовы в CostSource/леджер; счётчики «починено/по классам/не удалось» в quality-report и паспорт главы. +- **D6. Валидация $0:** петля офлайн-тестируема на фикстурах дефект-корпуса rerun2 (дефекты пака-13 приёмки); mini-live гейт — отдельным решением владельца, НЕ в этом паке. + +Приёмка фазы 1: отчёт-предложение (варианты+рекомендация+риски по D1–D6) + адверсариальный селф-ревью дизайна (линзы: детерминизм/resume · деньги · D2-дисциплина · общность §0 «заработает ли на паре, которой нет»). Кода НЕ трогать. + +## ФАЗА 2 — СТРОЙКА (только после ратификации) + +По ратифицированному дизайну. Инварианты: **no-repair путь байт-идентичен** (петля выключена = сегодняшнее поведение, golden в compare-режиме зелёный БЕЗ пере-капчера) · парити EXACT · петля вкл. — новый golden-класс по санкции · тесты на дефект-корпусе · `-race` весь. **Хвосты первого касания (байт-нейтральные, тем же паком):** строгий декод `book.yaml` (санкционирован D-логом; перед вкл. — проверить стендовые book.yaml на внесхемные ключи и доложить) · строгий декод pair/models-слоёв · loose-ассерт unknown-key-теста (пинить имя ключа) · zero-value-паники PickedEntry/Bank (конструктор-гард или док). + +## НЕ делать + +Канал B (пак-17) · копирование GPL/AGPL-кода · пар/книго-литералы в Go (§0; язык промпта ремонта = данные пары) · live-вызовы без санкции владельца · расширение скоупа без пинга оркестратору. + +## Приёмка (мандат 12.07) + +Фаза 1 — отчёт `docs/archive/reports/PACK16_DESIGN_<дата>.md`, СТОП. Фаза 2 — ревью исполнением: build/vet/test -race · golden (см. инварианты) · парити · дифф `^func Test` ИСПОЛНЕНИЕМ в отчёте (норма после паков 14/15) · адверсариальный селф-ревью. Отчёт `docs/archive/reports/PACK16_DIFF_EDITOR_REPORT_<дата>.md`. Сессия НЕ коммитит; `git mv` стейджит — декларировать. diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 572c90ea..1da398c5 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -9,6 +9,10 @@ > - **Ждём от владельца:** тачпойнты exp16 (карта подписи/пол · мини-голд алиасов · precision@30, `books/gu-zhenren/exp16/`, ~30–40 мин — для сид-дельты к пере-прогону) · развилки плана §10 (W1.5-UX · DC5-стих-политика · Edit-ceiling · и др.) · реплика ja→ru (тест общности §B5) · **ре-чек прайса DeepSeek у катовера слагов 24.07** (до него платных deepseek-прогонов нет) · чтение пере-прогона (после R1+resnapshot) · старые висящие: планка запуска (лучше-фана/гибрид/издательский) · билингв-якорь пилота (D25.9-Q1) · контаминация пилот-корпуса (D27.4) · publishable/waiver (D25.1) · FN-bound L3 (D25.4) · юр-пакет · провенанс 12-*-доков. > - Архивы хроники: `archive/PROGRESS-2026-07-04-10.md` (D31) · `archive/PROGRESS-2026-07-10-13.md` (D39.6-гигиена). Записи ниже — живая эра D39. +## Оркестратор №7 — промт пака-16 «слой-3 diff-редактор» ВЫДАН (двухфазный: дизайн → ратификация → стройка), 25.07 + +Решение по курсу: diff-редактор ПЕРЕД каналом B — главный механический минус по research/22 (мы флагаем, конкуренты чинят), фундамент лёг паком-15 (чистый `internal/checks` с typed-фактами), строится и валидируется за $0 на дефект-корпусе rerun2. Канал B = пак-17, батчится со следующим платным прогоном (там же вопросы итерации №2 dspro-vs-glm). По дисциплине D39.11 промт двухфазный: фаза 1 = дизайн D1–D6 (единица ремонта/маппинг флаг→спан · классы петли v1 · механика вызова и pair-keyed промпт ремонта · wire/снапшот/resume · CostSource/quality-report · $0-валидация) → СТОП → ратификация; фаза 2 = стройка (no-repair путь байт-идентичен; golden-эволюция по санкции; хвосты: строгий декод book.yaml/pair/models). Стенд после пака-15 мигрирован и проверен исполнением (3 pipeline-конфига → prompt_override; langpack_extend дописан и в book-dspro.yaml — третья книга, пропущенная при первичной проводке; все три книги грузятся под строгим лоадером). Полигону: `eval/exp15/mem_select.py:36` — путь trad2simp → `internal/text/data/`. + ## Оркестратор №7 — ПАК-15 «структура+форма» ПРИНЯТ (воркфлоу 10 линз + доприёмка 3) и залендён; движок разложен по подсистемам, 25.07 `internal/pipeline` 38→20 не-тест файлов + 6 пакетов: `text` (норм-субстрат) · `seed` (схема сид-YAML) · `chunk`(+chunktest) · `miner` · `checks` · `membank`; драйвер+инфра = композит-корень. Латеральных импортов НОЛЬ (go list вкл. тест-бинари). **Сессия работала лучше промта:** пере-мерила прил. A AST-обходом (miner→membank 35→11, «membank→chunk 7»=артефакт) → отказ от пакета value-типов по замеру; нейминг де-статтерингом (`miner.Config`, `membank.Bank`); сплит настоящий — ноль фасадов/алиасов. Форм-фиксы: `memberDrops()` одно определение (byte-agreement-by-comment ликвидирован) · RequestHash-struct (хеш-байты построчно идентичны) · resolveChunkState-struct · sticky→поле. Конфиг-слой пары: `configs/pairs/{zh-ru,ja-ru,en-ru}.yaml` + промпт-конвенция `prompts/<пара>/<роль>.md` (`prompts:`-мапы удалены; 120-записей-проблема закрыта). Остаток пака-14 весь (тесты Палладия · fail-loud оверлея уровнем выше · коллизия union = ошибка · empty-probe гард · терминаторы → embedded data · `第` → chapter_marker). **Приёмка:** golden ПЕРЕ-СНЯТ с нуля — байт-в-байт; парити EXACT; 2 MAJOR закрыты дельтой: (1) класс тихой подстановки промпта закрыт ШИРЕ запрошенного — reject-only легаси-ключи + строгий `KnownFields(true)` декод pipeline-конфигов (опечатка ключа = громко); (2) удалённый seed-контракт-тест возвращён И ОКАЗАЛСЯ ВАКУУМНЫМ в старой форме (фикстура эмитила 0) — теперь гард премисы + счёт материализации. **Гигиена:** «ни один ассерт не удалён» была ложной заявкой (раскрыта сессией §(0)); второй пак подряд → норма приёмки: дифф `^func Test` исполнением. **Очередь хвостов:** строгий декод book.yaml (санкционирован, первое касание) · pair/models non-strict · zero-value-паники · стенд-конфиги rerun2 → prompt_override (оркестратор) · eval/exp15 путь trad2simp (полигон). Дальше — пак-16: канал B вживую / слой-3 diff-редактор (прецедент research/22). diff --git a/docs/README.md b/docs/README.md index 14653357..ace85b8f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -16,7 +16,7 @@ - `experiments/` — эмпирика «Полигона»: `00-provider-quirks` (читать перед любым вызовом провайдера), `01-token-calibration`, `02-refusal-benchmark`, `03-local-stand`, `04-editor-quality`, `06-local-extraction`, `07-coverage-precision`, `08-cost-model-v2` (актуальная денежная модель), `09-pilot-protocol` (пилот Ф2.5 + поправки D13), `10-explicit-benchmark` (18+ violence-рука канала B), `11-erotica-benchmark` (erotica по трём парам/регистрам — закрытие D14.4, D22). - `research/` — фактура исследований 04–05.07: `01–10` базовые, `11-gap-*` добор критиком, `12-*` режимы отказа/отзывы/таксономии (+ два внешних материала с провенанс-шапками), `13` валидация памяти, `14` адаптивная память, `15` голос и состояние (принят, D21), **`16` ридер-IDE (принят с ревью-шапкой, D29)**, **`17` внешняя критика GPT-5.6 (принят с ревью-шапкой, D25)** — у 16/17 читать шапку прежде тела. **`18` рычаги качества (два отчёта, D36)** · **`19` нарезка+когезия+контракт t/e (D39.1)** · **`20` банк-майнинг W1.5 (D39.6)** · **`21` обзор LLM-транспорта чужих харнессов (23.07: наш транспорт опережает/вровень со всеми 11)** · **`22` доменные харнессы перевода (24.07: калибрующий — ядро подтверждено, впереди COGS/18+/общность/измеренность, позади Q4-выпуск и gate+repair-петля; сиквел `02`/`05`)** — у всех ревью-шапки. ⚠ Часть под superseded-баннерами (01/02/03/04/05/09 и gap-1/2/5) — **читай баннер прежде содержимого**. - `PROGRESS.md` — **журнал** (CURRENT-STATE сверху, ниже хронология; НЕ источник решений). -- **Активные хендофф-промты (пост-пак-15, 25.07):** [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (хендофф №5) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual пилот/18+/echo; + хвост: `eval/exp15/mem_select.py:36` путь trad2simp → `internal/text/data/`). **Паки 12/13/14/15 ЗАЛЕНДЕНЫ 24–25.07** (приёмка воркфлоу-линзами; отчёты с ревью-шапками — [`archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md`](archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md), [`archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md`](archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md); норматив — [`architecture/12-go-style-notes.md`](architecture/12-go-style-notes.md)). Дальше: **пак-16** = канал B вживую / слой 3 diff-based редактор (прецедент research/22; в первое касание бэкенда — строгий декод book.yaml [санкционирован] + pair/models-слои) → голос/состояние D21 + C2/C3. Закрытые — в `archive/prompts/`. +- **Активные хендофф-промты (пост-пак-15, 25.07):** [`BACKEND_PACK16_DIFF_EDITOR_SESSION_PROMPT.md`](BACKEND_PACK16_DIFF_EDITOR_SESSION_PROMPT.md) (**пак-16 слой-3 diff-редактор — ТЕКУЩИЙ, ДВУХФАЗНЫЙ**: дизайн D1–D6 → ратификация оркестратора → стройка; no-repair путь байт-идентичен) · [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (хендофф №5) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual пилот/18+/echo; + хвост: `eval/exp15/mem_select.py:36` путь trad2simp → `internal/text/data/`). **Паки 12/13/14/15 ЗАЛЕНДЕНЫ 24–25.07** (приёмка воркфлоу-линзами; отчёты с ревью-шапками — [`archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md`](archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md), [`archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md`](archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md); норматив — [`architecture/12-go-style-notes.md`](architecture/12-go-style-notes.md)). Дальше: пак-16 = слой-3 diff-редактор (выдан; хвосты первого касания в фазе 2) → пак-17 = канал B вживую (батч со следующим платным прогоном + вопросы итерации №2) → голос/состояние D21 + C2/C3. Закрытые — в `archive/prompts/`. - `archive/` — закрытые сессионные промты (только история, инструкции оттуда не исполнять). ## Статус (2026-07-23, пост-D39.20 — механизация выпускного качества)