Raise eight backlog rows from the bank pack's unrecorded findings, add the sequel-transfer operational and the batch-attribution probe, and archive the consilium prompt with its outcome

This commit is contained in:
heaven 2026-09-16 23:41:56 +03:00
parent 7df34df1f4
commit 326ec86c98
10 changed files with 59 additions and 25 deletions

View file

@ -3,7 +3,7 @@
> **Единственный трекер проекта.** Здесь живут строки, на которые доки, промты и D-ноты ссылаются словами «строка N» / «строка бэклога N»: **ID строки стабилен навсегда**, не перенумеровывается и не переиспользуется (D39.80). Правки — только через оркестратора; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено. > **Единственный трекер проекта.** Здесь живут строки, на которые доки, промты и D-ноты ссылаются словами «строка N» / «строка бэклога N»: **ID строки стабилен навсегда**, не перенумеровывается и не переиспользуется (D39.80). Правки — только через оркестратора; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено.
> ⚠ **Это НЕ бэклог зоны `docs/`, а бэклог ПРОЕКТА.** У зон свои, с другими неймспейсами ID, и единый их строк не принимает (D39.84): платформа — [../platform/BACKLOG.md](../platform/BACKLOG.md) (`П-N`) и её регистр дефектов `platform/docs/DEFECT_REGISTER.md` (`PD-N`); фронт — [../frontend/docs/BACKLOG.md](../frontend/docs/BACKLOG.md) (`Ф-N`). > ⚠ **Это НЕ бэклог зоны `docs/`, а бэклог ПРОЕКТА.** У зон свои, с другими неймспейсами ID, и единый их строк не принимает (D39.84): платформа — [../platform/BACKLOG.md](../platform/BACKLOG.md) (`П-N`) и её регистр дефектов `platform/docs/DEFECT_REGISTER.md` (`PD-N`); фронт — [../frontend/docs/BACKLOG.md](../frontend/docs/BACKLOG.md) (`Ф-N`).
> ⚠ **Состояние проекта — не здесь.** Очередь, курс, CURRENT-STATE, состояние паков и живая хроника — шапка [PROGRESS.md](PROGRESS.md). Здесь только долг и его диспозиции. > ⚠ **Состояние проекта — не здесь.** Очередь, курс, CURRENT-STATE, состояние паков и живая хроника — шапка [PROGRESS.md](PROGRESS.md). Здесь только долг и его диспозиции.
> - **СЧЁТ ОЧЕРЕДИ на 16.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **347** строк · зона бэкенд **178** строго / **231** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175; **371** — актом D39.233, **360** — актом D39.232, обе 10.09), платные прогоны разблокированы · «скоро» **180** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строка эксп-22: 153 (плюс 150 — руки владельца; ⚠ 55 из гейтов СНЯТА — D39.198 п.5); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже). > - **СЧЁТ ОЧЕРЕДИ на 16.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **355** строк · зона бэкенд **186** строго / **239** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175; **371** — актом D39.233, **360** — актом D39.232, обе 10.09), платные прогоны разблокированы · «скоро» **186** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строка эксп-22: 153 (плюс 150 — руки владельца; ⚠ 55 из гейтов СНЯТА — D39.198 п.5); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже).
> - ⚠ **Переезд 06.09 (D39.218):** таблица вынесена из `PROGRESS.md` ДОСЛОВНО и ни один ID не сдвинут — **с единственным исключением: две ячейки (строки 220 и 306) тронуты РОВНО в номере якоря `docs/scripts/counts.py:566`→`:569` и `:592`→`:595`**, потому что цель сдвинул этот же коммит; текст ячеек не менялся, длины равны. В `PROGRESS.md` на прежнем месте оставлен заголовок-указатель, поэтому ссылки «секция „Бэклог“» доезжают в один хоп. > - ⚠ **Переезд 06.09 (D39.218):** таблица вынесена из `PROGRESS.md` ДОСЛОВНО и ни один ID не сдвинут — **с единственным исключением: две ячейки (строки 220 и 306) тронуты РОВНО в номере якоря `docs/scripts/counts.py:566`→`:569` и `:592`→`:595`**, потому что цель сдвинул этот же коммит; текст ячеек не менялся, длины равны. В `PROGRESS.md` на прежнем месте оставлен заголовок-указатель, поэтому ссылки «секция „Бэклог“» доезжают в один хоп.
## Бэклог (ЕДИНЫЙ, собран 26.07, актуализация 04.08 D39.99/D39.101; правки — только через оркестратора) ## Бэклог (ЕДИНЫЙ, собран 26.07, актуализация 04.08 D39.99/D39.101; правки — только через оркестратора)
@ -375,11 +375,19 @@
| 457 | **ТРИ ПРОТУХШИХ ЯКОРЯ В ДОКАХ ФРОНТ-ЗОНЫ, и две цели живы по известным адресам.** `frontend/docs/frontend-PROGRESS.md:187`=`Какое слово о состоянии книги стоит в дереве` целит в контракт по адресу 1054 — токен живёт на `docs/architecture/14-api-contract/README.md:1138`=`не различает две беды`; `frontend/docs/frontend-PROGRESS.md:190`=`Фразы отказа книги` целит в openapi по адресу 1606 — enum отказов живёт на `docs/architecture/14-api-contract/openapi.yaml:1633`=`enum: [source_unreadable, not_configured, processing_failed, content_refused]`; `frontend/docs/STACK_DECISIONS.md:263`=`pend.Source = u.sourceText()` целит в экспорт по адресу 176 — присваивание живёт на `backend/internal/pipeline/export.go:178`=`pend.Source = u.sourceText()` (замер 16.09: `sourceText()` в файле два, второе — `ce.Source` на 344, и оно про другое). ⛔ **Мёртвые адреса здесь НАЗВАНЫ СЛОВАМИ, а не якорями, и это существенно:** выписав их в форме `` `путь:строка`=`токен` ``, я воспроизвёл чужую поломку у себя — линтер прочитал их как МОИ живые якоря и дал три новых красных (8 → 11). **Документируя протухший якорь, не пиши его якорем.** ⚠ Правит их ФРОНТ: доки чужой зоны оркестратор не переписывает, а обе уехавшие цели — В МОЕЙ зоне, поэтому адреса названы здесь готовыми. ⛔ Замер 16.09: цели контракта БАЙТ-ИДЕНТИЧНЫ дереву и HEAD (README 1608 строк в обеих, `openapi.yaml` 3497 в обеих) ⇒ якоря протухли НЕ лендингом приёмки, а раньше. ⚠ И они едва не уехали в находку: контрольный прогон на HEAD показал 25 строк из 27 — линтер капит список, и «эти два якоря новые» было артефактом прибора, снятым замером | фронт | когда-нибудь | три якоря зелёные в `python3 docs/scripts/counts.py --lint` | приёмка пака «КУПЛЕНО — ЗНАЧИТ ДОСТАВЛЕНО» 16.09 (`D39.255`) | | 457 | **ТРИ ПРОТУХШИХ ЯКОРЯ В ДОКАХ ФРОНТ-ЗОНЫ, и две цели живы по известным адресам.** `frontend/docs/frontend-PROGRESS.md:187`=`Какое слово о состоянии книги стоит в дереве` целит в контракт по адресу 1054 — токен живёт на `docs/architecture/14-api-contract/README.md:1138`=`не различает две беды`; `frontend/docs/frontend-PROGRESS.md:190`=`Фразы отказа книги` целит в openapi по адресу 1606 — enum отказов живёт на `docs/architecture/14-api-contract/openapi.yaml:1633`=`enum: [source_unreadable, not_configured, processing_failed, content_refused]`; `frontend/docs/STACK_DECISIONS.md:263`=`pend.Source = u.sourceText()` целит в экспорт по адресу 176 — присваивание живёт на `backend/internal/pipeline/export.go:178`=`pend.Source = u.sourceText()` (замер 16.09: `sourceText()` в файле два, второе — `ce.Source` на 344, и оно про другое). ⛔ **Мёртвые адреса здесь НАЗВАНЫ СЛОВАМИ, а не якорями, и это существенно:** выписав их в форме `` `путь:строка`=`токен` ``, я воспроизвёл чужую поломку у себя — линтер прочитал их как МОИ живые якоря и дал три новых красных (8 → 11). **Документируя протухший якорь, не пиши его якорем.** ⚠ Правит их ФРОНТ: доки чужой зоны оркестратор не переписывает, а обе уехавшие цели — В МОЕЙ зоне, поэтому адреса названы здесь готовыми. ⛔ Замер 16.09: цели контракта БАЙТ-ИДЕНТИЧНЫ дереву и HEAD (README 1608 строк в обеих, `openapi.yaml` 3497 в обеих) ⇒ якоря протухли НЕ лендингом приёмки, а раньше. ⚠ И они едва не уехали в находку: контрольный прогон на HEAD показал 25 строк из 27 — линтер капит список, и «эти два якоря новые» было артефактом прибора, снятым замером | фронт | когда-нибудь | три якоря зелёные в `python3 docs/scripts/counts.py --lint` | приёмка пака «КУПЛЕНО — ЗНАЧИТ ДОСТАВЛЕНО» 16.09 (`D39.255`) |
| 458 | **ПЯТНАДЦАТЬ ГОЛЫХ ЯКОРЕЙ В ЖИВЫХ СТРОКАХ: путь и номер есть, ТОКЕНА ОЖИДАНИЯ нет — линтер такой якорь не читает, и «ноль жалоб» тут неотличимо от «не разобран».** Одиннадцать в `docs/BACKLOG.md` — pipeline/export.go 307 · stagerun.go 93 · seed/seed.go 24 · store/chunkstatus.go 92 · bankmaterialize.go 214 и 295 · export.go 174 и 320322 · quality.go 492 · status.go 538543 · voicerun.go 46 (⚠ у восьми нет и КОРНЯ пути, а такой якорь не ловится даже существованием файла); четыре в `docs/experiments/00-provider-quirks.md` — pipeline-c1.yaml 129 · pipeline-arm-glm.yaml 61 · pipeline-arm-deepseek-pro.yaml 62 · pipeline-arm-mistral.yaml 61. ⛔ **Адреса здесь намеренно НЕ в форме якоря:** выписав их якорями, я за одну смену ДВАЖДЫ завёл своими руками ровно тот дефект, который ряд описывает — сперва в ряду 457 с чужими протухшими целями, потом здесь, и оба раза поймал ХУК, а не я. **Перечень поломанных якорей сам якорями не пишется.****Чинить ОПТОМ нельзя:** токен, подобранный под то, что в цели ОКАЗАЛОСЬ, есть подгонка под зелень (`D39.121`) — каждый разбирается чтением прозы, которая его описывает, и половина таких разборов кончается тем, что уехала ЦЕЛЬ, а не номер. Замер 16.09 (`D39.255` п.10): пред-существуют — лендинг приёмки эти строки лишь дополнял, а ввёл он двенадцать своих, и они закрыты в тот же заход | оркестратор | когда-нибудь | у каждого якоря есть корень пути и токен; пред-коммитный хук на этих строках молчит | приёмка пака «КУПЛЕНО — ЗНАЧИТ ДОСТАВЛЕНО» 16.09 (`D39.255`) | | 458 | **ПЯТНАДЦАТЬ ГОЛЫХ ЯКОРЕЙ В ЖИВЫХ СТРОКАХ: путь и номер есть, ТОКЕНА ОЖИДАНИЯ нет — линтер такой якорь не читает, и «ноль жалоб» тут неотличимо от «не разобран».** Одиннадцать в `docs/BACKLOG.md` — pipeline/export.go 307 · stagerun.go 93 · seed/seed.go 24 · store/chunkstatus.go 92 · bankmaterialize.go 214 и 295 · export.go 174 и 320322 · quality.go 492 · status.go 538543 · voicerun.go 46 (⚠ у восьми нет и КОРНЯ пути, а такой якорь не ловится даже существованием файла); четыре в `docs/experiments/00-provider-quirks.md` — pipeline-c1.yaml 129 · pipeline-arm-glm.yaml 61 · pipeline-arm-deepseek-pro.yaml 62 · pipeline-arm-mistral.yaml 61. ⛔ **Адреса здесь намеренно НЕ в форме якоря:** выписав их якорями, я за одну смену ДВАЖДЫ завёл своими руками ровно тот дефект, который ряд описывает — сперва в ряду 457 с чужими протухшими целями, потом здесь, и оба раза поймал ХУК, а не я. **Перечень поломанных якорей сам якорями не пишется.****Чинить ОПТОМ нельзя:** токен, подобранный под то, что в цели ОКАЗАЛОСЬ, есть подгонка под зелень (`D39.121`) — каждый разбирается чтением прозы, которая его описывает, и половина таких разборов кончается тем, что уехала ЦЕЛЬ, а не номер. Замер 16.09 (`D39.255` п.10): пред-существуют — лендинг приёмки эти строки лишь дополнял, а ввёл он двенадцать своих, и они закрыты в тот же заход | оркестратор | когда-нибудь | у каждого якоря есть корень пути и токен; пред-коммитный хук на этих строках молчит | приёмка пака «КУПЛЕНО — ЗНАЧИТ ДОСТАВЛЕНО» 16.09 (`D39.255`) |
| 459 | **РАТИФИЦИРОВАННАЯ НОТА И ДЕРЕВО РАСХОДЯТСЯ ПО ОТКАЗ-СИГНАЛУ ⟦TM-NO-DST⟧, и банковый пак упрётся в это на первой же строке.** `D39.102` п.2 числит отказ-сигнал в корзине «закрыть по нужности», ратифицированной ЦЕЛИКОМ; п.3 той же ноты добавляет его в «опровергнуто/не заводится»: «NoDst-почти-сентинел на zh-ru (target_script обязателен конфигом, OffLanguage отбивает)». ⛔ **В ДЕРЕВЕ он жив и стоит на БОЕВОМ проводе zh-ru:** `backend/prompts/zh-ru/terminologist.md:36`=`не можешь выбрать перевод уверенно` велит роли вернуть сентинел и называет это нормальным исходом; парсер ждёт его вместе с искажёнными формами (`backend/internal/terminology/terminology.go:694`=`const NoDst = "⟦TM-NO-DST⟧"`, `backend/internal/terminology/terminology.go:1248`=`func isNoDst`); счёт печатается прогоном (`backend/internal/pipeline/terminologist.go:649`=`"declined", res.Declined`). Итог консилиума повторил НОТУ, а не дерево (`docs/research/35-bank-memory-consilium.md` §П3, «исхода движка „это не термин“ нет и не вводится»). ⇒ пак обязан выбрать ЯВНО: сентинел остаётся законным исходом (тогда ряд 445 — ужесточение разбора ответа) либо снимается из промта — а это двигает хеш запроса и перекупает проход на консолидированных книгах. Найдено советчиком-фаблом, проверено деревом оркестратором | бэкенд | скоро | нота и дерево говорят одно, выбор назван нотой | совет фабла 16.09 + сверка дерева оркестратором | | 459 | **РАТИФИЦИРОВАННАЯ НОТА И ДЕРЕВО РАСХОДЯТСЯ ПО ОТКАЗ-СИГНАЛУ ⟦TM-NO-DST⟧, и банковый пак упрётся в это на первой же строке.** `D39.102` п.2 числит отказ-сигнал в корзине «закрыть по нужности», ратифицированной ЦЕЛИКОМ; п.3 той же ноты добавляет его в «опровергнуто/не заводится»: «NoDst-почти-сентинел на zh-ru (target_script обязателен конфигом, OffLanguage отбивает)». ⛔ **В ДЕРЕВЕ он жив и стоит на БОЕВОМ проводе zh-ru:** `backend/prompts/zh-ru/terminologist.md:36`=`не можешь выбрать перевод уверенно` велит роли вернуть сентинел и называет это нормальным исходом; парсер ждёт его вместе с искажёнными формами (`backend/internal/terminology/terminology.go:694`=`const NoDst = "⟦TM-NO-DST⟧"`, `backend/internal/terminology/terminology.go:1248`=`func isNoDst`); счёт печатается прогоном (`backend/internal/pipeline/terminologist.go:649`=`"declined", res.Declined`). Итог консилиума повторил НОТУ, а не дерево (`docs/research/35-bank-memory-consilium.md` §П3, «исхода движка „это не термин“ нет и не вводится»). ⇒ пак обязан выбрать ЯВНО: сентинел остаётся законным исходом (тогда ряд 445 — ужесточение разбора ответа) либо снимается из промта — а это двигает хеш запроса и перекупает проход на консолидированных книгах. Найдено советчиком-фаблом, проверено деревом оркестратором | бэкенд | скоро | нота и дерево говорят одно, выбор назван нотой | совет фабла 16.09 + сверка дерева оркестратором |
| 461 | **ПЕРЕНОС БАНКА В КНИГУ-ПРОДОЛЖЕНИЕ — СТРОЙКА ПО РЕШЕНИЮ ВЛАДЕЛЬЦА `D39.256`.** Переезжают ДВА слоя: подписанное владельцем и решённое движком. ⛔ Сегодня механизма нет ВООБЩЕ: ни один из 17 не-тестовых файлов `platform/internal/books` и `httpapi` не упоминает ни сид, ни глоссарий, ни дельту, а продолжение приходит ОТДЕЛЬНОЙ книгой. Работа двухзонная: **платформа** — предложить перенос при заведении продолжения и провести выбранные слои; **движок** — форма переносимого (что именно едет: `src`/`sense`/`dst`/`gender`/`status`, и что делать с окнами `since_ch`/`until_ch`, которые нумерованы главами ДРУГОЙ книги). ⚠ Денежная сторона: перенос сокращает пожизненный пул банк-ролей тома 2 ($1+$1), а ошибочно перенесённая строка живёт во всей следующей книге — значит перенос обязан быть видимым и отменяемым, а не молчаливым. ⚠ Это первый предмет, за который платформе есть что заказать: её собственный major `PD-441` закрыт с её стороны, остальное — minor и info | платформа + бэкенд | скоро | книга-продолжение получает банк предшественницы двумя слоями, перенос виден владельцу и отменяем | `D39.256`, слово владельца 16.09 | | 461 | **ПЕРЕНОС БАНКА В КНИГУ-ПРОДОЛЖЕНИЕ — СТРОЙКА ПО РЕШЕНИЮ ВЛАДЕЛЬЦА `D39.256`.** Переезжают ДВА слоя: подписанное владельцем и решённое движком. ⛔ Сегодня механизма нет ВООБЩЕ: ни один из 17 не-тестовых файлов `platform/internal/books` и `httpapi` не упоминает ни сид, ни глоссарий, ни дельту, а продолжение приходит ОТДЕЛЬНОЙ книгой. Работа двухзонная: **платформа** — предложить перенос при заведении продолжения и провести выбранные слои; **движок** — форма переносимого (что именно едет: `src`/`sense`/`dst`/`gender`/`status`, и что делать с окнами `since_ch`/`until_ch`, которые нумерованы главами ДРУГОЙ книги). ⚠ Денежная сторона: перенос сокращает пожизненный пул банк-ролей тома 2 ($1+$1), а ошибочно перенесённая строка живёт во всей следующей книге — значит перенос обязан быть видимым и отменяемым, а не молчаливым. ⚠ Это первый предмет, за который платформе есть что заказать: её собственный major `PD-441` закрыт с её стороны, остальное — minor и info | платформа + бэкенд | скоро | книга-продолжение получает банк предшественницы двумя слоями, перенос виден владельцу и отменяем | `D39.256`, слово владельца 16.09**НАЗВАНО НЕЗАВИСИМО ДВУМЯ ИСТОЧНИКАМИ 16.09 (консилиум §1.2 N-1 и сессия пака `D39.257`): «решённое движком» НЕ СУЩЕСТВУЕТ КАК ХРАНИМЫЙ СТАТУС.** Статусов три — `auto`/`draft`/`approved`, а «решено» есть ВЫВОД, который считается на прогоне фильтром `dropBankSettled` из банка плюс черновиков, и предикат привязан к БАЗИСУ конкретной книги: он требует, чтобы отпечаток улик строки совпал с записанным, и чтобы то же было верно для всех членов её юнита. ⚠ У книги-продолжения улики другие по построению ⇒ переносится СОДЕРЖИМОЕ строки, а статус «решено» в новой книге заново НЕ наследуется: унаследованный, он утверждал бы совпадение улик, которого нет. ⇒ развилка стройки: либо переносить вывод вместе с уликами, на которых он сделан, либо заводить статус — и второе есть ратификация, а не оформление. ⚠ И третьего у строки нет вовсе: провенанса — откуда она пришла — нет ни поля, ни места. |
| 462 | **АРМ `unresolved` СЧИТАЕТСЯ ПО ЗНАМЕНАТЕЛЮ, ИЗ КОТОРОГО САМ ВЫЧТЕН — доля выходит бессмысленной, и сегодня это невидимо.** Пост-колл-знаменатель = `preCall unresolved` (`backend/cmd/tmbankprobe/main.go:324`=`rows the role ANSWERED`), а арм отбирает ровно вычтенные строки (`backend/internal/pipeline/stopcontest.go:78`=`CountUnresolved`). На купленном сырье популяция ноль ⇒ в таблице чувствительности не видно. Показано ИСПОЛНЕНИЕМ (ось приёмки, синтетический лист из двух строк): «unresolved only 1/1 = 100.0%» при двух строках листа. ⚠ Денег сегодня не стоит — платного потребителя у предиката нет вовсе, — но по этой сетке будут выбирать ПОРОГ ЗА ДЕНЬГИ, и до первого такого читателя дефект обязан уйти: либо арм считать к pre-call-знаменателю, либо печатать абсолютом без доли | бэкенд | скоро | доля арма считается по популяции, в которую он входит; пин на синтетике | `D39.257` п.5, ось денег | | 462 | **АРМ `unresolved` СЧИТАЕТСЯ ПО ЗНАМЕНАТЕЛЮ, ИЗ КОТОРОГО САМ ВЫЧТЕН — доля выходит бессмысленной, и сегодня это невидимо.** Пост-колл-знаменатель = `preCall unresolved` (`backend/cmd/tmbankprobe/main.go:324`=`rows the role ANSWERED`), а арм отбирает ровно вычтенные строки (`backend/internal/pipeline/stopcontest.go:78`=`CountUnresolved`). На купленном сырье популяция ноль ⇒ в таблице чувствительности не видно. Показано ИСПОЛНЕНИЕМ (ось приёмки, синтетический лист из двух строк): «unresolved only 1/1 = 100.0%» при двух строках листа. ⚠ Денег сегодня не стоит — платного потребителя у предиката нет вовсе, — но по этой сетке будут выбирать ПОРОГ ЗА ДЕНЬГИ, и до первого такого читателя дефект обязан уйти: либо арм считать к pre-call-знаменателю, либо печатать абсолютом без доли | бэкенд | скоро | доля арма считается по популяции, в которую он входит; пин на синтетике | `D39.257` п.5, ось денег |
| 463 | **НОВЫЙ ГАРД ЦЕЛИ ЧУВСТВИТЕЛЕН К РЕГИСТРУ, а его сосед по паку — нет.** Исполнено осью: `target="RU"``HasData=false`, `missing=[glossary_header editor_header]`; `"Ru"` и `"ru "` — то же, тогда как `DeclinePhrasesFor("RU ")` регистр и пробелы СВОРАЧИВАЕТ (`backend/internal/lang/declinephrases.go:92`=`strings.ToLower(strings.TrimSpace(targetLang))`), и это прямо запинено доводом «книга, написанная `RU`, молча остаётся без реестра». ⇒ книга с `target_lang: RU` раньше молча шла без блока, теперь НЕ СТАРТУЕТ вовсе. Живых книг с таким написанием 0 из 48 (контроль: yaml прочитано 180, конфигов книг 48, все `ru`) ⇒ риск будущей пары, не сегодняшний. Лечение — свёртка в `InjectionTextsFor`, одна строка | бэкенд | когда-нибудь | регистр цели сворачивается одинаково гардом и реестром | `D39.257` п.6 | | 463 | **НОВЫЙ ГАРД ЦЕЛИ ЧУВСТВИТЕЛЕН К РЕГИСТРУ, а его сосед по паку — нет.** Исполнено осью: `target="RU"``HasData=false`, `missing=[glossary_header editor_header]`; `"Ru"` и `"ru "` — то же, тогда как `DeclinePhrasesFor("RU ")` регистр и пробелы СВОРАЧИВАЕТ (`backend/internal/lang/declinephrases.go:92`=`strings.ToLower(strings.TrimSpace(targetLang))`), и это прямо запинено доводом «книга, написанная `RU`, молча остаётся без реестра». ⇒ книга с `target_lang: RU` раньше молча шла без блока, теперь НЕ СТАРТУЕТ вовсе. Живых книг с таким написанием 0 из 48 (контроль: yaml прочитано 180, конфигов книг 48, все `ru`) ⇒ риск будущей пары, не сегодняшний. Лечение — свёртка в `InjectionTextsFor`, одна строка | бэкенд | когда-нибудь | регистр цели сворачивается одинаково гардом и реестром | `D39.257` п.6 |
| 464 | **ДОККОММЕНТАРИЙ И ПИН СЧИТАЮТ ЧЕТЫРЕ ДВЕРИ ПРИ ПЯТИ АРМАХ.** `backend/internal/pipeline/injectionpreflight.go:24`=`rows reach a book through` перечисляет четыре (терминолог, сид, мината-дельта, авто-банк), пропуская `gates.banknote`, который в самой функции стоит вторым кейсом; тот же счёт в пине (`backend/internal/pipeline/contourpreflight_test.go:349`=`disjunction over the four doors bank rows come through`) при ПЯТИ подтестах. Заголовок отчёта «арм пять» верен — расходится проза вокруг. ⚠ Класс знакомый: комментарий, несущий ЧИСЛО, протухает молча | бэкенд | когда-нибудь | число в доккомментарии и пине равно числу арм | `D39.257` п.6 | | 464 | **ДОККОММЕНТАРИЙ И ПИН СЧИТАЮТ ЧЕТЫРЕ ДВЕРИ ПРИ ПЯТИ АРМАХ.** `backend/internal/pipeline/injectionpreflight.go:24`=`rows reach a book through` перечисляет четыре (терминолог, сид, мината-дельта, авто-банк), пропуская `gates.banknote`, который в самой функции стоит вторым кейсом; тот же счёт в пине (`backend/internal/pipeline/contourpreflight_test.go:349`=`disjunction over the four doors bank rows come through`) при ПЯТИ подтестах. Заголовок отчёта «арм пять» верен — расходится проза вокруг. ⚠ Класс знакомый: комментарий, несущий ЧИСЛО, протухает молча | бэкенд | когда-нибудь | число в доккомментарии и пине равно числу арм | `D39.257` п.6 |
| 465 | **РЕЕСТР ОТКАЗНЫХ ФРАЗ ЗАПОЛНЯЕТСЯ ТОЛЬКО С ИЗМЕРЕННОЙ ПОПУЛЯЦИЕЙ.** Сегодня лендится ПУСТЫМ и запинен пустым (`backend/internal/lang/declinephrases_test.go:22`=`TestTheDeclineRegistryShipsEmpty`), и это решение оркестратора, а не недоделка: цена ошибки несимметрична — ложное срабатывание выбрасывает ОПЛАЧЕННУЮ верную передачу, терм спрашивается заново, а ретрая у банк-ролей нет (ряд 438). Популяция на купленном сырье ноль: строк, похожих на отказ прозой, 0 из 265 (контроль осью). ⚠ Контрольная величина в отчёте названа неверно («23 строки файла» при 26) — пере-снять вместе с заполнением | бэкенд | когда-нибудь | фразы заведены вместе с замером их популяции на сырье; пин пустоты заменён пином состава | `D39.257` п.6, вопрос сессии 1 | | 465 | **РЕЕСТР ОТКАЗНЫХ ФРАЗ ЗАПОЛНЯЕТСЯ ТОЛЬКО С ИЗМЕРЕННОЙ ПОПУЛЯЦИЕЙ.** Сегодня лендится ПУСТЫМ и запинен пустым (`backend/internal/lang/declinephrases_test.go:22`=`TestTheDeclineRegistryShipsEmpty`), и это решение оркестратора, а не недоделка: цена ошибки несимметрична — ложное срабатывание выбрасывает ОПЛАЧЕННУЮ верную передачу, терм спрашивается заново, а ретрая у банк-ролей нет (ряд 438). Популяция на купленном сырье ноль: строк, похожих на отказ прозой, 0 из 265 (контроль осью). ⚠ Контрольная величина в отчёте названа неверно («23 строки файла» при 26) — пере-снять вместе с заполнением | бэкенд | когда-нибудь | фразы заведены вместе с замером их популяции на сырье; пин пустоты заменён пином состава | `D39.257` п.6, вопрос сессии 1 |
| 466 | **ПЕРСИСТЕНЦИЯ СОСТАВА БАТЧА — последний кусок вопроса «якорь против стохастики».** Тела запросов не хранятся нигде (`LOG_LLM_BODIES` пишет только в лог и только на debug), поэтому что именно менялось во входе между покупками, восстанавливается лишь частично: замер `D39.257` п.3 закрыл 25 из 26 смен, но `key` и `related` провода не восстанавливаются ничем. Форма предложена сдачей и она дешёвая: хранить не тела, а УПОРЯДОЧЕННЫЙ состав батча плюс строки якоря, ключом на `request_hash`. ⚠ Вес «скоро» потому, что на этом стоит ратифицированное `D39.256`: без записи состава якорь от стохастики не разделится никогда, сколько бы покупок ни прошло | бэкенд | скоро | состав батча и якорь пишутся ключом на хеш запроса; вопрос о якоре отвечается замером | `D39.257` п.7, вопрос сессии 2 | | 466 | **ПЕРСИСТЕНЦИЯ СОСТАВА БАТЧА — последний кусок вопроса «якорь против стохастики».** Тела запросов не хранятся нигде (`LOG_LLM_BODIES` пишет только в лог и только на debug), поэтому что именно менялось во входе между покупками, восстанавливается лишь частично: замер `D39.257` п.3 закрыл 25 из 26 смен, но `key` и `related` провода не восстанавливаются ничем. Форма предложена сдачей и она дешёвая: хранить не тела, а УПОРЯДОЧЕННЫЙ состав батча плюс строки якоря, ключом на `request_hash`. ⚠ Вес «скоро» потому, что на этом стоит ратифицированное `D39.256`: без записи состава якорь от стохастики не разделится никогда, сколько бы покупок ни прошло | бэкенд | скоро | состав батча и якорь пишутся ключом на хеш запроса; вопрос о якоре отвечается замером | `D39.257` п.7, вопрос сессии 2**НА КУПЛЕННОМ СЫРЬЕ РАЗЛИЧИТЬ НЕЛЬЗЯ СТРУКТУРНО (замер сессии пака 16.09):** проба «уже оплачено» РЕПЛЕИТ идентичный запрос вместо повторного вопроса — у одного батча терминолога прогона B хеш в обеих покупках один, а вторая строка журнала запросов несёт нулевые токены, то есть модель не спрашивали вовсе. ⇒ пары «тот же вход, второй сэмпл» движок не производит. ⭐ **Что даёт сужение за $0:** разложить 26 сменившихся строк по их батчам на три корзины — у неё двинулся якорь; двинулся состав батча; не двинулось НИЧЕГО. Третья корзина есть чистая стохастика, и если она непуста, «причина — якорь» опровергается одним числом. ⛔ **Контрольная величина обязательна:** реконструированные батчи первой покупки обязаны воспроизвести ХЕШИ из журнала запросов (по четыре вызова терминолога у A и у B) — не сошлось, значит реконструкция негодна и вторая покупка не атрибутируется. Цена — маленький пак на час-два, $0. |
| 467 | **ЛЕНДИНГ, ДВИГАЮЩИЙ СТРОКИ КОДА, ОБЯЗАН НАЗЫВАТЬ СДВИНУТЫЕ ЯКОРИ — сегодня это не норма, а случайность.** Пак `D39.257` сдвинул строки под 25 якорями живых доков (импорт + новые функции), и отчёт об этом молчал, включая секцию «проверено и дефекта не найдено». Поймала ось приёмки, перенавёл оркестратор. ⛔ Почему это не мелочь: пред-коммитный хук зовёт якорный линт **warn-only** (`docs/scripts/githooks/pre-commit`, греп `--lint`), то есть лендинг не остановится и расхождение станет нормой молча. Зона кода доки править не вправе — но НАЗВАТЬ обязана: «файл вырос на N строк выше строки X» стоит одной команды. ⇒ либо строка в промты зон, либо гейт, считающий дельту якорей до и после | оркестратор | скоро | сдача, двигающая строки, приносит список сдвинутых якорей; правит оркестратор | `D39.257` п.4 | | 467 | **ЛЕНДИНГ, ДВИГАЮЩИЙ СТРОКИ КОДА, ОБЯЗАН НАЗЫВАТЬ СДВИНУТЫЕ ЯКОРИ — сегодня это не норма, а случайность.** Пак `D39.257` сдвинул строки под 25 якорями живых доков (импорт + новые функции), и отчёт об этом молчал, включая секцию «проверено и дефекта не найдено». Поймала ось приёмки, перенавёл оркестратор. ⛔ Почему это не мелочь: пред-коммитный хук зовёт якорный линт **warn-only** (`docs/scripts/githooks/pre-commit`, греп `--lint`), то есть лендинг не остановится и расхождение станет нормой молча. Зона кода доки править не вправе — но НАЗВАТЬ обязана: «файл вырос на N строк выше строки X» стоит одной команды. ⇒ либо строка в промты зон, либо гейт, считающий дельту якорей до и после | оркестратор | скоро | сдача, двигающая строки, приносит список сдвинутых якорей; правит оркестратор | `D39.257` п.4 |
| 468 | **СЕКЦИЯ `consolidation` БАНК-СТОПА ТОЖЕ БЕЗ ЧИТАТЕЛЯ — ряд 224 накрывал только `proposed`.** Движок публикует, что банк консолидирован ЧАСТИЧНО (неотвеченные строки, выброшенные батчи), а платформа этого не читает: человек подписывает как ПОЛНЫЙ банк то, что движок сам называет неполным. ⛔ Пере-снято мной (не по чужому отчёту): `consolidat\|unanswered\|batches_dropped` по `platform/internal`**3 хита при 195 не-тестовых и тестовых .go**, и все три посторонние (подметание в `runs/sweep_test.go`, комментарии о книжных проходах в `platform/internal/pricing/pricing.go:112`=`BookOnce is the BOUND` и `platform/internal/ingest/manifest.go:97`=`classifier read the whole book`). Движковая половина закрыта 08.09 (`D39.228`), платформенная не построена. ⚠ Форма лечения названа заранее, чтобы не нарушить закон шва: бит полноты берётся ГОТОВЫМ у движка, а не выводится платформой заново (иначе это дубль движкового закона, запрещённый п.6 закона шва); поле на странице банка — минором к контракту 14. Нашёл сквозной аудит закрытости 16.09 | платформа + контракт | скоро | подписывающий видит, что банк консолидирован частично, и бит берётся у движка | аудит 16.09, смежный ряд 224 | | 468 | **СЕКЦИЯ `consolidation` БАНК-СТОПА ТОЖЕ БЕЗ ЧИТАТЕЛЯ — ряд 224 накрывал только `proposed`.** Движок публикует, что банк консолидирован ЧАСТИЧНО (неотвеченные строки, выброшенные батчи), а платформа этого не читает: человек подписывает как ПОЛНЫЙ банк то, что движок сам называет неполным. ⛔ Пере-снято мной (не по чужому отчёту): `consolidat\|unanswered\|batches_dropped` по `platform/internal`**3 хита при 195 не-тестовых и тестовых .go**, и все три посторонние (подметание в `runs/sweep_test.go`, комментарии о книжных проходах в `platform/internal/pricing/pricing.go:112`=`BookOnce is the BOUND` и `platform/internal/ingest/manifest.go:97`=`classifier read the whole book`). Движковая половина закрыта 08.09 (`D39.228`), платформенная не построена. ⚠ Форма лечения названа заранее, чтобы не нарушить закон шва: бит полноты берётся ГОТОВЫМ у движка, а не выводится платформой заново (иначе это дубль движкового закона, запрещённый п.6 закона шва); поле на странице банка — минором к контракту 14. Нашёл сквозной аудит закрытости 16.09 | платформа + контракт | скоро | подписывающий видит, что банк консолидирован частично, и бит берётся у движка | аудит 16.09, смежный ряд 224 |
| 469 | **ДВА КОМПАРАТОРА ОДНОГО БИНАРЯ ДАЮТ РАЗНЫЕ ЧИСЛА НА ОДНОМ СЫРЬЕ.** `-passes A` печатает «12 of 69», `-compare A-pass1,A-pass2` — «13 of 69»: второй засчитывает сменой строку, решённую банком. Доккомментарий `backend/cmd/tmbankprobe/main.go:440`=`the §4.4 instrument` зовёт вторым прибором именно тот, чьё число в акт НЕ попало. Ряд 462 этого не покрывает — там только арм `unresolved`. ⚠ На этом же стоит эррата 16.09-в: пока числа расходятся, любая ссылка на «знаменатель §4.4» двусмысленна | бэкенд | скоро | оба компаратора на одном сырье дают одно число либо расхождение объявлено и названо в справке | сессия пака D39.257, ответ на вопрос оркестратора 16.09 |
| 470 | **РИДЕР ТАБЛИЦЫ СТОПА МОЛЧА ТЕРЯЕТ ДАННЫЕ, А КОММЕНТАРИЙ УТВЕРЖДАЕТ ОБРАТНОЕ.** Строка-продолжение контекста, начинающаяся с ` why: `, разбирается как ПОЛЕ: `Signals` перезаписаны, хвост контекста потерян, счёт строк цел, ошибки нет. ⛔ Комментарий `backend/internal/pipeline/bankstopparse.go:109` утверждает, что случай ловит проверка объявленного счёта — опровергатель показал ИСПОЛНЕНИЕМ, что не ловит. Комментарий, несущий ложный вывод, опаснее самой потери: он закрывает вопрос, не задав его | бэкенд | скоро | вход со строкой-продолжением разбирается верно либо отвергается громко; комментарий говорит то, что делает код | сессия пака D39.257, её собственный адверсариальный круг |
| 471 | **КОНТРОЛЬ `conventions carried` НЕСЁТ ДВА СМЫСЛА В ДВУХ ЗАГРУЗЧИКАХ:** у листа это `Conventions > 0`, у JSON — присутствие поля. Один и тот же файл этот класс прямо запрещает для `conf`, то есть правило в нём уже сформулировано и нарушено соседней строкой | бэкенд | когда-нибудь | контроль отвечает на один вопрос в обоих загрузчиках | сессия пака D39.257, ответ 16.09 |
| 472 | **`immutable=1` НИЧЕМ НЕ ЗАПИНЕН** — ни тестом, ни мутацией, ни рядом, хотя на нём держится обещание «харнесс никогда не пишет в купленную улику». Замерено сессией: `mode=ro` без него оставил рядом с уликой файл `-shm`, то есть открытие БЕЗ флага уликой уже не безобидно | бэкенд | скоро | обещание неприкосновенности улики стережёт пин, а не дисциплина читающего | сессия пака D39.257, ответ 16.09 |
| 473 | **ПРИБОР НЕ ПЕЧАТАЕТ КОНТРОЛЬ, НА КОТОРЫЙ ССЫЛАЕТСЯ АКТ.** Утверждение «компаратор не слеп — движение входа есть у 4 из 56 и 8 из 51 НЕ менявшихся строк» верно и пере-снято поимённо, но сданный `tmbankprobe` его не считает: оба компаратора сравнивают вход только у СМЕНИВШИХСЯ строк, и для пере-снятия понадобилась отдельная программа на 90 строк. ⚠ Это контроль отрицательного замера — ровно то, что канон требует ПЕЧАТАТЬ, а не упоминать; в приборе он стоит три строки | бэкенд | скоро | контрольная величина печатается самим прибором, а не восстанавливается сторонней программой | сессия пака D39.257, ответ 16.09 |
| 474 | **ПОЛОВИНЧАТЫЙ НАБОР ТЕКСТОВ ИНЪЕКЦИИ НЕ ЗАПИНЕН СКВОЗНО.** Предикат полноты запинен на байтах в `internal/lang`, но проводка проверена только на цели, где строк нет ВОВСЕ; цель с `glossary_header` и без `editor_header` сквозным тестом не покрыта. Причина названа честно (в embedded-данных ровно одна цель `ru`, синтетическая вторая пере-чеканила бы unit id каждой книги) — и всё же ветка, ради которой строился громкий отказ, остаётся без сквозного пина | бэкенд | скоро | цель с половинным набором ловится сквозным тестом либо невозможность этого записана носителем | сессия пака D39.257, её §10 |
| 475 | **УЛИКИ ПРОГОНА A НЕЧИТАЕМЫ ДВИЖКОВЫМ СТОРОМ, И НОСИТЕЛЯ ЭТОГО ФАКТА НЕТ НИГДЕ.** База прогона A несёт схему 16 при голове 18: `OpenReadOnly` отказывает, а `Open` МИГРИРУЕТ, то есть уничтожает улику при попытке её прочесть. Свойство архива, а не дефект кода — но следующий, кто захочет реплей, потратит час, чтобы это выяснить, и рискует испортить сырьё | бэкенд | когда-нибудь | способ читать старые прогоны назван носителем; опасность миграции при чтении объявлена рядом с ней | сессия пака D39.257, её §10 |
| 476 | **ДЕНЬГИ ВТОРОГО ВЫЗОВА НЕ ПОСЧИТАНЫ:** сетка чувствительности даёт число СТРОК, а не сумму, поэтому «сколько стоит включить второй вызов» сегодня не отвечается ничем. Предмет пака-маршрутизатора, но сегодня он не записан нигде, и по этой же сетке будут выбирать порог за деньги | бэкенд | скоро | рядом с числом строк стоит их цена | сессия пака D39.257, её §10 |

