textmachine/docs/archive/prompts/DESIGN_SYNTHESIS_SESSION_PROMPT_2026-07-19.md

35 KiB
Raw Blame History

⟶ ОТРАБОТАН → docs/architecture/11-implementation-plan.md (1066 строк, три рубежа верификации), РАТИФИЦИРОВАН D39.12 (19.07). Следующий шаг очереди — BACKEND_PLAN11_SESSION_PROMPT.md. Архивная копия.

Промт: сессия ДИЗАЙН-СИНТЕЗ — план реализации пере-прогонного стека (слои 1+4+5 + данные слоя 2), 2026-07-19

Место в очереди (D39.11, директива владельца): исследовательская программа арх-ресета ЗАВЕРШЕНА (D39D39.10, все залендены). В бэкенд «просто так не бросаться»: между эмпирикой и стройкой стоит ЭТА проект-ресёрч сессия. Ты синтезируешь ВСЕ находки (research/1920, exp15/16, аудит 08, дефект-классы D39.8) в план реализации «что и как меняем» — с чёткими алгоритмами и процедурой верификации каждого ДО стройки ($0-симуляции на существующих данных, где возможно). План ратифицирует оркестратор (адверсариальное ревью несущих алгоритмов), затем по плану выдаётся бэкенд-пак. Стройка ТОЛЬКО по ратифицированному плану — финальное закрытие концерна «тактическое латание».

Кто ты и что сдаёшь

Сессия-проектировщик (аналог ресёрч-сессий research/1920, но материал — НАШ репозиторий и НАША эмпирика, не веб). Выход:

  1. docs/architecture/11-implementation-plan.md — ратифицируемый план реализации (формат §«Формат плана»).
  2. eval/design11/ — скрипты $0-верификаций (симуляции/пере-выводы) + их результаты; артефакты, производные от книги, — ВНЕ git (/home/ubuntu/books/gu-zhenren/design11/).

Не коммитить (лендит оркестратор; git-гардрейл CLAUDE.md в силе). Бэкенд-код НЕ писать и backend/ НЕ править — только план + верификационные скрипты. $0 к провайдерам жёстко: платных вызовов нет. Если верификация требует платного вызова — две дороги, НЕ одна: (а) верификация несущая для (г)-слота WS → это деньги-развилка, эскалируй оркестратору через владельца с точной спекой (кандидат — платная pre-build полигон-мини-сессия); (б) проверка структурно требует ПОСТРОЕННОГО кода → слот (д) «после стройки», пробел явно фиксируется в (е) этого WS. Самому тихо маршрутизировать несущую верификацию «на после стройки» запрещено (verify-before-build — суть D39.11). Гардрейлы CLAUDE.md действуют целиком (.env не читать; 18+ уровень 3; PUML не рендерить; книга и производные вне git).

