Give every open item both zones left behind a row or a recorded refusal, and correct a companion claim that was only half wrong
This commit is contained in:
parent
7f84c8d962
commit
60fba28590
5 changed files with 47 additions and 5 deletions
|
|
@ -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). Здесь только долг и его диспозиции.
|
||||||
> - **СЧЁТ ОЧЕРЕДИ на 05.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **239** строк · зона бэкенд **113** строго / **158** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175), платные прогоны разблокированы · «скоро» **105** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строка эксп-22: 153 (плюс 150 — руки владельца; ⚠ 55 из гейтов СНЯТА — D39.198 п.5); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже).
|
> - **СЧЁТ ОЧЕРЕДИ на 05.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **249** строк · зона бэкенд **120** строго / **165** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175), платные прогоны разблокированы · «скоро» **114** (перечень — грепом по таблице, рукописный список снят 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; правки — только через оркестратора)
|
||||||
|
|
@ -274,3 +274,13 @@
|
||||||
| 331 | ⛔ **ДВИЖКОВАЯ ПОЛОВИНА `PD-441`: ОТМЕНЁННЫЙ В ПОЛЁТЕ ВЫЗОВ УХОДИТ В ЛЕДЖЕР НУЛЁМ, И ПЛАТФОРМА НЕ МОЖЕТ СКАЗАТЬ БОЛЬШЕ, ЧЕМ «≥».** Формулировка платформенной зоны 06.09 (её слова, приняты оркестратором): (1) `backend/internal/pipeline/stagerun.go`, ветвь с комментарием `No 2xx ever arrived: nothing was billed` — сеттлить ОЦЕНКУ резервации, а не ноль, когда отменённый вызов УЖЕ УШЁЛ; различитель — факт ухода, и порог обязан быть ЗАМЕРЕН, а не назначен (замер `PD-441`: отмена до ухода 20–31 мс против ушедших 120756/156469/156470 мс); (2) ⭐ без второй половины платформа умеет только «≥», но никогда «≥ X, до Y»: `tmctl status --json` обязан публиковать РЯДОМ с `committed_usd` число и сумму строк, чья цена ОЦЕНОЧНАЯ или неизвестна (движок уже печатает `estimated-cost rows: N`, строка **78**). Первое чинит счёт, второе делает маржу ИЗМЕРИМОЙ. ⚠ Пользовательской половины у этого НЕТ и не проектируется: недо-счёт бьёт по деплою, баланс пользователя завышен в его же пользу (решение оркестратора 06.09, `D39.196` п.2а) | бэкенд | скоро | сеттл оценки при отмене ушедшего вызова + публикация оценочных строк в `status --json` | `PD-441`, записка-план платформы 06.09 |
|
| 331 | ⛔ **ДВИЖКОВАЯ ПОЛОВИНА `PD-441`: ОТМЕНЁННЫЙ В ПОЛЁТЕ ВЫЗОВ УХОДИТ В ЛЕДЖЕР НУЛЁМ, И ПЛАТФОРМА НЕ МОЖЕТ СКАЗАТЬ БОЛЬШЕ, ЧЕМ «≥».** Формулировка платформенной зоны 06.09 (её слова, приняты оркестратором): (1) `backend/internal/pipeline/stagerun.go`, ветвь с комментарием `No 2xx ever arrived: nothing was billed` — сеттлить ОЦЕНКУ резервации, а не ноль, когда отменённый вызов УЖЕ УШЁЛ; различитель — факт ухода, и порог обязан быть ЗАМЕРЕН, а не назначен (замер `PD-441`: отмена до ухода 20–31 мс против ушедших 120756/156469/156470 мс); (2) ⭐ без второй половины платформа умеет только «≥», но никогда «≥ X, до Y»: `tmctl status --json` обязан публиковать РЯДОМ с `committed_usd` число и сумму строк, чья цена ОЦЕНОЧНАЯ или неизвестна (движок уже печатает `estimated-cost rows: N`, строка **78**). Первое чинит счёт, второе делает маржу ИЗМЕРИМОЙ. ⚠ Пользовательской половины у этого НЕТ и не проектируется: недо-счёт бьёт по деплою, баланс пользователя завышен в его же пользу (решение оркестратора 06.09, `D39.196` п.2а) | бэкенд | скоро | сеттл оценки при отмене ушедшего вызова + публикация оценочных строк в `status --json` | `PD-441`, записка-план платформы 06.09 |
|
||||||
| 332 | ⛔ **СИНХРОННЫЙ РАЗРЕЗ НА ПРИЁМЕ ПРИНЯТ НАПОЛОВИНУ: ПОСТРОЕН, НО НЕ ГОТОВ — сработало правило остановки.** Из одиннадцати major пака девять легли в этот один механизм, и каждая починка открывала новую площадь ⇒ зона прекратила его чинить по решению оркестратора, а не по усталости. **ДЕСЯТЬ незакрытых пунктов — поимённо в зонном журнале** `platform/docs/platform-PROGRESS.md`, греп `СРАБОТАЛО ПРАВИЛО ОСТАНОВКИ`; здесь копии НЕТ (один носитель). Первый из них определяет форму: **граница бюджета хвоста обязана ВЫВОДИТЬСЯ ИЗ кода пути, а не перечисляться руками** — счёт выводили трижды и трижды неверно. ⚠ Ложный инвариант бюджета заландён осознанно: окно лжи 8 секунд ширины (дедлайн 26m21s–26m29s) при дефолте 10m0s, последствие — теряется идемпотентность (повтор даёт вторую книгу), а не целостность; ряд регистра несёт числа. Три пункта дописаны приёмкой: потерянный ограничитель параллелизма (`MaxWorkers: 4` был у очереди, теперь разрез живёт в HTTP-обработчике без лимитера) · маршрут молчит до 210–220 с после последнего байта, промежуточный прокси не спрошен · отказ уходит наружу только МАШИННЫМ кодом (`Detail` не заполняется) ⇒ «честная причина человеку» из заказа сегодня НЕ доезжает | платформа | скоро | пак, забирающий разрез: вывод границы из кода + десять пунктов журнала | приёмка пака «деньги и правда» 07.09 |
|
| 332 | ⛔ **СИНХРОННЫЙ РАЗРЕЗ НА ПРИЁМЕ ПРИНЯТ НАПОЛОВИНУ: ПОСТРОЕН, НО НЕ ГОТОВ — сработало правило остановки.** Из одиннадцати major пака девять легли в этот один механизм, и каждая починка открывала новую площадь ⇒ зона прекратила его чинить по решению оркестратора, а не по усталости. **ДЕСЯТЬ незакрытых пунктов — поимённо в зонном журнале** `platform/docs/platform-PROGRESS.md`, греп `СРАБОТАЛО ПРАВИЛО ОСТАНОВКИ`; здесь копии НЕТ (один носитель). Первый из них определяет форму: **граница бюджета хвоста обязана ВЫВОДИТЬСЯ ИЗ кода пути, а не перечисляться руками** — счёт выводили трижды и трижды неверно. ⚠ Ложный инвариант бюджета заландён осознанно: окно лжи 8 секунд ширины (дедлайн 26m21s–26m29s) при дефолте 10m0s, последствие — теряется идемпотентность (повтор даёт вторую книгу), а не целостность; ряд регистра несёт числа. Три пункта дописаны приёмкой: потерянный ограничитель параллелизма (`MaxWorkers: 4` был у очереди, теперь разрез живёт в HTTP-обработчике без лимитера) · маршрут молчит до 210–220 с после последнего байта, промежуточный прокси не спрошен · отказ уходит наружу только МАШИННЫМ кодом (`Detail` не заполняется) ⇒ «честная причина человеку» из заказа сегодня НЕ доезжает | платформа | скоро | пак, забирающий разрез: вывод границы из кода + десять пунктов журнала | приёмка пака «деньги и правда» 07.09 |
|
||||||
| 333 | ⛔ **ШОВ-БЛИЗНЕЦ: `Contradictions`/`Conf` ПЕРЕСЕКАЮТ ГРАНИЦУ ФАЙЛА ТЕМ ЖЕ СПОСОБОМ, ЧТО И УБРАННАЯ КАРТА, И МУТАЦИЯ ЛЮБОГО ИЗ ТРЁХ КЛЮЧЕЙ ПЕРЕЖИВАЕТ ТРИ ПОЛНЫХ ПАКЕТА** (`pipeline` + `terminology` + `tmctl`). Стороны сегодня согласованы, паком не тронуты — это не регресс, а незакрытая дыра того же класса, который пак закрыл у соседа. ⭐ **Цена измерена автором на себе: ТРИ КРУГА самопроверки ушли на починку точки вместо шва**, и только на третьем стало видно, что чинить надо способ, а не место; лечение соседа — убрать карту и свести выбор ключа в ОДНО место, после чего один пин ловит все три мутации плюс «продакшн обходит сопоставитель». ⇒ здесь нужен тот же ход, а не четвёртая заплата (`D39.216`). Носитель разбора — §5а №10 отчёта зоны в `docs/PROGRESS.md` | бэкенд | скоро | свести выбор ключа в одно место + один пин на все три мутации | приёмка пака «закон банка честно» 07.09 |
|
| 333 | ⛔ **ШОВ-БЛИЗНЕЦ: `Contradictions`/`Conf` ПЕРЕСЕКАЮТ ГРАНИЦУ ФАЙЛА ТЕМ ЖЕ СПОСОБОМ, ЧТО И УБРАННАЯ КАРТА, И МУТАЦИЯ ЛЮБОГО ИЗ ТРЁХ КЛЮЧЕЙ ПЕРЕЖИВАЕТ ТРИ ПОЛНЫХ ПАКЕТА** (`pipeline` + `terminology` + `tmctl`). Стороны сегодня согласованы, паком не тронуты — это не регресс, а незакрытая дыра того же класса, который пак закрыл у соседа. ⭐ **Цена измерена автором на себе: ТРИ КРУГА самопроверки ушли на починку точки вместо шва**, и только на третьем стало видно, что чинить надо способ, а не место; лечение соседа — убрать карту и свести выбор ключа в ОДНО место, после чего один пин ловит все три мутации плюс «продакшн обходит сопоставитель». ⇒ здесь нужен тот же ход, а не четвёртая заплата (`D39.216`). Носитель разбора — §5а №10 отчёта зоны в `docs/PROGRESS.md` | бэкенд | скоро | свести выбор ключа в одно место + один пин на все три мутации | приёмка пака «закон банка честно» 07.09 |
|
||||||
|
| 334 | ⛔ **ОПИСАНИЕ БАНКОВОГО КОНТУРА ЛЖЁТ ОПЕРАТОРУ В ЧЕТЫРЁХ МЕСТАХ — один класс, один заказ.** (1) `mining.go:654` `loadAutoBank(signed []store.GlossaryEntry)` зовётся как `r.loadAutoBank(in.entries)` (`bankmaterialize.go:125`): имя параметра, дока и текст оператору говорят «подписанная», а популяция — сид+ruby+mined ЛЮБОГО статуса ⇒ оператор видит неподписанную строку названной подписанной. (2) `bankmaterialize.go:132` — тот же обман в ремарке «the signed term wins». (3) `bankmaterialize.go:139-141` — комментарий на вызове говорит «two DIFFERENT approved terms», собственная дока функции заявляет иное. (4) `mempostcheck.go:91` — дока `Shown` обещает «сколько неподписанных строк реально показано модели», а sticky-перенос `continue`-ится раньше счёта. ⚠ Поведение везде ВЕРНО — лжёт только описание; это тот же класс, что пак 06.09 чинил в четырёх других местах | бэкенд | скоро | четыре описания приведены к поведению + пины на тексты | §5а пака «закон банка честно», приёмка 07.09 |
|
||||||
|
| 335 | ⛔ **РОЛЬ И КЛАССИФИКАТОР ПЛАТЯТ ЗА УЖЕ БАНКОВАННЫЕ ТЕРМИНЫ — фильтр стоит только на ЭМИССИИ.** `terminologist.go:257` против `mining.go:553`: поверхность, которую банк уже несёт, выкидывается на выходе, но до этого за неё заплачено вызовом роли и классификатора. ⇒ прямые деньги на каждом прогоне майнинга. Цена не измерена — первым шагом замер доли таких кандидатов на корпусе | бэкенд | скоро | фильтр по банк-поверхностям ДО оплаты + замер сэкономленного | §5а №3 + предложение №3 зоны |
|
||||||
|
| 336 | **РАЗНОГЛАСИЕ НЕ ДОЕЗЖАЕТ ДО ЛИСТА ПОДПИСИ НА САМОЙ ЧАСТОЙ ФОРМЕ СИД-СТРОКИ.** `internal/membank/memseed.go`: сид-строка с окном ПО УМОЛЧАНИЮ и без sense делит UNIQUE-кортеж с banknote-предложением, пропуск по кортежу срабатывает раньше, и владелец не видит спора в артефакте, по которому подписывает. ⚠ Автор пака 06.09 нашёл это у себя сам и отдельно признал, что его же e2e обходил дыру подобранным `until_ch: 20` | бэкенд | скоро | правило «заменённая строка движется» либо иной разрез кортежа + пин на лист подписи | §5а №7 + предложение №6 зоны |
|
||||||
|
| 337 | **ТЕКСТЫ ОПЕРАТОРСКИХ СООБЩЕНИЙ НЕ ЗАПИНЕНЫ СИСТЕМНО.** Носитель — `internal/pipeline/seeding.go:73`. Пины есть, но узкие: подстрока стерегла одно словосочетание, а локализующая половина (обе строки, оба окна, firing-ключ) не была закрыта ничем; расширение правила 06.09 сделало прежний текст ложным, и поймала это батарея, а не пин. ⇒ варнинг, по которому нельзя понять, ЧТО столкнулось, — шум, который учат игнорировать | бэкенд | скоро | пины на тексты операторских сообщений как класс | §5а №8 + предложение №4 зоны |
|
||||||
|
| 338 | **ПУТЬ ЗАПИСИ СТАТУСА НЕ ЧИТАЕТСЯ ПО КОДУ — свойство места, а не невнимательность.** `internal/store/chunkstatus.go` вместе с `internal/pipeline/waverun.go`: писателей несколько (`recordSkippedStages` и флагнутая ветвь `runStageSequence`, вторая берётся только при ≥2 стадиях в одной волне), и какой сработает — решает раскладка волны. ⚠ Замер: автор пака назвал НЕ ТОТ механизм ТРИ раза подряд, ловила каждый раз мутация. Следующий читатель ошибётся там же | бэкенд | скоро | один читаемый путь записи либо дока, называющая оба писателя и условие каждого | §5а №10 |
|
||||||
|
| 339 | **РОЛИ НЕ ПОКАЗЫВАЮТ СУЩЕСТВУЮЩУЮ ФОРМУ ПОВЕРХНОСТИ — якорная половина канон-проверок.** `terminology.go:873` и `:941`: обе проверки пропускают пару с РАВНЫМИ источниками; проверочная половина закрыта паком 06.09, якорная — нет. ⚠ Лечение МЕНЯЕТ ЗАПРОС к модели ⇒ деньги и снапшот, поэтому отдельным решением, а не прицепом | бэкенд | скоро | показать роли существующую форму + цена в снапшоте | §5а №2 + предложение №2 зоны |
|
||||||
|
| 340 | ⛔ **СУЖЕНИЕ ВХОДА ДЕЙСТВУЕТ ТОЛЬКО НА СИНХРОННОЙ ВЕТВИ: при деплойном классе книга одним полотном попадает в библиотеку МОЛЧА.** Отказ по числу глав (`D39.221`) стоит на пути, где движок ответил; когда он недоступен, книга уходит в очередь прежним путём и сужение её не видит. ⛔ Закрыть нечем: словарь `RejectReason` закрыт четырьмя значениями, а ближайшее по смыслу `source_unreadable` ТЕРМИНАЛЬНО и УДАЛЯЕТ исходник — то есть уничтожило бы файл пользователя из-за НАШЕГО ограничения. ⇒ развилка владельцу: пятая причина отказа минором канона ЛИБО осознанное «асинхронная ветвь остаётся проницаемой до готовности структуры глав». Рекомендация оркестратора — второе: беты нет, впуск ручной, а лишнее значение в закрытом словаре переживёт надобность | владелец | скоро | слово владельца + минор канона или записанный риск | `PD-463`, вопросы платформы 07.09 |
|
||||||
|
| 341 | **ПРЕДЛОЖЕНИЕ ДВИЖКА ПРОВЕСТИ `--ceiling-usd` В `status` ВИСИТ БЕЗ ДИСПОЗИЦИИ С 09.08** (пинг №15). `backend/internal/pipeline/status.go` отвечает «a read path never carries a run-scoped override» — то есть у движка есть позиция, а решения нет ни за, ни против. ⇒ принять или отклонить, но не оставлять третий месяц | бэкенд | когда-нибудь | диспозиция оркестратора одной строкой | вопросы платформы 07.09 |
|
||||||
|
| 342 | **ВОССТАНОВЛЕНИЕ ИЗ БЭКАПА НЕ ПРЕДЪЯВЛЕНО НА МАСШТАБЕ.** Предъявлено на малых данных; не проверено на книге в сотни мегабайт, при заполненном диске и при чужих открытых соединениях. `PD-462` покрывает СОСЕДНИЙ класс, этот — нет. ⚠ Бэкап, не проверенный на условиях, в которых он понадобится, — это не бэкап, а намерение | платформа | скоро | восстановление предъявлено на большой книге, полном диске и чужих соединениях | вопросы платформы 07.09 |
|
||||||
|
| 343 | **`counts.py` ДЕРЖИТ РЕГИСТР ОДНИМ ПУТ<D0A3>ём И НЕ ГЛОБИТ СЛАЙСЫ — предусловие нарезки `DEFECT_REGISTER.md`.** Вынос без этого молча уронит счёт открытых рядов, а гейт чисел покажет зелень: он читает ровно один файл. ⚠ План нарезки живёт в `docs/DOC_CLEANUP_PLAN.md` (Б14в) | доки | скоро | прибор читает регистр и его слайсы, счёт не меняется при выносе | вопросы платформы 07.09 |
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Журнал прогресса
|
# Журнал прогресса
|
||||||
|
|
||||||
> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-09-07, голова D39.222 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №23** (единственный носитель — здесь; роль передана 06.09, №22 закрыт нотой передачи D39.217; ⚠ испр. 06.09: коммит передачи `c992ee5` бампнул голову и НЕ тронул номер — гейта на номер очереди нет вовсе, `counts.py` сверяет только голову, поэтому носитель разошёлся молча). ⚠ **ЗАКАЗ ВЛАДЕЛЬЦА 01.09 — ПЕРВЫМ:** (0а) **ревизия документации на ПРОТУХШЕЕ** — по всем зонам, не только тронутым; (0б) **планы доработок в БЭКЕНД и ПЛАТФОРМУ** по остатку бэклога и регистра; (0в) **вынос неактуального в АРХИВ** (`docs/archive/`, `platform/docs/archive/`) — за сутки 31.08 закрыто много, и часть носителей стала историей. ⚠ Трезвость по масштабу (пере-считано 02.09): **90** живых дока в `docs/` (пере-счёт 04.09: `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`), 8 в `platform/docs`, 9 в `backend/docs` — ⚠ из 94 ВРЕМЕННЫЙ остался ОДИН (`DOC_CLEANUP_PLAN`, живой до закрытия батчей Б14/Б15/Б17); два прежних временных уехали в `archive/reports/` 02.09; счёт бэклога — бюллетенем ниже, открытых рядов регистра платформы — 112 (major 3), всего рядов 465 (пере-счёт `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-07, голова D39.223 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №23** (единственный носитель — здесь; роль передана 06.09, №22 закрыт нотой передачи D39.217; ⚠ испр. 06.09: коммит передачи `c992ee5` бампнул голову и НЕ тронул номер — гейта на номер очереди нет вовсе, `counts.py` сверяет только голову, поэтому носитель разошёлся молча). ⚠ **ЗАКАЗ ВЛАДЕЛЬЦА 01.09 — ПЕРВЫМ:** (0а) **ревизия документации на ПРОТУХШЕЕ** — по всем зонам, не только тронутым; (0б) **планы доработок в БЭКЕНД и ПЛАТФОРМУ** по остатку бэклога и регистра; (0в) **вынос неактуального в АРХИВ** (`docs/archive/`, `platform/docs/archive/`) — за сутки 31.08 закрыто много, и часть носителей стала историей. ⚠ Трезвость по масштабу (пере-считано 02.09): **90** живых дока в `docs/` (пере-счёт 04.09: `find docs -name '*.md' -not -path 'docs/archive/*' | wc -l`), 8 в `platform/docs`, 9 в `backend/docs` — ⚠ из 94 ВРЕМЕННЫЙ остался ОДИН (`DOC_CLEANUP_PLAN`, живой до закрытия батчей Б14/Б15/Б17); два прежних временных уехали в `archive/reports/` 02.09; счёт бэклога — бюллетенем ниже, открытых рядов регистра платформы — 112 (major 3), всего рядов 465 (пере-счёт `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` и лечение новым прогоном).
|
||||||
> ⛔ **ЧЕТЫРЕ ПОТОКА РАБОТЫ И ИХ ЗАВИСИМОСТИ (заведено 06.09; до этого жило только в переписке с владельцем).**
|
> ⛔ **ЧЕТЫРЕ ПОТОКА РАБОТЫ И ИХ ЗАВИСИМОСТИ (заведено 06.09; до этого жило только в переписке с владельцем).**
|
||||||
> **(1) ПОЛИГОН — «ремонт прибора»** (`docs/POLYGON_INSTRUMENT_REPAIR_SESSION_PROMPT.md`, строки 319 · 300 · 265 · 143):
|
> **(1) ПОЛИГОН — «ремонт прибора»** (`docs/POLYGON_INSTRUMENT_REPAIR_SESSION_PROMPT.md`, строки 319 · 300 · 265 · 143):
|
||||||
> блокирующая линза слепого чтения меряет верность ЧЕРНОВИКУ, а судимой руке предписано отходить от него по исходнику
|
> блокирующая линза слепого чтения меряет верность ЧЕРНОВИКУ, а судимой руке предписано отходить от него по исходнику
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Реестр D-нот — карта актуальности v2 (D1–D39.222; титул — носитель головы, бампать при каждом аппенде)
|
# Реестр D-нот — карта актуальности v2 (D1–D39.223; титул — носитель головы, бампать при каждом аппенде)
|
||||||
|
|
||||||
> ⚠ **Колонку «тело» `counts.py --check` НЕ сторожит по устройству:** он сверяет полноту НОМЕРОВ, а не
|
> ⚠ **Колонку «тело» `counts.py --check` НЕ сторожит по устройству:** он сверяет полноту НОМЕРОВ, а не
|
||||||
> место тела, поэтому колонка держится дисциплиной лендинга. Не нашёл тело по колонке — иди в слайсы,
|
> место тела, поэтому колонка держится дисциплиной лендинга. Не нашёл тело по колонке — иди в слайсы,
|
||||||
|
|
@ -281,3 +281,4 @@
|
||||||
| D39.220 | 07.09 | **РОЛЬ ОРКЕСТРАТОРА = ТИМ-ЛИД** (слово владельца): направление · доки · лендинг · контроль сессий; инструменты — Fable, воркфлоу-ревью, панели. ⛔ Правило пары `D39.217` п.6а СМЯГЧЕНО с «окей на каждое изменение» до «обращаешься в ТРУДНЫЕ МОМЕНТЫ» — калибровка по цене; контролёр по-прежнему ОДИН и с контекстом | жив | ЖИВОЕ: признак подмены роли — очередь не сдвинулась за смену | роль процесс пара владелец |
|
| D39.220 | 07.09 | **РОЛЬ ОРКЕСТРАТОРА = ТИМ-ЛИД** (слово владельца): направление · доки · лендинг · контроль сессий; инструменты — Fable, воркфлоу-ревью, панели. ⛔ Правило пары `D39.217` п.6а СМЯГЧЕНО с «окей на каждое изменение» до «обращаешься в ТРУДНЫЕ МОМЕНТЫ» — калибровка по цене; контролёр по-прежнему ОДИН и с контекстом | жив | ЖИВОЕ: признак подмены роли — очередь не сдвинулась за смену | роль процесс пара владелец |
|
||||||
| D39.221 | 07.09 | **АКТ: платформенный пак «деньги и правда» ПРИНЯТ С ДОФИКСОМ** + минор **0.13.0** (четыре исхода `POST /v0/books`). Правило остановки сработало: 9 major из 11 в одном механизме, синхронный разрез заландён построенным, но НЕ готовым — десять пунктов, строка **332**. Дофикс: базис расчёта был ВЫВЕРНУТ на чистом завершении (предъявлено строкой леджера) · гейдж не запинен на экспозиции · гейт 305 пинил таргет, а не использование · рунбук против кода · комментарий объявлял полноту при трёх способах. Строки 285 · 305 · 325 закрыты | жив | ЖИВОЕ: строка 332; ложный инвариант бюджета заландён осознанно (окно 8 с, дефолт в 16 минутах) | лендинг платформа контракт минор приёмка |
|
| D39.221 | 07.09 | **АКТ: платформенный пак «деньги и правда» ПРИНЯТ С ДОФИКСОМ** + минор **0.13.0** (четыре исхода `POST /v0/books`). Правило остановки сработало: 9 major из 11 в одном механизме, синхронный разрез заландён построенным, но НЕ готовым — десять пунктов, строка **332**. Дофикс: базис расчёта был ВЫВЕРНУТ на чистом завершении (предъявлено строкой леджера) · гейдж не запинен на экспозиции · гейт 305 пинил таргет, а не использование · рунбук против кода · комментарий объявлял полноту при трёх способах. Строки 285 · 305 · 325 закрыты | жив | ЖИВОЕ: строка 332; ложный инвариант бюджета заландён осознанно (окно 8 с, дефолт в 16 минутах) | лендинг платформа контракт минор приёмка |
|
||||||
| D39.222 | 07.09 | **АКТ: движковый пак «закон банка честно» ПРИНЯТ С ДОФИКСОМ**. Непокрытая пара закрыта, слепое пятно постчека названо В КОДЕ, два ложных комментария сняты; репорт-онли подтверждён исполнением (снапшот, `memory_version`, `manifest_key` не двигаются). Приёмка: 3 major — обещание о `src` достроено и запинено идемпотентностью нормализатора · гарантия `approvedNeighbours` жила только в комментарии (пин заведён, пере-проверен мутацией оркестратора) · утверждение отчёта опровергнуто его же §9. Шесть кругов, 43 находки в своей работе; цена подпорки измерена — ТРИ круга. Строки 267 · 318 закрыты | жив | ЖИВОЕ: строка 333 (шов-близнец), 320(б) — стоп-мир данных | лендинг бэкенд банк приёмка мутации |
|
| D39.222 | 07.09 | **АКТ: движковый пак «закон банка честно» ПРИНЯТ С ДОФИКСОМ**. Непокрытая пара закрыта, слепое пятно постчека названо В КОДЕ, два ложных комментария сняты; репорт-онли подтверждён исполнением (снапшот, `memory_version`, `manifest_key` не двигаются). Приёмка: 3 major — обещание о `src` достроено и запинено идемпотентностью нормализатора · гарантия `approvedNeighbours` жила только в комментарии (пин заведён, пере-проверен мутацией оркестратора) · утверждение отчёта опровергнуто его же §9. Шесть кругов, 43 находки в своей работе; цена подпорки измерена — ТРИ круга. Строки 267 · 318 закрыты | жив | ЖИВОЕ: строка 333 (шов-близнец), 320(б) — стоп-мир данных | лендинг бэкенд банк приёмка мутации |
|
||||||
|
| D39.223 | 07.09 | **ТРИАЖ ОТКРЫТОГО ПОСЛЕ ДВУХ ЛЕНДИНГОВ**: строки **334–343** заведены (в т.ч. 340 — асинхронная ветвь интейка проницаема, закрыть нечем без пятой причины отказа, НА ВЛАДЕЛЬЦЕ); два пункта отклонены с причиной. ⚠ Пропуск носителей на обоих актах нашёл ВОПРОС ВЛАДЕЛЬЦА, а не гейт. Находка платформы про §2.12 компаньона оказалась половинчатой: каналы разные, утверждение истинно, мертвы были якоря | жив | ЖИВОЕ: строка 340 ждёт слова владельца | триаж носители приёмка контракт |
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Журнал решений оркестратора — контракт D1–D39.222 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
# Журнал решений оркестратора — контракт D1–D39.223 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
||||||
|
|
||||||
> **⟶ КАРТА АКТУАЛЬНОСТИ (ревизия D31, продлена до D38.2 [12.07]; исторические записи ниже НЕ переписываются — дисциплина D23.3).** Работая с контрактом (греп номера: живой файл → слайсы, целиком НЕ читать — D39.125), держи под рукой, что чем перекрыто:
|
> **⟶ КАРТА АКТУАЛЬНОСТИ (ревизия 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+).
|
> ⚠ **Эррата 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+).
|
||||||
|
|
@ -2888,3 +2888,32 @@ mined-посадки (её поверхность есть подстрока у
|
||||||
Предупреждение зоны о флейке `TestACancelledWaitIsNotAMoneyStop` проверено и НЕ подтвердилось нуждой: красного
|
Предупреждение зоны о флейке `TestACancelledWaitIsNotAMoneyStop` проверено и НЕ подтвердилось нуждой: красного
|
||||||
не было ни в одном из двух прогонов; ⚠ формулировка «тест вне диффа пака» верна про файл теста, но его предмет
|
не было ни в одном из двух прогонов; ⚠ формулировка «тест вне диффа пака» верна про файл теста, но его предмет
|
||||||
`waverun.go` пак трогает.
|
`waverun.go` пак трогает.
|
||||||
|
|
||||||
|
## D39.223 — ТРИАЖ ОТКРЫТОГО ПОСЛЕ ДВУХ ЛЕНДИНГОВ: что получило носитель, что отклонено и почему (07.09) ✅
|
||||||
|
|
||||||
|
**1. Зачем нота.** Обе сессии сдали секции «предложения», «слабое место» и «что не проверено»; акты
|
||||||
|
`D39.221`/`D39.222` их приняли, но носителей не завели. Пропуск найден вопросом владельца («сомнений и
|
||||||
|
вопросов у них не осталось?») — то есть не гейтом и не приёмкой. **Норма «каждое отложенное получает
|
||||||
|
строку ТЕМ ЖЕ лендингом» была нарушена мной на обоих актах.**
|
||||||
|
|
||||||
|
**2. Заведено строками 334–343.** Описание банкового контура лжёт оператору в четырёх местах (334) ·
|
||||||
|
роль и классификатор платят за уже банкованные термины (335) · разногласие не доезжает до листа подписи
|
||||||
|
на самой частой форме сид-строки (336) · тексты операторских сообщений не запинены системно (337) · путь
|
||||||
|
записи статуса не читается по коду (338) · роли не показывают существующую форму — якорная половина, меняет
|
||||||
|
запрос и деньги (339) · **асинхронная ветвь интейка остаётся проницаемой, и закрыть её нечем без пятой
|
||||||
|
причины отказа — на владельце** (340) · `--ceiling-usd` в `status` висит без диспозиции с 09.08 (341) ·
|
||||||
|
восстановление из бэкапа не предъявлено на масштабе (342) · `counts.py` держит регистр одним путём (343).
|
||||||
|
|
||||||
|
**3. ⛔ ОТКЛОНЕНО — с причиной, чтобы «нет» не путали с забывчивостью.**
|
||||||
|
- **Подавлять повторный репорт пары на ре-сиде — НЕТ.** Это разные СОСТОЯНИЯ одного термина: «роль
|
||||||
|
расходится с банком» до посадки строки и «банк держит обе» после; две строки на проводе означает только
|
||||||
|
второе. Резать надо было бы слияние, а не схлопывание. Названо в доке зоны, носитель не нужен.
|
||||||
|
- **`bookfile/model.go:59` разросся до 183 строк — НЕ дефект.** Размер сам по себе им не является; строка
|
||||||
|
бэклога здесь была бы трекерной инерцией. Вернётся с ценой, если заблокирует правку.
|
||||||
|
|
||||||
|
**4. Находка, оказавшаяся ПОЛОВИНЧАТОЙ, и это важнее её самой.** Платформа сообщила, что §2.12 компаньона
|
||||||
|
контракта врёт: он говорит «пять денежных полей не могут доехать», а шов несёт `committed_usd`/`reserved_usd`.
|
||||||
|
Пере-снято: **каналы РАЗНЫЕ.** §2.12 — про выход НА ФРОНТ, шов — движок→платформа. В
|
||||||
|
`platform/internal/httpapi/` этих полей **0 файлов** при контроле **2** по `balance` ⇒ утверждение §2.12
|
||||||
|
ИСТИННО и снятию не подлежит. Мертвы были только якоря — пере-наведены на `status.go:184`/`:180`, различение
|
||||||
|
каналов вписано туда же, чтобы вопрос не открывали заново.
|
||||||
|
|
|
||||||
|
|
@ -475,10 +475,12 @@ text/event-stream` по не-тестовому Go платформы — тол
|
||||||
### 2.12. Разрешающий список — ✓ инвариант, ◆ форма
|
### 2.12. Разрешающий список — ✓ инвариант, ◆ форма
|
||||||
|
|
||||||
Проекция «read-модель → фронт» строится как allowlist. Что лежит в операторских структурах
|
Проекция «read-модель → фронт» строится как allowlist. Что лежит в операторских структурах
|
||||||
(`pipeline/status.go:58-130`, `:37-55`) и не может доехать: пять денежных полей плюс `cost_usd` главы
|
(`backend/internal/pipeline/status.go:184`=`type StatusReport struct`, поля цены — `:180`=`CostUSD`;
|
||||||
|
⚠ якоря `:58-130`/`:37-55` протухли и пере-наведены 07.09) и не доезжает ДО ФРОНТА: пять денежных полей плюс `cost_usd` главы
|
||||||
· `routing` вида «stage=model», `content_labels`, `content_routing_problems` (ПТ-33) · снапшот, дрифт,
|
· `routing` вида «stage=model», `content_labels`, `content_routing_problems` (ПТ-33) · снапшот, дрифт,
|
||||||
ре-билл · `escalations`, `postcheck_misses`, `style_flags`, `glossary_miss_flagged`, `stages_skipped`,
|
ре-билл · `escalations`, `postcheck_misses`, `style_flags`, `glossary_miss_flagged`, `stages_skipped`,
|
||||||
`repair_applied`, `worst_flag_reason` · `flag_reason` и `detail`.
|
`repair_applied`, `worst_flag_reason` · `flag_reason` и `detail`.
|
||||||
|
⚠ **Разные каналы, не путать (пере-снято 07.09):** шов движок→платформа `committed_usd`/`reserved_usd` НЕСЁТ (`platform/internal/ingest/resync.go:71`, `:78`) — это не отменяет строку выше, потому что она про выход НА ФРОНТ, а в `platform/internal/httpapi/` этих полей 0 файлов при контроле 2 по `balance`. Наружу по `D39.196` идут баланс, потолок и холд.
|
||||||
|
|
||||||
⚠ **0.3.0 расширил инвариант на ПРОЗУ.** Аллоулист полей держался, а описания — нет: объяснительный
|
⚠ **0.3.0 расширил инвариант на ПРОЗУ.** Аллоулист полей держался, а описания — нет: объяснительный
|
||||||
текст спеки компилируется в исходники фронта как JSDoc генерённых типов, и туда уехали «chunk
|
текст спеки компилируется в исходники фронта как JSDoc генерённых типов, и туда уехали «chunk
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue