From 4417414df89d9be5a7c56719bd3ca8ce3c91e653 Mon Sep 17 00:00:00 2001 From: heaven Date: Thu, 17 Sep 2026 02:17:09 +0300 Subject: [PATCH] Ratify enabling the bank-role re-ask in shipping configs, with its price measured against the ledger and the pin that guards it --- docs/PROGRESS.md | 2 +- docs/architecture/05-decisions-index.md | 3 ++- docs/architecture/05-decisions-log.md | 31 ++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index d0e95fb3..c80a9b1e 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -1,6 +1,6 @@ # Журнал прогресса -> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-09-16, голова D39.258 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №23** (единственный носитель — здесь; роль передана 06.09, №22 закрыт нотой передачи D39.217; ⚠ испр. 06.09: коммит передачи `c992ee5` бампнул голову и НЕ тронул номер — гейта на номер очереди нет вовсе, `counts.py` сверяет только голову, поэтому носитель разошёлся молча). ⚠ **ЗАКАЗ ВЛАДЕЛЬЦА 01.09 — ИСПОЛНЕН, испр. 08.09 (висел как «первым» неделю после исполнения):** (0а) ревизия документации на протухшее ОТРАБОТАНА 01.09 воркфлоу `docs-staleness-revision-A` (15 срезов), провенанс находок — `D39.185`; (0б) планы доработок в бэкенд и платформу — исполняются ПАКАМИ, за 07–08.09 закрыты два движковых (`D39.225`, `D39.226`); (0в) вынос неактуального в архив идёт батчами `DOC_CLEANUP_PLAN.md` (Б14/Б15/Б17 живы). ⇒ строка ниже — не заказ, а история: (0а) ревизия документации на ПРОТУХШЕЕ — по всем зонам; (0б) планы доработок в БЭКЕНД и ПЛАТФОРМУ; (0в) вынос неактуального в АРХИВ (`docs/archive/`, `platform/docs/archive/`) — за сутки 31.08 закрыто много, и часть носителей стала историей. ⚠ Трезвость по масштабу (пере-считано 02.09): **98** живых дока в `docs/` (пере-счёт 17.09 после выноса каталога консилиума; прежние 97 разошлись с фактом 144 и это заметил ревизор, а не гейт) (пере-счёт 04.09: `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`), 8 в `platform/docs`, **12** в `backend/docs`, **7** в `frontend/docs` (испр. 17.09: стояло 9) — ⚠ ⚠ испр. 11.09: из 97 ВРЕМЕННЫХ **три** (`DOC_CLEANUP_PLAN`, живой до закрытия батчей Б14/Б15/Б17); два прежних временных уехали в `archive/reports/` 02.09; счёт бэклога — бюллетенем ниже, открытых рядов регистра платформы — 110 (major 1) (major 1), всего рядов 468 (пере-счёт `python3 docs/scripts/counts.py`; с 04.09 оба числа под гардом `--check`, прежние 95/3 разошлись молча) ⚠ (ревизией 02.09 ряды **154** и **157** переведены из «скоро» в «когда-нибудь»: их гейтом стоял первый холодный прогон, он ОТРАБОТАЛ 31.08 и оба предусловия оказались другими — разбор в самих ячейках, ни одна НЕ закрыта). ⚠ Числа доков `counts.py` НЕ сторожит — при переносе файлов пере-считывать руками командой `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`. ⚠ И предупреждение о МЕТОДЕ, купленное сменой №21: «выглядит протухшим» ≠ «протухло». Три факта оркестратора опровергнуты ЗАМЕРОМ сессий, а якоря `15-money-path.md` в девяти случаях из двенадцати РОДИЛИСЬ верными и сгнили дрейфом — то есть ревизия обязана быть исполнением, а не чтением. ⚠ **ОЧЕРЕДЬ, унаследованная от №21** (три лендинга 31.08 — секция «СОСТОЯНИЕ ПАКОВ» ниже): **(1) ~~РАЗРЫВ ЦИКЛА~~ ЗАМКНУТ ЖИВЬЁМ 04.09** — пользователь получил EPUB настоящего ПЛАТНОГО перевода ЧЕРЕЗ API, `epubcheck` 5.3.0 на СКАЧАННОМ файле 0/0/0/0 (книга `bk_SS5VES2JELESJSTR`, потрачено $0.278319 из гранта $0.60 при потолке пака $1.5, санкция D39.189). Дверь выдачи построена и проверена исполнением: `202`+`Location`, поллинг с `Retry-After`, Range 206 · второй клиент 200 · аноним 401 · чужая книга 404, TTL с GC, идемпотентность третьего создающего вызова. Все ТРИ сценария строки 216 предъявлены живьём (подпись банка · halt на потолке с exit 4 · `409 run_not_resumable/ceiling_reached` и лечение новым прогоном). +> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-09-16, голова D39.259 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №23** (единственный носитель — здесь; роль передана 06.09, №22 закрыт нотой передачи D39.217; ⚠ испр. 06.09: коммит передачи `c992ee5` бампнул голову и НЕ тронул номер — гейта на номер очереди нет вовсе, `counts.py` сверяет только голову, поэтому носитель разошёлся молча). ⚠ **ЗАКАЗ ВЛАДЕЛЬЦА 01.09 — ИСПОЛНЕН, испр. 08.09 (висел как «первым» неделю после исполнения):** (0а) ревизия документации на протухшее ОТРАБОТАНА 01.09 воркфлоу `docs-staleness-revision-A` (15 срезов), провенанс находок — `D39.185`; (0б) планы доработок в бэкенд и платформу — исполняются ПАКАМИ, за 07–08.09 закрыты два движковых (`D39.225`, `D39.226`); (0в) вынос неактуального в архив идёт батчами `DOC_CLEANUP_PLAN.md` (Б14/Б15/Б17 живы). ⇒ строка ниже — не заказ, а история: (0а) ревизия документации на ПРОТУХШЕЕ — по всем зонам; (0б) планы доработок в БЭКЕНД и ПЛАТФОРМУ; (0в) вынос неактуального в АРХИВ (`docs/archive/`, `platform/docs/archive/`) — за сутки 31.08 закрыто много, и часть носителей стала историей. ⚠ Трезвость по масштабу (пере-считано 02.09): **98** живых дока в `docs/` (пере-счёт 17.09 после выноса каталога консилиума; прежние 97 разошлись с фактом 144 и это заметил ревизор, а не гейт) (пере-счёт 04.09: `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`), 8 в `platform/docs`, **12** в `backend/docs`, **7** в `frontend/docs` (испр. 17.09: стояло 9) — ⚠ ⚠ испр. 11.09: из 97 ВРЕМЕННЫХ **три** (`DOC_CLEANUP_PLAN`, живой до закрытия батчей Б14/Б15/Б17); два прежних временных уехали в `archive/reports/` 02.09; счёт бэклога — бюллетенем ниже, открытых рядов регистра платформы — 110 (major 1) (major 1), всего рядов 468 (пере-счёт `python3 docs/scripts/counts.py`; с 04.09 оба числа под гардом `--check`, прежние 95/3 разошлись молча) ⚠ (ревизией 02.09 ряды **154** и **157** переведены из «скоро» в «когда-нибудь»: их гейтом стоял первый холодный прогон, он ОТРАБОТАЛ 31.08 и оба предусловия оказались другими — разбор в самих ячейках, ни одна НЕ закрыта). ⚠ Числа доков `counts.py` НЕ сторожит — при переносе файлов пере-считывать руками командой `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`. ⚠ И предупреждение о МЕТОДЕ, купленное сменой №21: «выглядит протухшим» ≠ «протухло». Три факта оркестратора опровергнуты ЗАМЕРОМ сессий, а якоря `15-money-path.md` в девяти случаях из двенадцати РОДИЛИСЬ верными и сгнили дрейфом — то есть ревизия обязана быть исполнением, а не чтением. ⚠ **ОЧЕРЕДЬ, унаследованная от №21** (три лендинга 31.08 — секция «СОСТОЯНИЕ ПАКОВ» ниже): **(1) ~~РАЗРЫВ ЦИКЛА~~ ЗАМКНУТ ЖИВЬЁМ 04.09** — пользователь получил EPUB настоящего ПЛАТНОГО перевода ЧЕРЕЗ API, `epubcheck` 5.3.0 на СКАЧАННОМ файле 0/0/0/0 (книга `bk_SS5VES2JELESJSTR`, потрачено $0.278319 из гранта $0.60 при потолке пака $1.5, санкция D39.189). Дверь выдачи построена и проверена исполнением: `202`+`Location`, поллинг с `Retry-After`, Range 206 · второй клиент 200 · аноним 401 · чужая книга 404, TTL с GC, идемпотентность третьего создающего вызова. Все ТРИ сценария строки 216 предъявлены живьём (подпись банка · halt на потолке с exit 4 · `409 run_not_resumable/ceiling_reached` и лечение новым прогоном). > ⛔ **ПЯТЬ ПОТОКОВ РАБОТЫ — состояние на 07.09 (пере-снято лендингами смены №23).** > **(1) ПОЛИГОН — «ремонт прибора»** (`docs/POLYGON_INSTRUMENT_REPAIR_SESSION_PROMPT.md`, строки 319 · 300 · 265 · 143): > ⚠ **ЕДИНСТВЕННЫЙ ПОТОК, НЕ СДВИНУВШИЙСЯ ЗА СМЕНУ — сессия по промту так и не стартовала.** Блокирующая линза diff --git a/docs/architecture/05-decisions-index.md b/docs/architecture/05-decisions-index.md index f1b3a26c..e48e3a94 100644 --- a/docs/architecture/05-decisions-index.md +++ b/docs/architecture/05-decisions-index.md @@ -1,4 +1,4 @@ -# Реестр D-нот — карта актуальности v2 (D1–D39.258; титул — носитель головы, бампать при каждом аппенде) +# Реестр D-нот — карта актуальности v2 (D1–D39.259; титул — носитель головы, бампать при каждом аппенде) > ⚠ **Колонку «тело» `counts.py --check` НЕ сторожит по устройству:** он сверяет полноту НОМЕРОВ, а не > место тела, поэтому колонка держится дисциплиной лендинга. Не нашёл тело по колонке — иди в слайсы, @@ -317,3 +317,4 @@ | D39.256 | 16.09 | **РЕШЕНИЕ ВЛАДЕЛЬЦА: банк переезжает в КНИГУ-ПРОДОЛЖЕНИЕ подписанным ПЛЮС решённым движком.** Закрывает подпункт В1 §6 итога консилиума (умолчания у него не было) и ряд 460. «Только подписанное» отвергнуто: подпись опциональна (`D39.67`) ⇒ у некурированной книги это «не перенести ничего». ⭐ Подтверждено ЗАМЕРОМ того же дня: 25 из 26 смен передачи при БАЙТ-ИДЕНТИЧНОМ входе, включая окна KWIC ⇒ смены — эффект якоря, а не знание. ⛔ Пути переноса между книгами НЕТ ни строчкой ⇒ решение есть двухзонный заказ (платформа: перенос при заведении продолжения; движок: форма слоя) | ЖИВОЕ: ряд 460 закрыт; стройка заведена новой строкой | жив | банк деньги | | D39.257 | 16.09 | **АКТ: бэкенд-пак «БАНК — ЧТО МОЖНО УЗНАТЬ И ПОЧИНИТЬ ЗА $0» ПРИНЯТ С НАЗВАННЫМ ОСТАТКОМ** (29 путей, $0). Пять приборов: батарея 24/24 · **мой прогон её 37 мутаций — 37 run, 0 unexpected** · три оси вне сдачи · числа пере-сняты ТРЕТЬИМ прибором, парсер-свободно · деньги: 0 платных путей при контроле 192 файла. ⭐ Посылка `D39.256` перестала быть посылкой: 25 из 26 смен при идентичном входе, и компаратор НЕ слеп (движение входа у 4 из 56 и 8 из 51 неменявшихся). ⛔ Мажоры: сдача сдвинула 25 якорей живых доков и отчёт молчит (хук warn-only ⇒ стало бы нормой); арм `unresolved` считается по знаменателю, из которого сам вычтен. ⚠ Остаток: полный прогон каталога (267) не закончен | ЖИВОЕ: якоря перенаведены лендингом; новые ряды на арм знаменателя, регистр цели, пустой реестр и персистенцию §4.4 | жив | банк бэкенд | | D39.258 | 17.09 | **РЕШЕНИЯ ВЛАДЕЛЬЦА 17.09** — три. (1) Пустота оплачивается ЧИТАТЕЛЕМ: это ПОДТВЕРЖДЕНИЕ слова 11.09, а вопрос висел открытым по моей вине — план нёс ответ и сорока строками ниже спрашивал его заново. (2) Перенос банка в продолжение — СУЩЕСТВУЮЩИМ механизмом сид-YAML, новых сущностей не вводить; третий источник отклонён. ⚠ Наследуется ограничение: термин сида дверью правок не решается. (3) Стандарт промтов назван словом: высокие стандарты художественного перевода, чистый код и рефакторинг вместо заплаток, техдолг не копить | ЖИВОЕ: ряд 461 пере-формулирован; за владельцем остались ряд 330, твердение нарезки и приоритет | жив | банк деньги промты | +| D39.259 | 17.09 | **РЕШЕНИЕ ОРКЕСТРАТОРА: ре-спрос банк-ролей ВКЛЮЧЁН в боевых конфигах** — денежная ручка сверх заказа пака, зона назвала это сама. С нулём пак инертен: движок вычисляет вердикт о негодном ответе и выбрасывает его, а способ отказа — не счёт, а БАНК (эвристический тип форсирует передачу и уезжает в каждую главу). Цена по хранилищу, сверена с леджером до цента: ступень $0.005134, худшая $0.0232, потолок на книгу ≈$0.162 при суб-бюджете $1.00; трата РАЗОВАЯ на книгу. Пин по форме соседа, значение ровно 1, печатает знаменатель 3 из 4 | ЖИВОЕ: вторая ступень НЕ измерена и потому не разрешена | жив | деньги банк | diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index 451e9697..b6e6ed5d 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -1,4 +1,4 @@ -# Журнал решений оркестратора — контракт D1–D39.258 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`) +# Журнал решений оркестратора — контракт D1–D39.259 (живой файл: карта · эрраты · живые тела · голова 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+). @@ -4078,3 +4078,32 @@ bought NOTHING». ⇒ **`tmctl manifest` есть НИЖНЯЯ граница, ⚠ **ПРАВО ГРЕПАТЬ `docs/` И ПОЛИГОН В ЛЮБОЕ ВРЕМЯ** подтверждено явно: карта чтения промта остаётся МИНИМУМОМ, но перестаёт читаться как потолок. ⇒ оба требования входят в форму бэкенд-промта наравне со стандартом п.3, и отчёт сессии несёт их отдельным пунктом. +## D39.259 — РЕШЕНИЕ ОРКЕСТРАТОРА: РЕ-СПРОС БАНК-РОЛЕЙ ВКЛЮЧАЕТСЯ В БОЕВЫХ КОНФИГАХ. Денежная ручка сверх заказа пака, ратифицируется с ценой и пином (17.09, оркестратор №23) + +**Что решено.** `gates.terminology.regenerate: 1` в трёх боевых конвейерах, гоняющих банк-роли. Решение ОТДЕЛЬНОЕ от пака «лестница попытки»: промт заказывал вынос +контура и подключение существующего вердикта, включение ручки в бою он НЕ заказывал, и зона это назвала сама, а не провела молча. + +**Почему включаем.** С ключом на нуле пак ИНЕРТЕН для боевых книг: движок продолжает вычислять вердикт о негодном ответе банк-роли и продолжает его выбрасывать. +Это ровно тот класс, который уже стоил нам замера («механизм лендится выключенным, поэтому ветвь лечения не работала»). ⛔ И способ отказа тут не счёт, а БАНК: +у неотвеченного терма остаётся эвристический тип, а тип ФОРСИРУЕТ способ передачи — ошибка уезжает в каждую главу, где термин встречается. На холодном прогоне B +это выглядело как полный порядок: `consolidated=66`, выброшено 0, без ответа 0 — при 42 термах из 66 без машинного типа. + +**Цена — числом, снята зоной по хранилищу прогона и сверена с леджером до цента** (контроль: строк журнала запросов 35, из них терминологических 14, чекпойнтов 13; +ценовая модель сошлась точно — $0.012646 расчётных против $0.012646 списанных). Успешная ступень стоит **$0.005134** (списывают по факту, а не по броне: удачный +ответ — короткая таблица). Худший случай одной ступени — **$0.0232**. На прогоне B лестница купила бы две ступени: реально ≈**$0.010**, абсолютный худший ≈$0.046, +против банкового контура $0.083339 и книги $0.436. **Структурный потолок на книгу — не более одного лишнего вызова на батч**, то есть ≤7 вызовов ≈ **$0.162**, и то +лишь если потолок выест КАЖДЫЙ батч; сверху стоит ролевой суб-бюджет $1.00 на фазу, который после этого пака РЕАЛЬНО стережёт ступени (до него проба спрашивала +только нулевую попытку). ⭐ **Трата РАЗОВАЯ на книгу, а не на прогон:** ступень пишет свой чекпойнт и на резюме переигрывается за $0. + +**Чем стережётся.** Пином `TestShippingPipelinesRegenerateBankRoles`, построенным по форме СОСЕДА, а не по своей: значение сверяется РОВНО с единицей, обход идёт по +тем же четырём боевым файлам, пайплайн без гейта пропускается, и **печатается знаменатель** — «боевых конвейеров с банк-ролями: 3 из 4». Без знаменателя «ключ везде +стоит» и «банк-ролей нигде нет» дают одинаковую зелень. Второй пин держит разовость покупки ступени. + +**Почему РОВНО единица, а не «хотя бы одна».** Оценка ступени растёт как 2ⁿ, бюджет роли бронирует по ВЕРХНЕЙ границе и разницу не возвращает ⇒ вторая ступень — +первое, что отвергнет тесная фаза, причём отвергнет тихо, коротким банком, а не ошибкой. Единица совпадает со стадийной `regenerate_before_escalate` и ровно её +покрывает улика (на черновой стадии удвоение вылечило 5 из 5). ⚠ **Что НЕ измерено и потому не разрешено: вторая ступень.** Значение выше единицы отвергается не +как опасное, а как НЕрешённое. + +**Что этот акт НЕ ратифицирует.** Он не говорит, что ре-спрос работает, и не выбирает число как оптимальное — это поведение, и оно пинится в пакете конвейера. +Он ратифицирует ровно одно: боевые ДАННЫЕ продолжают просить ре-спрос, и это половина, которую тест на Go иначе не видит. +