View file

@ -28,7 +28,7 @@
| **Бэкенд · КУПЛЕНО — ЗНАЧИТ ДОСТАВЛЕНО** | активного НЕТ | пак ОТРАБОТАН и **ПРИНЯТ 16.09 С НАЗВАННЫМ ОСТАТКОМ** — акт **`D39.255`**; промт в [archive/prompts/](archive/prompts/BACKEND_BOUGHT_MEANS_DELIVERED_SESSION_PROMPT.md) с баннером-исходом. Лендинг `af88680`, 29 путей, $0. Закрыты строки **291** и **379** (вторая — ЗАМЕРОМ: мутант 8/8 против 7/8 в ряду). ⛔ Пак пережил ПОТЕРЮ сессии: `textmachine-b1` построила почти всё и исчезла при переезде окружения, доводила `textmachine-main-b1` разделом ПЕРЕДАЧИ ред. 5. ⚠ Остаток — строки **375** · **232** · **453****456**; три опубликованных ключа качества сменили смысл (п.5 акта). **Слот бэкенда СВОБОДЕН** | | **Бэкенд · КУПЛЕНО — ЗНАЧИТ ДОСТАВЛЕНО** | активного НЕТ | пак ОТРАБОТАН и **ПРИНЯТ 16.09 С НАЗВАННЫМ ОСТАТКОМ** — акт **`D39.255`**; промт в [archive/prompts/](archive/prompts/BACKEND_BOUGHT_MEANS_DELIVERED_SESSION_PROMPT.md) с баннером-исходом. Лендинг `af88680`, 29 путей, $0. Закрыты строки **291** и **379** (вторая — ЗАМЕРОМ: мутант 8/8 против 7/8 в ряду). ⛔ Пак пережил ПОТЕРЮ сессии: `textmachine-b1` построила почти всё и исчезла при переезде окружения, доводила `textmachine-main-b1` разделом ПЕРЕДАЧИ ред. 5. ⚠ Остаток — строки **375** · **232** · **453****456**; три опубликованных ключа качества сменили смысл (п.5 акта). **Слот бэкенда СВОБОДЕН** |
| Сквозной · ХОЛОДНЫЙ ПРОГОН B | активного НЕТ | пак ОТРАБОТАН и **ПРИНЯТ 11.09** — акт **D39.252**; промт в [archive/prompts/](archive/prompts/COLD_RUN_B_SESSION_PROMPT.md) с баннером-исходом. Книга второй раз от двери до ФАЙЛА, факт **$0.396657**. ⭐ Две меры денежной дыры разошлись в РАЗНЫЕ стороны на одних данных; **85.7 % оплаченного выхода — размышление, а не текст**. ⛔ Прибор приоритета №1 солгал вердиктом по подписанному имени героя. Качество впервые судилось по ОРИГИНАЛУ рядом с переводом: 26 находок, 1 крит | | Сквозной · ХОЛОДНЫЙ ПРОГОН B | активного НЕТ | пак ОТРАБОТАН и **ПРИНЯТ 11.09** — акт **D39.252**; промт в [archive/prompts/](archive/prompts/COLD_RUN_B_SESSION_PROMPT.md) с баннером-исходом. Книга второй раз от двери до ФАЙЛА, факт **$0.396657**. ⭐ Две меры денежной дыры разошлись в РАЗНЫЕ стороны на одних данных; **85.7 % оплаченного выхода — размышление, а не текст**. ⛔ Прибор приоритета №1 солгал вердиктом по подписанному имени героя. Качество впервые судилось по ОРИГИНАЛУ рядом с переводом: 26 находок, 1 крит |
| Оркестратор | [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) | роль и нормы; счётчик роли — CURRENT-STATE | | Оркестратор | [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) | роль и нормы; счётчик роли — CURRENT-STATE |
| Консилиум · БАНК ПАМЯТИ ДЛИННОЙ КНИГИ | [BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md](BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md) | пак ОТРАБОТАН и **ПРИНЯТ 16.09 С ДОФИКСОМ И ОСТАТКОМ** — акт **`D39.253`**; итог — [research/35-bank-memory-consilium.md](research/35-bank-memory-consilium.md), ход работы и таблица проверки — `research/35-bank-memory-consilium/00-protocol.md`. Сдан по правилу остановки (три круга: 2·21·34 → 0·16·17 → 1·7·13); приёмка — пять осей вне консилиума, 50 находок, дофикс и узкий закрывающий круг. Пять вопросов владельцу — §6 итога. Не пак кодовой зоны: совет агентов (Fable 5 — 12), $0 по моделям проекта, пишет только `research/35-bank-memory-consilium.md` и одноимённый каталог. Входы — [archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/](archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/README.md): отозванный проект оркестратора и сверка того, что репозиторий уже решил и построил по банку | | Консилиум · БАНК ПАМЯТИ ДЛИННОЙ КНИГИ | [archive/prompts/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md](archive/prompts/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md) | пак ОТРАБОТАН и **ПРИНЯТ 16.09 С ДОФИКСОМ И ОСТАТКОМ** — акт **`D39.253`**; итог — [research/35-bank-memory-consilium.md](research/35-bank-memory-consilium.md), ход работы и таблица проверки — `research/35-bank-memory-consilium/00-protocol.md`. Сдан по правилу остановки (три круга: 2·21·34 → 0·16·17 → 1·7·13); приёмка — пять осей вне консилиума, 50 находок, дофикс и узкий закрывающий круг. Пять вопросов владельцу — §6 итога. Не пак кодовой зоны: совет агентов (Fable 5 — 12), $0 по моделям проекта, пишет только `research/35-bank-memory-consilium.md` и одноимённый каталог. Входы — [archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/](archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/README.md): отозванный проект оркестратора и сверка того, что репозиторий уже решил и построил по банку |
| Бэкенд · ДВЕ ОСТАНОВКИ | активного НЕТ | пак ОТМЕНЁН ВЛАДЕЛЬЦЕМ 10.09 до лендинга — акт **D39.240**; промт в `archive/prompts/` с баннером. Причина — размах правки, не качество. ⚠ Предмет ЗАМЕНЁН и сузился: остановка остаётся жёсткой, **деньги терять допустимо**, но она обязана быть КОРРЕКТНОЙ (без гонок, без половинчатых состояний, верное возобновление). ⭐ Пак успел купить `D39.236``D39.238` и строку **385** | | Бэкенд · ДВЕ ОСТАНОВКИ | активного НЕТ | пак ОТМЕНЁН ВЛАДЕЛЬЦЕМ 10.09 до лендинга — акт **D39.240**; промт в `archive/prompts/` с баннером. Причина — размах правки, не качество. ⚠ Предмет ЗАМЕНЁН и сузился: остановка остаётся жёсткой, **деньги терять допустимо**, но она обязана быть КОРРЕКТНОЙ (без гонок, без половинчатых состояний, верное возобновление). ⭐ Пак успел купить `D39.236``D39.238` и строку **385** |
| Платформа · ДВЕ ОСТАНОВКИ | активного НЕТ | пак ОТМЕНЁН ВЛАДЕЛЬЦЕМ 10.09 до лендинга — акт **D39.240**; промт в `archive/prompts/` с баннером. Причина — размах правки, не качество. ⚠ Предмет ЗАМЕНЁН и сузился: остановка остаётся жёсткой, **деньги терять допустимо**, но она обязана быть КОРРЕКТНОЙ (без гонок, без половинчатых состояний, верное возобновление). ⭐ Пак успел купить `D39.236``D39.238` и строку **385** | | Платформа · ДВЕ ОСТАНОВКИ | активного НЕТ | пак ОТМЕНЁН ВЛАДЕЛЬЦЕМ 10.09 до лендинга — акт **D39.240**; промт в `archive/prompts/` с баннером. Причина — размах правки, не качество. ⚠ Предмет ЗАМЕНЁН и сузился: остановка остаётся жёсткой, **деньги терять допустимо**, но она обязана быть КОРРЕКТНОЙ (без гонок, без половинчатых состояний, верное возобновление). ⭐ Пак успел купить `D39.236``D39.238` и строку **385** |
| Бэкенд · ВЫЗОВ, КОТОРЫЙ ОБОРВАЛИ МЫ | активного НЕТ | пак ОТРАБОТАН и **ПРИНЯТ 10.09** — акт **D39.232** (`3f05fab`, 28 путей, $0); промт в `archive/prompts/` с баннером-исходом. Движок перестал платить дважды за одну генерацию; закрыты строки 360 · 369 · 78. Восемь кругов ревью; приёмка двумя рубежами нашла пять выживших мутаций на носителях ВИДИМОСТИ денег. Живое из остатков — **375** · **376** · **377** (⚠ форма испр. 10.09: здесь стоял ДИАПАЗОН «374377», а 374 закрыта — диапазон о закрытии ряда внутри себя не узнаёт, поэтому в этой таблице только перечисления) | | Бэкенд · ВЫЗОВ, КОТОРЫЙ ОБОРВАЛИ МЫ | активного НЕТ | пак ОТРАБОТАН и **ПРИНЯТ 10.09** — акт **D39.232** (`3f05fab`, 28 путей, $0); промт в `archive/prompts/` с баннером-исходом. Движок перестал платить дважды за одну генерацию; закрыты строки 360 · 369 · 78. Восемь кругов ревью; приёмка двумя рубежами нашла пять выживших мутаций на носителях ВИДИМОСТИ денег. Живое из остатков — **375** · **376** · **377** (⚠ форма испр. 10.09: здесь стоял ДИАПАЗОН «374377», а 374 закрыта — диапазон о закрытии ряда внутри себя не узнаёт, поэтому в этой таблице только перечисления) |

