Ratify that a sequel book inherits the bank as signed plus engine-decided rows, and raise the two-zone transfer that does not exist yet

This commit is contained in:
heaven 2026-09-16 19:43:43 +03:00
parent 6a515e41d4
commit b61a494a23
3 changed files with 18 additions and 4 deletions

View file

@ -3,7 +3,7 @@
> **Единственный трекер проекта.** Здесь живут строки, на которые доки, промты и 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`).
> ⚠ **Состояние проекта — не здесь.** Очередь, курс, CURRENT-STATE, состояние паков и живая хроника — шапка [PROGRESS.md](PROGRESS.md). Здесь только долг и его диспозиции.
> - **СЧЁТ ОЧЕРЕДИ на 16.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **341** строк · зона бэкенд **174** строго / **226** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175; **371** — актом D39.233, **360** — актом D39.232, обе 10.09), платные прогоны разблокированы · «скоро» **177** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строка эксп-22: 153 (плюс 150 — руки владельца; ⚠ 55 из гейтов СНЯТА — D39.198 п.5); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже).
> - **СЧЁТ ОЧЕРЕДИ на 16.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **341** строк · зона бэкенд **174** строго / **227** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175; **371** — актом D39.233, **360** — актом D39.232, обе 10.09), платные прогоны разблокированы · «скоро» **177** (перечень — грепом по таблице, рукописный список снят 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` на прежнем месте оставлен заголовок-указатель, поэтому ссылки «секция „Бэклог“» доезжают в один хоп.
## Бэклог (ЕДИНЫЙ, собран 26.07, актуализация 04.08 D39.99/D39.101; правки — только через оркестратора)
@ -376,4 +376,4 @@
| 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`) |
| 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:1183`=`func isNoDst`); счёт печатается прогоном (`backend/internal/pipeline/terminologist.go:621`=`"declined", res.Declined`). Итог консилиума повторил НОТУ, а не дерево (`docs/research/35-bank-memory-consilium.md` §П3, «исхода движка „это не термин“ нет и не вводится»). ⇒ пак обязан выбрать ЯВНО: сентинел остаётся законным исходом (тогда ряд 445 — ужесточение разбора ответа) либо снимается из промта — а это двигает хеш запроса и перекупает проход на консолидированных книгах. Найдено советчиком-фаблом, проверено деревом оркестратором | бэкенд | скоро | нота и дерево говорят одно, выбор назван нотой | совет фабла 16.09 + сверка дерева оркестратором |
| 460 | **ПОДПУНКТ В1 КОНСИЛИУМА НЕ ОТВЕЧЕН, И ИТОГ САМ СЕБЕ ПРОТИВОРЕЧИТ, ЕСТЬ ЛИ У НЕГО УМОЛЧАНИЕ.** Пять вопросов §6 (В1В5) закрыты решениями владельца 16.09 (`D39.254`), но подпункт В1 — «переносить ли банк в КНИГУ-ПРОДОЛЖЕНИЕ и какую его часть: только подписанное владельцем · подписанное плюс решённое движком · ничего» — остался без ответа. ⛔ Абзац итога утверждает обе стороны: «Отвечать не обязательно: у него есть умолчание» и «Умолчания у этого подпункта нет, и это честнее, чем придумать его». Держится вторая: она снабжена разбором — пути переноса банка между книгами на платформе НЕТ ни строчкой, а подпись опциональна по курсу `D39.67`, поэтому «переносим подписанное» у некурированной книги означает «не переносим ничего». ⚠ Предмет не умозрительный: книги владельца — сериалы, продолжение приходит ОТДЕЛЬНОЙ книгой, и без ответа том 2 пере-решает весь банк заново. Тело итога — улика (D23.3), не правится; поправка стоит пометкой в конце `docs/research/35-bank-memory-consilium.md` | владелец | скоро | ответ владельца, затем нота | `research/35` §6 В1, сверка итога 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 |

View file

