textmachine/docs/architecture/10-prompt-architecture.md

7 KiB
Raw Blame History

Промпт-архитектура: состояние, решения, открытое (консолидированная заметка)

Собрано оркестратором 2026-07-16 по запросу владельца («где заметка про промтинг?») — тема концерна 4 арх-ресета была размазана по 08-sync-audit-ledger (дорожка L4), 09-target-architecture (§0.1, §2 слой 2), D-логу (D30.2, D39 п.7, D39.139.2) и research/1819. Здесь — одно место; при конфликте побеждает D-лог. Обновлять при каждом лендинге, трогающем промты/слой 2.

1. Четыре вопроса владельца → где ответ и что с ним

Вопрос владельца Статус Где живёт
Язык самого промпта (сейчас всё по-русски; для zh→en русский не должен участвовать) ОТКРЫТ, спроектирован: язык промпта = свойство пакета пары, не хардкод. Измерение «на языке цели vs оригинала vs ru» — полигон-вопрос ПОСЛЕ exp15 (нужен не-ru таргет с реальной книгой) START_PROMT V4-п5 · аудит L4-prompt-language-always-russian (CONFIRMED/HIGH) · 09 §2-слой-2 · D39 п.7
Вырезать правила языка из промтов в отдельный слой (Палладий/Поливанов, дискурс-нормы, few-shot) СЕАМ ПОСТРОЕН (пак-1, D39.2): конфиг pair-keyed prompts: {zh-ru: …} + Book.LangPair() + fail-loud на чужую пару. Контент ещё НЕ извлечён — правила по-прежнему в теле zh-ru-файлов; извлечение в структурированный пакет гейтится exp15 + research/18 §D-3 («форма пакета не разрешена») research/18 §B2.2/§C#15 · 09 §2-слой-2 · D39-решение владельца «сеам сейчас, контент zh→ru» · пак-1 T3.3
Почему структура абзацев и расширенный язык-промпт — только у РЕДАКТОРА? ОСОЗНАННОЕ решение D30.2 (дешёвый буквальный черновик + вся реструктуризация у умного билингв-редактора; exp12: построчность = корень нечитаемости), НО альтернатива «переводчик отдаёт структуру» никогда не мерилась — это ровно армы Q4a/Q4c exp15 (сильный переводчик; reflow отдельным пассом). До exp15 асимметрия сохраняется намеренно D-лог D30.2 (05:366 — «механизм реверстки — открытый вопрос») · аудит L1-*/H3 · research/19 §C · exp15 Q4
Все промты zh→ru-центричны — неправильно для мультиязычного бэкенда Ратифицирован инвариант общности (09 §0.1, поправка владельца 13.07): пара = ось данных, не кода. Латентный баг закрыт паком-1 (ja-книга теперь fail-loud, не едет тихо через «китайский паратаксис»). Новая пара = новый пакет-данные, не переделка кода 09 §0.1 · D39 п.7 · пак-1 T3.2/T3.3 · аудит H2

2. Инвентарь промтов (после пака-1/1.5, HEAD)

Файл Роль Что внутри Пара
backend/prompts/translator.md черновик (flash) брифинг-переменные {{lang/genre/honorifics/transcription/venuti/footnotes}} + слабая вёрстка-однострочка (D30.2) де-факто zh→ru (ключ zh-ru в конфиге)
backend/prompts/editor.md редактор (glm-5, БИЛИНГВ), v3 4 мандата + ДИСКУРС-ПЕРЕВЁРСТКА (Ван Цуй) + чэнъюй-атом + структурные few-shot (---FEWSHOT---, тумблер per-stage) де-факто zh→ru
backend/prompts/editor-mono.md референс-вариант D13.1 (не боевой) узкий моно-мандат
backend/prompts/judge-selector.md Ф2 (не исполняется)
analyst.md / terminologist.md СНЕСЕНЫ паком-1 (сироты)

Правила, сидящие В ТЕЛЕ промтов (кандидаты на извлечение в пакет пары после exp15): русское тире-оформление диалога; «пиши живым русским»; паратаксис→гипотаксис-блок; чэнъюй-политика; few-shot-примеры (структурные, по-русски). Переменные брифа ({{transcription}} и пр.) — уже данные книги, НЕ пакета.

3. Целевая форма (слой 2, 09 §2) — куда движемся

Версионируемый пакет конвенций пары src→tgt[×genre], снапшот-folded: дискурс-правила пары + few-shot (в языке пары) + язык промпта + нормы транскрипции (Палладий для zh→ru, Поливанов для ja→ru — как выбираемые политики) + лимитеры полноты. Стадия резолвит промпт из пакета по Book.LangPair() (сеам уже работает). Гейты на стройку: exp15 (какие правила реально несут) + research/18 §D-3 (форма пакета).

4. Открытое по теме (маршрутизировано)

  1. Язык промпта — полигон-замер после exp15, на реальной не-ru книге (V4-п5; не гадать).
  2. Извлечение правил в пакет — после exp15 (форма под данные).
  3. Транскрипция per-book (Палладий/Поливанов vs фандомные формы) — research/19 §E.3, решение владельца НЕ горит (дефолт: политика в пакете пары, слой 2); {{transcription}}-переменная уже есть.
  4. Билингв-редактору src→dst вместо голых dst-форм? — открытый дизайн-вопрос D30.1, после exp15.
  5. Q4a/Q4c exp15 — где жить структуре (переводчик/редактор/отдельный пасс) — решится эмпирикой.