View file

@ -3930,3 +3930,9 @@ bought NOTHING». ⇒ **`tmctl manifest` есть НИЖНЯЯ граница,
> ⭐ Класс для памяти: **вывод, записанный в ноту, живёт дольше замера, которым он был получен** — и потому в ноте > ⭐ Класс для памяти: **вывод, записанный в ноту, живёт дольше замера, которым он был получен** — и потому в ноте
> утверждение обязано быть не сильнее прибора, даже когда «и так понятно». > утверждение обязано быть не сильнее прибора, даже когда «и так понятно».
> ⚠ **Эррата 16.09-в — к п.5 и §4.4: знаменатель описан в ПРОШЕДШЕМ времени, а починки нет.** Названа самой сессией пака
> в ответ на мой вопрос. Исправлено было ЧИСЛО в тексте отчёта, но код печатает прежнее «12 of 69» до сих пор ⇒ формулировка
> читается как «дефект устранён», тогда как устранена только его запись. Носитель починки — ряд **469** (два компаратора
> одного бинаря дают разные числа на одном сырье). ⚠ Чинится эрратой к акту, а НЕ правкой кода задним числом: акт
> описывает то, что было принято, и подгонять его под желаемое нельзя.

View file

@ -1,4 +1,13 @@
# Консилиум: БАНК ПАМЯТИ ДЛИННОЙ КНИГИ — как его строить # Консилиум: БАНК ПАМЯТИ ДЛИННОЙ КНИГИ — как его строить
> ⚠ **ОТРАБОТАН И ПРИНЯТ 16.09 — акт `D39.253`.** Итог — `../research/35-bank-memory-consilium.md` плюс одноимённый
> каталог. Инструкции ниже НЕ исполняются: пак закрыт. Решения владельца по итогу — `D39.254`; перенос банка в
> книгу-продолжение подписанным плюс решённым движком — `D39.256`, стройка двухзонная, ряд **461**.
> **Остаток, названный автором 16.09:** вторая форма строки (м) по правилу остановки · отказы Р1-10 и О1-10 с доводом ·
> §8.3 О-1 (правки круга 3 ни одним кругом не судились), О-2 (цена «лечится выборкой» названа механизмом, не величиной),
> О-4 (у прохода починки нет собственного прибора). О-3 закрыт словом владельца и снят автором.
> ⚠ **Эррата 16.09-б:** «причина смен передачи — якорь» сильнее замера — измерено лишь отсутствие новой улики во ВХОДЕ;
> причина остаётся гипотезой, гейт — ряд **466**. Автор поправил обе формулировки в итоге по этому же поводу.
> Выдан оркестратором №23 (продолжение, сессия `textmachine-main-75`) 16.09 по слову владельца 15.09: «передавай дела > Выдан оркестратором №23 (продолжение, сессия `textmachine-main-75`) 16.09 по слову владельца 15.09: «передавай дела
> сессии, пусть наследуется от тебя». Ты наследуешь работу этой смены по банку. Всё, что она выяснила, спроектировала и > сессии, пусть наследуется от тебя». Ты наследуешь работу этой смены по банку. Всё, что она выяснила, спроектировала и

