237 lines
26 KiB
Markdown
237 lines
26 KiB
Markdown
# Промт: ресёрч-сессия «Архитектура харнесса художественного перевода» (→ research/29)
|
||
|
||
> Составлен полигон-сессией фазы Д по заказу владельца 30.08.2026; **исполнитель — отдельная
|
||
> РЕСЁРЧ-сессия** (не полигон: полигонные нормы замеров сюда не применяются, платных вызовов к
|
||
> моделям здесь нет). Запускает владелец; онбординг у неё СВОЙ. Форма — по
|
||
> `docs/ORCHESTRATOR_SESSION_PROMPT.md` §«Пишешь промт сессии?» (12 обязательных блоков).
|
||
|
||
## 1. Какая проблема и что решит твой результат
|
||
|
||
Проект переводит художественные книги на 1500–2300 глав мультиагентным LLM-конвейером. Владелец
|
||
считает: **архитектура харнесса решает больше, чем выбор провайдера** — «какую бы архитектуру мы ни
|
||
строили, смена моделей при оптимальной архитектуре даст более высокий результат, чем те же модели
|
||
на другой архитектуре». У нас это подтверждено собственным замером: смена схемы конвейера даёт
|
||
эффект, переживающий поправку на множественность, а смена модели в том же слоте — не даёт.
|
||
|
||
**Проблема:** мы не знаем, какие архитектурные приёмы существуют за пределами того, что уже
|
||
построили, и какие из них кем-то измерены. Мы перестали генерировать идеи и рискуем строить
|
||
вслепую.
|
||
|
||
**Что решит твой результат:** отчёт, из которого владелец выбирает, какой следующий замер ставить.
|
||
Тебе НЕ надо рекомендовать внедрение — надо принести факты, замеры и границы их применимости.
|
||
|
||
⚠ **Повод, который ты обязан не повторить.** Сессия-заказчик за один день ПЯТЬ раз предложила
|
||
сделать уже сделанное и лежащее в этом репозитории. Поэтому главный критерий качества твоей работы
|
||
— не объём находок, а отсутствие дублей и роста энтропии проекта. **Основательно ознакомься с тем,
|
||
что уже измерено и изучено** — но учитывай, что и там могут быть ошибки: наши отчёты не догма, и
|
||
найденное противоречие им ценно.
|
||
|
||
## 2. Зона записи и git
|
||
|
||
**Пишешь ровно один файл: `docs/research/29-harness-topology-survey.md`** (номер проверен свободным
|
||
30.08). Больше — ничего: ни `backend/`, ни `platform/`, ни `frontend/`, ни чужих доков.
|
||
|
||
⚠ **Зонная оговорка, и её надо прочесть до первой строки.** По зонной таблице `CLAUDE.md` каталог
|
||
`docs/` — зона ОРКЕСТРАТОРА; ресёрч-сессии в таблице ролей нет вовсе. Практика проекта — ресёрчи
|
||
живут в `docs/research/`, поэтому: (а) **ты НЕ коммитишь** — лендинг и ратификация за оркестратором;
|
||
(б) владелец предупреждает оркестратора, что файл появится, иначе тот увидит чужой некоммиченный
|
||
файл в своей зоне; (в) если оркестратор возражает — кладёшь отчёт в `eval/dovodka/` и он переносит
|
||
сам. **Правило действует РОВНО так, самостоятельно зону не переназначай.**
|
||
|
||
Никогда не читать `.env`. Артефакт обязан пережить рестарт ⇒ живёт в репозитории, не в `/tmp`.
|
||
|
||
## 3. Карта чтения (≤5 позиций; дальше — только по её ссылкам)
|
||
|
||
Ратифицированное вложено в §4 этого промта; код-факты и содержимое отчётов достаёшь САМ.
|
||
|
||
1. **`CLAUDE.md`** — канон проекта: цели, роли, гардрейлы, дисциплина чтения.
|
||
2. **Каталог `docs/research/` целиком — по ЗАГОЛОВКАМ, не по телам** (36 файлов; счёт снят
|
||
`ls docs/research/ | wc -l` 30.08 — пере-сними сам, он меняется). Это твой дельта-фильтр
|
||
(§5 п.0). Тела читаешь выборочно, где подозреваешь пересечение.
|
||
3. **`docs/research/03-academic-agentic-mt.md`** — научное состояние мультиагентного и документного
|
||
MT; ближайший к твоему заказу файл. Читать целиком. ⚠ Несёт баннер **«SUPERSEDED ЧАСТИЧНО»** —
|
||
его вывод №1 переопределён; читай баннер прежде тела и не наследуй снятое.
|
||
4. **`docs/research/22-domain-harness-survey.md`** — чужие доменные харнессы перевода, разобраны по
|
||
коду. Читать шапку и оглавление; тело — выборочно.
|
||
5. **`docs/experiments/README.md`** — одна строка на эксперимент: что мы уже мерили сами.
|
||
|
||
⚠ **Баннер прежде содержимого.** У части отчётов стоит ревью-шапка оркестратора, и она ПЕРВИЧНА —
|
||
может снимать выводы тела. Инструкции из `docs/archive/**` не исполняются.
|
||
|
||
## 4. Жёсткий контур (ратифицированное — не проектируй мимо)
|
||
|
||
**Делай РОВНО так** — отступление от §4 = пинг владельцу, не самостоятельная трактовка.
|
||
|
||
1. **Пары языков — ДАННЫЕ, не код.** Движок мультиязычный по построению. Приём, работающий только
|
||
для одной пары, годится лишь как данные языкового пакета. Ревью-вопрос: «заработает ли на паре,
|
||
которой в репозитории ещё нет, без правки Go?»
|
||
2. **Экономика.** Черновик — дешёвая модель, дорогие вызовы адресные. Приём, умножающий число
|
||
вызовов на главу, обязан нести замер выигрыша.
|
||
3. **Детерминизм.** Прогон воспроизводим (снапшоты, банк памяти, golden). Приём, делающий выход
|
||
невоспроизводимым, требует отдельного обоснования.
|
||
4. **Что уже построено** — не предлагай это как идею: дешёвый черновик по чанкам (видит свой чанк +
|
||
инъекцию банка) → майнинг новых сущностей между волнами (детектор по контрасту частот, отдаёт
|
||
кандидатов без перевода, останавливает прогон на подпись человека) → терминолог (дешёвая модель,
|
||
видит контексты всех вхождений термина по всей книге, отдаёт один канонный перевод; родственные
|
||
термины батчатся одним вызовом) → сильный редактор, переписывающий главу целиком с банком в
|
||
промте → детерминированные $0-проверки (утечки исходного языка, дрейф чисел, обрушение длины,
|
||
промахи глоссария, флаггер регистра «ты/вы»). Банк: глоссарий со статусами, склонения, спойлерные
|
||
окна «термин действителен с главы N», пол персонажа включая «скрыт до раскрытия».
|
||
5. **Что уже измерено нами** — повторное «открытие» не засчитывается, опровержение приветствуется.
|
||
⚠ Числа даны с силой улики: слабый замер здесь НЕ выдаётся за сильный.
|
||
* **Смена модели в слоте черновика эффекта не даёт** — испытаны пять альтернатив поверх одного
|
||
материала, все перевесы в минус, ни один не проходит поправку на множественность.
|
||
* **Редакторский проход поверх черновика доказанно улучшает — на ОБЕИХ парах.** zh→ru: голый
|
||
черновик различимо хуже связки (+4.12 при пороге 2.39 и +4.92 при 2.10 в двух кругах). en→ru:
|
||
`n=16, +1.56, p=0.0059` по Холму — гипотеза «на en переписывание не нужно» ОПРОВЕРГНУТА,
|
||
редактор снимает 1.56 ошибки на единицу (2.78 → 1.22).
|
||
⚠ Есть и второй, СЛАБЫЙ замер на en (`n=6`), давший «+0.00» при интервале [−2.50; +2.33] и не
|
||
прошедший поправку. Он не противоречит первому: его интервал ВКЛЮЧАЕТ +1.56 — у него просто
|
||
нет мощности. Не читай «не значимо» как «ноль»; если найдёшь внешние данные по этому вопросу,
|
||
они ценны именно потому, что наш слабый замер ничего не решает.
|
||
* **Два разных сильных редактора между собой неразличимы** (`+0.06`, p=0.95) ⇒ выбор жильца этой
|
||
роли у нас — вопрос цены, а не качества.
|
||
* **Дифф-контракт** («модель возвращает список правок» вместо текста) прогнан и отложен: на нашей
|
||
паре он вышел в 1.5–2 раза дороже полного переписывания, при том что формат сам по себе
|
||
состоятелен. Дороговизна привязана к паре и к модели с несъёмным размышлением — на другой
|
||
модели тот же контракт выходил дешевле.
|
||
|
||
## 5. Что делать
|
||
|
||
### 0. Синк с репозиторием — БЛОКИРУЮЩИЙ. **Делай РОВНО так.**
|
||
|
||
Слово владельца: «не переоткрывать, что уже открыто; обязательно синк с репозиторием, чтоб не
|
||
плодить сущности — супер обязательный пункт перед ресёрчем».
|
||
|
||
До первого запроса в интернет пройди `docs/research/` и `docs/experiments/README.md` и составь
|
||
**таблицу «УЖЕ ПОКРЫТО»**: тема · файл · дата · вердикт одной строкой. Она — первый раздел отчёта.
|
||
Нет таблицы ⇒ поиск не начат. Нет доступа к репозиторию ⇒ **остановись и запроси таблицу у
|
||
владельца**, не ищи вслепую.
|
||
|
||
Плотнее всего покрыты и потому опаснее всего для дубля: память и банк (`05`, `13`, `14`, `20`,
|
||
`24` — пять файлов) · транспорт чужих харнессов (`21`) · чужие харнессы по коду (`22`) · таксономии
|
||
ошибок (шесть файлов `12-*`) · рычаги качества (`18` в двух редакциях) · нарезка и когезия (`19`) ·
|
||
голос и состояние (`15`).
|
||
|
||
### 1. Поиск. **Реши сам и аргументируй** — глубину, источники и порядок выбираешь ты.
|
||
|
||
Ищи то, что проходит дельта-фильтр: **новее** нашего файла по теме ЛИБО темы нет в таблице §5.0.
|
||
|
||
Оси (направление, не потолок):
|
||
1. **Топологии, которых у нас нет:** план-затем-письмо; раунды критики и сколько окупается; дебаты
|
||
агентов; итеративная само-ревизия; отбор из N кандидатов судьёй; «сначала смысловой скелет,
|
||
потом стиль»; стилевые образцы из самого произведения как few-shot; двухпроходка «черновик всей
|
||
книги → полное переписывание».
|
||
2. **Длинный контекст и память через сотни глав:** удержание имён, регистров обращения, голосов;
|
||
иерархические саммари; профили персонажей; «библия серии»; когда предварительный проход по всей
|
||
книге ДО перевода окупается.
|
||
3. **Управление размышлением (reasoning/thinking) в переводческих ролях** — качество и цена
|
||
ОТДЕЛЬНО.
|
||
4. **Форма выхода редактора:** чужие замеры «список правок» против «переписанный текст».
|
||
5. **Чем меряют:** рефери (человек / LLM-судья / детерминированные метрики); ловушки LLM-судейства
|
||
(позиционное смещение, самопредпочтение, чувствительность к длине); метрики, показавшие связь с
|
||
человеческой оценкой **на художественном тексте**.
|
||
6. **Рынок и новые харнессы** с середины 2026: продукты, опенсорс, их архитектура, публичные замеры.
|
||
|
||
Приоритет предмета — художественная проза и объёмы от книги. Пары по ценности: zh→ru · zh→en ·
|
||
любые →ru · прочее. Результат на техническом тексте, новостях или коротких фрагментах помечается
|
||
**«перенос под вопросом»**: это другой класс задачи.
|
||
|
||
### 2. Правило годности находки. **Делай РОВНО так.**
|
||
|
||
Находка идёт в отчёт при выполнении всех трёх условий:
|
||
1. **дельта-строка** — «в наших отчётах этого нет, потому что …» либо «дополняет `research/NN`: у
|
||
него было X, здесь новое Y»;
|
||
2. **ссылка** — URL, статья с датой и авторами, репозиторий с путём к файлу;
|
||
3. **разделено «заявлено» и «измерено»**; для измеренного: размер выборки · языковая пара · жанр ·
|
||
кто судил · была ли поправка на множественность.
|
||
|
||
**Заявление = команда.** Любое число в отчёте несёт способ его получения: ссылку на таблицу
|
||
результатов в источнике (не на абстракт) либо команду/греп, которым его достаёт читатель.
|
||
Приёмка пере-снимет выборочно.
|
||
|
||
## 6. Оси ревью твоей работы (приёмка пойдёт по ним; вправе заменить с аргументом)
|
||
|
||
1. **Дубль** — есть ли в отчёте то, что уже лежит в `docs/research/` или `docs/experiments/`.
|
||
2. **Улика** — открывается ли ссылка, дословна ли цитата, то ли там число.
|
||
3. **Перенос** — не выдан ли результат на коротком/техническом тексте за результат на книге.
|
||
|
||
## 7. Мандат самопроверки ИСПОЛНЕНИЕМ (обязателен; самоотчёт не принимается)
|
||
|
||
Самоотчёт «проверено» в этом проекте регулярно оказывался ложным. Поэтому — названный механизм и
|
||
проверяемый артефакт:
|
||
|
||
1. **Открой каждую свою ссылку** и сверь цитату, дату, авторов и число (число — из таблицы
|
||
результатов, не из абстракта). **Ссылка, которую ты не открыл, из отчёта удаляется.**
|
||
2. **Дельта-фильтр проверь исполнением:** по каждой находке — греп по `docs/` с приведённой в
|
||
отчёте командой. Артефакт — колонка «чем проверено» в таблице находок.
|
||
3. **Адверсариальный проход по СВОЕЙ готовой работе.** ⭐ **Субагенты РАЗРЕШЕНЫ явно** — запускай,
|
||
веер и глубину выбираешь под предмет. ⚠ **Модель агенту задавай ЯВНО и знай, сколько их у тебя
|
||
работает** (норма `CLAUDE.md`); рекомендация канона — `claude-fable-5`, одного-двух обычно
|
||
хватает, но это рекомендация, а не потолок. Мандат агенту: «найди в этом отчёте отсутствующее и
|
||
противоречащее». Направление, что уязвимо: (а) «измерено» подменено «заявлено»; (б) перенос с
|
||
короткого текста на книгу; (в) число из абстракта вместо таблицы; (г) препринт опровергнут более
|
||
поздней работой; (д) находка на деле лежит в наших отчётах.
|
||
4. **Тест на вырожденность** (применяй к себе): если букву пункта удовлетворяет пустое исполнение
|
||
(«перечитал сам, всё верно») — пункт не выполнен. Нужен артефакт: список открытых URL, вывод
|
||
грепа, вердикты субагентов.
|
||
5. Каждую пойманную собой ошибку **запиши в отчёт** с классом ошибки (§8 п.5).
|
||
|
||
## 8. Выход — файл `docs/research/29-harness-topology-survey.md`
|
||
|
||
**Состав разделов 1–5 — «делай РОВНО так»** (по нему пойдёт приёмка); **порядок находок внутри
|
||
раздела 2, глубина каждой и объём — «реши сам и аргументируй».**
|
||
|
||
1. **«УЖЕ ПОКРЫТО»** — таблица §5.0. Первым разделом, без исключений.
|
||
2. **Находки** по осям §5.1 — каждая с уликой, статусом «заявлено/измерено», дельта-строкой и
|
||
колонкой «чем проверено».
|
||
3. **Противоречия нашим выводам** (§4 п.5) — отдельным разделом, с обеими ссылками. Опровержение
|
||
нашего вывода ценнее нового факта.
|
||
4. ⛔ **«ЧЕГО НАЙТИ НЕ УДАЛОСЬ» и «ЧТО НЕ ПРОВЕРЕНО»** — обязательная секция. Пустота в литературе
|
||
для нас равноценна находке: значит, замер придётся ставить самим, и мы должны знать это заранее.
|
||
Сюда же — что ты не успел, не смог открыть, где источник платный.
|
||
5. **«ЧТО Я НАПУТАЛ»** — результат §7, с классом каждой ошибки.
|
||
|
||
**Записка-план перед работой. Делай РОВНО так.** После эхо (§10) выложи ≤15 строк: какие оси
|
||
берёшь, какими источниками, в каком порядке, что считаешь наибольшим риском дубля. **И сверь план
|
||
с заказом МЕХАНИЧЕСКИ** — таблицей «ось §5.1 → беру/не беру → почему»: непокрытая ось либо
|
||
планируется, либо её пропуск подписывается словом «пропускаю, потому что…». Это позволяет владельцу
|
||
поправить курс до того, как потрачено время.
|
||
|
||
⚠ **Не давай рекомендаций «внедрить X».** Факты, замеры, границы применимости — решение за
|
||
владельцем. Плотность, а не объём; шаблонные оговорки не нужны.
|
||
|
||
## 9. Канал вопросов и право возразить
|
||
|
||
Конфликт промта с кодом или доками ⇒ **пинг владельцу, НЕ самостоятельная интерпретация**. Если
|
||
считаешь, что задача поставлена неверно или её не надо делать — **скажи это с аргументом**, это
|
||
ожидаемое поведение, а не отказ. Не уверен в форме исполнения — спроси ДО работы, одной строкой.
|
||
|
||
## 10. Эхо-протокол старта (первое действие, ДО работы)
|
||
|
||
Выложи ≤10 строк: **скоуп** (что делаешь) · **инварианты** (§4, своими словами) · **не-делать**
|
||
(§11). Это проверка, что промт понят, и одновременно проверка канала (§12).
|
||
|
||
## 11. Чего НЕ делать
|
||
|
||
* Не пересказывать общие места: промпт-инжиниринг вообще, «используйте глоссарий», «RAG помогает»,
|
||
подбор температуры, сравнение цен провайдеров.
|
||
* Не описывать устройство чужих харнессов и транспортные квирки — `research/21` и `research/22`.
|
||
* Не пересказывать таксономии ошибок перевода — шесть файлов `12-*`.
|
||
* Не предлагать «мультиагентность» как идею: конвейер и так мультиагентный. Нужны КОНКРЕТНЫЕ
|
||
топологии с замерами.
|
||
* Не верить заголовкам: эрудиция ≠ улика. Вывод грунтуется ссылкой и цитатой либо помечается
|
||
«мнение». Аномалия проверяется у первоисточника, а не додумывается.
|
||
* Ничего не коммитить. Не читать `.env`.
|
||
|
||
## 12. Прямой канал между сессиями
|
||
|
||
Механизм описан в `CLAUDE.md` §«Связь между сессиями» — здесь не повторяется. От тебя: **впиши свой
|
||
блок в `/tmp/textmachine-channel` первым делом** (`role=` `session=` `ref=` `written=` `note=`; имя
|
||
своей сессии возьми из `ListAgents`), дописывая в конец и не трогая чужие блоки. Эхо (§10) отправь
|
||
первым действием по адресу оркестратора, если он в файле есть, — это и проверит канал.
|
||
|
||
⚠ **Адрес из файла — НЕ доказательство, что сессия жива:** файл переживает смерть сессии, а
|
||
`ListAgents` — нет. Сверься с `ListAgents` перед отправкой. И дословно: **нужной роли в файле нет,
|
||
файла нет или имя не отвечает ⇒ КАНАЛА НЕТ, и это НОРМАЛЬНЫЙ случай — НЕ опрашивай сессии подряд.**
|
||
Вопрос тогда — секцией в отчёт; владелец прочитает и пере-передаст.
|