textmachine/docs/POLYGON_ROLE_TOPOLOGY_SESSION_PROMPT.md

88 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Промт: ПОЛИГОН — решающий пак «топология ролей перевода» (эксп-21)
Санкция владельца 06.08 (оркестратор №15). Зона: `eval/role_topology/` + `docs/experiments/21-role-topology.md` + пинг в PROGRESS «Полигон». **Гейт старта: экспы 18/19/20 залендены с ревью-шапками приёмки** — числа там поправлены, шапка первична над телом.
**Потолки (ПРЕДВАРИТЕЛЬНЫЕ, пере-сверяются в Ф0.6): Ф0 ≤$0.70 (из них предзамер судей ≤$0.60) · вахта-проба ≤$0.05 · Ф1 ≤$1.00 · Ф2а ≤$2.50 · Ф2б ≤$3.00.** Живые стопы механизмом + проекционный гард. Подъём/пере-нарезка — только словом владельца ДО запуска фазы. Не влезает — стоп и пинг, не резать молча.
## Онбординг: что за проект и какую проблему решает ТВОЙ пак
TextMachine переводит большие художественные тексты (ранобэ/вебновеллы, zh→ru, миллионы знаков) мультиагентным пайплайном: дешёвая модель черновым переводом проходит книгу волнами → терминолог консолидирует термины в банк памяти книги (глоссарий, который инжектируется ролям как ЗАКОН) → вторая модель-«редактор» дорабатывает черновик → детерминированные $0-гейты ловят брак (эхо исходника, числа, пропуски). Цели продукта: издательское качество (победить translationese), консистентные термины/голоса на всю книгу, низкая себестоимость. Жаргон (арм, банк, банкнота, голден…) — `docs/glossary.md`.
**Кризис, из-за которого существует этот пак.** Экспы 1820 (0405.08) вскрыли, что роль «редактора» — не то, чем считалась:
- Редактор не «чинит ошибки черновика» — по своему мандату он ПЕРЕПИСЫВАЕТ текст целиком. На боевой модели роли (`deepseek-v4-pro`) переписывание ломает больше, чем улучшает (термины, фактуру), а на `glm-5` — докупает качество русской прозы. Польза второго прохода — свойство конкретной модели в роли, НЕ архитектуры.
- Локализованные ошибки дёшево чинятся точечно по флагу гейта ($0.0002/дефект, 12/12) — но мерилось это при ИДЕАЛЬНОЙ детекции: детекторов «выдуманное слово» и «смысловая инверсия» не существует.
- Дифф/спан-формат надёжен (комплаенс 0.95+), но дорог именно на `deepseek-v4-pro` (ru 2.83× от переписывания; en 0.67×); у glm/grok/luna — дешевле переписывания даже с мышлением. Это свойство модели, не thinking-класса.
- Судья-LLM, которым всё мерили, шумит: согласен сам с собой на идентичном входе в 56% клеток (33% на несущих осях); разницы меньше ~2:1 не разрешает.
**Вопрос, на который отвечаешь ты (и только ты):** какая топология целевая — «черновик + переписыватель», «черновик + гейты + точечный ремонт», «однопроходка сильной моделью», гибриды с маршрутизацией — и кто жильцы ролей. По твоему отчёту владелец решает перестройку бэкенда. Твоя работа — ЗАМЕР, не решение: армы равноправны, «правильного ответа», которого от тебя ждут, НЕ существует. Жильцы и топология станут конфигом: движок по паре/модели не ветвится (канон §0.1).
## Карта чтения (≤5, по убыванию)
1. `docs/experiments/18-editor-wire-probe.md` · `19-editor-contract-q4b.md` · `20-editor-role.md` — секции ИТОГ + **ревью-шапки приёмки** (шапка первична).
2. `docs/experiments/00-provider-quirks.md` — целиком, ДО первого платного вызова.
3. `eval/editor_harness/` + `eval/editor_contract/` + `eval/bank_arbitration/editor_wire_probe.py` — готовые харнессы/скореры/verify-скрипты: переиспользуй.
4. `docs/architecture/05-decisions-log.md` — грепом D39.104 (банк-закон) · D39.46/47 (нормы замеров) · D39.22 (вопросы итерации №2 редакторов — едут довеском этим прогоном, строка 65).
5. `docs/research/24` §B5 — методика «цена/книга» банк-ролей.
## ЗАКОН (не пере-открывать; отступление = пинг)
- **Банк на проводе = закон для всех ролей (D39.104).** Текст закон-блока ПИНИТСЯ: отправленная строка пробы 18 (девиация №1 — оговорка снаружи скобки) **БЕЗ оговорки области** — оговорка опровергнута пробой 18, не вносить. Фиксация закона во всех армах — санкционированное исключение из D39.46(а) «арм-без-фактора»: фактор уже измерен изолированно (проба 18). **Банкнота** — на переводческом проходе всех армов, КРОМЕ байт-боевого бейзлайна (боевой конфиг канал не несёт — объяви как известную девиацию бейзлайна, не чини).
- **DeepSeek: thinking НЕ отключать** (эхо-мина). Слаги — только live `/models` в день запуска; цены — прайс вендора; quirks 00 — до первого вызова (peak-valley DeepSeek, grok reasoning, gemini thinking-токены, GPT-5.6 wire — эксп-18 §C.1).
- **Вахта реестра 108 (дата-триггер ПРОШЁЛ):** до Ф1 — пере-проба маппинга эффорта `deepseek-v4-pro` (≤$0.05) + сверка вендор-changelog; вся эмпирика 1820 стоит на старом маппинге (quirks §3а).
- **Судейские риги:** per-vote персист КАЖДОГО голоса (ревью-шапка эксп-20: решающий замер без персиста невоспроизводим — не повторять) · полно-evidence окна · зеркальная раскладка/оба порядка · слепые метки, раскладка расцеплена с армом · **контрольный ДЕКОЙ обязателен (D39.46б)** — посаженная деградация, которую судья обязан поймать · **судья не судит армы своего семейства-жильца; вердикты раскладываются по семействам судей** (self-family bias) · первичный протокол — счёт типизированных ошибок (MQM-lite: спан+тип+severity, счёт/1000 слов), pairwise-преференс — только для стиль-осей; агрегация BradleyTerry с bootstrap-CI.
- Пре-рег фриз коммитом ДО платных вызовов каждой фазы (изменения после = новый experiment-ID; девиации — явно; amend фриза запрещён). **Критик полноты — на КАЖДУЮ фазу (D39.46в)**, не только на отчёт.
## Фаза 0 — подготовка и метрология (механика $0; предзамер судей ≤$0.60)
1. **Пре-рег**: армы, критерии, пороги, прогнозы («кто какую роль возьмёт» — сверка прогноза с фактом идёт в отчёт), смета.
2. **Невиданный срез:** свежая вебновелла 2026 (zh) без опубликованного ru-перевода. Контаминация НЕ по дате: continuation/cloze-пробы моделей на исходнике + поиск fan-переводов (en/ru); метод и результат — в пре-рег. Объём: рассеянные окна ДЛЯ дисперсии + связный отрезок 810 глав ДЛЯ дрейф-метрик (швы, консистентность, рост банка). Файлы в `~/books/` (вне git), хеши в пре-рег. Основание: эмпирика на претрейн-классике предварительна (строка 55). **$0-довесок на купленном срезе:** dialogue_dash · частота эха · precision чекеров (диспозиция строки 55 — что закрыто, что нет — в отчёт).
3. **Банк среза:** терминолог-прогоном в потолке Ф1 + ручной канон с пометкой «НЕ подпись владельца» (D39.47); против него читается метрика «канон». Карточки персонажей (пол · регистр · ты/вы-пары) — ДАННЫЕ для батареи п.5.
4. **Детекторы (критический путь армов C/E/G):** «выдуманное слово» (словарь+морфология+вайтлист имён из банка; полигон-прототип, НЕ движковое решение — пин строки 46 «Hunspell в движок не строить» не задет) · «смысловая инверсия» (QE-ранкер локальными весами CometKiwi/xCOMET — покрытие zh→ru проверить мини-бенчем ДО опоры). Замер на УЖЕ размеченных дефектах экспов 1820: precision И recall; ущерб от false positive (ремонт по ложному флагу = порча) — отдельным числом. Разметка — вторым контуром (чужая модель/адверсариальная проверка), не только своей рукой.
5. **Детерминированная батарея** (первичные метрики там, где судья не нужен): Палладий-линт транскрипции (pinyin→таблица; и глоссарий, и текст — кандидат-убийца класса «18% ошибок») · повтор-консистентность «одна zh-строка → одна ru-строка» кросс-окно · коллизии (один src→два dst; разные src→один dst) · род прош. времени против карточек (вход строки 82) · ты/вы-матрица пар · перенос чисел с нормализацией 万/亿 · утечка ханьцзы (порог ниже боевого 0.15) · русская издательская типографика (тире-диалоги, «ёлочки») · translationese-прокси (длины предложений vs нативный ру-корпус, чёрный список калек) · **no-op метрика**: доля нетронутых хороших сегментов + дельта качества ОТДЕЛЬНО на изменённых/неизменённых (APE-стандарт).
6. **Предзамер судей и мощность (≤$0.60):** разброс ОБОИХ судей на повторе (Claude-судья не мерен вовсе) + **шумовой пол пайплайна** (один арм дважды end-to-end на идентичном входе) → MDE и порог различимости; **пере-сверка сметы Ф2**: число окон/реплик на контраст — из мощности, не из потолка. Если мощность не влезает в потолки — СТОП и пинг с расчётом, не резать молча.
## Фаза 1 — СКРИН моделей (≤$1.00; оси = гейты цены/дисциплины, НЕ прокси качества)
**Кандидаты:** live-листинг по каждому ключу (DEEPSEEK, ZAI, KIMI, OPENAI, GEMINI, XAI, MISTRAL); дешёвый + сильный тир каждого провайдера; >14 — срежь по прайсу и объяви. **Pass/fail порог каждой оси — записан ДО замера; скрин обязан убивать** (на Ф2 — ≤3 жильца на роль). Урок эксп-20: механический показатель ≠ качество («число абзацев было прокси») — спорных кандидатов стиль-ролей не решай скрином, доводи до Ф2 обоими.
Оси: профиль размышления (управляемость, доля в completion, отключаемость) · эхо/утечка в дешёвом режиме · дисциплина к черновику · формат-дисциплина НА ДЛИННЫХ входах (боевая единица, не короткое окно) · **отказы/цензура на чувствительном фрагменте среза** (вебновелла гарантированно упрётся; тихий отказ на главе N ломает конвейер) · **цена в боевой конфигурации: prompt-кэш + batch API + p50/p95** (thinking тяжелохвост; среднее врёт) · детерминизм повтора при T=0 · датированные снапшоты/пины у провайдера.
**Мини-проба «глоссарий-лок» (сюда же, копейки):** маскирование глоссарных спанов плейсхолдерами на время редактуры + детерминированная обратная подстановка. Если «редактор ломает термины» снимается разметкой за $0 — половина мотивации перебора редакторов исчезает; результат меняет состав Ф2.
## Фаза 2 — БЕЙК-ОФФ (двумя стадиями, ранний отсев; парный дизайн)
**Факторная рамка:** {дешёвый · сильный} черновик × {без второго прохода · переписыватель · ремонт-по-флагу} + мандат перевёрстки как флаг ячейки. **Черновики ФРИЗЯТСЯ и подаются идентичными всем армам-редакторам** (парные сравнения, пермутация/McNemar — кратный выигрыш мощности бесплатно).
**Стадия Ф2а (≤$2.50) — «переписывание как класс»:**
| Арм | Что |
|---|---|
| F | **do-nothing пол**: черновик как есть через гейты (норма exp15:486/research-19 §C3 — все редакторские армы мерятся против него) |
| A | байт-боевой бейзлайн flash→dspro (без банкноты — известная девиация) |
| B | связка flash→glm-5-OFF full-regen |
| D | однопроходка сильной модели С мандатом перевёрстки; D — та же БЕЗ мандата (деконфаунд модель/мандат) |
**Стадия Ф2б (≤$3.00; гейт: детекторы Ф0.4 валидированы) — победитель Ф2а против ремонта и маршрутизации:**
| Арм | Что |
|---|---|
| C | черновик (с мандатом перевёрстки — иначе вёрстка-конфаунд) → детекторы+гейты → точечный ремонт дешёвым фиксером; **в двух режимах: oracle-флаги (потолок) и реальные детекторы (пол)**; после КАЖДОГО фикса — полный ре-гейт, кап 2 итерации; печатать recall гейтов+детекторов на срезе (строка 12) |
| E | обратная связка: сильный черновик → дешёвый фиксер по флагу |
| G | **guarded+routed**: QE/гейты скорят все окна → стиль-пасс ТОЛЬКО флагнутым, редактура принимается только если внешний гейт видит улучшение (guarded APE, max(draft, edited)) — прод-кандидат |
| — | reflow-план кодом (Q4c research/19 §C1.3) — гони ИЛИ явная диспозиция отказа в пре-реге |
**Метрики:** детерминированная батарея Ф0.5 (первична) + MQM-lite счёт двух судей с порогом Ф0.6 + цена за принятую 1000 слов (p50/p95, с кэшем/батчем/ретраями; перезаписанные вызовы — тоже деньги) + дрейф-метрики на связном отрезке (швы, ты/вы-стабильность, рост банка). **Слепое чтение владельца** на финалистах — стратифицированные пары, инструментарий D39.8(3): калибрует судей (оси ниже монетки — вон из вердикта) и исполняет довесок строки 65.
**Критерии — в пре-реге ДО запуска:** «арм X бьёт Y при перевесе > порога Ф0.6 по осям …»; средние исходы = «неопределённо»; при неразличимости дефолт — самый дешёвый и детерминированный арм.
## Отчёт
`docs/experiments/21-role-topology.md`: ИТОГ для оркестратора · **вход для решения владельца** (топология + жильцы + цена/книга на арм p50/p95) · «заявление=команда» на каждое число · сверка прогнозов Ф1 · критики полноты ПО ФАЗАМ · девиации · **диспозиции задетых строк бэклога: 55 (что закрыл срез) · 65/D39.22 (вопросы итерации №2) · 106 · 12 · 82 (прототип рода)** · пометка судьбы детекторов против пина строки 46. Пинг в PROGRESS «Полигон» — коротко.
## Мандат самопроверки (обязателен)
Ревью исполнением: свой код + сформированные запросы + результаты. Вывод на агрегате до вскрытия единиц запрещён (D39.61). Деньги двумя независимыми путями; леджер = нижняя граница (перезаписанные/удалённые вызовы считать). Верификатор чисел отчёта отдельным скриптом (образец `eval/editor_harness/verify_report.py`); ненулевой код возврата = отчёт не сдаётся. Адверсариальный проход author≠reviewer до сдачи.
## Канал вопросов и границы
- Непонятно / конфликт промта с кодом-доками / потолок мал / мощность не влезает → пинг оркестратору через владельца, НЕ тихая интерпретация. Право «этого делать не надо» — с аргументом.
- НЕ трогать: банк-ось (остаток строки 5 + 36б; QA/канарейки банка — отдельный слот), флор-пробу (строка 44), backend/ и чужие зоны. Движок — только read-only/оверлеи (образец эксп-18 §0.1, байт-сверка при движковом пути).
- ToS-сверка Z.AI (glm-5 в несущей роли) и лейбл-вопросы — не твоя задача; пометь как гейт финального решения владельца.