View file

@ -62,7 +62,7 @@
| платформа | — | — | 🟢 **СЛОТ СВОБОДЕН** — пак принят актом `D39.250`, минор 0.15.0 | | платформа | — | — | 🟢 **СЛОТ СВОБОДЕН** — пак принят актом `D39.250`, минор 0.15.0 |
| полигон | — | — | ⛔ **ЗАКАЗ СНЯТ ВЛАДЕЛЬЦЕМ 11.09** («полигон не надо выдавать»); промт готов и лежит, пере-выдача — только его словом | | полигон | — | — | ⛔ **ЗАКАЗ СНЯТ ВЛАДЕЛЬЦЕМ 11.09** («полигон не надо выдавать»); промт готов и лежит, пере-выдача — только его словом |
| сквозной (вне кодовых зон) | — | — | ✅ **ЗАКРЫТ актом `D39.252`** 11.09; промт в архиве с баннером. Стенд поднят до конца приёмки, гасить по pid | | сквозной (вне кодовых зон) | — | — | ✅ **ЗАКРЫТ актом `D39.252`** 11.09; промт в архиве с баннером. Стенд поднят до конца приёмки, гасить по pid |
| консилиум банка (вне кодовых зон) | `BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md` | textmachine-main-1e | ✅ **ЗАКРЫТ актом `D39.253`** 16.09 с дофиксом и остатком; итог `research/35`, ряды 441450 заведены. Пять вопросов ждут владельца | | консилиум банка (вне кодовых зон) | `archive/prompts/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md` | textmachine-main-1e | ✅ **ЗАКРЫТ актом `D39.253`** 16.09 с дофиксом и остатком; итог `research/35`, ряды 441450 заведены. Пять вопросов ждут владельца |
| фронт | заморожен | — | разморозка по критерию `NEAR_TERM_PLAN.md` | | фронт | заморожен | — | разморозка по критерию `NEAR_TERM_PLAN.md` |
**Резерв израсходован: `textmachine-61` получила пак о падениях 11.09, как только слот освободился актом `D39.249`.** **Резерв израсходован: `textmachine-61` получила пак о падениях 11.09, как только слот освободился актом `D39.249`.**

