Sync all plans after the pack sweep and issue backend pack nineteen for the D21 voice and state mechanisms, with the generality nits riding its resnapshot

This commit is contained in:
Claude (backend session) 2026-07-25 19:34:04 +03:00
parent c63dd09e81
commit 6e3f8d3b83
3 changed files with 61 additions and 2 deletions

View file

@ -0,0 +1,53 @@
# Промт бэкенд-сессии: ПАК-19 «голос и состояние» (ДВУХФАЗНЫЙ: дизайн → ратификация → стройка)
**Статус: ВЫДАН 25.07.2026, оркестратор №8.** Цель — построить последний крупный НЕпостроенный рычаг качества: механизмы D21 (voice-профиль · реестр обращений ты/вы · reveal-окна). Ратифицированы 09.07 как механизмы Ф2, в коде их НЕТ — есть только описания будущих таблиц в комментариях миграций. Пак **двухфазный** (образец паков 16/17): фаза 1 — дизайн + СТОП, фаза 2 — стройка по размеченному списку.
**Первый деливерабл — эхо-блок (≤10 строк): скоуп / инварианты / чего не делать. ДО работы.**
## Почему это ответственный пак (контекст, из кода не выводится)
1. **Он двигает провод.** Инъекция голоса/обращений меняет сборку контекста ⇒ снапшот, ⇒ `--resnapshot`, ⇒ пере-оплата книги. Это не побочный эффект, а планируемое свойство: пак делается тогда, когда мы готовы платить за пере-прогон.
2. **Он трогает банк памяти**а банк durable и его версия фолдится в снапшот. Ошибка схемы стоит пере-оплаты всех книг, а не одной.
3. **Он на грани ru-target долга.** Различение ты/вы — свойство ПАРЫ (в английском его нет, в японском своя система), поэтому это первый пак, где §0-инвариант общности проверяется по-настоящему. Ревью-вопрос по умолчанию: «заработает ли на паре, которой в репо ещё НЕТ, без правки Go?»
## Ратифицированная база (D21, читать как контракт)
- **Voice-профиль** — схема `research/15` §1.5 (`char_id` · `register` · `self_ref` · `address_default` · `lexicon_markers` · `ng_lexicon` · `exemplars` 35 RU-реплик из УТВЕРЖДЁННОГО перевода · `brightness` · окна `since_ch/until_ch`). **Оговорка red-team, «ровно так»: до полного лендинга D15.2 профиль ЗАМОРОЖЕН per-job** — самодозаполнение exemplars = mid-run append памяти = пере-оплата книги (D8/D15.1). Проверь фактическое состояние D15.2-семантики в коде и, если считаешь, что заморозку можно снять, — принеси АРГУМЕНТ, а не тихое послабление.
- **Реестр обращений `address_pair`** — ратифицирован как **МАТЕРИАЛИЗАЦИЯ журнала ты/вы** (D7-Правки-1), то есть ОДИН источник истины, а не второе хранилище рядом с банком.
- **Reveal-окна** (`reveal_ch` + pre/post-reveal алиасы) — та же фигура, что уже работающие спойлер-окна `since_ch/until_ch` (`internal/seed`, `internal/membank`): pre-reveal dst не должен инжектиться до раскрытия.
- **Приоритет инъекции:** CONFIRMED-глоссарий > обращения > голос; в инъекцию идёт только CONFIRMED.
- **Экономика D21 п.8:** верхняя граница editor-side инъекции +$0.20.3/вебновелла; при драфт-слоте ~+$0.020.05. Дороже — повод для развилки, не для тихого списания.
## ФАЗА 1 — ДИЗАЙН (кода не трогать; отчёт → СТОП → ратификация)
Каждый пункт — «реши сам и аргументируй»; советы ниже = приоры, опровергаются аргументом или замером.
- **V1. Скоуп и порядок.** Какие из трёх механизмов берём сейчас и в каком порядке. *Приор: реестр обращений первым* — он детерминирован, дёшев, даёт $0-детектор (слой 1) и материализует уже ратифицированный журнал; *reveal-окна вторыми* — это расширение существующей идиомы окон, а не новая сущность; *voice-профиль третьим* — он самый дорогой по схеме и бюджету инъекции. Опровергни, если данные говорят иначе.
- **V2. Схема и хранение.** Где живут три сущности (типы записей банка против отдельных таблиц), как ложатся на миграции, что делает версия банка со снапшотом, и какова политика append в середине книги. Явно ответь: **что из этого durable, что производное, что пере-оплачивается при правке.**
- **V3. Инъекция.** Формат, позиция, бюджет, приоритет; кэшируемый префикс для 23 главных героев (стабилен на книгу — кэш почти бесплатен); пер-ролевая разница (переводчик против редактора — реестр `role→инъекция` уже существует). **Обязательно: что именно фолдится в снапшот и почему** — блок `context_assembly` уже есть, новая ось обязана быть в нём или получить осознанный отказ.
- **V4. Детерминированный детектор отклонения голоса (слой 1, $0).** Ты/вы-флип в атрибутированной реплике против реестра пар — где живёт (пакет `checks`), как отчитывается (`QualityReport`), версионируется ли (`CheapGateVersion` фолдится БЕЗУСЛОВНО — любое изменение правила двигает снапшот всех книг: реши осознанно). Слой 2 (эмбеддинги) — НЕ в этом паке.
- **V5. Общность (несущее).** Ты/вы — свойство пары, не движка. Спроектируй так, чтобы T/V-различение приходило ДАННЫМИ (`internal/lang` + `configs/langpacks|pairs`), а пара без T/V (en→?) просто не активировала механизм без единой правки Go. **Мысленный тест обязателен и должен быть в отчёте:** что именно придётся дописать для пары, которой в репо нет.
- **V6. Деньги и измеримость.** Оценка прироста COGS по слотам инъекции; что мерить и чем (детерминированно, где возможно — «детерминированный скорер > судьи»). Метрика blind speaker attribution — eval-сторона, в пак НЕ входит.
**Приёмка фазы 1:** отчёт `docs/archive/reports/PACK19_DESIGN_<дата>.md` — эхо-блок · по каждому V варианты/рекомендация/риски · адверсариальный селф-ревью (линзы: деньги и пере-оплата · durable-схема и миграции · общность §0 · байт-точность и снапшот · граница с ru-target долгом). **СТОП — ратификация.**
## «РОВНО ТАК» для обеих фаз
1. **Annotator-пре-пасс (D21 п.5) — НЕ в этом паке.** Это LLM-проход, то есть деньги и отдельное решение; дизайн может на него ссылаться как на будущее.
2. **Только CONFIRMED идёт в инъекцию.** Курируемое ≠ намайненное.
3. **Ни одного пар/языкового литерала в Go** (§0). Ты/вы, формы обращений, признаки регистра — данные.
4. **Voice-профиль заморожен per-job**, пока не доказано обратное (см. базу выше).
5. **Ниты общности едут ЭТИМ паком.** Ратифицировано D39.31 п.5: они требуют `--resnapshot`, а этот пак его и так вызывает — платить дважды за одно нельзя. Оба: множитель `expectedHours := n * 2` (`internal/checks/checkers.go`) → данные пары; Detail-строки чекеров → шаблоны из данных (у второго байт-нейтральной формы НЕ существует определительно — он именно поэтому ждал resnapshot).
6. **Пере-капчер golden — под ратифицированную смену поведения, с доказательством:** маскированный структурный дифф обязан быть пуст вне осей, которые пак сознательно двигает. Каждую сдвинутую ось назвать в отчёте отдельной строкой.
7. **Деньги durable не трогаем:** reserve→settle+чекпойнт одной транзакцией; инъекция не смеет ослепить потолок (бюджет инъекции входит в оценку).
8. **Никаких платных прогонов.** Фикстуры и мок; живой прогон — отдельное решение владельца после лендинга.
## НЕ делать
ru-target долг (`isRuTarget`/`TokenizeCyrillic`/санитайзер — слой 7, свой дизайн-пак; но **проектируй так, чтобы не углублять его**) · Annotator · слой-2 детектора · native-Gemini судья · метрики пилота · масштаб на сотни глав · расширение скоупа без пинга.
## Мандат самопроверки и приёмка
Ревью ИСПОЛНЕНИЕМ (решение владельца 12.07): сквозные сценарии через настоящий драйвер · мутация на каждую новую ветку (мутация возвращает дефект → тест краснеет) · дифф `^func Test` ИСПОЛНЕНИЕМ · заявление = команда (приёмка ре-ранит манифест). Инварианты фазы 2: парити EXACT · `-race` · golden только под п.6 · сессия НЕ коммитит, `git mv` декларировать.
**Канал вопросов:** непонятно / промт конфликтует с кодом или доками → пинг оркестратору через владельца, **НЕ тихая интерпретация**. Аддендумы доезжают только релеем — подтверди получение строкой в отчёте.