@ -1,4 +1,4 @@
# Реестр D-нот — карта актуальности v2 (D1D39.255; титул — носитель головы, бампать при каждом аппенде)
# Реестр D-нот — карта актуальности v2 (D1D39.256; титул — носитель головы, бампать при каждом аппенде)
> ⚠ **Колонку «тело» `counts.py --check` НЕ сторожит по устройству:** он сверяет полноту НОМЕРОВ, а не
> место тела, поэтому колонка держится дисциплиной лендинга. Не нашёл тело по колонке — иди в слайсы,
@ -314,3 +314,4 @@
| D39.253 | 16.09 | **АКТ: КОНСИЛИУМ «БАНК ПАМЯТИ ДЛИННОЙ КНИГИ» ПРИНЯТ С ДОФИКСОМ И ОСТАТКОМ.** Решение банка выработано советом девяти агентов (три проекта разных углов и моделей, пять ролей совета, судья другой моделью); сдано по правилу остановки — три круга 2·21·34 → 0·16·17 → 1·7·13. Приёмка оркестратора — пять осей вне консилиума, 50 находок (14 мажоров): деньги 24/24 и эмпирическое ядро 14/14 сошлись, противоречий ратифицированному нет, выдумок в цитатах нет. ⭐ Совет нашёл то, мимо чего прошли оба отозванных проекта: ратифицированный ответ на смену пола (D5 п.1, D7 правка 1, D19 п.3(в)) и что ответ на растущую книгу лежит в ВЫБОРКЕ улик, а не в новом событии. ⛔ Остаток назван: правки круга 3 судила приёмка, а не консилиум; 20 из 164 якорей поедут с лендингом бэкенд-сдачи | ЖИВОЕ: пак принят, Д-1…Д-18 в очереди оркестратора, ряды 441450 заведены | жив | банк |
| D39.254 | 16.09 | **РЕШЕНИЯ ВЛАДЕЛЬЦА ПО ПЯТИ ВОПРОСАМ КОНСИЛИУМА 35.** (1) Держать решение банка между покупками — ДА (ряд 130 закрыт в этой части). (2) ⚠ Отказ терминолога ПЕРЕ-ОПРЕДЕЛЁН: «фоллбек на другую модель или переспросить… банк памяти — максимально умный участок»; по факту у банк-ролей нет ни ретрая, ни регенерации (ряд 438), эскалация выключена нулём (ряд 435) ⇒ выбор (а)/(б) снят как преждевременный. Граница: совет МОДЕЛЕЙ закрыт D39.102 п.2 замером, открыты детерминированный ансамбль и рецензент на спорных кластерах (остаток ряда 5). (3) При невозможной безродовой форме — перестроить фразу, иначе «как лучше читается»; адресность уже построена, меняется текст `injection.txt:12`. (4) Богаче контекст — ДА, величина решается замером M4. (5) Голос и ты↔вы — СТРОИТЬ, «продуманно алгоритмически»; вариант «не трогать» отменён | ЖИВОЕ: несущее для банк-паков | жив | банк владелец |
| D39.255 | 16.09 | **АКТ: бэкенд-пак «КУПЛЕНО — ЗНАЧИТ ДОСТАВЛЕНО» ПРИНЯТ С НАЗВАННЫМ ОСТАТКОМ** (29 путей, +3634/168, $0). Пак пережил потерю сессии и сдан по правилу остановки П4. Приёмка — пять приборов: батарея 23/23 · **мой собственный полный каталог 441/441, 0 unexpected, 437 пойманных и 4 записанные выжившие, `tree_sha` совпал с её прогоном** · две оси агентов вне сдачи (26 подтверждений и 79 пере-снятых чисел, мажоров 0). ⛔ Деньги: пере-классификация `cancelled` с `rework` на `carried` меняет счёт слотов у книг В ПОЛЕ — шире, чем заявляла сдача; исход 15.09 в силе, семантика переноса — ряд 232. ⭐ Ратифицировано снятие гейта `DispFlagged` у эдит-числителя (эррата к `D39.19` п.4): гейт прятал ОПЛАЧЕННОЕ эхо; цена — несопоставимость замеров через правку. ⚠ Три опубликованных ключа качества сменили смысл, остаток называл два | ЖИВОЕ: ряды 291 и 379 закрыты (379 — ЗАМЕРОМ: на мутанте `answered &&` пин падает 8/8 против 7/8 в ряду, п.9); остаток — ряды 375, 232 и новые 453456 | жив | бэкенд деньги |
| D39.256 | 16.09 | **РЕШЕНИЕ ВЛАДЕЛЬЦА: банк переезжает в КНИГУ-ПРОДОЛЖЕНИЕ подписанным ПЛЮС решённым движком.** Закрывает подпункт В1 §6 итога консилиума (умолчания у него не было) и ряд 460. «Только подписанное» отвергнуто: подпись опциональна (`D39.67`) ⇒ у некурированной книги это «не перенести ничего». ⭐ Подтверждено ЗАМЕРОМ того же дня: 25 из 26 смен передачи при БАЙТ-ИДЕНТИЧНОМ входе, включая окна KWIC ⇒ смены — эффект якоря, а не знание. ⛔ Пути переноса между книгами НЕТ ни строчкой ⇒ решение есть двухзонный заказ (платформа: перенос при заведении продолжения; движок: форма слоя) | ЖИВОЕ: ряд 460 закрыт; стройка заведена новой строкой | жив | банк деньги |

View file

