textmachine/docs/ORCHESTRATOR_ARCH_RESET_PROMPT.md

74 lines
15 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.

# Промт: НОВАЯ оркестратор-сессия — АРХИТЕКТУРНЫЙ РЕСЕТ + разбор накопленных концернов владельца (2026-07-13)
---
## Зачем эта сессия (мета — читать первым)
Владелец **остановил текущий раунд**. Появилось ощущение, что оркестратор «тупит» в главном: КАК строить проект **правильно** — архитектурно чисто, расширяемо, и чтобы он **решал ГЛАВНУЮ поставленную задачу** (издательский **художественный** литературный перевод крупных текстов zh/ja/en→ru; победить «нехудожественность»/translationese — см. `CLAUDE.md`, `START_PROMT.MD`). Пошло **тактическое латание** (санитайзер-класс тут, промпт-атом там) вместо **архитектурного мышления с первых принципов**.
Плюс всплыла **«проблема сломанного телефона»:** полигон ИССЛЕДУЕТ → оркестратор делает ВЫВОДЫ → бэкенд РЕАЛИЗУЕТ, и по дороге теряется/искажается. Триггер: владелец сам вернулся к «умному чанкованию» — иначе оркестратор о нём **вообще не вспомнил бы**, хотя это несущий рычаг. Значит в цепочке теряется и другое.
**Эта сессия = РЕСЕТ.** Твоя задача — НЕ продолжать латать, а: (1) синкануть сессии, (2) разобрать 5 концернов владельца ниже (**ничего не потерять**), (3) выстроить ПРАВИЛЬНЫЙ архитектурный план под главную задачу. Пере-прогон глав и дальнейшая постройка — только ПОСЛЕ этого.
## Первым делом — СИНК (прямое условие владельца)
Владелец: «оркестратору надо синкануться с полигон-сессией, а полигону — с бэкендерами».
1. **Оркестратор ← полигон:** пойми, что полигон РЕАЛЬНО исследовал (правила/особенности переводов, «искусство промтинга», чанкование, translator/editor) и что осталось НЕДОнесённым/недоделанным.
2. **Полигон ← бэкенд:** полигон сверяется с бэкендом — реализовал ли бэкенд РОВНО исследованное (не хуже/не иначе), залендено ли чисто.
3. **Текущее состояние:** онбординг по `CLAUDE.md``docs/architecture/05-decisions-log.md` (D1D38.5) → `docs/PROGRESS.md` CURRENT-STATE. Залендено в текущем раунде: дискурс-editor (v3, P1a+чэнъюй+few_shot-тумблер — `0ac5f7a`), reseed-сид (`eb409f2`), инфра-пак санитайзер/экспорт/гард (`d5beefc`). **Пере-прогон 310 глав был предложен — ПРИОСТАНОВЛЕН этим ресетом** (гнать текущий конфиг = слабый тест, ключевые рычаги не построены).
---
## КОНЦЕРНЫ ВЛАДЕЛЬЦА — разобрать КАЖДЫЙ, ничего не терять
### 1. Разделение труда ПЕРЕВОДЧИК ↔ РЕДАКТОР (где рождается структура/абзацы)
- Владелец посмотрел бэкенд-фиксы: **фикс абзацев лёг на плечи РЕДАКТОРА**. А что с самим **ПЕРЕВОДЧИКОМ**?
- Понятно, что редактор должен следить за смыслом. Но **как осуществляется сам перевод**? Почему он **не делается сразу «около-правильным» и структурированным**?
- Похоже, **редактор переписывает ВСЮ ГЛАВУ**? (неэффективно/рискованно — если так).
- **Тестировал ли полигон вообще что-то на этот счёт** (переводчик даёт структуру vs редактор-переписыватель)?
- Архитектурный вопрос: правильное разделение — переводчик должен отдавать ~корректный+структурированный черновик, а не сваливать всё на редактора.
### 2. Чанкование НЕТРИВИАЛЬНО (оркестратор его недооценивает)
- Сейчас чанкование простое и **захардкожено** (`targetChunkTokens=1500`, `chunker.go:47`; `SplitChunks` без параметра). Это факт.
- **НО** чанкование влияет на **структуру абзацев И на логику/смысл оригинала** — обрезав где-то по чанку, **можно что-то потерять**. Именно поэтому задача нетривиальна.
- **НЕЛЬЗЯ** опираться на предположение «все китайские книги такие, просто грузим главы в модель».
- **Глава может быть НАМНОГО БОЛЬШЕ** допустимого загружаемого в модель чанка → главу **надо нарезать по чанкам, по ЛОГИЧЕСКИМ чанкам**.
- Задача реально сложная; решать **со стороны СТАТИЧЕСКОГО КОДА** (а как ещё? не модель-вызовами размечать чанк — это дорого).
- **НАТРАВИТЬ ИССЛЕДОВАНИЕ:** как правильно чанковать текст (в т.ч. **поиск в интернете** best-practices), **фоллбеки в коде**, логика вида «книга сама пишет мелкими главами, где 1-2-3-4 главы целиком влезают в чанк» (это ПРОСТЕЙШИЙ пример — рассмотреть **ВСЕ** кейсы).
- Контекст: `research/18` + exp14 (кривая нарезки, P1c глава-целиком лучше+дешевле — направленно), Voita ACL2019 (кросс-предложенческий контекст чинит дейксис/когезию = суть претензии-2). Тег «**D35.7**» (декаплинг `draft=чанк/edit=глава`) цитируется в PROGRESS/exp14/research18, но **записи в D-логе НЕТ** — формализовать.
### 3. «Сломанный телефон»: как лендили полигон-ресёрч в бэкенд
- Владельца **смущает, КАК залендили** результаты полигон-исследований в бэкенд.
- Проверить, что решение в бэкенде сейчас: (а) **работает нормально/адекватно**, (б) написано **чисто, расширяемо, правильно**, (в) **ГЛАВНОЕ — залендено ли ПРАВИЛЬНО**.
- Риск: полигон выдал ресёрч X → оркестратор сделал выводы Y → **бэкенд понял Z и реализовал не то**, что логически **работает ХУЖЕ или даже неправильнее**, чем код, который писал сам полигон.
- **Аудит недавних лендингов** (дискурс-editor + few_shot-тумблер, reseed-enforce, инфра-пак-санитайзер) на соответствие ИНТЕНТУ исследования + чистоту/расширяемость. Владелец отдельно отметил: «сейчас в бэкенде код приземлён **кое как**» (п.4) — проверить общую чистоту кода.
### 4. Промты: ПЕР-ЯЗЫК + где держать правила языковых пар
- Полигон активно гуглил правила/особенности переводов, «искусство промтинга» — этого накопилось много.
- **Q1 (рождён из `START_PROMT.MD` п.5):** промты сейчас **заточены под zh→ru** и содержат даже **ПРИМЕРЫ (few-shot)**. Насколько это **актуально** — кейсов правильных переводов не напасёшься (очевидно), а в промте они зачем-то есть. **Насколько такой подход вообще нормален?**
- Владелец считает: промты для переводов должны быть **под каждый язык свой**. Вопрос — **ГДЕ держать условные «правила языка»** для zh→ru, en→ru и т.д.: везде в промты инжектятся свои правила / особенности / академ-исследования. **Всё это должно быть правильно РАЗМНОЖЕНО, правильно написано, на ПРАВИЛЬНЫХ языках.** Ничего такого сейчас нет.
- **V4-п.5 (`START_PROMT.MD`, добавлен владельцем):** система сейчас **РУССКО-центрична** — промт-запросы в модель идут **на русском**, target=ru. Глупо делать бэкенд только под русский. Возможно, запросы надо слать **на языке TARGET** (на который переводим), или **на языке ОРИГИНАЛА** — «вообще не точно». При **zh→en русский вообще не должен участвовать** (чтоб не сбивать вероятностный прогон модели). → Архитектура обязана поддерживать произвольный **source→target** с пер-парными правилами/промтами; **язык самого промта** — открытый архитектурный вопрос.
### 5. ДЫРА в передаче знаний (что ещё забыли?)
- «Если бы я не вернулся к чанкованию — ты, такое ощущение, вообще не знал об этом. Это прям проблема».
- Значит в полигон-сессии **могло остаться ещё** недонесённое: оркестратор «тупо не знает/не понимает», а полигон «не знает, как это залендили в прод код». **Прям дыра.**
- Нужен **механизм**, чтобы находки не терялись: систематический **ledger находок → диспозиция** (как разовый аудит D38.4, но как ПРОЦЕСС), сквозной по цепочке полигон→оркестратор→бэкенд. Пройтись по полигон-сессии(ям) и выгрести ВСЁ незакрытое.
---
## Что от новой оркестратор-сессии (курс)
- **НЕ латать тактически.** Мыслить архитектурно с первых принципов: чисто, расширяемо, правильно, **решает ГЛАВНУЮ задачу** (художественность, не инфра-галочки).
- **Синк** полигон↔оркестратор↔бэкенд — устранить сломанный телефон (концерны 3, 5).
- По **каждому** из 5 концернов — план: что ИССЛЕДОВАТЬ (полигон/интернет), что и КАК строить, как правильно разложить (промты пер-язык, чанкер-модуль, translator/editor-контракт).
- **Чанкование** (концерн 2) и **translator/editor-разделение** (концерн 1) и **пер-язык-промт-архитектура** (концерн 4) — вероятно, требуют **полигон-исследования ПЕРЕД постройкой**.
- **Пере-прогон глав — НЕ раньше**, чем эти три продуманы архитектурно (иначе снова слабый тест на голом текущем конфиге).
- Держать **самопроверку/адверсариал** (мандат `CLAUDE.md`) и грунтовать выводы `file:line` — но не подменять этим архитектурное решение.
## Дисциплина / состояние (короткая справка)
- **Контракт:** D-лог D1D38.5. Дискурс-editor (`0ac5f7a`) / reseed (`eb409f2`) / инфра-пак (`d5beefc`) залендены — но **под аудит** (концерн 3), не считать «готовым и верным» по умолчанию.
- **Флаги для формализации:** «D35.7» без записи в D-логе (концерн 2); un-built рычаги из аудита D38.4 (inversion-защита = editor-swap; крупная edit-единица; word↔word число-дрейф Ф2; чэнъюй долгосрочно = Ф2 Annotator-маски).
- **Мультисессия жива:** возможен бэкенд-WIP; **git-дисциплина** — общий `PROGRESS.md` проверять `git diff` ПЕРЕД стейджем (per-file недостаточно для общего файла); no reset/rewrite/checkout поверх грязного дерева; коммиты en ≤30 слов; `.env` не читать; `books/`/corpus — только по прямой задаче.
- **`START_PROMT.MD`** содержит V4-идеи владельца (в т.ч. п.5 про языки [концерн 4] и п.1 про параллелизм/скорость перевода) — НЕ потерять при планировании V4.
- **Роль оркестратора** — `docs/ORCHESTRATOR_SESSION_PROMPT.md` (этот файл — АГЕНДА ресета поверх роли, не замена).