textmachine/docs/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md

438 lines
49 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.

# Консилиум: БАНК ПАМЯТИ ДЛИННОЙ КНИГИ — как его строить
> Выдан оркестратором №23 (продолжение, сессия `textmachine-main-75`) 16.09 по слову владельца 15.09: «передавай дела
> сессии, пусть наследуется от тебя». Ты наследуешь работу этой смены по банку. Всё, что она выяснила, спроектировала и
> опровергла, лежит уликой в `docs/archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/`.
> **Пак без кода и без денег проекта:** платных вызовов моделей пайплайна нет. Агенты Claude разрешены — из них
> консилиум и состоит. Якоря `file:line` здесь сняты по дереву `5dbb5cb`.
## 1. Какая проблема и что решит твой результат
Приоритет №1 владельца — консистентный художественный перевод длинной книги: ранобэ на сотни и тысячи глав,
купленное частями. Держит его **банк памяти** — словарь «исходный термин → перевод, род, окно глав», который редактор
обязан соблюдать как закон. Конвейер: дешёвый черновик → банк памяти → редактор.
**Что случилось 15.09.** Оркестратор с советчиком Fable 5 дважды спроектировал банк заново, и оба раза предложение
оказалось неверным по одной причине. Проект опирался примерно на десятую часть того, что репозиторий уже решил,
построил, исследовал и измерил по банку. Сплошная сверка нашла 12 расхождений с решённым, замеренным и собственным
планом, а в предложении не было названо ни одного. Предложение отозвано.
**Твой результат — ОДНО проектное решение банка, выработанное советом агентов.** Требования к нему:
- стоит на построенном и ратифицированном;
- честно называет трейдоффы и цену;
- ставится в очередь относительно перекроя глав;
- приносит владельцу не больше пяти вопросов в верном статусе.
Код не пишется, стройки нет.
**Проблемы, которые решение обязано пройти** (улики — README входов):
- **П1. Банк пере-решается.** Авто-банк переписывается целиком из текущего прогона (`research/34` §4 п.4, ряд 130).
- **На подписи — замерено.** Между стопом банка и финалом передачи неподписанных строк сменились у 12 из 69 (A) и
у 14 из 66 (B).
- Между стопом и финалом был второй проход терминолога после человеческой подписи двух термов.
- Эррата 11.09-и называет это ценой пере-майнинга после подписи: «Хороши ли эти 12 замен — вопрос КАЧЕСТВА»
(греп `Эррата 11.09-и` в `docs/architecture/05-decisions-log.md`).
- **На следующей покупке глав — выведено из кода.** ⚠ Испр. 16.09: рост авто-банка между прогонами наблюдался
живьём на стенде полигона (`docs/experiments/23-editor-tier.md:8237-8246` — терминолог доконсолидирует банк под
бюджетом). Живьём не наблюдалось именно пере-решение уже решённой передачи и судьба отгруженных глав.
- Покупка сперва доставляет новые юниты и только потом пере-делывает отгруженные, чьи байты сдвинул банк
(`backend/internal/pipeline/volume.go:410-427`, `DELIVERY BEFORE REWORK`).
- Пере-делка идёт с согласием на пере-оплату (`:351`).
- Пока в книге есть непереведённые юниты, отгруженные главы остаются со старыми передачами.
- **П2. Тождество термина.**
- Подбор строк сравнивает нормализованную форму (`backend/internal/membank/memory.go:574`).
- Хранилище и часть дверей намеренно сравнивают сырую строку: «族長 and 族长 with one sense and window are two
accepted rows, not one» (`backend/internal/membank/memseed.go:874-876`). Это традиционное и упрощённое написание
одного слова.
- Что редактор получает при этом два закона, показала проба `01` (R2) по коду; живьём не наблюдалось.
- Владелец спросил, тот ли это вообще термин (§1, рамка) — ответ нужен человеческими словами.
- **П3. Исходы решения.** Отказ терминолога (⟦TM-NO-DST⟧ или молчание) оставляет строке передачу из черновика, и она
едет редактору законом (`01` T4 и B2; `backend/internal/miner/miner_emit.go:261-268`). Исхода «это не термин банка»
нет.
- **П4. Сущность меняется по ходу книги.** Классы: персонаж сменил пол после N глав · термин сменил смысл · тёзки ·
имя, совпадающее с обычным словом (`方正`) · обращение ты↔вы и голос меняются по сюжету.
- **Ответ на класс смены пола уже ратифицирован — D5 п.1.** Когда в загруженных главах видна намеренная
неоднозначность, ставится `gender=hidden`, и безродовые конструкции идут до раскрытия. Плюс ретро-патч «с тома N —
так» с показом стоимости пере-перевода вмороженных глав.
- **Для обращений — D7 правка 1.** Ты/вы — «журнал событий переходов», «а не статичная матрица пар (переход ты↔вы —
сюжетное событие». Там же `gender` — «с проактивной установкой `hidden` Analyst-ом на неоднозначности (D5.1)».
Голос входит в приоритет №1 (D39.248 п.1).
- **У этой же книги хрестоматийный случай — `白凝冰`:** первые главы «он», канон female — D19 п.3(в) (греп
`хрестоматийный кейс механизма D5.1` в `docs/archive/architecture/05-decisions-D1-D38.md`).
- **Построена ручная половина, проактивной нет.**
- `hidden` — поле сида, и у этой книги оно выставлено (греп `сид финализирован (白凝冰` в
`docs/architecture/05-decisions-log.md`).
- Классификатор его не ставит (`backend/prompts/zh-ru/classifier.md:10-11`).
- Расхождение ратифицированного (D5 п.1, D7 правка 1) с построенным — пункт §13 (д).
- Терминолог видит три ПЕРВЫХ вхождения по книге, ±40 знаков (`backend/internal/pipeline/terminologist.go:75-76`,
`backend/internal/terminology/terminology.go:340-349`). Раскрытие в поздней главе он не видит.
- Редактору велено: «Род и форму имён и терминов сверяй по глоссарию» (`backend/prompts/zh-ru/editor.md:10`).
Значит, устаревший род в банке может переписать верный текст — это вывод, не замер.
- Окно одним решением двери не правится, а отказ снимает все окна поверхности
(`backend/internal/membank/decisions.go:90-92`).
- **Окон у движковых строк почти нет.** В базах A/B `since_ch` > 0 только у 2 строк на книгу, `until_ch` = 0 у всех.
Нижнюю границу по первому появлению ставит только детерминированный канал майнера
(`backend/internal/miner/miner_emit.go:210`, `:387-399`); кандидаты только из банкноты идут с `SinceCh: 0`
(`backend/internal/pipeline/mining.go:612`). Решение, опирающееся на окно «с главы N», опирается на то, чего у
движковых строк сегодня нет.
- **П5. Сигналы без читателя.**
- Движок по умолчанию на подпись не останавливается (`backend/cmd/tmctl/invocation.go:141`). На платформе
остановка — обязательное поле заказа `stop_for_signing` (`platform/internal/httpapi/v0.go:655`).
- Платформа читает из банк-экспорта только `terms` (`platform/internal/ingest/bank.go:58-70`), у секции `proposed`
читателей ноль (ряд 224).
- Фронт заморожен.
- **П6. Номинация.** Обычные слова в банк не попадают: `族` встречается в срезе 29 раз, `家族` — 9. Отсекает их фильтр
типа, а не контраст (ряд 440, причинность пере-названа 12.09). Пускать ли их — решение владельца.
- **П7. Закон задним числом.** Термин решён в поздней покупке, а встречался и в уже отгруженных главах. Ратифицированные
опоры: D39.42 п.5 и ретро-патч D5 п.1.
- **П8. Общность.** Свёртки написания исходника (трад.→упрощ. китайский, катакана→хирагана) зашиты в ядро и
применяются к любому языку (`backend/internal/text/norm.go:47`). Вынос в данные двигает `NormVersion`, а он входит в
тег нарезки и в ключ манифеста (`backend/internal/pipeline/manifest.go:282`, `:384`).
### Рамка владельца — дословно
Первоисточник и долговечная выписка — §5 п.2 и вход `06`.
**Из разговора с прежним оркестратором (с 12.09):**
- «банк памяти сразу должен идти законом»; «у редактора нет знаний о том что с этим термином сделают другие
редакторы, поэтому так оставлять его опасно».
- «принимать решение -- в точке банка памяти»; «делать на такие вот термины запросы с контекстом пожирнее».
- «запросы перевода намайненого банка памяти очень дешевые относительно всей книги, мы можем на них не экономить».
- ⚠ Оговорка оркестратора: на коротких прогонах A и B терминология — 15.6% и 21.0% цены, то есть заметная доля, а не мелочь.
- 12.09: «такой банк памяти по spread может обеднять очень сильно язык. Потому что термин который можно перевести
по-разному это вообще то нормальная составляющая художественного перевода»; «у нас начнут переводиться все слова в
книге одинаково которые вовсе не обязаны переводится одинаково и даже плохо что они переводятся одинаково».
- «если мы начнем майнить такие термины то это взорвет кардинальность банка памяти».
- «возможно модель терминолог захочет выкинуть термин который выкидывать точно нельзя».
- «редактору дано задание более живой язык предоставить, если не гейтануть его терминами, то он может переписать их
часть просто под горячую руку попав».
- 12.09, о двух его августовских записях, которые оркестратор привёл из его файла:
- «МАЙНИНГ ЗАМЕЧАНИЙ … Заставить критика жаловаться, а не чинить» (ПТ-41; дословно в файле владельца `START_PROMT.MD`, который в репозиторий не коммитится);
- безLLM-анализатор книги, считающий повторы слов и упоминания имён (строки ПТ нет). Это пересказ оркестратора; в
файле это вопрос, а не идея.
- Ответ владельца: «Пусть они останутся идеями, потому что самая оптимальная штука которая есть сейчас по цене
качеству это черновик -> банк памяти -> редактор переписыватель полный. Если мы будем сюда внедрять всяких
критиков то это уже начнет сильно дорожать перевод»; «Нам бы вот на текущей архитектуре разрулить проблему эту».
- «у нас есть алгоритм в бэкенде который скипает подпись банка»; «надеяться что это отловит человек довольно
ненадежно».
**Из носителей:**
- «у неподписанного термина тоже обязан быть ОДИН перевод» — слово владельца, записанное в ряду 330.
- «надо давать везде одинаково; если кто-то ошибся — это уровнем выше» — D39.104 п.1, 04.08.
**15.09, в этой смене:**
- «Меня вот интересует как банк памяти решает проблему которая по идее должна быть общей»; «у нас перосонаж был
мужским первые 10 глав, затем поменял пол, вот на докупке новых 10 глав, как с этим банк памяти справляется?»;
«есть ли еще подобные кейсы?».
- «То что как то замораживать банк памяти и каждый раз не переводить его это понятно, представь если там что то
изменится на перевод это же пол книги может перегенерировать.»
- «Ну вариант где замораживаем звучит логично, так а что тут не так пойти может? Форма как то перевода поменяться или
что?»; «только я спрашивал скорее какой алгоритмический фикс и какие трейдоффы тут могут произойти».
- ⚠ Испр. 16.09: вторая фраза сказана о ТОЖДЕСТВЕ термина — это пункт 4 того же сообщения, ответ про ряд 330, — а
не о заморозке. О заморозке его вопрос: «что тут не так пойти может?».
- «族长 и 族長 это точно одинаковый термин? Я китайский не знаю, но выглядит это как разные слова».
- «Ты тут не упарываешься в конкретное решение на моих замечаниях? Нам бы придумать что то качественное вместо каких
то заплаток»; «как сделать универсально»; «У нас не получается антипаттерн заплатка под конкретный язык?».
- «может быть мы уже запланировали в бэклог что то умное что решает нашу проблему».
**Что именно владелец назвал логичным — и почему это не решение.**
- **Предмет — не заморозка как идея и не ряд 130, а предложение оркестратора** (выписка `06`, строка 870): «**Заморозка.**
Перевод, который уже ушёл в отгруженные главы, замораживается. При следующих покупках модель про него больше не
спрашивают, а спрашивают только про новые термины». К ней шли бесплатная сверка и право менять замороженное только
человеку.
- **Это ровно та посылка, которую README входов велит не повторять:** «Первое решение живёт до правки человеком» — против
риска B1 и D39.69.
- **Вопрос владельца «что тут не так пойти может?» — о цене этой посылки.** Оркестратор ответил рисками и уточнениями
(выписка `06`, строки 896, 920, 1038). Часть его утверждений не держится — баннер `06`.
- **Позже владелец предостерёг не упираться в решение по его замечаниям.** Значит, заморозка — кандидат с известной
ценой, а не принятое решение. Связь с рядом 130 — прочтение оркестратора.
## 2. Зона записи и git
- Пишешь **ТОЛЬКО** итог `docs/research/35-bank-memory-consilium.md` и рабочие файлы в каталоге
`docs/research/35-bank-memory-consilium/`: протоколы раундов, пробы, таблицы.
- `docs/` — зона оркестратора, и эта запись — исключение, выданное этим промтом.
- Прецедент: ревью контракта `docs/archive/prompts/CONTRACT_REVIEW_SESSION_PROMPT_2026-08-15.md`
`docs/research/28-contract-review.md`, лендинг оркестратором (D39.138).
- Лендит итог оркестратор.
- Входы `docs/archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/` — только чтение.
- **Ты не коммитишь.** Код, конфиги, промпты, бэклог, журнал решений, план, README и прочие доки не правишь. Нужные
правки носителей даёшь списком в итоге (§13 (д)).
-В главном дереве `/home/ubuntu/projects/textmachine-main` лежит незакоммиченная сдача бэкенд-сессии, ждущая
приёмки: индекс и рабочие правки `backend/`.
- Git в главном дереве — только чтение (`status` · `log` · `show` · `diff` · `grep`).
- Запрещены `add` · `commit` · `reset` · `restore` · `checkout` · `stash` · `clean` · `apply` · `worktree`.
- **Код читай из замороженного дерева `/home/ubuntu/tm-verify-1509`** (`HEAD` `5dbb5cb`, отцеплен; `backend/` и
`platform/` там те же, что в `9241934`).
- State-changing git запрещён и в нём.
- Пробы — `go test` в этом дереве или на tar-копии в своём скретчпаде
(`tar --exclude=./bin --exclude='./.env*'`).
- После прогонов `git -C /home/ubuntu/tm-verify-1509 status --short` должен быть пуст; вывод печатаешь в протоколе.
-**Платные вызовы моделей проекта запрещены:** `tmctl translate`/`redrive` и любые провайдеры пайплайна. Замер,
которому нужны деньги, проектируешь с ценой и отдаёшь в итог. Санкцию у владельца берёт оркестратор.
- Базы прогонов (`~/tm-coldrun-a`, `~/tm-coldrun-b`) — только `python3` + `sqlite3` с `mode=ro&immutable=1`.
- `books/` — только чтение, git в нём не трогать: это отдельный репозиторий, в нём лежат сайдкары стопа банка.
- `.env` не читать никогда.
## 3. Карта чтения — ЗАКОН; ратифицированное — в теле промта
1. `CLAUDE.md` — целиком.
2. Этот промт.
3. `docs/archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/README.md`. Там же в `05-prior-art-map.json` — раздел
`synthesis` целиком; находки сверщиков `S1``S3` — по мере вопроса.
4. `docs/architecture/18-bank-ontology.md`.
5. `docs/research/34-memory-bank-quality-audit.md` — через ревью-шапку.
**Справочник по мере вопроса** (в счёт карты не входит):
- входы `01``04` и `06`;
- `docs/research/`: `14-adaptive-memory.md` · `17-external-critique.md` · `20-bank-mining.md` ·
`24-bank-arbitration.md` · `31-harness-independent-critique.md` · `32-harness-architecture-alternatives.md` ·
`33-backend-debt.md`;
- `docs/experiments/18-editor-wire-probe.md` · `docs/architecture/06-memory-risk-registry.md` ·
`backend/docs/CHAPTER_STRUCTURE_DESIGN.md` §4.2;
- `docs/product-requirements.md`: ПТ-4 · ПТ-5 · ПТ-8 · ПТ-9 · ПТ-24 · ПТ-41 · ПТ-42;
- ряды `docs/BACKLOG.md`: 14 · 38 · 47 · 130 · 131 · 161 · 192 · 221 · 223 · 224 · 233 · 322 · 330 · 339 · 406409 ·
434 · 436 · 438440;
- ноты ниже.
Журнал решений целиком не читать:
- тело — греп `^## D<номер>` в `docs/architecture/05-decisions-log.md` и в слайсах `docs/archive/architecture/`;
- статус одним хопом — `docs/architecture/05-decisions-index.md`;
- подномер живёт пунктом родителя.
### Ратифицировано — сверь тело ноты до пункта, прежде чем опираться
- **D5.** Бриф заморожен, новые термины дописываются, принятое молча не пересматривается. П.1 — проактивный
`gender=hidden` и ретро-патч «с тома N — так» (подробно — П4).
- **D7 правка 1.** Ты/вы — журнал событий переходов; `gender`с проактивной установкой `hidden` (подробно — П4).
- **D39.42.** ⚠ Испр. 16.09 (находка консилиума, сверена): список терминов, частоты и KWIC берутся из ИСХОДНИКА всей
книги и полны после первой покупки (D39.170, ловушка 1); из черновиков купленных глав приходят только варианты
передачи. П.5: смена банка после оплаты — пере-редактура ТОЛЬКО
затронутых юнитов, со сметой до согласия.
- **D39.59 (2).** «БАНК — КУРС НА АВТОНОМНОСТЬ: подпись владельца ОПЦИОНАЛЬНА»; «банк обязан приходить с максимально
качественными АВТОНОМНЫМИ переводами».
- **D39.69.** «гипотеза первенства ОПРОВЕРГНУТА»: терминолог ре-решает контекстом. Риск B1
(`docs/architecture/06-memory-risk-registry.md:44`): «первый (наименее информированный) перевод имени лочится на 1000
глав».
- **D39.102 п.2.** Закрыты «по нужности» целиком: равноправный консилиум как прод-механизм · кросс-модельное
взвешивание уверенностью · self-consistency N прогонов · селекция «выбери из вариантов» · отказ-сигнал ⟦TM-NO-DST⟧ ·
эмбеддинг-фетч (закрыт D39.69). Совет моделей как механизм банка не предлагается; к формату этой сессии пункт не
относится.
- **D39.104 п.1.** Банк на проводе — ЗАКОН для всех ролей, независимо от статуса строки. Право «перевести иначе»
упразднено. Свобода — узкая оговорка ОБЛАСТИ употребления.
- Принятая цена: «неверная авто-строка едет консистентно до ревью (чинится одной правкой банка + ре-эдитом;
разнобой не чинится ничем)».
- П.2: единый закон-блок редактора вместо двухсекционки. Ряд 134, которым п.2 заказывал внесение, закрыт D39.195
п.2.
- Проба (`docs/experiments/18-editor-wire-probe.md:621`): «Не подтверждено: оговорка области §B … В движок не
вносить.»
- **D39.144 п.1.** Банк подписывается целиком, пер-термная подпись — не модель продукта. Механику пост-ридинговых правок
не проектировать до полигонных итогов.
- D39.165 сужает этот пункт (греп `ОБЛАСТЬ D39.144 п.1 СУЖЕНА ЯВНО`): открыть дверь к построенному движковому
механизму — не то же, что проектировать продуктовый цикл.
- Полигон выведен из скоупа (D39.248 п.4), поэтому триггер ряда 192 «итоги фазы Д» не наступит. Это вывод
оркестратора.
- **D39.193.** П.1: род производит классификатор. П.3 — дедуп ЗАКОН-БЛОКА редактора: ключ уникальности банка —
`(src, sense, since, until)`; уступает неподписанная строка и только подписанной; подпись не роняется никогда.
- **D39.205.** П.4: гейт глоссария не включается до замера ложных срабатываний. П.5: направление владельца «или
флагать, или ПЕРЕГЕНЕРИРОВАТЬ проблемный участок» — такой работы сегодня нет.
- **D39.245.** Акт ратифицирует ПРЕДМЕТ структуры глав, а не механику. П.7: перечеканка экспортных id уронила бы
КАЖДЫЙ банк-экспорт платформы — отсюда `bankTermID` не двигать (`backend/docs/CHAPTER_STRUCTURE_DESIGN.md:693`).
- **D39.248.** П.1: голос входит в приоритет №1. П.2: Fable 5 — 12 агента на сессию. П.4: полигон вне скоупа.
### Открытые решения владельца — вопросы, а не запреты
- **Ряд 130** = `research/34` §4 п.4: копить ли авто-банк между прогонами.
- Это СТОП-решение; материал — WARN второго прогона.
- 15.09 владелец назвал логичным близкий, но не тот же предмет — предложение «заморозка + сверка» (§1, рамка).
Считать это его позицией по ряду 130 — прочтение оркестратора.
- **Ряд 440:** пускать ли обычные существительные в банк детерминированным каналом.
- **`research/34` §4:**
- п.1 — стоп или флаг на разъехавшемся термине;
- п.3 — один перевод у неподписанного термина: оба выхода стоят денег;
- п.5 — остановка на подпись: опция или свойство продукта.
- **Ряд 192:** пост-ридинговый цикл правок банка (триггер недостижим — см. D39.144 выше).
## 4. Разметка свободы: как работает консилиум
Слово владельца дословно: «на протяжении всей работы это скорее не прям ресерч а ресерч консилуум где идет совет о
том как строить между разными агентами (разрешаю 1-2 фабла по необходимости для этой сессии)».
**Делай РОВНО так** (отступление — пинг):
1. **Совет, а не один автор.** Порядок работы:
- не меньше ТРЁХ независимых проектов от агентов с разными заданными углами; каждый пишется до знакомства с
другими;
- перекрёстная критика: каждый проект судит агент, который его не писал;
- сведение в одно решение; несогласие записывается, а не усредняется.
2. **Роли совета обязательны.** Роль может нести один агент, но не автор проекта, который она судит.
- Адвокат рамки владельца (§1).
- Адвокат денег и детерминизма.
- Адвокат общности: «заработает ли пара, которой в репо нет, без правки Go».
- Хранитель построенного и решённого — сверяет каждый механизм с картой `05` и деревом.
- Опровергатель фактов кода — исполнением.
3. **Fable 5 — не больше двух агентов на всю сессию.**
- Модель задаёшь явно (`model: "fable"`).
- Вопросы по тому же предмету досылаешь уже поднятому агенту. Второй Fable — только под другой предмет, с доводом
в протоколе.
- Fable — советчик, а не источник истины: его посылки проверяются деревом.
- Субагенты и воркфлоу на других моделях разрешены явно; сколько их работает, ты знаешь.
4. **Сначала «не построено ли уже» и «не решено ли уже», потом любой новый механизм.** У каждого нового механизма в
итоге:
- таблица «что по этому предмету уже есть: решено · отложено · в плане · построено · выключено · исследовано ·
опровергнуто»;
- довод, почему нужен новый.
Отсутствие этого шага — ровно причина отзыва двух прошлых проектов.
5. **Правило остановки проверки итога.**
- Не больше трёх кругов.
- Сходимость — круг, не давший НОВЫХ находок (любой серьёзности).
- Миноры последнего круга закрываются ещё одним кругом — или остановкой.
- Не сошлось за три — стоп: итог с таблицей остатка и строкой §13 (м) во второй форме.
6. **Формат утверждений:** о коде — `file:line` по `5dbb5cb`; о решении — D-номер с пунктом; о замере — источник,
прибор и популяция.
**Решаешь сам и аргументируешь:**
- число раундов до проверки итога;
- углы проектов;
- формат протоколов;
- какие $0-пробы нужны;
- нужен ли второй Fable (в границах п.3);
- давать ли авторам проектов тексты отозванных `02`, `04` и ответов оркестратора из `06` — если да, только вместе с
баннером.
Мои приоры по углам — по карте `05`, этой сменой не проверены, опровергаются доводом:
- **«минимум на построенном».** Включить и расширить уже построенное:
- `dropBankSettled` — на решения движка, плюс адресуемые по содержимому чекпойнты партий (ряды 38, 233);
- спящий журнал `glossary_revisions` (ряд 221);
- семейный пере-запрос с якорями решённых членов (`research/24`, ряд 339);
- ранжирование очереди человека по уверенности.
- **«журнал решений с окнами».** Направление отозванных `02`/`04`, которое критик `03` признал годным как направление.
- **«продукт без человека в петле».** Всё решается в точке банка, без подписи.
- **«сначала замер».** Как растёт пере-решение на 10 → 50 → 200 глав, прежде стройки (`research/31`, `research/24`).
## 5. Самопроверка исполнением — и где этот пак мягкий
**Механизм назван:**
1. Каждое несущее утверждение о коде проверяет агент-опровергатель ИСПОЛНЕНИЕМ: проба или `go test` в замороженном
дереве, `python3` по базам, греп с печатью контрольной величины.
2. **Цитаты итога проверяются скриптом — и скрипту не верят на слово.**
- Из поиска исключается ВСЁ, что породила эта сессия: итог, протоколы, черновики агентов в
`docs/research/35-bank-memory-consilium*`. Иначе каждая цитата найдёт сама себя.
- Проверяется АТРИБУЦИЯ, а не только наличие строки: цитата стоит в НАЗВАННОМ источнике и говорит о том же
предмете.
- Число дословных — ВЕРХНЯЯ ОЦЕНКА; остаток закрывается чтением. Подстрочный поиск меряет наличие строки, а не
происхождение утверждения.
- Пример из `05`: 180 цитат → 178 дословных, но у 2 из них неверная атрибуция; 1 не найдена; 1 сводчиком не
учтена.
- **Слова владельца сверяются по первоисточнику, а не по этому промту.** Промт и выписку `06` писал оркестратор, и
сверка по ним круговая.
- Первоисточник — транскрипт сессии оркестратора
`/home/ubuntu/.claude/projects/-home-ubuntu-projects-textmachine-main/6bf42f99-b840-4396-80ac-ab93384b11dc.jsonl`.
- Строки файла считаются с 1: строка 17 — вставка разговора с прежним оркестратором; строки 878, 1042, 1094,
1296, 1362 и 1456 (сообщение из очереди) — слова 15.09.
- Транскрипт вне репозитория и умрёт с машиной; долговечная копия — `06`, сделанная скриптом.
- Цитаты владельца в этом промте опровергатель сверил с транскриптом в трёх кругах.
- В итоге называешь, по чему сверил.
3. Итог судят агенты, не участвовавшие в сведении, и хотя бы один из них — ДРУГОЙ моделью, чем автор сведения.
Проверяемый артефакт — таблица §13 (з).
**Где мягко — сюда смотри в первую очередь:**
1.**Изобрести построенное, решённое или опровергнутое** — класс, из-за которого отозваны оба прошлых проекта.
- Карта `05` — отправная точка, а не потолок: сверщики читали не всё (`synthesis.obstacles`).
- Живой пример — D5 п.1: ратифицированный ответ на заглавный кейс владельца. Карта его нашла, а ни один из двух
проектов его не использовал.
2.**Сфабрикованная сходимость.** Агенты одной модели на одном входе сходятся потому, что читали одно. Разнообразь
модели и входы. Несогласие пиши в протокол.
3.**«$0» и «центы» без прибора.**
- Что двигают `memory_version`, `NormVersion`, снапшоты волн, перекупка банк-ролей и пере-редактура — у каждого
шага цена с механизмом и файлом.
- Отдельно — порядок относительно перекроя глав: окна по ординалам, идентичность термина и главы, нормализация.
Сверка — с `CHAPTER_STRUCTURE_DESIGN.md` §4.2, рядом 161 и D39.245.
4.**Якорь на отозванном.** Тексты `02`, `04` и ответы оркестратора в `06` сильные и неверные. Автор, прочитавший их
первыми, склонен их повторить. Отдельно — «владелец назвал логичным» не делает кандидата решением (§1, последний
абзац рамки).
## 6. Оси проверки
Таблица приёмки роли оркестратора. Заменить ось можно с доводом.
- **Ресёрч / текст.** Claim-fidelity: цитаты — дословные подстроки первоисточников. Типовой провал — ОВЕР-АТРИБУЦИЯ,
а не фабрикация. Пере-открыть выборку улик. Опровергатель — другой моделью.
- **Доки.** Утверждения сверяются с кодом и живыми носителями, а не с памятью агента.
- **Замеры** (для плана §13 (г)). Пере-вывод чисел из сырья, независимость сигналов, контрольная величина рядом с
каждым нулём.
## 7. Записка-план ДО первого агента
В начале итога — раздел «План консилиума»: углы проектов, роли, раунды, пробы, что считаешь сходимостью.
## 8. Заявление = команда; дисциплина ответа
- Каждое число и каждая категорика — с командой или прибором, деревом и популяцией.
- Отрицательное утверждение («не построено», «нет читателя», «ноль») печатается с контрольной величиной рядом.
- Числа входов частью сняты только оркестратором (README входов). Опираешься на них — пере-сними тем же прибором.
- Эрудиция — не улика. У утверждения есть грунт (`file:line`, замер, D-номер с пунктом) или пометка «мнение». Мнению
не место под видом факта.
- Плотность, а не объём. Без шаблонных оговорок.
- Перед итогом сверь каждый клейм с результатом инструмента ЭТОЙ сессии. Последний абзац оказался планом — сделай
его сейчас.
## 9. Эхо-протокол старта
1. Первое действие — свой блок в `/tmp/textmachine-channel` с `role=консилиум`. Роль `оркестратор` в файле уже занята,
и второй блок с ней сделает адрес эха неоднозначным.
2. Второе — эхо на адрес блока `role=оркестратор session=textmachine-main-75`, сверив его с `ListAgents`. Не больше 10
строк СВОИМИ словами: скоуп · инварианты · чего не делаешь · что в этом промте считаешь неверным или опасным.
## 10. Что НЕ удалось и где прибор слеп — обязательная секция итога
Форма пункта: что осталось невидимым · почему не закрыл · чем закрывается. Спрашивай себя не «что не получилось», а
«что я знаю и не сказал». В коде названо, в отчёте нет — значит для следующей смены не названо.
## 11. Канал вопросов, право отказаться и правки на ходу
- Конфликт промта с кодом или ратифицированным — пинг оркестратору, а не интерпретация.
- Право сказать «этого делать не надо» с доводом у тебя есть.
- Решения владельца не принимаешь — ставишь их вопросами в итоге.
- **Правки заказа на ходу доезжают ТОЛЬКО релеем:** владелец пере-передаёт правку отдельным сообщением, ты
подтверждаешь её эхом и записываешь отдельным пунктом итога. Ответы оркестратора на твои вопросы по прямому
каналу — не правки заказа.
## 12. Прямой канал
Механизм — `CLAUDE.md` §«Связь между сессиями». Дословно: **канала нет ⇒ НЕ искать.** Нужной роли в файле нет, файла
нет или имя не отвечает — это нормальный случай. Не опрашивай сессии подряд: вопросы идут секцией итога, работа
продолжается.
## 13. Критерий завершённости
Итог `docs/research/35-bank-memory-consilium.md` содержит:
- **(а)** Решение одним документом:
- что банк есть;
- как проходит каждая проблема П1П8;
- как проходит каждый класс из рамки владельца и П4, включая ответ на «есть ли еще подобные кейсы» — перечнем
классов;
- как решение не обедняет язык: какие слова остаются свободными и чем это держится;
- как оно не взрывает кардинальность банка;
- как оно не даёт терминологу выкинуть термин, который выкидывать нельзя;
- что берётся из построенного (`file:line`) и что строится нового — с таблицей §4 п.4.
- **(б)** Трейдоффы с ценой и механизмом. Обязательно — что ломается при заморозке банка: вопрос владельца «что тут не
так пойти может?». Разбор рисков из `06` — какие держатся, какие нет и почему.
- **(в)** Порядок паков относительно перекроя глав (ряд 161, D39.245), с зонами.
- **(г)** Замеры до стройки: вопрос · арм-дизайн · популяция · контроль · цена. Каждый помечен «$0» или «нужна санкция
владельца».
- **(д)** Нужные ратификации (ноты, эрраты) и правки носителей (ряды бэклога: открыть, закрыть, дописать) — списком
предложений. Среди них — расхождение D5 п.1 и D7 правки 1 с построенным: ручная половина есть, проактивной нет.
- **(е)** Не больше пяти вопросов владельцу. Каждый — по-человечески, без трекер-жаргона, со статусом (открытое
решение с номером · отложенное · новое) и с рекомендацией.
- **(ж)** Протокол консилиума: проекты · критика · записанное несогласие · кто сошёлся и почему.
- **(з)** Проверка итога: таблица «находка → что сделано → чем предъявлено». Последний круг не дал новых находок — или
остановка правилом §4 п.5 с таблицей остатка.
- **(и)** У каждого пункта этого заказа — исход: сделано · не делаю с доводом · пинг.
- **(к)** Секция §10.
- **(л)** Числа итога сняты после последней правки. Всё живое лежит в дереве, а не в письме. Мутаций нет: пак без кода.
- **(м)** Явная строка «работа завершена, править не планирую» или «работа завершена по правилу остановки, круги не
сошлись — остаток в таблице».
**Сдача** — одно сообщение оркестратору по прямому каналу: путь итога и строка (м). Канала нет — итог и строка (м)
лежат в дереве, владелец прочитает и пере-передаст.