438 lines
49 KiB
Markdown
438 lines
49 KiB
Markdown
# Консилиум: БАНК ПАМЯТИ ДЛИННОЙ КНИГИ — как его строить
|
||
|
||
> Выдан оркестратором №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 · 406–409 ·
|
||
434 · 436 · 438–440;
|
||
- ноты ниже.
|
||
|
||
Журнал решений целиком не читать:
|
||
- тело — греп `^## 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 — 1–2 агента на сессию. П.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.
|
||
- **(л)** Числа итога сняты после последней правки. Всё живое лежит в дереве, а не в письме. Мутаций нет: пак без кода.
|
||
- **(м)** Явная строка «работа завершена, править не планирую» или «работа завершена по правилу остановки, круги не
|
||
сошлись — остаток в таблице».
|
||
|
||
**Сдача** — одно сообщение оркестратору по прямому каналу: путь итога и строка (м). Канала нет — итог и строка (м)
|
||
лежат в дереве, владелец прочитает и пере-передаст.
|