File diff suppressed because one or more lines are too long

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), `12-quality-diagnosis`/`13-translator-bakeoff`/`14-quality-empirics`/`14b-meaning-battery` (дуга качества «мерить→строить», закрыты → D30/D32/D37/D38), `15-segmentation-empirics` (exp15: когезия под floor-шумом, фертильность — закрыт → D39.7/D39.8), `16-bank-mining` (exp16: WHICH/WHAT банк-майнинга — закрыт → D39.10).
- `research/` — фактура исследований 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 сверху, ниже хронология; НЕ источник решений).
- **Активные хендофф-промты (пост-пак-17, 25.07):** [`BACKEND_PACK18_DEBTS_SESSION_PROMPT.md`](BACKEND_PACK18_DEBTS_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный: долги контракта — `--accept-rebill` (D20.2-Q2) на снапшотной гранулярности · семантика `escalation_model` с санкционированным пере-капчером golden · два нита общности условно; ru-target долг ЯВНО вынесен в свой будущий пак**) · [`BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md`](BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md) (**пак-17 канал B (18+) вживую — ОТРАБОТАН ЦЕЛИКОМ 25.07: дизайн D39.26 · стройка D39.27 · дельта `allow` D39.28; вокабуляр = ПАРА `violence`/`sexually-explicit`, остаток — ФАКТЫ ToS в зоне полигона**; отчёты с ревью-шапками — [`archive/reports/PACK17_DESIGN_2026-07-25.md`](archive/reports/PACK17_DESIGN_2026-07-25.md), [`archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md`](archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md), [`archive/reports/PACK17_DELTA_2026-07-25.md`](archive/reports/PACK17_DELTA_2026-07-25.md); L3 — жёсткая линия, live только по санкции владельца) · [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (хендофф №6, 25.07 — только живое: роль/методология/уроки/нормы §111; состояние НЕ дублирует) · [`POLYGON_PACKAGE5_SESSION_PROMPT.md`](POLYGON_PACKAGE5_SESSION_PROMPT.md) (**ТЕКУЩИЙ полигонный: блок A — ФАКТЫ ToS/AUP провайдер × лейбл под `accepts_labels` пака-17 (вердикты с дословными цитатами первоисточников, UNCLEAR легитимен); блок B — 7 док-синк пингов**) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual пилот/18+/echo). **Пак-16 ЗАЛЕНДЁН 25.07** (слой-3 diff-редактор: двухфазный дизайн D39.24 → стройка за `enabled:false`; отчёты с ревью-шапками — [`archive/reports/PACK16_DESIGN_2026-07-25.md`](archive/reports/PACK16_DESIGN_2026-07-25.md), [`archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md`](archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md)). **Паки 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)). Дальше: **пак-17 = канал B вживую** (батч со следующим платным прогоном: вопросы итерации №2 + замер остатка ремонта → решение о включении петли) → голос/состояние D21 + C2/C3 → пилот Ф2.5. Закрытые — в `archive/prompts/`.
- **Активные хендофф-промты (пост-пак-18, 25.07):** [`BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md`](BACKEND_PACK19_VOICE_STATE_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный: механизмы D21 «голос и состояние» — voice-профиль · реестр обращений ты/вы · reveal-окна; двухфазный, ниты общности едут его лендингом**) · [`BACKEND_PACK18_DEBTS_SESSION_PROMPT.md`](BACKEND_PACK18_DEBTS_SESSION_PROMPT.md) (**ТЕКУЩИЙ бэкендный: долги контракта — `--accept-rebill` (D20.2-Q2) на снапшотной гранулярности · семантика `escalation_model` с санкционированным пере-капчером golden · два нита общности условно; ru-target долг ЯВНО вынесен в свой будущий пак**) · [`BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md`](BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md) (**пак-17 канал B (18+) вживую — ОТРАБОТАН ЦЕЛИКОМ 25.07: дизайн D39.26 · стройка D39.27 · дельта `allow` D39.28; вокабуляр = ПАРА `violence`/`sexually-explicit`, остаток — ФАКТЫ ToS в зоне полигона**; отчёты с ревью-шапками — [`archive/reports/PACK17_DESIGN_2026-07-25.md`](archive/reports/PACK17_DESIGN_2026-07-25.md), [`archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md`](archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md), [`archive/reports/PACK17_DELTA_2026-07-25.md`](archive/reports/PACK17_DELTA_2026-07-25.md); L3 — жёсткая линия, live только по санкции владельца) · [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (хендофф №6, 25.07 — только живое: роль/методология/уроки/нормы §111; состояние НЕ дублирует) · [`POLYGON_PACKAGE5_SESSION_PROMPT.md`](POLYGON_PACKAGE5_SESSION_PROMPT.md) (**ТЕКУЩИЙ полигонный: блок A — ФАКТЫ ToS/AUP провайдер × лейбл под `accepts_labels` пака-17 (вердикты с дословными цитатами первоисточников, UNCLEAR легитимен); блок B — 7 док-синк пингов**) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual пилот/18+/echo). **Пак-16 ЗАЛЕНДЁН 25.07** (слой-3 diff-редактор: двухфазный дизайн D39.24 → стройка за `enabled:false`; отчёты с ревью-шапками — [`archive/reports/PACK16_DESIGN_2026-07-25.md`](archive/reports/PACK16_DESIGN_2026-07-25.md), [`archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md`](archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md)). **Паки 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)). Дальше: **пак-17 = канал B вживую** (батч со следующим платным прогоном: вопросы итерации №2 + замер остатка ремонта → решение о включении петли) → голос/состояние D21 + C2/C3 → пилот Ф2.5. Закрытые — в `archive/prompts/`.
- `archive/``prompts/`: закрытые сессионные промты (только история, инструкции оттуда не исполнять) · `reports/`: отчёты паков/ресёрч-сессий с ревью-шапками (живая фактура приёмок — на них ссылаются D-лог и активные промты) · `architecture/`: исполненные арх-доки (07 стратревью · 08 синк-ледджер · 11 план пака-11) · три слайса хроники `PROGRESS-2026-07-{04-10,10-13,13-25}.md`.
## Статус (2026-07-25, пак-17 ЗАКРЫТ ЦЕЛИКОМ — механизм content-labels живой, D39.26D39.28 — механизация выпускного качества)