Revise pack-16 prompt and handoff norms for the source-of-truth duality: ratified invariants verbatim, code facts as entry points the session verifies itself
This commit is contained in:
parent
5f7ee834d1
commit
662ab602cf
2 changed files with 32 additions and 20 deletions
|
|
@ -1,34 +1,46 @@
|
|||
# Промт бэкенд-сессии: ПАК-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), не вера.
|
||||
**Статус: ВЫДАН 25.07.2026, оркестратор №7 (ревизия 2 — усилен по анти-рассинк норме).** Слой 3 `09-target-architecture.md` — крупнейший остаток плана; мандат редактора до сих пор full-regen (D39: причина инверсий). Приоритет подтверждён research/22 §2 №1: конкуренты ЧИНЯТ typed-error адресно (AiNiee ProofreadTask — однострочный proofread с `error_type`; LinguaGacha — retranslation-by-keyword), мы только флагаем. Их код GPL/AGPL — НЕ копировать ни строчки, брать только идею. North-star: ИЗМЕРЕННЫЙ вклад петли (сколько чинится по классам), не вера.
|
||||
|
||||
**Цель:** флаг типизированного чекера → адресный ремонт минимального спана дешёвым вызовом → re-gate → при неудаче прежний flag+skip (дисциплина D2 сохраняется, мусор не течёт в TM/экспорт).
|
||||
**Цель:** флаг детерминированного чекера → адресный ремонт минимального спана дешёвым вызовом → детерминированный re-gate → при неудаче прежний flag+skip.
|
||||
|
||||
## Онбординг
|
||||
## Инварианты — «РОВНО ТАК» (ратифицировано, из кода не выводится; конфликт промта с кодом/доками → пинг оркестратору через владельца, НЕ интерпретация)
|
||||
|
||||
`CLAUDE.md` → `09-target-architecture.md` (слой 3) → `internal/checks` (typed-факты: CheapGateResult/SanitizerResult/DC-чекеры) → отчёты паков 13/15 (дефект-классы D39.20 → механизмы) → research/22 §2 №1 (прецеденты; их код GPL/AGPL — НЕ копировать, только идеи).
|
||||
- **Дисциплина D2 неприкосновенна:** петля НЕ хард-гейт; неудача ремонта = сегодняшний flag+skip, мусор не течёт в TM/экспорт.
|
||||
- **Лестница эскалации не ломается:** ремонт встраивается в существующую механику `regenerate_before_escalate` → `escalate_to` (под `budget_usd`), не меняя её семантику молча (развилки — в D3a).
|
||||
- **Wire/деньги:** $0-резюм драфта НЕ ломать; repair-вызовы = новый класс → чекпойнты, RequestHash, леджер Reserve→Settle с CostSource-маркером; **no-repair путь байт-идентичен** (петля выключена = сегодняшнее поведение, golden compare-режим зелёный БЕЗ пере-капчера).
|
||||
- **Общность §0:** промпт ремонта = данные пары → файл конвенции `prompts/<пара>/<роль>.md`; никаких пар/книго-литералов в Go; новые ключи конфига проходят строгий декод.
|
||||
- **Провайдер-ловушки:** DeepSeek thinking НИКОГДА не off (эхо-мина); слаги не менять без live-фактчека.
|
||||
- **Книга и производные ВНЕ git:** валидация на живых rerun2-выходах — на СТЕНДЕ, без коммита текста; в репо — только СИНТЕТИЧЕСКИЕ фикстуры по образцу дефект-классов (тест-данные пары легитимны §0.3, цитаты книги — нет).
|
||||
|
||||
## ФАЗА 1 — ДИЗАЙН (без единой правки кода)
|
||||
## Отправные точки в код (сверь САМ — код первичен; это entry-points, не предписания; у тебя контекст кода лучше оркестраторского)
|
||||
|
||||
Дизайн-отчёт с вариантами и рекомендацией по каждому пункту; СТОП после отчёта — ратификация оркестратора (через владельца), стройка только после неё.
|
||||
Typed-факты чекеров: `internal/checks` — `CheapGateResult`/`RunCheapGates` (`cheapgates.go:~89/120`), `SanitizerResult`/`SanitizeOutput` (`sanitizer.go:~142/190`), `CoverageResult` (`coverage.go:~139`), DC-паттерны из `configs/langpacks/zh-ru/dc-checkers.txt` (`checkers.go:~50`). Диспозиция-луп: `internal/pipeline/chunkrun.go` (classifyOutput). Гейты в волне: `waverun.go` (draft- и edit-пути). Грубая петля: `retries.regenerate_before_escalate` (`internal/config/pipeline.go:~110`). CostSource: `store/migrate.go` (v10). Инвентаризацию «кто даёт позиции, кто только факт» делай по коду, не по этому списку.
|
||||
|
||||
- **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 «заработает ли на паре, которой нет»). Кода НЕ трогать.
|
||||
`CLAUDE.md` → `09-target-architecture.md` (слой 3) → `docs/archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md` (пакет checks, границы) → D39.20 в D-логе (дефект-классы → механизмы) → research/22 §2 №1.
|
||||
|
||||
## ФАЗА 2 — СТРОЙКА (только после ратификации)
|
||||
## ФАЗА 1 — ДИЗАЙН (без единой правки кода; каждый пункт — «реши сам и аргументируй», советы оркестратора = приоры, опровергаются только аргументом/замером)
|
||||
|
||||
По ратифицированному дизайну. Инварианты: **no-repair путь байт-идентичен** (петля выключена = сегодняшнее поведение, golden в compare-режиме зелёный БЕЗ пере-капчера) · парити EXACT · петля вкл. — новый golden-класс по санкции · тесты на дефект-корпусе · `-race` весь. **Хвосты первого касания (байт-нейтральные, тем же паком):** строгий декод `book.yaml` (санкционирован D-логом; перед вкл. — проверить стендовые book.yaml на внесхемные ключи и доложить) · строгий декод pair/models-слоёв · loose-ассерт unknown-key-теста (пинить имя ключа) · zero-value-паники PickedEntry/Bank (конструктор-гард или док).
|
||||
- **D1. Единица ремонта + маппинг флаг→спан.** Инвентаризация: какие чекеры дают ПОЗИЦИИ, какие только факт; что дотипизировать в checks (не ломая API пака-15). *Приор: спан = предложение(я) с матчем + минимальный контекст; дотипизация = позиции в Result-структуры аддитивными полями.*
|
||||
- **D2. Классы петли v1 vs flag-only.** Критерий отбора: существует детерминированный ре-чек. *Приор: в петлю — юнит-конверсия (时辰), число-масштабы (千万/成), broken-word, latin-residue; flag-only — register/style/coverage (нет детерминированного «починено»). Отдельно отсортируй класс (в): чинится ЧИСТЫМ КОДОМ без LLM (прецеденты уже в проде: заголовок-шаблон пака-13, санитайзер-стрип D30.3) — такие в LLM-петлю НЕ тащить.*
|
||||
- **D3. Механика вызова.** Промпт ремонта (src-спан + draft-спан + типизированная ошибка → исправление; язык = данные пары) · где живёт в конфиге (суб-шаг edit-стадии vs новая стадия) · модель · потолок вызовов/бюджет · loop-guard. *Приор: суб-шаг edit-стадии (меньше поверхности схемы/снапшота), модель = дешёвая (flash-класс), 1 раунд на чанк, re-gate тем же чекером + полной cheap-сюитой юнита.*
|
||||
- **D3a. Позиция в лестнице эскалации.** Как ремонт соотносится с `regenerate_before_escalate` и `escalate_to`. *Приор: для typed-span дефектов ремонт ПЕРВЫМ (дешевле полного re-gen); regenerate остаётся для классов без спана; эскалация не трогается. Провал ремонта НЕ триггерит regenerate автоматически (иначе двойная оплата пути) — аргументируй, если не согласен.*
|
||||
- **D4. Wire/снапшот/resume.** RequestHash для repair-вызовов · чекпойнт-ключи (резюм скипает сделанный ремонт) · снапшот-фолд промпта ремонта · resnapshot ОДИН · golden: эволюция capture новым классом вызовов — пере-капчер ТОЛЬКО по санкции, no-repair путь без пере-капчера.
|
||||
- **D5. Деньги/отчётность.** CostSource-маркер для repair · счётчики «починено/по классам/не удалось» в quality-report и паспорт главы.
|
||||
- **D6. $0-валидация.** Синтетические фикстуры дефект-классов в репо (см. «РОВНО ТАК» про книгу вне git) + прогон на стенде против живых rerun2-выходов без коммита; mini-live гейт = отдельное решение владельца, НЕ в паке.
|
||||
|
||||
**Приёмка фазы 1:** отчёт-предложение `docs/archive/reports/PACK16_DESIGN_<дата>.md` — по каждому D: варианты, рекомендация, риски, где расходишься с приорами и почему; адверсариальный селф-ревью дизайна (линзы: детерминизм/resume · деньги · D2-дисциплина · общность «заработает ли на паре, которой нет»). Кода НЕ трогать. **СТОП — ратификация оркестратора через владельца.**
|
||||
|
||||
## ФАЗА 2 — СТРОЙКА (только после ратификации; список пунктов станет размеченным «ровно так» при ратификации)
|
||||
|
||||
По ратифицированному дизайну. Инварианты фазы: no-repair путь байт-идентичен · парити EXACT · `-race` весь · тесты на синтетических фикстурах + стенд-прогон. **Хвосты первого касания (байт-нейтральные, тем же паком):** строгий декод `book.yaml` (санкционирован; перед вкл. проверить стендовые book.yaml на внесхемные ключи, доложить) · строгий декод pair/models-слоёв · unknown-key-тест пинит ИМЯ ключа · zero-value-паники PickedEntry/Bank (гард или док).
|
||||
|
||||
## НЕ делать
|
||||
|
||||
Канал B (пак-17) · копирование GPL/AGPL-кода · пар/книго-литералы в Go (§0; язык промпта ремонта = данные пары) · live-вызовы без санкции владельца · расширение скоупа без пинга оркестратору.
|
||||
Канал B (пак-17) · копирование GPL/AGPL · пар/книго-литералы в Go · live-вызовы без санкции владельца · книжный текст в git · расширение скоупа без пинга.
|
||||
|
||||
## Приёмка (мандат 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` стейджит — декларировать.
|
||||
Фаза 1 — см. выше, СТОП. Фаза 2 — ревью исполнением: build/vet/test -race · golden (инварианты выше) · парити · **дифф `^func Test` ИСПОЛНЕНИЕМ в отчёте** (норма после паков 14/15) · адверсариальный селф-ревью. Отчёт `docs/archive/reports/PACK16_DIFF_EDITOR_REPORT_<дата>.md`. Сессия НЕ коммитит; `git mv` стейджит — декларировать. Вопросы/конфликты — пинг оркестратору через владельца.
|
||||
|
|
|
|||
|
|
@ -71,9 +71,9 @@
|
|||
|
||||
Промт — ЕДИНСТВЕННЫЙ контекст сессии: она не видит твоих разговоров, чужих отчётов и решений, принятых после её старта. Отсюда шесть правил:
|
||||
|
||||
1. **Самодостаточность несущей части.** Ратифицированные решения (алгоритм, дизайн, формат, инвариант) — В ТЕЛЕ промта с file:line-якорями, не «см. док». Карта чтения ≤5 позиций и только для глубины/подтверждения; если сессии придётся пере-выводить решение из доков — промт написан плохо.
|
||||
2. **Явная разметка свободы.** Каждый пункт — либо «делай РОВНО так» (решение принято; отступление = пинг, не тихая девиация), либо «реши сам и аргументируй в отчёте». Неразмеченная середина — главный источник миссимплементации.
|
||||
3. **Имплементационные советы давать**, когда они есть: алгоритм, структура данных, подводный камень, wire-квирк, порядок этапов. Сессия не обязана пере-открывать известное; тактический (кодинг/конфиг) промт несёт квирки, стратегический — направление (не смешивать).
|
||||
1. **Самодостаточность несущей части — с разделением по ИСТОЧНИКУ ИСТИНЫ (двойственность, владелец 25.07).** В ТЕЛЕ промта — то, что из кода НЕ выводится: ратифицированные решения, инварианты, квирки, направление «что мы делаем и зачем». КОД-факты сессия вытаскивает САМА — у неё контекст кода лучше твоего; промт даёт entry-points (file:line как отправные точки со сверкой «код первичен», не как предписания). Не прескрайбь то, в чём сессия компетентнее; карта чтения ≤5 позиций.
|
||||
2. **Явная разметка свободы.** Каждый пункт — либо «делай РОВНО так» (ратифицировано; отступление = пинг, не тихая девиация), либо «реши сам и аргументируй в отчёте». Неразмеченная середина — главный источник миссимплементации.
|
||||
3. **Советы давать как ПРИОРЫ**, когда они есть: алгоритм, структура данных, подводный камень, wire-квирк, порядок этапов — с явной пометкой «опровергается аргументом/замером». Сессия не обязана пере-открывать известное, но и не связана твоей догадкой; тактический (кодинг/конфиг) промт несёт квирки, стратегический — направление (не смешивать).
|
||||
4. **Mid-flight аддендумы доезжают ТОЛЬКО релеем** — бегущая сессия файл промта не перечитывает. Требуй эхо-подтверждение получения + отдельный пункт в отчёте; при приёмке проверяй каждый аддендум явной строкой (так пойман потерянный parsePalladius-аддендум пака-14).
|
||||
5. **Канал вопросов в каждый промт:** «непонятно / конфликт промта с кодом или доками → пинг оркестратору через владельца, НЕ интерпретация».
|
||||
6. **Мандат самопроверки исполнением** (CLAUDE.md, 12.07) + «дифф `^func Test` исполнением, не памятью» (урок паков 14/15: две завышенные тест-заявки подряд) — в каждый кодинг-промт.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue