diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index c80a9b1e..2968119e 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -1,6 +1,6 @@ # Журнал прогресса -> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 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` и лечение новым прогоном). +> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-09-16, голова D39.260 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и 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 e48e3a94..3e6d67ce 100644 --- a/docs/architecture/05-decisions-index.md +++ b/docs/architecture/05-decisions-index.md @@ -1,4 +1,4 @@ -# Реестр D-нот — карта актуальности v2 (D1–D39.259; титул — носитель головы, бампать при каждом аппенде) +# Реестр D-нот — карта актуальности v2 (D1–D39.260; титул — носитель головы, бампать при каждом аппенде) > ⚠ **Колонку «тело» `counts.py --check` НЕ сторожит по устройству:** он сверяет полноту НОМЕРОВ, а не > место тела, поэтому колонка держится дисциплиной лендинга. Не нашёл тело по колонке — иди в слайсы, @@ -318,3 +318,4 @@ | 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 | ЖИВОЕ: вторая ступень НЕ измерена и потому не разрешена | жив | деньги банк | +| D39.260 | 17.09 | **РЕШЕНИЯ ВЛАДЕЛЬЦА, вторая порция:** лестница исходов при отказе роли — ре-спрос, затем фоллбек на ДРУГУЮ фронтир-модель, и лишь при отказе обоих один черновой вариант (ряд 330 и В2 закрыты; ⚠ фоллбек лечит класс с замеренной популяцией НОЛЬ, а не текущую болезнь) · род: редактору идёт КОНТЕКСТ «пол скрыт», а не директива «бери мужские» (Д-1 снят в пользу D5 п.1) · **гейт БЛОКИРУЕТ**, редакция оркестратора №15 отменена · docs/experiments/ — общая проектная зона оркестратора, ряд 359 закрыт | ЖИВОЕ: стройка фоллбека (ряды 435 · 451), правка строки языковых данных | жив | банк деньги процесс | diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index b6e6ed5d..acbbc993 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -1,4 +1,4 @@ -# Журнал решений оркестратора — контракт D1–D39.259 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`) +# Журнал решений оркестратора — контракт D1–D39.260 (живой файл: карта · эрраты · живые тела · голова 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+). @@ -4107,3 +4107,26 @@ bought NOTHING». ⇒ **`tmctl manifest` есть НИЖНЯЯ граница, **Что этот акт НЕ ратифицирует.** Он не говорит, что ре-спрос работает, и не выбирает число как оптимальное — это поведение, и оно пинится в пакете конвейера. Он ратифицирует ровно одно: боевые ДАННЫЕ продолжают просить ре-спрос, и это половина, которую тест на Go иначе не видит. +## D39.260 — РЕШЕНИЯ ВЛАДЕЛЬЦА 17.09, ВТОРАЯ ПОРЦИЯ: лестница исходов при отказе роли, контекст вместо директивы рода, гейт БЛОКИРУЕТ, экспериментальная зона общая (17.09, оркестратор №23) + +**1. ЧТО ЕДЕТ ЗАКОНОМ, КОГДА РОЛЬ НЕ ДАЛА ПЕРЕДАЧУ — лестница исходов, слово владельца.** Дословно: «У нас должен быть фоллбек на другую фронтир модель, он есть? +Если и он отказался и все гейты сломаны, то да, пусть черновой какой то один вариант выбирается». ⇒ порядок: **ре-спрос той же моделью → фоллбек на ДРУГУЮ +фронтир-модель → и только если отказались оба и гейты не сработали, берётся ОДИН черновой вариант.** Ряд **330** и вопрос В2 консилиума закрыты этим. +⚠ **Разделение, без которого решение прочтут неверно:** измеренная болезнь холодного прогона B — НЕ отказ модели, а размышление, съевшее потолок до токена +(8000 из 8000); её лечит удвоение бюджета, и это построено паком «лестница попытки» (`D39.259`). Фоллбек лечит ДРУГОЙ класс — отказ и мусор, — и его замеренная +популяция на банк-ролях сегодня НОЛЬ. ⇒ фоллбек ратифицируется как страховка неувиденного класса, а не как лечение текущего; отказ зоны строить хоп в паке +«лестница» остаётся в силе, и пять причин нулевого хопа из её отчёта становятся спецификацией этой стройки (ряды **435** · **451**). + +**2. РОД: РЕДАКТОРУ СООБЩАЕТСЯ КОНТЕКСТ, А НЕ ДИРЕКТИВА.** Слово: «редактору сообщается контекст, как переводить он уже сам решает, желательно сохраняя контекст +и не придумывая формулировать как то предложения». ⇒ **конфликт Д-1 снят в пользу `D5` п.1:** строка языковых данных, предписывающая «при неизбежности — мужские», +приводится к форме «пол скрыт до раскрытия» БЕЗ предписания рода. Модель решает сама, сохраняя контекст. ⚠ Производитель значения не меняется: оно остаётся +человеческим и вводится сидом (`D39.193` п.1 — словарь классификатора намеренно сужен, см. эрратту 17.09-г). + +**3. ГЕЙТ БЛОКИРУЕТ.** Слово: «Блокировать, исправлять, но не хакать, техдолг не держать, упрощать управление проектом нужно чтоб такого не было». ⇒ pre-commit +перестаёт быть предупреждением: красный гейт останавливает коммит. ⛔ Прежняя редакция («останавливать чужой коммит — решение владельца», оркестратор №15) +ОТМЕНЕНА этим словом. ⚠ И вторая половина слова — про причину, а не про наказание: упрощать управление так, чтобы красного не возникало. + +**4. ЗОНА `docs/experiments/` — ОБЩАЯ ПРОЕКТНАЯ.** Слово: «Общая проектная, ты оркестратор, тем более что хочешь можешь делать». ⇒ после вывода полигона из скоупа +(`D39.248` п.4) каталог остаётся за оркестратором; правило «доки не перемещаются», писанное для живой полигонной зоны, на отработавшие носители больше не +распространяется. Ряд **359** («у каталога нет хозяина») закрыт. +