View file

@ -1,6 +1,6 @@
# 35. Банк памяти длинной книги — решение консилиума # 35. Банк памяти длинной книги — решение консилиума
> ⚠ **СТАТУС: В РАБОТЕ (16.09).** Итог консилиума по заказу `docs/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md` > ⚠ **СТАТУС: В РАБОТЕ (16.09).** Итог консилиума по заказу `docs/archive/prompts/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md`
> (коммит `bbbea00`), сессия `textmachine-main-1e`. Пока стоит эта строка, документ — план и черновик, а не > (коммит `bbbea00`), сессия `textmachine-main-1e`. Пока стоит эта строка, документ — план и черновик, а не
> решение. Фактура, не ратифицировано: при конфликте побеждает журнал решений. Лендит оркестратор. > решение. Фактура, не ратифицировано: при конфликте побеждает журнал решений. Лендит оркестратор.
@ -86,7 +86,7 @@
0. Угол и что сознательно не делается. 0. Угол и что сознательно не делается.
1. Что такое банк. 1. Что такое банк.
2. Как проходит каждая из П1П8. 2. Как проходит каждая из П1П8.
3. Классы «сущность меняется по ходу книги» и перечень ответа на «есть ли ещё подобные». 3. Классы «сущность меняется по ходу книги» и перечень ответа на есть ли ещё подобные.
4. Три опасения владельца: язык · кардинальность · выкинутый термин. 4. Три опасения владельца: язык · кардинальность · выкинутый термин.
5. Что берётся из построенного (`file:line`) и что строится нового — с таблицей §4 п.4 на каждый новый механизм. 5. Что берётся из построенного (`file:line`) и что строится нового — с таблицей §4 п.4 на каждый новый механизм.
6. Трейдоффы с ценой, механизмом и файлом; отдельно — что ломается при заморозке. 6. Трейдоффы с ценой, механизмом и файлом; отдельно — что ломается при заморозке.
@ -193,7 +193,9 @@
**Почему не спрашивать модель заново при каждой покупке, как сейчас.** **Почему не спрашивать модель заново при каждой покупке, как сейчас.**
- Проверка исполнением показала: у 25 из 26 терминов, сменивших перевод между двумя проходами, новой информации о книге не - Проверка исполнением показала: у 25 из 26 терминов, сменивших перевод между двумя проходами, новой информации о книге не
было. Изменилось другое — соседи по запросу и якорь подписи (K1 q10). было — вход был байт-идентичным, включая окна контекстов. ⚠ **Что именно сменило ответ, НЕ измерено:** состав запроса
и якорь подписи менялись, но отделить их влияние от случайности модели нечем — тела запросов нигде не хранятся. Причина
остаётся гипотезой, и гейт под неё — ряд 466 (поправка оркестратора 16.09).
- Контексты и частоты терминолог и так берёт по всей книге уже на первой покупке. Платформа отдаёт движку книгу целиком - Контексты и частоты терминолог и так берёт по всей книге уже на первой покупке. Платформа отдаёт движку книгу целиком
(K1 p5, q9). (K1 p5, q9).
- На длинной книге такая пере-покупка съедает пожизненный бюджет банковых ролей примерно за 616 покупок (оценка K4 З5, - На длинной книге такая пере-покупка съедает пожизненный бюджет банковых ролей примерно за 616 покупок (оценка K4 З5,
@ -356,7 +358,10 @@
- ⛔ **Метки спора у решённых строк продолжают считаться — иначе фильтр глушит споры** (блокер 6 критика `03`, K2 В4). - ⛔ **Метки спора у решённых строк продолжают считаться — иначе фильтр глушит споры** (блокер 6 критика `03`, K2 В4).
- Построено это уже сегодня для строк, снятых банком: `SettledByBank` печатает «NOT ASKED…» (`mining.go:408`, `:550`), - Построено это уже сегодня для строк, снятых банком: `SettledByBank` печатает «NOT ASKED…» (`mining.go:408`, `:550`),
рядом идут `CONTRADICTS` (`:557`) и «THE BANK ALREADY HOLDS» (`:560`). рядом идут `CONTRADICTS` (`:557`) и «THE BANK ALREADY HOLDS» (`:560`).
- ⚠ **Для УДЕРЖАННЫХ строк метка сегодня не считается — это работа в объёме N-1, а не построенное.** `BankHoldRows` - ⭐ **ПОСТРОЕНО ПОСЛЕ СДАЧИ:** пак D39.257 (`bc3981d`, 16.09) завёл ДВА предиката «спорный». ⚠ Платного потребителя
у них пока нет — то есть считать метку научились, а на провод и в карту подписи она ещё не идёт; это и есть остаток
работы в объёме N-1. Ниже — состояние на момент сдачи итога, оно объясняет, почему предикаты понадобились.
- ⚠ **Для УДЕРЖАННЫХ строк метка на момент сдачи не считалась — это работа в объёме N-1, а не построенное.** `BankHoldRows`
и `SelfConflictRows` заполняются из `consolidatedRows` (`terminologist.go:576`, `:585`), а тот пропускает кандидата и `SelfConflictRows` заполняются из `consolidatedRows` (`terminologist.go:576`, `:585`), а тот пропускает кандидата
с пустым консолидированным `dst` (`:1047-1050`) — у не спрошенной строки его нет. Место для счёта есть: таблица с пустым консолидированным `dst` (`:1047-1050`) — у не спрошенной строки его нет. Место для счёта есть: таблица
стопа строится по ВСЕМ кандидатам (`mining.go:458-466`), считать надо `Variants` против удержанной передачи. стопа строится по ВСЕМ кандидатам (`mining.go:458-466`), считать надо `Variants` против удержанной передачи.
@ -577,7 +582,7 @@ RIDES EVERY CONTINUATION» (`platform/internal/runs/runs.go:433`), соглас
— там нужен другой признак, его нет (K5). — там нужен другой признак, его нет (K5).
- **Свёртки написания** — две работы в окне перекроя, обе данные (K5): - **Свёртки написания** — две работы в окне перекроя, обе данные (K5):
1. перенос таблицы трад.→упрощ. из ядра в данные; 1. перенос таблицы трад.→упрощ. из ядра в данные;
2. схема «замены целевой орфографии» вместо литерала ё→е (ряд 14). 2. схема замены целевой орфографии вместо литерала ё→е (ряд 14).
- ⛔ **Куда выносить — не вкус, но и не спасение от цены.** - ⛔ **Куда выносить — не вкус, но и не спасение от цены.**
- **Цена правки таблицы сегодня одна и та же в любой плоскости:** версия свёрток входит в `NormVersion`, а он — в тег - **Цена правки таблицы сегодня одна и та же в любой плоскости:** версия свёрток входит в `NormVersion`, а он — в тег
нарезки и ключ манифеста (`manifest.go:282`, `:384`). Любая правка таблицы перекраивает книгу, и $0-репина у свёрток нарезки и ключ манифеста (`manifest.go:282`, `:384`). Любая правка таблицы перекраивает книгу, и $0-репина у свёрток
@ -762,6 +767,10 @@ RIDES EVERY CONTINUATION» (`platform/internal/runs/runs.go:433`), соглас
**Почему нужен новый.** Сегодня это молчание при потраченных деньгах банк-ролей. **Почему нужен новый.** Сегодня это молчание при потраченных деньгах банк-ролей.
**ПОСТРОЕНО ПОСЛЕ СДАЧИ ИТОГА — механизм больше не нужен как новый.** Пак D39.257 (`bc3981d`, 16.09) поставил громкий
отказ ДО первой траты: книга, у чьей цели нет строк инъекции, банк-роли молча не покупает — гейт стоит в `openRunner`
(`pipeline/runner.go:389`, `checkInjectionTexts`). ⇒ N-4 и пункт Б-1 закрыты стройкой, а не остаются заказом.
**N-5. Детектор расщепления «он/она» → `hidden`.** **N-5. Детектор расщепления «он/она» → `hidden`.**
| статус | что есть | адрес | | статус | что есть | адрес |
@ -995,7 +1004,7 @@ D39.190 п.4 · `NEAR_TERM_PLAN.md` п.10.
| 0-M2 | **бэкенд** | M2 — расширение прибора ряда 330 (снять два пропуска, экспортировать `minKeyLenFor`), затем прогон | до пака 1 | ⚠ поправка приёмки: в прежней редакции M2 стоял в ресёрч-паке как $0. Прибор уже ключуется как просит вопрос, поэтому без правки `membank` вернёт ноль по построению. От M2 зависит довод пак 1 $0 по снапшотам: он стоит на неизмеренной популяции книг с двойником | | 0-M2 | **бэкенд** | M2 — расширение прибора ряда 330 (снять два пропуска, экспортировать `minKeyLenFor`), затем прогон | до пака 1 | ⚠ поправка приёмки: в прежней редакции M2 стоял в ресёрч-паке как $0. Прибор уже ключуется как просит вопрос, поэтому без правки `membank` вернёт ноль по построению. От M2 зависит довод пак 1 $0 по снапшотам: он стоит на неизмеренной популяции книг с двойником |
| 0-бис | оркестратор | ноты Д-1 (директива рода), Д-3, Д-4, Д-5, Д-6, Д-7 | сразу | без Д-1 нельзя включать N-5; прочее снимает противоречия, на которых стоят пак 1 и порядок | | 0-бис | оркестратор | ноты Д-1 (директива рода), Д-3, Д-4, Д-5, Д-6, Д-7 | сразу | без Д-1 нельзя включать N-5; прочее снимает противоречия, на которых стоят пак 1 и порядок |
| 0-тер | **владелец, затем бэкенд** | ответ на В4 (выборка контекстов); при «да» — стройка Б-11 | ДО пака 1 | выборка входит в отпечаток: ответ «да» после пака 1 обнуляет набор решённых у каждой книги, консолидированной в промежутке, и та тратит остаток ПОЖИЗНЕННОГО потолка на пере-консолидацию, а при нехватке остаётся без банка (ряд 356). ⚠ И ответ «да» некому исполнить: стратифицированного отбора в коде нет (контроль: 0 совпадений `stratif` при 161 не-тестовом Go-файле `internal/terminology` и `internal/pipeline`) — нужна стройка Б-11. Дешевле спросить сейчас, чем платить потом (K4, K5, C; круг R4) | | 0-тер | **владелец, затем бэкенд** | ответ на В4 (выборка контекстов); при «да» — стройка Б-11 | ДО пака 1 | выборка входит в отпечаток: ответ «да» после пака 1 обнуляет набор решённых у каждой книги, консолидированной в промежутке, и та тратит остаток ПОЖИЗНЕННОГО потолка на пере-консолидацию, а при нехватке остаётся без банка (ряд 356). ⚠ И ответ «да» некому исполнить: стратифицированного отбора в коде нет (контроль: 0 совпадений `stratif` при 161 не-тестовом Go-файле `internal/terminology` и `internal/pipeline`) — нужна стройка Б-11. Дешевле спросить сейчас, чем платить потом (K4, K5, C; круг R4) |
| 1 | **бэкенд** | **«Банк: решённое остаётся решённым»** — N-1 (вместе со свёрнутым в него N-2), N-3, N-4, N-6, N-7, поведенческая правка Б-5 (не гигиена: у неё своя строка в §2.0) и гигиена комментариев (Б-2, Б-3), плюс Б-8 | ДО стройки ряда 161, когда освободится слот бэкенда (сейчас занят 5(а)) | (а) план п.10: «перекрой глав без якоря пере-решил бы банк платной книги»; (б) адрес по содержимому предусловием не является (K1 q8); (в) пак не двигает `NormVersion`, не трогает `TermID` и не создаёт авторских окон. ⚠ **Единственный ключ, который он ДВИГАЕТ, — `memory_version`,** на книгах с двойником (N-3) и на затронутых строках Б-5; это названо в §2.0 и раньше здесь умалчивалось. Довод, почему это всё равно $0 по снапшотам: D39.190 п.4. ⚠ Довод держится на популяции «книги с двойником ключа», которая НЕ ИЗМЕРЕНА — её и должен померить M2, а M2 сегодня вырожден (§4) | | 1 | **бэкенд** | **«Банк: решённое остаётся решённым»** — N-1 (вместе со свёрнутым в него N-2), N-3, N-4, N-6, N-7, поведенческая правка Б-5 (не гигиена: у неё своя строка в §2.0) и гигиена комментариев (Б-2, Б-3), плюс Б-8 | ДО стройки ряда 161, когда освободится слот бэкенда (сейчас занят 5(а)) | (а) план п.10: «перекрой глав без якоря пере-решил бы банк платной книги»; (б) адрес по содержимому предусловием не является (K1 q8); (в) пак не двигает `NormVersion`, не трогает `TermID` и не создаёт авторских окон. ⚠ **Единственный ключ, который он ДВИГАЕТ, — `memory_version`,** на книгах с двойником (N-3) и на затронутых строках Б-5; это названо в §2.0 и раньше здесь умалчивалось. Довод, почему это всё равно $0 по снапшотам: D39.190 п.4. ⚠ Довод держится на популяции книги с двойником ключа, которая НЕ ИЗМЕРЕНА — её и должен померить M2, а M2 сегодня вырожден (§4) |
| 2 | **бэкенд** | N-5 — детектор и `hidden`, данные в плоскости bankdata | после M3 и ноты Д-1 | точность не мерена; директива противоречит D5 п.1 | | 2 | **бэкенд** | N-5 — детектор и `hidden`, данные в плоскости bankdata | после M3 и ноты Д-1 | точность не мерена; директива противоречит D5 п.1 |
| 3 | **бэкенд + платформа аддитивно** | ряд 161: окна на chapter-ID, контент-адресуемый resume (D15.2, этап Б), свёртки в данные (П8), заголовок `injection.txt:6`, оговорка области при положительной пробе, провод голоса при непустых профилях | в окно перекроя, одним касанием (ряд 182, D39.224 п.4(б)) | всё это двигает крой, ключ манифеста или `RequestHash` пары; порознь — несколько пере-снапшотов | | 3 | **бэкенд + платформа аддитивно** | ряд 161: окна на chapter-ID, контент-адресуемый resume (D15.2, этап Б), свёртки в данные (П8), заголовок `injection.txt:6`, оговорка области при положительной пробе, провод голоса при непустых профилях | в окно перекроя, одним касанием (ряд 182, D39.224 п.4(б)) | всё это двигает крой, ключ манифеста или `RequestHash` пары; порознь — несколько пере-снапшотов |
| — | **платформа** | ряд 224: читатель секции `proposed`, плюс факт: на первом стопе read-out несёт 0 термов | по разморозке фронта | сегодня у экрана подписи нет источника предложений (K1 p6) | | — | **платформа** | ряд 224: читатель секции `proposed`, плюс факт: на первом стопе read-out несёт 0 термов | по разморозке фронта | сегодня у экрана подписи нет источника предложений (K1 p6) |
@ -1059,7 +1068,7 @@ D39.190 п.4 · `NEAR_TERM_PLAN.md` п.10.
| ~~Д-15~~ | ⚠ **Снято в круге R4 (K2): эрраты не нужно, расхождение УЖЕ снято ратифицированно.** D39.248 п.1: «⭐ ГОЛОС ВХОДИТ В ПРИОРИТЕТ №1. Слово владельца дословно: «Входит». Снято расхождение, жившее с 05.09 … Теперь это одно требование». Протух не журнал решений, а НОСИТЕЛЬ — ряд 24, писанный по D39.198 п.5 до 11.09. Ушло в правки носителей, Н-9. Форма «приоритет №3 ИЗ ТРЁХ» — тоже из ряда 24, в теле ноты стоит просто «Голос — приоритет №3» | — | | ~~Д-15~~ | ⚠ **Снято в круге R4 (K2): эрраты не нужно, расхождение УЖЕ снято ратифицированно.** D39.248 п.1: «⭐ ГОЛОС ВХОДИТ В ПРИОРИТЕТ №1. Слово владельца дословно: «Входит». Снято расхождение, жившее с 05.09 … Теперь это одно требование». Протух не журнал решений, а НОСИТЕЛЬ — ряд 24, писанный по D39.198 п.5 до 11.09. Ушло в правки носителей, Н-9. Форма «приоритет №3 ИЗ ТРЁХ» — тоже из ряда 24, в теле ноты стоит просто «Голос — приоритет №3» | — |
| Д-18 | ⚠ **D39.205 п.5 — ратифицированное направление, которого итог не касался:** «или флагать, или ПЕРЕГЕНЕРИРОВАТЬ проблемный участок» — работа, которой сегодня НЕТ. К банку она примыкает прямо: когда закон банка сменился задним числом, выбор между «пометить» и «перегенерировать кусок» — это и есть форма пере-редактуры, которую §1.2 П7 считает по юнитам. Решение её не проектирует и не отменяет | назвать в ноте, что банк-пак этого направления не трогает, чтобы следующая смена не сочла молчание отказом | | Д-18 | ⚠ **D39.205 п.5 — ратифицированное направление, которого итог не касался:** «или флагать, или ПЕРЕГЕНЕРИРОВАТЬ проблемный участок» — работа, которой сегодня НЕТ. К банку она примыкает прямо: когда закон банка сменился задним числом, выбор между «пометить» и «перегенерировать кусок» — это и есть форма пере-редактуры, которую §1.2 П7 считает по юнитам. Решение её не проектирует и не отменяет | назвать в ноте, что банк-пак этого направления не трогает, чтобы следующая смена не сочла молчание отказом |
| Д-17 | ⚠ **Проверено приёмкой и НЕ меняет Д-6, но должно быть названо:** область D39.144 п.1 сужена явно — владелец 28.08 снял запрет с «открыть дверь к уже построенному движковому механизму». Однако сужение не трогает то, на чём стоит Д-6: продуктовый цикл пост-ридинга — отдельная ручка «перегенерировать», `resnapshot --dry-run` и **доезд правки до ЧЕРНОВИКА через сид** — прямо назван остающимся гейченным полигоном, а полигон выведен из скоупа D39.248 п.4. ⇒ ряд 192 по-прежнему недостижим, Д-6 в силе | назвать сужение в самой ноте Д-6, чтобы следующая смена не сочла его отменой | | Д-17 | ⚠ **Проверено приёмкой и НЕ меняет Д-6, но должно быть названо:** область D39.144 п.1 сужена явно — владелец 28.08 снял запрет с «открыть дверь к уже построенному движковому механизму». Однако сужение не трогает то, на чём стоит Д-6: продуктовый цикл пост-ридинга — отдельная ручка «перегенерировать», `resnapshot --dry-run` и **доезд правки до ЧЕРНОВИКА через сид** — прямо назван остающимся гейченным полигоном, а полигон выведен из скоупа D39.248 п.4. ⇒ ряд 192 по-прежнему недостижим, Д-6 в силе | назвать сужение в самой ноте Д-6, чтобы следующая смена не сочла его отменой |
| Д-16 | D39.71 закрыл Q1 («автономный канон-пин родового слова МЕЖДУ прогонами») словами «не строить», а отчёт-источник писал мягче — «Реком: НЕ сейчас; вернуться на МАСШТАБЕ» | ⚠ **Это нота против ноты, и приёмка показала, на чьей стороне слово владельца:** отсрочка «вернуться на МАСШТАБЕ» не просто лежит в отчёте — диспозиция Q1 стоит в ноте ОТВЕТОВ ВЛАДЕЛЬЦА (D39.70), то есть ратифицирована его словом. ⇒ решать надо не «верить ли отчёту», а какая из двух нот живая. Масштаб длинной книги — это и есть названное условие возврата. Пока запрет действует, якорь строится только из подписанных строк | | Д-16 | D39.71 закрыл Q1 («автономный канон-пин родового слова МЕЖДУ прогонами») словами «не строить», а отчёт-источник писал мягче — «Реком: НЕ сейчас; вернуться на МАСШТАБЕ» | ⚠ **Это нота против ноты, и приёмка показала, на чьей стороне слово владельца:** отсрочка «вернуться на МАСШТАБЕ» не просто лежит в отчёте — диспозиция Q1 стоит в ноте ОТВЕТОВ ВЛАДЕЛЬЦА (D39.70), то есть ратифицирована его словом. ⇒ решать надо не верить ли отчёту, а какая из двух нот живая. Масштаб длинной книги — это и есть названное условие возврата. Пока запрет действует, якорь строится только из подписанных строк |
**Правки носителей — доки.** **Правки носителей — доки.**
@ -1080,12 +1089,12 @@ D39.190 п.4 · `NEAR_TERM_PLAN.md` п.10.
| # | предмет | | # | предмет |
|---|---| |---|---|
| Б-1 | громкий гейт на условие `банк включён ∧ у цели нет текстов инъекции` (N-4) | | ~~Б-1~~ | ⭐ **ПОСТРОЕНО** паком D39.257 (`bc3981d`, 16.09): отказ стоит в `openRunner` до первого платного вызова (`pipeline/runner.go:389`, `checkInjectionTexts`). Заказом больше не является |
| Б-2 | `volume.go:341` «stops loudly» расходится с поведением | | Б-2 | `volume.go:341` «stops loudly» расходится с поведением |
| Б-3 | устаревшие комментарии: `miner_emit.go:224-227`, `terminologist.go:33`, справка `--verify-bank`, `mining.go:212-213`, `memory.go:819-822`, заголовок `injection.txt:6` про пометку ⟨проверить⟩ | | Б-3 | устаревшие комментарии: `miner_emit.go:224-227`, `terminologist.go:33`, справка `--verify-bank`, `mining.go:212-213`, `memory.go:819-822`, заголовок `injection.txt:6` про пометку ⟨проверить⟩ |
| Б-4 | ложная атрибуция D19.3 в `membank/memory.go:947` — вместе с Д-1. ⚠ `internal/terminology/classify.go:43` НЕ чинить: там D19.3 пересказан верно; спорна соседняя строка `:45` «It stays a human datum, entered in the seed», и спорит она с D5 п.1 о производителе `hidden` (поправка K2, круг R4) | | Б-4 | ложная атрибуция D19.3 в `membank/memory.go:947` — вместе с Д-1. ⚠ `internal/terminology/classify.go:43` НЕ чинить: там D19.3 пересказан верно; спорна соседняя строка `:45` «It stays a human datum, entered in the seed», и спорит она с D5 п.1 о производителе `hidden` (поправка K2, круг R4) |
| ~~Б-10~~ | ⚠ **Нового ряда НЕ заводить — поправка приёмки.** Первая половина предмета уже лежит открытым рядом 38 («смета не видит пере-покупку прохода терминолога на каждой итерации подписи»), и ряд 323 маршрутизирует туда же. Новое здесь только второе: порог согласия считается без контура НАРОЧНО («⛔ THE CONSENT THRESHOLD IS COMPUTED WITHOUT THE CONTOUR», `rebill.go:425`), и чинить надо публикуемую проекцию, а не порог. ⇒ **дописка к ряду 38**, не новая строка бэклога | | ~~Б-10~~ | ⚠ **Нового ряда НЕ заводить — поправка приёмки.** Первая половина предмета уже лежит открытым рядом 38 («смета не видит пере-покупку прохода терминолога на каждой итерации подписи»), и ряд 323 маршрутизирует туда же. Новое здесь только второе: порог согласия считается без контура НАРОЧНО («⛔ THE CONSENT THRESHOLD IS COMPUTED WITHOUT THE CONTOUR», `rebill.go:425`), и чинить надо публикуемую проекцию, а не порог. ⇒ **дописка к ряду 38**, не новая строка бэклога |
| Б-5 | отказ прозой становится передачей: неотвеченными считать и `dst` без букв, **и отказную фразу**у автора A предмет назван обеими половинами, у меня вторая терялась (поправка J, круг 3). ⚠ **Это не гигиена комментариев, а поведенческая правка на денежном пути** (K4, круг R4): она меняет содержимое банка, а с ним `memory_version` и пере-редактуру под согласием. Популяция сегодня нулевая (0 из 69 и 0 из 66 при контроле 69/69 и 66/66), на длинной книге у бюджетного потолка — нет | | ~~Б-5~~ | ⭐ **ПОСТРОЕНО** паком D39.257 (`bc3981d`, 16.09): отказ роли и мусор разведены по разным корзинам, то есть «отказ прозой становится передачей» больше не проходит. Предмет был назван обеими половинами — `dst` без букв **и отказная фраза**; у меня вторая терялась (поправка J, круг 3). ⚠ **Это не гигиена комментариев, а поведенческая правка на денежном пути** (K4, круг R4): она меняет содержимое банка, а с ним `memory_version` и пере-редактуру под согласием. Популяция сегодня нулевая (0 из 69 и 0 из 66 при контроле 69/69 и 66/66), на длинной книге у бюджетного потолка — нет |
| Б-6 | П8: таблица свёрток — в данные языка источника; схема замен целевой орфографии вместо литерала ё→е (ряд 14). **Переносить ЦЕЛИКОМ, по правилу «пустой реестр — инертный no-op»**, как у построенных образцов: «a script with NO rows here leaves the family channel INERT» (`family-morphology.txt`) и «a target with none gets an inert stemmer» (`stemmer.go`). Иначе исполнитель вынесет `trad2simp` и оставит арифметику каны и литерал ё→е внутри Go — тот же класс дефекта под новым именем (K5, круг R4) | | Б-6 | П8: таблица свёрток — в данные языка источника; схема замен целевой орфографии вместо литерала ё→е (ряд 14). **Переносить ЦЕЛИКОМ, по правилу «пустой реестр — инертный no-op»**, как у построенных образцов: «a script with NO rows here leaves the family channel INERT» (`family-morphology.txt`) и «a target with none gets an inert stemmer» (`stemmer.go`). Иначе исполнитель вынесет `trad2simp` и оставит арифметику каны и литерал ё→е внутри Go — тот же класс дефекта под новым именем (K5, круг R4) |
| Б-7 | подписанный `古月山寨` снова спрашивается у терминолога во втором проходе и оплачивается (K1) | | Б-7 | подписанный `古月山寨` снова спрашивается у терминолога во втором проходе и оплачивается (K1) |
| Б-8 | предупреждение о разовой цене консолидации — «This is a ONE-TIME cost; every later run replays for $0» (`terminologist.go:498`, условие `:491`) — после N-1 станет лгать: часть решена, часть оплачена будет обычным состоянием КАЖДОЙ покупки. Пере-формулировать под N-1 («пере-спрошено N из M по смене улики») и запинить текст. ⚠ Гарантия образца держится только на безусловности фильтра (`:1166-1167`) — беря у образца форму, надо взять и её (K4, круг R4) | | Б-8 | предупреждение о разовой цене консолидации — «This is a ONE-TIME cost; every later run replays for $0» (`terminologist.go:498`, условие `:491`) — после N-1 станет лгать: часть решена, часть оплачена будет обычным состоянием КАЖДОЙ покупки. Пере-формулировать под N-1 («пере-спрошено N из M по смене улики») и запинить текст. ⚠ Гарантия образца держится только на безусловности фильтра (`:1166-1167`) — беря у образца форму, надо взять и её (K4, круг R4) |
@ -1105,7 +1114,9 @@ D39.190 п.4 · `NEAR_TERM_PLAN.md` п.10.
### В1. Держать ли решение банка между покупками — открытое решение, ряд 130 ### В1. Держать ли решение банка между покупками — открытое решение, ряд 130
**Что сейчас.** На каждой докупке движок заново спрашивает модель обо всех терминах. Проверка показала: у 25 из 26 **Что сейчас.** На каждой докупке движок заново спрашивает модель обо всех терминах. Проверка показала: у 25 из 26
поменявшихся переводов новой информации о книге не было — поменялись соседи в запросе и ваша подпись соседнего термина. поменявшихся переводов новой информации о книге не было: вход был тот же до байта. ⚠ Почему ответ всё-таки менялся —
мы пока не знаем: менялись и соседи в запросе, и ваша подпись соседнего термина, но отделить это от случайности модели
нечем, пока не хранится состав запроса. Для решения это не важно — важно, что новых сведений о книге не появлялось.
Контексты движок и так берёт по всей книге сразу. Контексты движок и так берёт по всей книге сразу.
**Что предлагаем.** Решение держится, пока не случилось событие: вы подписали или отклонили родственный термин, поправили **Что предлагаем.** Решение держится, пока не случилось событие: вы подписали или отклонили родственный термин, поправили
@ -1445,7 +1456,7 @@ D39.50 (просьба владельца против «до него kwic не
| м-3 | K4 | минор | §2.3 ссылался на Б-4 вместо заведённого Б-10 | внесено | | м-3 | K4 | минор | §2.3 ссылался на Б-4 вместо заведённого Б-10 | внесено |
| м-4 | K4 | минор | у M-тела нет механизма поставить переменную на одну покупку | внесено | | м-4 | K4 | минор | у M-тела нет механизма поставить переменную на одну покупку | внесено |
| м-5 | K4 | минор | цене переупаковка хвоста нужна величина | внесено: 4/4 · 2/4 · 0/4 по позиции, верх — весь проход | | м-5 | K4 | минор | цене переупаковка хвоста нужна величина | внесено: 4/4 · 2/4 · 0/4 по позиции, верх — весь проход |
| м-6 | K5 | минор | §1.0 говорило «единственное частное условие», а их два | внесено | | м-6 | K5 | минор | §1.0 говорило единственное частное условие, а их два | внесено |
| м-7 | K3 | минор | адрес `owner-src/L1094.txt` у цитаты в §1.0 | ⚠ **объявлено сделанным и НЕ сделано** (S-7); внесено в круге дофикса | | м-7 | K3 | минор | адрес `owner-src/L1094.txt` у цитаты в §1.0 | ⚠ **объявлено сделанным и НЕ сделано** (S-7); внесено в круге дофикса |
| м-8 | K2 | минор | ссылка на гейт N-5 вела к Б-2 вместо Д-1 | ⚠ **объявлено сделанным и НЕ сделано** (S-7-бис); внесено в круге дофикса | | м-8 | K2 | минор | ссылка на гейт N-5 вела к Б-2 вместо Д-1 | ⚠ **объявлено сделанным и НЕ сделано** (S-7-бис); внесено в круге дофикса |
| м-9 | J | минор | точка роста набора — запись базиса, а не подпись | внесено вместе с C3-K1a: названы обе точки | | м-9 | J | минор | точка роста набора — запись базиса, а не подпись | внесено вместе с C3-K1a: названы обе точки |
@ -1478,7 +1489,7 @@ D39.50 (просьба владельца против «до него kwic не
|---|---|---|---| |---|---|---|---|
| О-1 | **все правки по кругу 3 — включая сворачивание N-2 в N-1 — ни одним кругом не судились** | три круга — потолок заказа, четвёртого нет | круг проверки следующей смены; предмет назван поимённо в этой таблице | | О-1 | **все правки по кругу 3 — включая сворачивание N-2 в N-1 — ни одним кругом не судились** | три круга — потолок заказа, четвёртого нет | круг проверки следующей смены; предмет назван поимённо в этой таблице |
| О-2 | цена лечится выборкой названа механизмом, но не величиной | величина требует замера M4, а он требует стройки Б-11 и санкции владельца | В4 → Б-11 → M4 | | О-2 | цена лечится выборкой названа механизмом, но не величиной | величина требует замера M4, а он требует стройки Б-11 и санкции владельца | В4 → Б-11 → M4 |
| О-3 | ответ владельца на В1 о переносе банка в книгу-продолжение — без умолчания | умолчание, которое я предложил, оказалось пустым для некурированной книги | слово владельца | | ~~О-3~~ | ⭐ **ЗАКРЫТ 16.09 владельцем:** «переносим подписанное плюс решённое движком», ратифицировано `D39.256`; носитель стройки — ряд 461 (платформа проводит перенос, движок определяет форму слоя). Остатком больше не является. Ниже — как он выглядел на момент сдачи: умолчание, которое я предложил, оказалось пустым для некурированной книги | слово владельца |
| О-4 | ⚠ у моего прохода починки нет собственного прибора | дважды за смену я отчитался о правке, которой не сделал | следующая смена: после каждого прохода — греп по каждому объявленному месту, а не по черновику | | О-4 | ⚠ у моего прохода починки нет собственного прибора | дважды за смену я отчитался о правке, которой не сделал | следующая смена: после каждого прохода — греп по каждому объявленному месту, а не по черновику |
### 8.4 Круг дофикса по приёмке оркестратора — исход каждой находки ### 8.4 Круг дофикса по приёмке оркестратора — исход каждой находки
@ -1592,9 +1603,9 @@ D39.50 (просьба владельца против «до него kwic не
| величина | сколько | прибор | | величина | сколько | прибор |
|---|---|---| |---|---|---|
| итог | **1624 строки** · ≈ 155 тыс. знаков | **`wc -l`** — и прибор назван нарочно: мой прежний питон считал `count('\n')+1` и давал 1625, потому что файл кончается переводом строки. Разошлись мы с приёмкой ровно на эту единицу; прав `wc -l`. ⚠ Знаки даны порядком: строка сама лежит в файле, и каждая её правка сдвигает величину, которую она объявляет — две итерации точного числа дали +407 и +104 знака | | итог | **1684 строки** · ≈ 160 тыс. знаков — срез после ответа на вопросы оркестратора 16.09 (три его пометки плюс мои правки по паку D39.257 и решению D39.256) | **`wc -l`** — и прибор назван нарочно: мой прежний питон считал `count('\n')+1` и давал 1625, потому что файл кончается переводом строки. Разошлись мы с приёмкой ровно на эту единицу; прав `wc -l`. ⚠ Знаки даны порядком: строка сама лежит в файле, и каждая её правка сдвигает величину, которую она объявляет — две итерации точного числа дали +407 и +104 знака |
| каталог консилиума | 46 файлов · 930 609 знаков | `find` + `python3` | | каталог консилиума | 46 файлов · 932 180 знаков | `find` + `python3` |
| цитаты итога | 248: EXACT 146 · NORM 29 · CI 17 · FRAGS 7 · NOTFOUND 49 | `verify_quotes.py` v2.1; каталог консилиума исключён из корпуса по построению, поэтому цитаты из файлов агентов найтись НЕ могут — им проставлены адреса | | цитаты итога | 259: EXACT 152 · NORM 29 · CI 21 · FRAGS 8 · NOTFOUND 49 | `verify_quotes.py` v2.1; каталог консилиума исключён из корпуса по построению, поэтому цитаты из файлов агентов найтись НЕ могут — им проставлены адреса |
| разрывы внутри markdown-таблиц | 0 | `python3`, соседство пустой строки с рядами | | разрывы внутри markdown-таблиц | 0 | `python3`, соседство пустой строки с рядами |
| агентов поднято | 9 — A, B, C, K1, K2, K3, K4, K5, J | счёт протокола | | агентов поднято | 9 — A, B, C, K1, K2, K3, K4, K5, J | счёт протокола |
| из них Fable 5 | 2 из 2 разрешённых — C (проект) и J (судья) | там же | | из них Fable 5 | 2 из 2 разрешённых — C (проект) и J (судья) | там же |
@ -1603,7 +1614,7 @@ D39.50 (просьба владельца против «до него kwic не
| находки приёмки оркестратора | 14 мажоров · 38 миноров; исход каждой — §8.4 | пять осей, пять агентов вне консилиума | | находки приёмки оркестратора | 14 мажоров · 38 миноров; исход каждой — §8.4 | пять осей, пять агентов вне консилиума |
| мои собственные ошибки | **9 меток, 11 строк** — S-1 … S-8 плюс S-7-бис; S-1…S-5 и П-5, П-9 в §8, S-6 в §8.1, S-7, S-7-бис и S-8 в §8.3 (счёт поправлен приёмкой) | таблицы §8, §8.1, §8.3 | | мои собственные ошибки | **9 меток, 11 строк** — S-1 … S-8 плюс S-7-бис; S-1…S-5 и П-5, П-9 в §8, S-6 в §8.1, S-7, S-7-бис и S-8 в §8.3 (счёт поправлен приёмкой) | таблицы §8, §8.1, §8.3 |
| замороженное дерево | `status --short` — 0 строк, HEAD `5dbb5cb` | git, только чтение | | замороженное дерево | `status --short` — 0 строк, HEAD `5dbb5cb` | git, только чтение |
| главное дерево | HEAD уехал со `27091c3` на `d5834dc`**коммит не мой:** его сделал оркестратор, правя заказ и README входов по моему же списку (д); моей зоны он не касается (0 совпадений в `--stat`) | ⇒ **коммитов этой сессии: 0**, и доказывает это не совпадение HEAD, а прямой прибор: `git log --all -- <мои два пути>` даёт **0 коммитов**, а файлы в дереве untracked | | главное дерево | HEAD уехал со `27091c3` на `d5834dc`**коммит не мой:** его сделал оркестратор, правя заказ и README входов по моему же списку (д); моей зоны он не касается (0 совпадений в `--stat`) | ⇒ **коммитов этой сессии: 0.** ⚠ Прибор пришлось сменить дважды, и это стоит назвать. «HEAD тот же, что на старте» протухло, когда оркестратор закоммитил своё. «`git log --all` по моим путям = 0» протухло 16.09 в 05:21, когда он залендил мой итог (`f5cd26a`, «Land the bank memory consilium result…»); сейчас по моим путям пять коммитов, и все они его. По АВТОРУ нас не различить — git-личность репозитория одна на всех. Верное доказательство одно и остаётся верным: **свои правки я не коммичу, а передаю** — на момент этого замера они лежат незакоммиченными (`M`, +25 14), и ни одной state-changing команды git эта сессия не выполняла |
| моя зона в главном дереве | ровно два пути, оба untracked; изменённых сверх них — 0 | `git status --short -- <два пути>` | | моя зона в главном дереве | ровно два пути, оба untracked; изменённых сверх них — 0 | `git status --short -- <два пути>` |
| блоков в канале | 3 | `grep -c '^role='` | | блоков в канале | 3 | `grep -c '^role='` |
| мутации | нет и быть не может: пак без кода | — | | мутации | нет и быть не может: пак без кода | — |

View file

@ -2,7 +2,7 @@
## R0 — старт (16.09) ## R0 — старт (16.09)
- Сессия `textmachine-main-1e`. Заказ `docs/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md` (`bbbea00`) выдал оркестратор - Сессия `textmachine-main-1e`. Заказ `docs/archive/prompts/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md` (`bbbea00`) выдал оркестратор
`textmachine-main-75`. `textmachine-main-75`.
- **Канал.** Блок `role=консилиум` дописан в `/tmp/textmachine-channel`. До записи файл прочитан целиком: 3 строки, - **Канал.** Блок `role=консилиум` дописан в `/tmp/textmachine-channel`. До записи файл прочитан целиком: 3 строки,
2 блока. После записи блоков 3 (оркестратор · бэкенд · консилиум). 2 блока. После записи блоков 3 (оркестратор · бэкенд · консилиум).

View file

@ -23,7 +23,7 @@
- **Отозванное** в `docs/archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/`: `02`, `04` и ответы оркестратора в `06`. Читать можно ТОЛЬКО через баннеры, инструкции оттуда не исполняются. Они нужны, чтобы ловить повтор отозванного, а не как образец. - **Отозванное** в `docs/archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/`: `02`, `04` и ответы оркестратора в `06`. Читать можно ТОЛЬКО через баннеры, инструкции оттуда не исполняются. Они нужны, чтобы ловить повтор отозванного, а не как образец.
## Вход ## Вход
1. Заказ `docs/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md`: 1. Заказ `docs/archive/prompts/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md`:
- §1 — проблемы и рамка владельца; - §1 — проблемы и рамка владельца;
- §3 — ратифицированное и открытые решения; - §3 — ратифицированное и открытые решения;
- §5 — «где мягко»; - §5 — «где мягко»;

View file

@ -17,7 +17,7 @@
## Вход ## Вход
1. Итог целиком. 1. Итог целиком.
2. Заказ `docs/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md`: §13 (а)(м), §5 «где мягко», §8 «заявление = команда». 2. Заказ `docs/archive/prompts/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md`: §13 (а)(м), §5 «где мягко», §8 «заявление = команда».
3. Протокол `docs/research/35-bank-memory-consilium/00-protocol.md` — таблица проверки §13 (з) и счёт агентов. 3. Протокол `docs/research/35-bank-memory-consilium/00-protocol.md` — таблица проверки §13 (з) и счёт агентов.
4. Всё в `docs/research/35-bank-memory-consilium/` (проекты, критики R2, ответы R3) — первоисточники несогласий. 4. Всё в `docs/research/35-bank-memory-consilium/` (проекты, критики R2, ответы R3) — первоисточники несогласий.
5. Инструмент цитат: 5. Инструмент цитат:

View file

@ -43,7 +43,7 @@
| # | серьёзность | раздел | что утверждает проект (цитата) | почему это неверно или опасно | что исправит | | # | серьёзность | раздел | что утверждает проект (цитата) | почему это неверно или опасно | что исправит |
|---|---|---|---|---|---| |---|---|---|---|---|---|
| B1 | блокер | §2 П1 «Что я меняю» | «а РАСШИРЯЮ этот же фильтр на решения ДВИЖКА при ДВУХ условиях… Стабильный термин без сигнала спора не пере-спрашивается» (дословно, `r1-project-B.md`, §2 П1) — механизм отвечает ровно на «накопительный мердж авто-банка между прогонами» (этими же словами ряд 130 описан в собственной таблице проекта A, `r1-project-A.md:395`); при этом ряд 130 (BACKLOG) — единственная открытая позиция бэклога про это ровно решение (`docs/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md:239-242`: «СТОП-решение владельца; материал — WARN второго прогона») — не упомянут В ФАЙЛЕ НИ РАЗУ (контроль: `grep -c '130\b' r1-project-B.md` = 0), не входит и в пять вопросов §9 | Заказ прямо требует: «Не решает ли проект за владельца то, что открыто: ряд 130…» (§3 моего брифа) и это же — класс ошибки, из-за которого отозваны ОБА прошлых проекта банка (`docs/archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/README.md:16-19`: «опирался примерно на десятую часть… не назвал ни одного расхождения»). B цитирует смежные ряды 38/233 (адрес батча по содержимому — предусловие) корректно, но подменяет ими ряд 130: адресация батча не решает, копить ли решение движка МЕЖДУ покупками — это ДРУГОЙ вопрос, и он у владельца открыт со своим гейтом (WARN второго прогона), которого проект не ждёт и не называет | Назвать ряд 130 прямо, поставить механизм П1 вопросом со статусом «открытое, ряд 130» и рекомендацией (как это сделали A и C), а не встраивать решение молча | | B1 | блокер | §2 П1 «Что я меняю» | «а РАСШИРЯЮ этот же фильтр на решения ДВИЖКА при ДВУХ условиях… Стабильный термин без сигнала спора не пере-спрашивается» (дословно, `r1-project-B.md`, §2 П1) — механизм отвечает ровно на «накопительный мердж авто-банка между прогонами» (этими же словами ряд 130 описан в собственной таблице проекта A, `r1-project-A.md:395`); при этом ряд 130 (BACKLOG) — единственная открытая позиция бэклога про это ровно решение (`docs/archive/prompts/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md:239-242`: «СТОП-решение владельца; материал — WARN второго прогона») — не упомянут В ФАЙЛЕ НИ РАЗУ (контроль: `grep -c '130\b' r1-project-B.md` = 0), не входит и в пять вопросов §9 | Заказ прямо требует: «Не решает ли проект за владельца то, что открыто: ряд 130…» (§3 моего брифа) и это же — класс ошибки, из-за которого отозваны ОБА прошлых проекта банка (`docs/archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/README.md:16-19`: «опирался примерно на десятую часть… не назвал ни одного расхождения»). B цитирует смежные ряды 38/233 (адрес батча по содержимому — предусловие) корректно, но подменяет ими ряд 130: адресация батча не решает, копить ли решение движка МЕЖДУ покупками — это ДРУГОЙ вопрос, и он у владельца открыт со своим гейтом (WARN второго прогона), которого проект не ждёт и не называет | Назвать ряд 130 прямо, поставить механизм П1 вопросом со статусом «открытое, ряд 130» и рекомендацией (как это сделали A и C), а не встраивать решение молча |
| B2 | серьёзное | §2 П2 | Ответ на «族长 и 族長 это точно одинаковый термин?» начинается сразу с «Отвечает НЕ хранилище, а ТО, ЧТО ВИДИТ терминолог. Сегодня 族長 и 族长 — это ДВА разных кандидата (сырой ключ)…» | Заказ явно требует ответ «человеческими словами» на этот дословный вопрос владельца (§13(а) заказа консилиума; п.2 моего брифа). A и C оба открывают с прямым «да, одно слово, две системы письма (как «ё»/«е»)»; B этот шаг пропускает и сразу уходит в техническую рамку «что видит терминолог» | Добавить одну явную фразу простым языком до технического разбора | | B2 | серьёзное | §2 П2 | Ответ на «族长 и 族長 это точно одинаковый термин?» начинается сразу с «Отвечает НЕ хранилище, а ТО, ЧТО ВИДИТ терминолог. Сегодня 族長 и 族长 — это ДВА разных кандидата (сырой ключ)…» | Заказ явно требует ответ «человеческими словами» на этот дословный вопрос владельца (§13(а) заказа консилиума; п.2 моего брифа). A и C оба открывают с прямым «да, одно слово, две системы письма (как «ё»/«е»)»; B этот шаг пропускает и сразу уходит в техническую рамку «что видит терминолог» | Добавить одну явную фразу простым языком до технического разбора |
| B3 | серьёзное | §0, §3, §8, §9 | Собственный угол назван и раскрыт термином «автономность» (D39.59 п.2) на протяжении всего файла — «автономный дефолт», «автономный угол», колонка таблицы «Проходит ли автономно?» (`r1-project-B.md`, ~10 вхождений «автоном») | D39.67 п.(1) — ратифицированное переименование ИМЕННО этого курса словами владельца: «термин «автономность банка» ЗАМЕНЁН на «КАЧЕСТВО БАНКА» (формула владельца: «какая разница, автономен ли банк — не подсовывать же плохой банк на подпись, чтобы владелец всё исправлял»)» (`r1-prior-art-K2.md`, D39.67). Проект ни разу не цитирует D39.67 и держит колонку главной таблицы классов именно на вопросе «автономно?», то есть выставляет автономность мерилом успеха — ровно то мерило, которое владелец лично отверг | Заменить рамку «автономно/нет» на «даёт ли банк ВЕРНЫЙ перевод без правки» — по букве D39.67; сослаться на переименование | | B3 | серьёзное | §0, §3, §8, §9 | Собственный угол назван и раскрыт термином «автономность» (D39.59 п.2) на протяжении всего файла — «автономный дефолт», «автономный угол», колонка таблицы «Проходит ли автономно?» (`r1-project-B.md`, ~10 вхождений «автоном») | D39.67 п.(1) — ратифицированное переименование ИМЕННО этого курса словами владельца: «термин «автономность банка» ЗАМЕНЁН на «КАЧЕСТВО БАНКА» (формула владельца: «какая разница, автономен ли банк — не подсовывать же плохой банк на подпись, чтобы владелец всё исправлял»)» (`r1-prior-art-K2.md`, D39.67). Проект ни разу не цитирует D39.67 и держит колонку главной таблицы классов именно на вопросе «автономно?», то есть выставляет автономность мерилом успеха — ровно то мерило, которое владелец лично отверг | Заменить рамку «автономно/нет» на «даёт ли банк ВЕРНЫЙ перевод без правки» — по букве D39.67; сослаться на переименование |
| B4 | минор | §6.2 | «первый (наименее информированный) перевод лочится на 1000 глав» (риск B1) | Точная строка реестра (`06-memory-risk-registry.md:44`): «...перевод **имени** лочится на 1000 глав» — слово «имени» выпало, обобщение риска шире исходного | Дословная цитата | | B4 | минор | §6.2 | «первый (наименее информированный) перевод лочится на 1000 глав» (риск B1) | Точная строка реестра (`06-memory-risk-registry.md:44`): «...перевод **имени** лочится на 1000 глав» — слово «имени» выпало, обобщение риска шире исходного | Дословная цитата |