Онбординг (порядок чтения, целевой — не всё подряд)

  1. CLAUDE.mddocs/architecture/09-target-architecture.md (7 слоёв, §0.1 инвариант общности — НЕСУЩИЙ).
  2. Д-лог docs/architecture/05-decisions-log.md: карта актуальности в шапке + D39D39.11 целиком (контракт эры).
  3. Несущие отчёты (это твой исходный материал, читать ВНИМАТЕЛЬНО):
    • research/19-chunking-cohesion.md §B (чанкер-спека B1B4, когезия B3, волны B3-бис), §C (контракт t/e), §E;
    • research/20-bank-mining.md §B1 (детекторы V-A/B/C), §B2 (алиас-ярусы), §B3 (banknote-v1, 12 точек), §B4 (зоны Z1Z5), §B5 (плагины P1P6), §C (консолидация), §E;
    • experiments/15-segmentation-empirics.md §3 (Q2b — потолок инструмента), §7 РЕВ.2 (floor 0.126, Q1/Q3a/Q0), §7.9 (слепое чтение, дефект-классы), §7-Q4a (слабое звено = редактор);
    • experiments/16-bank-mining.md (WHICH/WHAT-расщепление, §3.3 канон, §3.5 банкнота, §4 слепые зоны V-C).
  4. architecture/10-prompt-architecture.md (промпт-инвентарь) + architecture/08-sync-audit-ledger.md (дорожки L1/L2/L3/L5 — по надобности, для полноты диспозиций).
  5. Код (грунтовка обязательна, план цитирует file:line): backend/chunker.go, chunkrun.go, stagerun.go, snapshot.go, memory.go, memseed.go, mempostcheck.go, coverage.go, sanitizer.go, export.go, config/pipeline.go, models.go, store/*; backend/README.md (инварианты 18), 03-implementation-notes.md.
  6. experiments/00-provider-quirks.md (перед любым суждением о провайдерах); eval/exp15/, eval/exp16/ (риги/порты — реюз для симуляций), артефакты /home/ubuntu/books/gu-zhenren/{exp15,exp16}/.
  7. Авто-память — point-in-time; при конфликте верить докам/коду.

Доказанная база (НЕ пере-открывать; план строится НА этом)

Строим (ратифицировано, детали в D-логе):

  • Волновой раннер W0→W1(∥)→W1.5→W2(∥) — преимущества последовательного финал-соседа нет нигде (exp15 Q3a, LOO-stable; мощность |cost|≲0.050.10 — «не опровергнуто», не «доказано ноль»); scheduler-aware окна цен.
  • Бюджет чанкера в ВЫХОДНЫХ токенах: фертильность est_out = 1.20·cjk + 0.39·other (R²=0.96, glm-4.6-токены, exp15/fertility_calib.json) — фикс L2-budget-wrong-unit.
  • Банк W1.5 (слой 4): детектор V-C (WHICH: recall 0.97 f≥3 held-out, $0, детерминирован) + банкнота = dst-канал (parse_fail 0%, ~$0.010.1/ранобэ) + Палладий (имена) + консолидация §C2 + алиас-ярус-1 (R1R4) + карта подписи. dst из ко-оккуренции ОПРОВЕРГНУТ (canon-recovery 0.200.68 < 70%); Z1-адъюдикация — облако; локальная 9B не нужна.
  • Декаплинг единиц: draft = мелкий чанк, edit = крупная единица (цель слоя 1, D39 п.4; exp14 претензия-1; exp15 Q2b: entity-omission ≈0 на всех размерах — с оговоркой «потолок инструмента», Q2a span-омиссия НЕ гонялась).
  • Свап редактора glm→mistral/deepseek-pro — приоритетный арм пере-прогона (exp14b + h2h + Q4a: слабое звено = РЕДАКТОР; flash-черновик уже верен 25/0/27; pro ×3.67 НЕ ратифицирован).
  • Дефект-класс чекеры + данные пакета пары (D39.8): 时辰-юниты (детерм. конверсия) · масштабы чисел (b1-класс 千万/数十万) · gender-enforce по полю сида (класс hidden D19.3: безродовые конструкции до reveal; поле есть, исполнителя НЕТ) · стих/аллюзии (пак-политика + сноски) · регистр-негатив-лист («терем»-класс).

НЕ строим (доказано/ратифицировано — в план НЕ вносить): сцен-детекция и carryover-машинерия для книг этого класса (D39.7/D39.8 — метрики под полом 0.126 И читатель подтвердил); DP/logical-граница чанкера (Q1: «граница — не рычаг»; Q1a: детекция 0/7); ко-оккуренция для dst; LLM-сегментация/ML-сцены/эмбеддинг-границы/ LLM-running-summary/RAG-оверлап (анти-скоуп research/19 §B4); фронтир в дефолт (D38); жанр-паки (решение владельца 1718.07); локальный 9B-споттер. Парковки (НЕ тестировано — не строим по консервативному дефолту, НЕ хоронить как «доказано»): lookahead (Q3b не гонялся); diff-редактор §C2 (Q4b); reflow-отдельным-пассом (Q4c); широкое-окно/узкая-эмиссия Q2c; W2.5-швейный пасс (Q5). Все парковки — с явной пометкой «не тестировано».

Столпы (ломать нельзя, инварианты 18 backend/README.md): деньги/durability (committed==SUM, kill -9) · снапшот-дисциплина (правка wire-байтов/вердиктов = громкий resnapshot; все изменения этого плана обязаны схлопнуться в ЕДИНЫЙ resnapshot — D30.9, одна переоплата) · детерминированный банк (не вектора) · эхо-мина DeepSeek (thinking НИКОГДА не off) · 18+ · конфиг-первое ядро · экспорт-контракт = инвариант №8 README (внешняя экстракция ТОЛЬКО tmctl export) · golden-гард детерминизма (backend/README, отдельная секция; исторический ярлык «инвариант №8» эпохи D23 в CLAUDE.md/D-логе — номер теперь занят экспорт-контрактом, не путать) · инвариант общности §0.1 (любая книга/пара/структура; пара = ось данных).

Скоуп плана — воркстримы WS1WS6 + глобальные секции

WS1 — Волновой раннер (слой 1/оркестровка)

Спроектировать: W0 (чанкер+контекст-пакеты, $0) → W1 черновики параллельно → W1.5 (стоп-граница: банк-синк, подпись владельца, resnapshot) → W2 редактуры параллельно. Обязательные решения:

  • Деньги под параллелизмом: reserve→settle+checkpoint одной транзакцией из N воркеров; потолки (committed+reserved) без гонок; SQLite-конкуренция (single-writer/WAL/очередь — выбрать и обосновать); ретрай-изоляция (ретрай чанка не меняет вход других — уже свойство волн, закрепить тестом). Уроки D12.
  • Контекст W1/W2: src-контекст в W1 статичен (глоссарий-сид + чанк; carryover НЕ строим — D39.7/8; lookahead не тестирован Q3b — в дефолт не входит, парковка); W2-редактор получает КРУПНУЮ единицу (см. WS2)
    • банк-констрейнты. Соседи-черновики как контекст W2 — НЕ ратифицированы (Q3a null + гипотеза CJK-протечки V2-брака §7.9): если план хочет их — обоснуй и дай дешёвый гейт; дефолт — без них.
  • Общее состояние раннера под N воркеров: назвать и закрыть гонку lazy-init Runner.clients (runner.go:171-181, D12-урок) и прочие разделяемые хендлы (store/logger/шаблоны); выбрать sync-стратегию, закрепить race-тест-спекой в (д).
  • Sticky/сцен-инерция (A5): сегодня memory.Select тянет stickyPrev по цепочке чанков главы (chunkrun.go:88-111) и результат входит в инъекционные байты → request_hash; при параллельной W1 цепочка ломается. План обязан ЯВНО решить: drop / precompute-в-W0 (sticky src-производен — детерминированно и $0) / переопределить per-волна; с последствиями для resume-детерминизма; изменение инъекционных байтов — строкой в манифест единого resnapshot, не молча.
  • Scheduler-aware диспетчер: ценовые окна = конфиг провайдера (не хардкод); DeepSeek peak-valley ×2. ⚠ Вендор-чеки в рамках сессии ($0, официальные доки, с цитатами/URL в плане): (а) актуальные пик/офф-пик окна DeepSeek — флаг D39.10-6: «0104/0610 UTC» vs документированный off-peak 16:3000:30 UTC, НЕ абсорбировать ни одну трактовку без сверки; (б) семантика/скидка префикс-кэша ZAI/GLM (§E.8-бис research/19 — вся warm-then-fan экономика W1/W2 условна на этом); (в) deprecation слагов DeepSeek 24.07 (research/19 §E.8) — греп конфига и eval-скриптов, список затронутого.
  • Гейт W1.5 посреди прогона: механика стопа между волнами + карта подписи + resnapshot draft→approved. ⚠ Снапшот-семантика банка GATE-УСЛОВНА: при Gates.Glossary.PostcheckGate=false (текущий дефолт) auto/draft снапшот не двигают — двигает подпись (memory.go:258-285); при gate ON в F1-хеш фолдятся ВСЕ строки вкл. auto/draft и сам флаг гейта (memory.go:251-266, snapshot.go:86-93) — вливание майнер-строк само двигает снапшот. План обязан задать механику W1.5 для ОБОИХ состояний гейта (дефолт-флаггер сейчас; hard-gate флип висит за пере-замером D24.4/D28.1), чтобы «переоплата ОДНА» была доказуема при любом конфиге. UX-решение — владельцу (вопрос §E-5 research/20 уже висит), план даёт механику и дефолт.
  • Верификация ($0): детерминированный симулятор волн (mock-провайдер) — конкуренция/kill-9/ретрай как исполняемая тест-спека; расчёт wall-clock и COGS по реальной структуре 25-глав книги с окнами цен.

WS2 — Чанкер-бюджет + крупная edit-единица (слой 1)

  • Бюджет draft-чанка в ВЫХОДНЫХ токенах через фертильность (конфиг per-pair, снапшот-folded; схема research/19 §B1.1B1.2 БЕЗ DP/logical-границ — greedy остаётся, strategy-ось можно заложить как сеам, но наполнение logical НЕ строится). Инвариант: min-бюджет держит чанки над Gates.Coverage.MinChunkChars (chunker.go:42-46).
  • Edit-единица: определить сборку (глава как естественная граница; глава > потолка → деление по абзацным границам с бюджетом), потолок эмиссии vs зона деградации 2k8k out (research/19 §A.1.1; Q2a не гонялся — риск омиссии при крупной эмиссии НЕ снят) → обязательный компенсатор: reflow-инвариантный omission-бэкстоп в слое 5 (лемма-матч, реюз eval/exp15/reflow_omission.py-подхода; RegressionGuard/coverage тут смещены — research/19 §B0-4). Решить: что редактор получает на вход (вся единица src+draft) и что эмитит (полная перегенерация единицы — diff-протокол парковка); как единица маппится на чанки-чекпоинты (деньги/resume per-чанк или per-единица — обосновать против инварианта №1); формат банк-констрейнтов редактора: голые dst-формы vs src→dst-мэппинг — открытый вопрос D30.1 (memory.go:505-511), research/20 §E-бэкенд-6 требует решить ДО W2-дизайна → решается В ЭТОМ плане с обоснованием, парковка запрещена (с майненым банком AMBIGUOUS-строк станет больше — учесть).
  • Фоллбек-веер: из research/19 §B2 взять ТОЛЬКО корректность-кейсы, НЕ границную машинерию. Честно по коду: мега-абзац уже покрыт (packSentences); мега-ПРЕДЛОЖЕНИЕ сегодня проходит oversize-чанком БЕЗ клауза-сплита и БЕЗ флага — плану решить (passthrough+флаг oversized_sentence vs аварийный клауза-сплит ;:,、 из §B1.4), согласовав с потолком эмиссии и принципом «деградация не молчит»; стихи/паратекст — решить с обоснованием против §0.1.
  • Мёртвые кнобы STMDepth/OverlapTokens (config/pipeline.go:47-48) — снести (carryover не строим).
  • Верификация ($0): независимый пере-вывод коэффициентов фертильности из данных (не доверяя fertility_calib.json — пере-вычислить и сверить); симуляция нарезки и сборки edit-единиц на 25-глав книге: гистограммы est_out, доля единиц в зоне деградации, floor-инвариант, главы>потолка; сравнение с текущей нарезкой (сколько чанков/единиц, прогноз COGS по фертильности).

WS3 — Банк-машинерия W1.5 в Go (слой 4)

  • Go-порт майнера: детектор V-C (n-граммы 16 × контраст × c-value g(L)=log₂(L+1) × паттерн-каналы: фамильный якорь / титул-топо-суффиксы / rank-grade-композиция / авто-формант / Палладий-ru — авторитетный состав каналов = exp16 §1.2 арм A3 / замороженный miner-v1, НЕ пересказ research/20 §B; пороги miner-v1 exp16 §1.3 — СТАРТОВЫЙ конфиг, версионируемый) + алиас-ярус-1 (R1R3 при негативных R4, вкл. iii «разный approved dst» и iv «ко-презенция в предложении») + консолидация §C2 (канон по ВСЕМ вхождениям × Палладий-конформность × полнота леммы; майнер по построению НЕ пишет approved) + эмиссия сид-дельты §C2-7 (YAML в схеме seedTerm memseed.go:30-57, только auto/draft) + линт против фейл-лаудов loadGlossarySeed (memseed.go:91-99,161-181,201-237) + генерация карты подписи (KWIC, пол-счётчики 他/她 = evidence, вердикт = владелец; зоны Z1Z5 флагами).
  • Плагин-сеамы P1P6 (§B5): данные/конфиг per язык/пара, НЕ ветки кода; наполнение — только zh(-ru) инстансы + существующий ruby-канал ja; degrade-with-flag, fail-loud только P1. Схема кандидата единая ruby↔mined (research/20 §E-бэкенд-5); Source:"mined" в GlossaryEntry.
  • Контраст-словарь (jieba SHA 7197c321…) и инвентари паттернов — версионируемые артефакты детектора.
  • ru-лемматизация: pymorphy3 есть только на полигоне — решить честно, что нужно Go-прод-пути W1.5 (лемматизатор цели = плагин P5; варианты: порт-минимум / вызов полигон-тулзы / snapshot-данные), с ценой.
  • Верификация ($0, несущая; честный сплит (г)/(д)): (г) — прогнать Python miner-v1 на запинённых входах exp16 (§1.10 SHA) и ЗАПИНИТЬ фикстуры кандидат-таблиц/кластеров/канон-предложений как golden БУДУЩЕГО Go-порта + спека байт-паритет-харнеса (метод mem_select.py в обратную сторону: Python = референс); юнит-фикстуры алиас-правил из exp16 §3.2 (族长≠四代族长 блок, кап-лемма-гейт «найти», компози-гард) — прогнать против Python-реализации; эмиссия сид-дельты по §C2-7 из персистированных exp16-таблиц (exp16 сид-дельту НЕ эмитил — только сайдкары; артефакт в books/gu-zhenren/design11/, вне git) + сухой линт-прогон по ней против фейл-лаудов memseed. (д) — исполнение самого паритета Go↔Python закрепляет бэкенд после стройки.

WS4 — Банкнота: dst-канал (слой 4, wire-инвариант)

Спека banknote-v1 = research/20 §B3 (разделитель ⟦TM-BANK-v1⟧, ≤N строк srcdsttype, «только новое»). План обязан пройти ВСЕ 12 интеграционных точек §B3 с file:line и тест-спекой каждой; несущие: срез кодом ДО classify/гейтов; derived-checkpoint tm-banknote-v1 (прецедент stagerun.go:225-242); re-point final_hash OK-пути draft на derived (иначе резюм отдаёт редактору сырой блок — расширение flagged-прецедента на ok-путь); включение канала = снапшот-инвариант (промпт-SHA + константа канала); телеметрия banknote_parse_fail/truncated лауд; finish=stop-only гейт генераций. Верификация ($0): пере-парс 95 строк банкноты exp16 спекой парсера (parse_fail 0% воспроизвести; толерантный обрез недописанной строки — на синтетике); fresh↔resume эквивалент-тест как спека; сверка каждой точки с текущим кодом (что изменилось с worktree-состояния research/20).

WS5 — Дефект-класс чекеры + данные пакета пары (слои 5 + 2-данные)

Для каждого класса D39.8: где живёт правило (данные пакета zh-ru vs код гейта), алгоритм, действие при срабатывании (флаг/констрейнт-инъекция — НЕ тихая правка текста; диспозиция D2 цела):

  • 时辰-юниты: детерминированная конверсия единиц времени (данные пакета) + чекер «числовое время в src ↔ рендер» (三个时辰 ≈ 6 часов, НЕ «три часа»);
  • масштабы чисел (b1): чекер порядков 千万/数十万-класса против рендера (реюз локаторной механики q4a_traps.py — но как ДЕТЕРМ. гейт-класс, не eval);
  • gender-enforce: инъекция пола из поля сида в констрейнт-блок редактора (исполнителя нет — построить; hidden → требование безродовых конструкций до reveal, D19.3) + детерм. чекер рода (морфология финала по леммам персонажа vs подписанный пол; hidden-персонаж с гендерной формой = флаг);
  • стих/аллюзии: политика пакета (детект verse-блока по профилю строк — НЕ границная машинерия; рендер-мандат + слот сноски) — открытые продукт-решения выносить владельцу, не решать за него;
  • регистр-лексикон: негатив-лист «терем»-класса как данные пакета + чекер вхождений. Верификация ($0, обязательная для КАЖДОГО чекера): (а) позитивы из эмпирики — известные дефекты exp15 §7.9 / exp14b / exp16 обязаны ловиться (时辰 «три часа», b1-примеры, Бай Нинбин hidden, «терем»); (б) false-positive замер на ПОЛНОМ 25-глав финале через tmctl export (инвариант №8): чекер, флагающий заметную долю чистого текста, не лендится — привести измеренные rate в плане.

WS6 — Свап-арм редактора + готовность пере-прогона

  • Армы = конфиг (pipeline yaml/models), не код: glm-5 (базлайн) / mistral / deepseek-pro как editor; что нужно бэкенду (конфиг-варианты, снапшот per-арм, атрибуция в export/report) — перечислить.
  • Прогон-протокол (для будущего полигон/монитор-промта, здесь — предпосылки): армы идут ЧЕРЕЗ прод-путь со ВСЕМИ гейтами (урок V2-брака §7.9 — eval-риг без гейтов дискредитировал арм); инструмент-фиксы слепых пакетов (D39.8 п.3: авто-QA до человека, общий финал, 2-way, тир-структура претензий); планка — 2 претензии (интерим); любое судимое сравнение наследует ратифицированный риг-стандарт (D39.7): per-vote персист, полно-evidence окна (HEAD_CHARS-класс запрещён), оба порядка, floor-гейт маргиналов (измеренные полы: когезия 0.126, смысл 0.261), детерм. скорер > судьи где возможен (DET-primary валидирован D39.9); генерации — только finish=stop.
  • (г) для WS6 = COGS-расчёт скриптом в eval/design11/ (фертильность WS2 × цены providers.json × реальная структура книги, per-арм; реюз расчёта WS1, не дубль) — числом в плане; качественная сторона свап-арма — по эскейп-хатчу (а)/(б) выше: точная спека «верификация полигоном после стройки» в прогон-протоколе.

Глобальные секции плана (обязательные)

  • Порядок стройки и нарезка на пакеты (что в бэкенд-пак-2, что следом; зависимости между WS).
  • Манифест единого resnapshot (D30.9): перечислить ВСЁ, что двигает snapshotID (уже висящие memmatch-v4 + sanitizer-v6 + reseed/editor-v3 D38.5 + новое из WS1WS5: chunker-конфиг, банкнота, пакет-данные, gender-инъекция…) — план обязан показать, что переоплата ОДНА.
  • Диспозиции хвостов: ledger-очередь D39.4/D39.5 (LOW/NOTE), слоты §E research/19 (E.5E.8-бис) и research/20 (E-бэкенд-1…6; src→dst D30.1 — НЕ хвост, решается в WS2, здесь только кросс-реф), дефекты D39.9 (finish=length-гейты в eval-харнесах), и NEVER_CLOSED владельческие идеи дорожки L7 аудита 08 без записанной диспозиции (минимум: H7 input-limit, H8 abuse-prescreen, H10 user-stop, H16 self-improvement — обещанный D39-док-долг, погашение в D-логе не записано) — каждому: в пак / паркуется (причина) / владельцу.
  • Реестр вопросов владельцу (консолидированный, с дефолтами плана).

Формат плана (architecture/11-implementation-plan.md)

Per-воркстрим: (а) что меняем (модули, file:line); (б) алгоритм — до псевдокода/структур данных, детерминизм явно (целые/сортировки/версии/tie-break); (в) конфиг+снапшот-механика (что фолдится, какие версии бампаются); (г) верификация ДО стройки — скрипт в eval/design11/ + РЕЗУЛЬТАТ в плане (числа, не обещания); (д) тест-спека ПОСЛЕ стройки (пины, golden, race, kill-9 — что именно закрепит бэкенд); (е) открытое/маршрутизация. Плюс глобальные секции выше. Пиши так, чтобы бэкенд-сессия могла строить БЕЗ пере-открытия исследований: каждый порог/константа — либо число со ссылкой на источник, либо явный конфиг-дефолт с обоснованием.

Мандат самопроверки (обязателен, владелец 12.07) + дисциплина

  • Ревью ИСПОЛНЕНИЕМ: каждый верификационный скрипт — прогнан, результат воспроизводим (детерминизм: без time/rand); каждое file:line-утверждение плана — сверено с живым кодом (HEAD, не worktree-память отчётов: research/20 писался до лендинга пак-1.5).
  • Адверсариальный селф-ревью плана (author≠reviewer, воркфлоу): несущие алгоритмы (WS1-деньги, WS2-единицы, WS3-паритет, WS4-точки, WS5-чекеры) — refute-by-default; расхождение = чинить до сдачи.
  • Completeness-critic: свип против скоуп-листа этого промта, дорожек L1L8 аудита 08 (приоритет L1/L2/L3/L5; L4/L8 — confirm-only, закрыты D39 п.7/п.8 + пак-1/1.5; L6 — резидуалы в WS6/промпт-тему; L7 — каждая NEVER_CLOSED идея без диспозиции → строка в «Диспозициях хвостов») и §E-слотов research/1920 — «что не получило диспозицию?»; остаток — явным списком, не молчанием.
  • Не пере-решать ратифицированное: D-лог — контракт; «что НЕ строим» — не пересматривать (это не мешает честно фиксировать новые противоречия — эскалацией, не тихой правкой).
  • Эмпирика exp15/16 — предварительна до вне-претрейн новеллы: несущие пороги в плане помечай «tunable, ревизия по пере-прогону», не высекай в камне.

Эскалации

Настоящие развилки (скоуп-сдвиг, конфликт с ратифицированным, деньги, продукт-решения) — быстрый пинг оркестратору через владельца КОРОТКОЙ запиской (развилка + варианты + твоя рекомендация). Это норма и поощряется (образцы эры №6: B-hybrid Q4a, оракул-поправка). Тихие девиации запрещены.

Приёмка (что сделает оркестратор — знай заранее)

Адверсариальная верификация по сырью: пере-исполнение твоих симуляций, спот-чек file:line, refute-воркфлоу по несущим алгоритмам, сверка полноты против скоуп-листа. Лендинг с ревью-шапкой → ратификация D-блоком → только затем бэкенд-промт. Мин-планка ратификации: все WS с исполненной верификацией (г) — WS, чья (г) заблокирована эскалированной платной верификацией, ратифицируем только как ГЕЙТНУТЫЙ (стройка этого WS не стартует до исполнения верификации); манифест resnapshot полон; реестр владельцу консолидирован.