@ -1,4 +1,4 @@
# Журнал решений оркестратора — контракт D1D39.255 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
# Журнал решений оркестратора — контракт D1D39.256 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
> **КАРТА АКТУАЛЬНОСТИ (ревизия D31, продлена до D38.2 [12.07]; исторические записи ниже НЕ переписываются — дисциплина D23.3).** Работая с контрактом (греп номера: живой файл → слайсы, целиком НЕ читать — D39.125), держи под рукой, что чем перекрыто:
> ⚠ **Эррата 09.08 (D39.125):** D39.111 п.1 предписывал промту S3 «максимум = баланс МИНУС открытые холды» — формула ОШИБОЧНА (вычитание дважды), исправлена D39.115 п.2(а): максимум = Balance КАК ЕСТЬ; тело D39.111 — в слайсе `../archive/architecture/05-decisions-D39-106-123.md` (испр. 05.09: прежнее «живёт ниже в этом файле» протухло подрезкой D39.139) (голова D39.106+).
@ -3864,3 +3864,16 @@ bought NOTHING». ⇒ **`tmctl manifest` есть НИЖНЯЯ граница,
- `docs/experiments/00-provider-quirks.md:163`=`ТОТ ЖЕ ДЕФЕКТ ЖИВЁТ В ДВИЖКЕ` починен **не токеном**: там цель не «уехала», а описанное состояние ИСЧЕЗЛО — `toOpenAIMessages` перестроена 28.08 и склейку теперь делает. Подставить найденный в цели токен значило бы подгонку под зелень; адрес переведён в ИСТОРИЧЕСКИЙ, живой стоит строкой ниже (`backend/internal/llm/httpllm.go:766`=`func toOpenAIMessages`).
**МОЯ ОШИБКА ПРИБОРА, снятая замером (и она стоила бы ложной находки о чужой зоне).** Сверив свои восемь со списком HEAD, я насчитал ДВА новых якоря во фронте и готов был назвать их следствием лендинга. Замер сказал обратное: цели БАЙТ-ИДЕНТИЧНЫ дереву и HEAD — `14-api-contract/README.md` 1608 строк в обеих, `openapi.yaml` 3497 в обеих, токены на `:1138` и `:1633`. Новыми они не были: **линтер капит список, и контрольный прогон напечатал 25 строк из 27**. Класс — «список, из которого делаешь утверждение, не режь», с поворотом: резал не я, резал ПРИБОР, а выглядело это как факт о дереве. ⇒ у обрезанной выдачи спрашивай знаменатель даже тогда, когда обрезал её не ты.
## D39.256 — РЕШЕНИЕ ВЛАДЕЛЬЦА: В КНИГУ-ПРОДОЛЖЕНИЕ ПЕРЕЕЗЖАЕТ ПОДПИСАННОЕ ПЛЮС РЕШЁННОЕ ДВИЖКОМ (16.09)
**1. Слово владельца, дословно:** «Переносим подписанное плюс решённое движком». Закрывает подпункт В1 §6 итога консилиума (`docs/research/35-bank-memory-consilium.md`) — единственный вопрос смены, у которого умолчания НЕ БЫЛО, и ряд бэклога 460.
**2. Что решено.** Банк книги переезжает в книгу-продолжение ДВУМЯ слоями: строки, подписанные владельцем, и строки, которые движок решил сам (консолидированные, статус не `approved`). Отвергнут вариант «только подписанное»: подпись у нас ОПЦИОНАЛЬНА по курсу `D39.67`, поэтому у некурированной книги «перенести подписанное» означает не перенести ничего, и том 2 пере-решил бы весь банк заново за деньги покупателя. Отвергнут и вариант «ничего» — он и есть сегодняшнее поведение, то самое, которого владелец опасался.
**3. Что подтверждает решение — замер, снятый В ТОТ ЖЕ ДЕНЬ, а не довод.** Банк-пак ($0-слой) закрыл числом посылку, которая держала всю экономику В1 и до 16.09 считалась непроверенной: по двум покупкам одной книги передачу сменили 12 из 69 и 14 из 66 строк, и **у 25 из 26 собственный вход строки был БАЙТ-ИДЕНТИЧЕН, включая окна KWIC**, которых прежний метод (разбор `note`) не видел вовсе. Единственное исключение названо: `宗祖祠堂`, где классификатор сменил тип `place``term`. Причина смен — не знание о книге, а якорь: между покупками подписаны ровно две строки, сменились якорь и состав батчей. ⇒ условие, при котором рекомендация В1 переворачивалась («если смены окажутся ЗНАНИЕМ, а не эффектом якоря»), НЕ НАСТУПИЛО, и решения движка предъявлены как устойчивые к пере-спросу.
**4. ⛔ Чего для исполнения НЕТ, и это делает решение ЗАКАЗОМ, а не настройкой.** Пути переноса банка между книгами не существует ни строчкой: замер консилиума — ни один из 17 не-тестовых файлов `platform/internal/books` и `httpapi` не упоминает ни сид, ни глоссарий, ни дельту; по всему `platform/internal` слово `seed` встречается 6 раз, и оба банковых — чтение. Продолжение приходит ОТДЕЛЬНОЙ книгой, растущих книг платформа не делает. ⇒ работа двухзонная: платформа даёт перенос при заведении книги-продолжения, движок — форму переносимого слоя. Заведена строкой бэклога.
**5. Границы, которые решение НЕ двигает.** Оно не отменяет событий пересмотра внутри книги (D5 п.1, D7 правка 1) и не переоткрывает модельный совет (`D39.102` п.2). Переносится СОДЕРЖИМОЕ банка, а не его история решений; что делать с окнами `since_ch`/`until_ch` при переезде — часть заказа, а не этой ноты.