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

This commit is contained in:
Claude (backend session) 2026-07-25 01:17:13 +03:00
parent e33e3be2f7
commit 4bfc097966
4 changed files with 40 additions and 2 deletions

File diff suppressed because one or more lines are too long

View file

@ -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: отчёт-предложение (варианты+рекомендация+риски по D1D6) + адверсариальный селф-ревью дизайна (линзы: детерминизм/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` стейджит — декларировать.

View file

@ -9,6 +9,10 @@
> - **Ждём от владельца:** тачпойнты exp16 (карта подписи/пол · мини-голд алиасов · precision@30, `books/gu-zhenren/exp16/`, ~3040 мин — для сид-дельты к пере-прогону) · развилки плана §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-*-доков. > - **Ждём от владельца:** тачпойнты exp16 (карта подписи/пол · мини-голд алиасов · precision@30, `books/gu-zhenren/exp16/`, ~3040 мин — для сид-дельты к пере-прогону) · развилки плана §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. > - Архивы хроники: `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 = дизайн D1D6 (единица ремонта/маппинг флаг→спан · классы петли 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 ## Оркестратор №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). `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).

View file

@ -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). - `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/` — фактура исследований 0405.07: `0110` базовые, `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) — **читай баннер прежде содержимого**. - `research/` — фактура исследований 0405.07: `0110` базовые, `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 сверху, ниже хронология; НЕ источник решений). - `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 ЗАЛЕНДЕНЫ 2425.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-редактор — ТЕКУЩИЙ, ДВУХФАЗНЫЙ**: дизайн D1D6 → ратификация оркестратора → стройка; 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 ЗАЛЕНДЕНЫ 2425.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/` — закрытые сессионные промты (только история, инструкции оттуда не исполнять). - `archive/` — закрытые сессионные промты (только история, инструкции оттуда не исполнять).
## Статус (2026-07-23, пост-D39.20 — механизация выпускного качества) ## Статус (2026-07-23, пост-D39.20 — механизация выпускного качества)