diff --git a/docs/architecture/09-target-architecture.md b/docs/architecture/09-target-architecture.md index 42a544e..cf1938d 100644 --- a/docs/architecture/09-target-architecture.md +++ b/docs/architecture/09-target-architecture.md @@ -88,6 +88,8 @@ snapshot-дисциплина, эталонные сеамы `config→stage-lis решает ресёрч-матрица, см. §4.) ### Слой 2 — Конвенции пары языков (pair-keyed pack) · концерн 4 + +> Консолидированная заметка по всей промпт-теме (инвентарь, статусы, открытое) — `10-prompt-architecture.md`. - Версионируемый пакет, ключ `src→tgt[×genre]`, снапшот-folded (правка = громкий `--resnapshot`, как `chunkerVersion`). - Держит: дискурс-правила, few-shot (в языке пары), транскрипцию/хонорифики, **и язык самого промпта** (свойство пакета — не хардкод русского). diff --git a/docs/architecture/10-prompt-architecture.md b/docs/architecture/10-prompt-architecture.md new file mode 100644 index 0000000..15f21f0 --- /dev/null +++ b/docs/architecture/10-prompt-architecture.md @@ -0,0 +1,43 @@ +# Промпт-архитектура: состояние, решения, открытое (консолидированная заметка) + +> Собрано оркестратором 2026-07-16 по запросу владельца («где заметка про промтинг?») — тема концерна 4 +> арх-ресета была размазана по `08-sync-audit-ledger` (дорожка L4), `09-target-architecture` (§0.1, §2 +> слой 2), D-логу (D30.2, D39 п.7, D39.1–39.2) и research/18–19. Здесь — одно место; при конфликте +> побеждает 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** — где жить структуре (переводчик/редактор/отдельный пасс) — решится эмпирикой.