46 lines
9.9 KiB
Markdown
46 lines
9.9 KiB
Markdown
# Промпт-архитектура: состояние, решения, открытое (консолидированная заметка)
|
||
|
||
> **⚠ СТАТУС: несущая часть ПОСТРОЕНА.** Pair-keyed промпты резолвятся КОНВЕНЦИЕЙ пути `prompts/<пара>/<роль>.md` + конфиг-слой пары `configs/pairs/` (пак-15, D39.23), repair-промпты — `prompts/<пара>/repair/<класс>.md` (пак-16, D39.24). Паком-20 добавились роль `terminologist` (пар-пак, интерим-текст) и вариантный `translator-banknote.md`; редакторская инъекция стала двухсекционной (D39.45), а жанровый словарь ОТМЕНЁН как класс (D39.47). ⚠ **Ждёт внесения:** D39.104 — инъекция схлопывается в ЕДИНЫЙ закон-блок, маркер ⟨проверить⟩ снимается с провода, право «перевести иначе» упраздняется; внесение = строка 134 ПОСЛЕ пробы 18.
|
||
>
|
||
> «Структурированный пакет конвенций пары» (§3) остаётся дальним планом. **Заметка собрана оркестратором 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 русский не должен участвовать) | ОТКРЫТ, спроектирован: язык промпта = **свойство пакета пары**, не хардкод. Первый замер ИСПОЛНЕН: Р6/D39.61 — ru/en-срез ОТРИЦАТЕЛЕН (эхо-ось), «не закрыт окончательно» оговоркой; остаток — язык промпта как свойство пакета для не-ru таргетов, вернётся с ja→ru | START_PROMT V4-п5 · аудит `L4-prompt-language-always-russian` (CONFIRMED/HIGH) · `09` §2-слой-2 · D39 п.7 |
|
||
| **Вырезать правила языка из промтов в отдельный слой** (Палладий/Поливанов, дискурс-нормы, few-shot) | СЕАМ ПОСТРОЕН (пак-1, D39.2; форма резолва — конвенция пути `prompts/<пара>/<роль>.md`, прежний конфиг-ключ `prompts: {<пара>: файл}` ОТВЕРГАЕТСЯ загрузкой — `12-go-style-notes.md` §0.4) + `Book.LangPair()` + fail-loud на чужую пару. **Контент ещё НЕ извлечён** — правила по-прежнему в теле zh-ru-файлов; извлечение в структурированный пакет гейтится research/18 §D-3 («форма пакета не разрешена») | research/18 §B2.2/§C#15 · `09` §2-слой-2 · D39-решение владельца «сеам сейчас, контент zh→ru» · пак-1 T3.3 |
|
||
| **Почему структура абзацев и расширенный язык-промпт — только у РЕДАКТОРА?** | ОСОЗНАННОЕ решение D30.2 (дешёвый буквальный черновик + вся реструктуризация у умного билингв-редактора; exp12: построчность = корень нечитаемости). Альтернатива «переводчик отдаёт структуру» измерена: Q4a — верность на translate-стадии не покупается (D39.9); Q4b прогнан и ПРИНЯТ (эксп-19, `docs/experiments/19-editor-contract-q4b.md`, D39.108 — диффы ОТЛОЖЕНЫ); топологию решил эксп-21 (D39.117: full-regen подтверждён, точечная починка как ЗАМЕНА редактора отклонена, принята формой «механический пре-гейт ПЕРЕД редактором», строка 142). Асимметрия сохранена ПО ДАННЫМ; не гонялся только Q4c; diff-контракт редактора — строка 106 | D-лог D30.2 · аудит `L1-*`/`H3` · research/19 §C |
|
||
| **Все промты 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/<пара>/<файл>` (+ `<пара>/repair/<класс>.md` пака-16, + `classifier.md` — D39.69). Ниже — состав для боевой пары `zh-ru`.
|
||
|
||
| Файл | Роль | Что внутри | Пара |
|
||
|---|---|---|---|
|
||
| `zh-ru/translator.md` | черновик (flash) | брифинг-переменные `{{lang/genre/honorifics/transcription/venuti/footnotes}}` + слабая вёрстка-однострочка (D30.2) | zh→ru |
|
||
| `zh-ru/editor.md` | редактор (deepseek-v4-pro БИЛИНГВ ИНТЕРИМ, D39.22; glm-5 резерв), v3 | 4 мандата + ДИСКУРС-ПЕРЕВЁРСТКА (Ван Цуй) + чэнъюй-атом + структурные few-shot (`---FEWSHOT---`, тумблер per-stage) | zh→ru |
|
||
| `zh-ru/editor-mono.md` | референс-вариант D13.1 (не боевой) | узкий моно-мандат | — |
|
||
| `zh-ru/judge-selector.md` | Ф2 (не исполняется) | — | — |
|
||
- `analyst.md` снесён паком-1 как сирота. **`terminologist.md` — живая роль пар-пака** (D39.42/45, интерим-текст; финальный — по замерам); рядом `translator-banknote.md` — вариантный шиппинг-файл банкноты (D39.45/53).
|
||
|
||
Правила, сидящие В ТЕЛЕ промтов (кандидаты на извлечение в пакет пары): русское тире-оформление
|
||
диалога; «пиши живым русским»; паратаксис→гипотаксис-блок; чэнъюй-политика; few-shot-примеры (структурные,
|
||
по-русски). Переменные брифа (`{{transcription}}` и пр.) — уже данные книги, НЕ пакета.
|
||
|
||
## 3. Целевая форма (слой 2, `09` §2) — куда движемся
|
||
Версионируемый **пакет конвенций пары** `src→tgt[×genre]`, снапшот-folded: дискурс-правила пары + few-shot
|
||
(в языке пары) + **язык промпта** + нормы транскрипции (Палладий для zh→ru, Поливанов для ja→ru — как
|
||
выбираемые политики) + лимитеры полноты. Стадия резолвит промпт из пакета по `Book.LangPair()` (сеам уже
|
||
работает). Гейт на стройку остался один — research/18 §D-3 (форма пакета не разрешена): exp15 отработан (§4 п.2).
|
||
|
||
## 4. Открытое по теме (маршрутизировано)
|
||
1. **Язык промпта** — первый замер Р6/D39.61 отрицателен (см. §1); добор — с реальной не-ru книгой (ja→ru).
|
||
2. **Извлечение правил в пакет** — exp15 ЗАВЕРШЁН; **данные-часть майнера ИЗВЛЕЧЕНА (D39.16:** zh/Палладий-инвентари →
|
||
`internal/lang`+`configs/langpacks/`, тот же pair-keyed идиом, что промпты, снапшот-фолд langpack-байтов ПОСТРОЕН (`LangpackVersion`, D39.15/16)**)**;
|
||
извлечение правил из ТЕЛА zh-ru-промтов (дискурс/few-shot) — ещё открыто, форсинг = ja→ru-реплика. `x/text/language.Tag`
|
||
ОТВЕРГНУТ для гейт-предикатов (CLDR-инстабильность в вердиктах — D39.16).
|
||
3. **Транскрипция per-book** (Палладий/Поливанов vs фандомные формы) — research/19 §E.3, решение
|
||
владельца НЕ горит (дефолт: политика в пакете пары, слой 2); `{{transcription}}`-переменная уже есть.
|
||
4. **Q4c** — где жить структуре (переводчик / редактор / отдельный пасс): единственное неизмеренное плечо; измеренные соседи Q4a/Q4b и топология — в §1, строка «Почему структура абзацев…». Границы Q4c — `docs/experiments/19-editor-contract-q4b.md` §«Границы».
|