# ПЛАН РАЗБОРА ТЕХДОЛГА ДОКУМЕНТАЦИИ — заказ владельца 01.09.2026 > **⚠ РЕДАКЦИЯ 2. Редакция 1 ОТКЛОНЕНА контролёром (Fable 5.1) и переписана.** Что он нашёл и что > исправлено — раздел «Почему ред.1 отклонена». Главное: реестр находок был собран с дефектом > атрибуции, и план исполнялся бы по чужим поправкам. > > **⚠ ВРЕМЕННЫЙ РАБОЧИЙ ДОКУМЕНТ.** По закрытию последнего батча уезжает в `archive/` вместе с > реестром. Держать его в живых доках после закрытия — сделать ровно то, против чего он заказан. > > **Заказ владельца дословно:** свести находки в план и идти по нему · привести документацию в > хороший порядок · **с бэклогом ПООСТОРОЖНЕЕ** · спилить лишнее, актуализировать · **старое и > откровенно лишнее выкинуть, актуальное оставить и НЕ ПОТЕРЯТЬ** · старые решения и мусор > спиливать, чтобы не забивать контекст сессиям · **касается фронтовой, платформенной и > бэкенд-документации** (прямая санкция на чужие зоны, 01.09). > > **Контроль исполнения — агент модели Fable 5.1**, поднят по оригинальному воркфлоу ревью > (получил скрипт воркфлоу и сырой журнал 30 агентов). Контекст у него сквозной и не стирается. > После КАЖДОГО коммита я предъявляю коммит, он сверяет с реестром и выносит вердикт. > **Мой самоотчёт закрытием не считается.** Пинг-понг идёт, пока ОБЕ стороны не скажут «закрыто». ## Почему ред.1 отклонена (находки контролёра, все проверены моей командой) 1. **Реестр собран с дефектом атрибуции.** Вердикты опровергателей присваивались по паре `(файл, строка)`, а на одной строке сидит до ШЕСТИ находок (`docs/PROGRESS.md:3` — шесть). Все они получали поправку ПОСЛЕДНЕЙ. Затронуто 10 находок. Цена, если бы пошёл по ред.1: переписал бы `docs/README.md:29`, которую ДВА опровергателя независимо велели не трогать; снял бы с листа владельца живое обязательство (N076); искал бы в `docs/` файл, который уже в архиве (N075). **Исправлено:** матч по дословной цитате, 82 вердикта на 82 разные находки, дублей 0. 2. **N015 носила чужой вердикт «ПОДТВЕРЖДЕНО»**, не выносившись на пере-суд. Исправлено: honest «НА ПЕРЕ-СУД НЕ ВЫНОСИЛАСЬ». 3. **Улики были обрезаны на ~700 знаках**, и в хвостах терялись именно положительные контроли; разбор опровергателей (`reasoning`, 82 вердикта с уликами) в реестр не попадал вовсе. Исправлено: реестр без капа, с разбором. 4. **Б13 ред.1 был батчем на ПОТЕРЮ:** три позиции из четырёх противоречили выводам ревизии (`platform/docs/p8-review/` цитируется боевым тестом `spendbound_test.go`; `backend/docs/SEAM_*` — носитель D39.158 ссылается на них пятью местами; `MONEY_HONESTY_REPORT` назначен носителем живого остатка строки 232). Осталась ОДНА законная позиция — переезд отработавшего промта. 5. **Б9 «баннеры ИЛИ архив» — «или архив» снят:** 01/04/06 цитирует Go-код десятком мест. 6. **«Планы доработок в бэкенд и платформу» вынесены из плана:** это заказ (0б), а не техдолг доков; держать его критерием «техдолг закрыт» нельзя — он бесконечен по определению. ## Источники - [`archive/reports/DOC_REVISION_FINDINGS_2026-09-02.md`](archive/reports/DOC_REVISION_FINDINGS_2026-09-02.md) — **реестр ред.2**, 130 находок с уликами. - [`archive/reports/DOC_REVISION_REFUTED_2026-09-02.md`](archive/reports/DOC_REVISION_REFUTED_2026-09-02.md) — 7 снятых. ⚠ **Чинить нельзя**: починка вернёт дефект. ## Дисциплина разбора (жёсткая) 1. **Поправка опровергателя ПЕРВИЧНА.** Где в находке стоит «⚠ ПОПРАВКА ОПРОВЕРГАТЕЛЯ» — исполняется она, а не «Предложенное действие». Поправка есть у **67 из 130**, и часть ПРОТИВОПОЛОЖНА исходному действию. 2. **Не вписывать новые голые `file:line`** — сгниют так же. Форма: токен-якорь `` файл:строка=`подстрока` `` либо ссылка на символ. Прямо требуют десять поправок. 3. **Вес находки не одинаков.** «НА ПЕРЕ-СУД НЕ ВЫНОСИЛАСЬ» = проверена одним агентом = наряд на перепроверку. Верифицировать своей командой ДО правки. 4. **Не потерять.** Перед удалением абзаца/строки/дока — грепнуть отличительный токен и назвать адрес, куда уехало содержимое. Удаление без адреса = потеря. 5. **Бэклог — осторожно.** Строка закрывается ТОЛЬКО с предъявленным в коде лекарством. ID строк стабильны навсегда, на них ссылаются доки: закрытая строка уезжает в D-ноту с номером решения. 6. **Чужие зоны.** Санкция владельца — на ДОКУМЕНТАЦИЮ; код чужих зон не трогаю. **Объявление = строка в зонном журнале ТЕМ ЖЕ коммитом** (иначе зона не увидит). 7. **Гейты перед каждым коммитом:** `counts.py --check` и `--lint`, `git status` на чужое, коммит только явным списком путей. 8. ⛔ **Соседний worktree `/home/ubuntu/projects/textmachine` — НЕ ТРОГАТЬ ВООБЩЕ** (указание владельца 01.09): ни чтением, ни `git -C`. `books/` — симлинк туда же. ## Порядок и зависимости (требование контролёра) - **Б0 идёт первым:** факт «канон 0.9.0» размазан по пяти батчам; пять коммитов дали бы четыре промежуточных состояния, где часть носителей врёт. - **Б2 (переезд промта) — до Б4:** N075 даёт развилку «перенести файл ИЛИ переписать текст». Если Б4 выберет текст, а Б2 потом перенесёт файл — текст снова ложь. - **Б1 — одна нота на четыре строки** (194/238/239/240): это одно событие, лендинги 31.08. - **Б6 после Б4:** якоря реестра 13 ссылаются на строки бэклога. ## Батчи | Батч | Предмет | Находок | бл/maj/min | Статус | |---|---|---|---|---| | **Б0** | СКВОЗНОЙ: «канон 0.9.0» одним касанием — требование контролёра 2.2 | 7 | 0/6/1 | ✅ ЗАКРЫТ | | **Б1** | Блокеры бэклога + строка 240: ОДНА нота на четыре строки | 4 | 3/1/0 | ✅ ЗАКРЫТ | | **Б2** | Переезд ОТРАБОТАВШЕГО промта (git mv) — раньше Б4, т.к. N075 от него зависит | 2 | 0/0/2 | ✅ ЗАКРЫТ | | **Б3** | Денежный путь 15-money-path.md (+ парная правка 17:101 по N004) | 7 | 2/3/2 | ✅ ЗАКРЫТ | | **Б4** | Шапка журнала и остальной бэклог | 14 | 0/7/7 | ✅ ЗАКРЫТ | | **Б5** | Контракт API 14 | 8 | 0/4/4 | ✅ ЗАКРЫТ | | **Б6** | Реестр загейченных триггеров 13 | 8 | 0/5/3 | ✅ ЗАКРЫТ | | **Б7** | Шов и эмиттер 16, 17 | 11 | 0/8/3 | ◐ закрыт РЕЗОМ частично | | **Б8** | Движковые арх-доки 03, 09, 10, 12 | 16 | 0/4/12 | ◐ закрыт РЕЗОМ частично | | **Б9** | Корневые и онбординг: CLAUDE.md, README, STACK, glossary, product-requirements | 14 | 0/4/10 | ◐ закрыт РЕЗОМ частично | | **Б10** | Ранние арх-доки 01/04/06 — ТОЛЬКО баннеры, архив СНЯТ (контролёр 4.2) | 6 | 0/1/5 | ◐ закрыт РЕЗОМ частично | | **Б11** | ЧУЖАЯ ЗОНА: бэкенд-доки — баннеры, НЕ архив (N074 corrected) | 10 | 0/6/4 | ◐ закрыт РЕЗОМ частично | | **Б12** | ЧУЖАЯ ЗОНА: фронт-доки (три неприкасаемых) | 15 | 0/8/7 | ◐ закрыт РЕЗОМ частично | | **Б13** | ЧУЖАЯ ЗОНА: платформенные доки | 8 | 1/4/3 | ◐ закрыт РЕЗОМ частично | | **Б14** | Углы вне ОБЕИХ сеток: `PROGRESS` 19–56 и 273–483 · `ORCHESTRATOR_SESSION_PROMPT.md` (32 КБ, не аудирован никем) · `05-decisions-index.md` статусы · шапка D-лога · `platform/BACKLOG.md` · `platform-PROGRESS.md` (415 КБ) · `DEFECT_REGISTER.md` (782 КБ) · `docs/POLYGON_*` | — | — | ⬜ следующей смене | | **Б15** | Явный мусор: байт-дубль промта P0 в двух архивах · `frontend/docs/API_CONTRACT_{DRAFT,INPUT}.md` (78 КБ с баннером «не читать» в ЖИВОМ каталоге) · ⛔ **`16-events-emitter` §5–§6 — ПУНКТ СНЯТ 10.09, исполнять НЕЛЬЗЯ:** §6 в этом файле нет (заголовков пять, §1…§5), а §5 называется «Оговорки, которые ПЕРЕЖИВАЮТ стройку» — по букве пункта их бы вынесли в архив, то есть удалили ровно то, что объявлено переживающим. Прежние §5–§7 сняты ещё `9cfe080` 14.08 (`D39.131`), а план писан 02.09 по памяти о них · `14-README` §6б/6в (⚠ адреса в пункте ниже мертвы — см. пометку 10.09 там же) | — | — | ⬜ следующей смене | | **Б16** | Шапки статуса у `research/**` и `experiments/**` (60 файлов): тела НЕ трогать (D23.3), только датированная строка статуса там, где её нет | — | — | ✅ ЗАКРЫТ | | **Б17** | Пинги зонам по МЁРТВЫМ УКАЗАТЕЛЯМ В КОДЕ (не доки, правит зона): `artifact.go:11` · `backup.go:28` · `pgstore/books.go:776` · `languages.ts:3-8` · `tmctl/main.go:72` · `store/ledger.go:172` · `cheapgates.go:34` · `pipeline.puml:72` | — | — | ⬜ следующей смене | ### Критерии приёмки по батчам **Б0 — СКВОЗНОЙ: «канон 0.9.0» одним касанием — требование контролёра 2.2** Находки: N013, N022, N026, N034, N053, N056, N108 **Приёмка:** `grep -rn '0\.8\.0' docs/ CLAUDE.md --exclude-dir=archive` минус D-лог и реестр нот = 0, оставшиеся хиты предъявляются ПОИМЁННО с пометкой «историческое»; **`docs/README.md:29` НЕ тронута** (два опровергателя независимо: это корректная историческая запись о D39.169); `README:26` уже несёт 0.9.0 — не дублировать. **Б1 — Блокеры бэклога + строка 240: ОДНА нота на четыре строки** Находки: N001, N002, N003, N021 **Приёмка:** `grep -c '^| 194 \|^| 238 \|^| 239 \|^| 240 ' docs/PROGRESS.md` = 0; тело ноты несёт ВСЕ четыре номера, оба опровержения N001 (ось «сдвиг снапшота» И «не входят в число согласия»), экземпляры A6, A7+A12, обе половины улики 240 с оговоркой про `local`-заглушку; ~~`docs/PROGRESS.md:277` (было :282) больше не предлагает 238/239 как свободную работу~~ ⚠ **адрес снят 17.09: критерий ИСПОЛНЕН, а журнал с тех пор резался и правился, и номер строки ничего не адресует** — проверять предмет грепом по номерам рядов, а не по строке журнала; литералы очереди пере-считаны **скриптом** (`counts.py`), не руками; `counts.py --check` зелёный (голова сдвинется — сверить все три носителя). **Б2 — Переезд ОТРАБОТАВШЕГО промта (git mv) — раньше Б4, т.к. N075 от него зависит** Находки: N075, **N084** (перенесена из Б9: критерий `README.md:25` — поправка опровергателя именно к ней) **Приёмка:** `git show --stat` = ровно rename + `docs/README.md`; после — `grep -rn 'docs/BACKEND_COLDRUN_V16'` даёт только исторические носители (архивный отчёт, D-лог, реестр нот), `COLDRUN_V16_REPORT:51` НЕ тронут (тело архивного отчёта); обе протухшие половины строки `README.md:25` поправлены («развилка НА ВЛАДЕЛЬЦЕ» → закрыта 31.08; «отчёт ждёт лендинга» → заленджен); ⚠ литерал «86 живых доков» в CURRENT-STATE уменьшится — `counts.py` его НЕ сторожит, править руками или снять. **Б3 — Денежный путь 15-money-path.md (+ парная правка 17:101 по N004)** Находки: N004, N005, N039, N040, N041, N113, N114 **Приёмка:** **N005** (не N002/N003 — те в Б1, испр. по замечанию контролёра) — обе ветви `run abandon` описаны; провенанс чисел заменён с июльских на замер холодного прогона с явной датой; **N004 требует парной правки `17-seam-inbound-law.md:101` ТЕМ ЖЕ коммитом**, иначе класс E воспроизводится. **Б4 — Шапка журнала и остальной бэклог** Находки: N014, N015, N016, N017, N018, N019, N020, N076, N077, N078, N079, N080, N081, N082 **Приёмка:** diff строго строк 1–18 и затронутых `| N |`; **строка 11 (лист владельца) неизменна**; N076 — исполняется ТОЛЬКО первая половина, снятие пункта с листа владельца ЗАПРЕЩЕНО; N016 — НЕ закрывать, переписать (живой остаток — цена доведённой книги); N017 — уровень ноты, не строки; N019 — писать связку $0.436110 / проекция $1.1377 / отток ≈$1.44; N020 — СУЗИТЬ строку 232, не закрывать; на каждую снятую фразу — адрес, куда уехала. **Б5 — Контракт API 14** Находки: N035, N036, N037, N038, N109, N110, N111, N112 **Приёмка:** N036 — команду убрать целиком (не менять «0 → 26»), хвост §7 тем же коммитом; N035 — первую половину 981 не трогать, §6в только ⚠-указателем; греп отличительных токенов снесённых абзацев в цели указателя. **Б6 — Реестр загейченных триггеров 13** Находки: N029, N030, N031, N032, N033, N105, N106, N107 **Приёмка:** `counts.py --lint` до/после: проблем 0, счётчик «сверено ПО СОДЕРЖИМОМУ» вырос ровно на число мигрированных, **число якорей в файле не уменьшилось**; N029 — стрелка «→ ЗАКРЫТО D39.82, см. строку 16», сводку свипа НЕ переписывать; N030 и N107 — строки 72 и 98–104 одним касанием. **Б7 — Шов и эмиттер 16, 17** Находки: N042, N043, N044, N045, N046, N047, N048, N049, N115, N116, N117 **Приёмка:** N046 — форма якоря `mining.go:243-244`=`re-seed the bank with the auto rows`; N047 — атрибуция D39.159 п.7 и пере-суд «строки 139»; N048 — ОБЕ строки таблицы (97 и 103); N049 — хвост с `PD-427`; N044/N115 — StreamVersion **1.2** ⚠ (испр. 05.09: на HEAD она **1.3** — минор приехал лендингом `81a89e9`; критерий читать как «версия записана ВЕРНО», а не как литерал `1.2`); N045 — двенадцать якорей в токен-форме. (Прежний критерий про N032 снят: N032 живёт в Б6, испр. по замечанию контролёра.) §5–§6 дока 16 сам себя баннирует как отработанный хендофф, внешних ссылок ноль — кандидат на вынос в `archive/reports/` с указателем (решение объявить, не делать молча). **Б8 — Движковые арх-доки 03, 09, 10, 12** Находки: N023, N024, N027, N028, N092, N093, N095, N096, N097, N098, N099, N100, N101, N102, N103, N104 **Приёмка:** 09 §1/§2/§4 — тела под ⚠-баннерами, анти-оверфлаг: не лезть, кроме мест, где содержимое расходится с шапкой; N027 — буллет `09:144-145` сносится ЦЕЛИКОМ; N092 — отображение `dc6ea8e=7954325 · a32ec2e=e861541 · волна 2=214e005`; N098 — минимальная пометка, НЕ третий носитель; N104 — без списка восьми `file:line`. (Прежний критерий про N063 снят: N063 живёт в Б12, испр. по замечанию контролёра.) **Б9 — Корневые и онбординг: CLAUDE.md, README, STACK, glossary, product-requirements** Находки: N050, N051, N052, N054, N068, N069, N070, N083, N085, N086, N087, N118, N119, N120 **Приёмка:** CLAUDE.md — правка канона владельца: каждая формулировка предъявляется владельцу до коммита; `docs/README.md:29` не трогать (см. Б0). **Б10 — Ранние арх-доки 01/04/06 — ТОЛЬКО баннеры, архив СНЯТ (контролёр 4.2)** Находки: N025, N088, N089, N090, N091, N094 **Приёмка:** ⚠ **«или архив» СНЯТ контролёром**: ни 01, ни 04, ни 06 не кандидаты — их цитирует Go-код (`ingest.go`, `ruby.go`, `migrate.go`, `cheapgates.go`, `coverage.go`, `book.go`, `memory.go`, `memseed.go`), а 01 назначен носителем Р5/Р8 самим D-логом. Только ⚠-баннеры на месте. **Б11 — ЧУЖАЯ ЗОНА: бэкенд-доки — баннеры, НЕ архив (N074 corrected)** Находки: N007, N008, N009, N010, N011, N012, N071, N072, N073, N074 **Приёмка:** N074 corrected: SEAM_* НЕ переносить — `SEAM_PACK_FINDINGS.md` (носитель D39.158) ссылается на них в пяти местах; MONEY_HONESTY_REPORT §4.5 назначен носителем живого остатка строки 232 — не архивировать; лечение = датированные ⚠-баннеры. N008/N009 — часть лекарства в коде (`artifact.go`, `backup.go`, `pipeline.puml`) ⇒ ПИНГ зоне, не касание. Строка в `docs/PROGRESS.md` секции «Бэкенд» тем же коммитом. **Б12 — ЧУЖАЯ ЗОНА: фронт-доки (три неприкасаемых)** Находки: N055, N057, N058, N059, N060, N061, N062, N063, N121, N122, N123, N124, N125, N126, N127 **Приёмка:** ⛔ НЕ трогать: зеркало `frontend/docs/api-contract/openapi.yaml` (отставание РАТИФИЦИРОВАНО D39.142 п.5 на время фриза), `src/api/schema.ts` (генерируемый), `src/mock/handlers.ts` (код). N057 не переписывать в «закрыта»; N122 не менять пример на живой; N124/N048 — хронику зонного журнала задним числом НЕ править. Объявление = строка в `frontend/docs/frontend-PROGRESS.md` ТЕМ ЖЕ коммитом. **Б13 — ЧУЖАЯ ЗОНА: платформенные доки** Находки: N006, N064, N065, N066, N067, N128, N129, N130 **Приёмка:** N065 — абзац 251–253 снести, оставив ОДНУ отсылку вверх (не второй носитель); 255–258 не сносить, только зачин; N006 — формулировка «атомарно ПОФАЙЛОВО, пара не транзакционна»; N129 — координаты пере-грепнуть (6 из 7 в реестре промахиваются). Объявление = строка в `platform/docs/platform-PROGRESS.md` ТЕМ ЖЕ коммитом. **Б14 — РАЗДЕЛЕНА НАТРОЕ по вердикту контролёра (сначала найденное, углы — по трём адресам)** Довод контролёра, принят: найденное — 130 утверждений с уликой в носителях, которые читает каждая сессия; углы — мегабайт НЕИЗВЕСТНОГО состояния, и чинить неизвестное без ревизии значит править «по впечатлению» — ровно та ошибка, ради которой воркфлоу и строился. - **Б14а → влито в Б4.** `docs/PROGRESS.md` строки 19–56 и 273–483 правятся ТЕМ ЖЕ касанием, что шапка: запись пака 296–371 несёт пинги, которые нота Б1 обязана поглотить (N001 `:344`, N002/N003 `:306`), а блок «ОТКРЫТО НА №21» (36–42) с исполненными п.1–3 и ложной строкой 42 нельзя оставлять под только что починенной шапкой. **Приёмка:** каждый буллет 19–56 сверен с D39.180/182/184; секция 273–371 уезжает в `archive/PROGRESS-2026-08-backend.md` ТОЛЬКО ПОСЛЕ ноты Б1. - **Б14б → ОТДЕЛЬНАЯ РЕВИЗИЯ, запущена параллельно, правки после Б9.** `docs/ORCHESTRATOR_SESSION_PROMPT.md` (32 КБ, не аудирован никем) · статусы `05-decisions-index.md` · шапка живого D-лога (карта актуальности + эрраты). Тот же протокол: команда + положительный контроль. Правки идут вместе с корневыми доками, не раньше найденного. - **Б14в → ПОСЛЕДНИМИ, после Б13.** `platform-PROGRESS.md` (415 КБ) · `DEFECT_REGISTER.md` (782 КБ) · `platform/BACKLOG.md` · `docs/POLYGON_*`. Лечение — не правка, а НАРЕЗКА по зонной конвенции слайсов (`archive/platform-PROGRESS-P*.md`): при верной нарезке потеря содержимого невозможна. Писать 415 КБ чужого журнала ДО того, как зона увидела объявления Б13, — плохой порядок. **Б15 — явный мусор.** **Приёмка (требование контролёра):** на КАЖДЫЙ переносимый файл — список входящих ссылок и адрес каждой после переезда. Для `frontend/docs/API_CONTRACT_{DRAFT,INPUT}.md` — пере-углубление относительных путей по D39.80. Для `14-README §6б/6в` ссылки ОСТАЮТСЯ ⇒ на месте нужна заглушка-указатель, а не пустота. ⚠ **Адреса испр. 10.09, и это замеренное опровержение дисциплины САМОГО ЭТОГО ПЛАНА** (он выше запрещает вписывать голые `file:line` — «сгниют так же»): стояло «D-лог:558 и реестр:216». По первому адресу сегодня ПУСТАЯ строка, живые ссылки — `docs/architecture/05-decisions-log.md`, греп `§6в` (две штуки); в реестре `docs/architecture/05-decisions-index.md` вхождений «§6б»/«§6в» **0** при 296 строках, то есть второй адрес указывал в ряд, к предмету отношения не имеющий. ⇒ дальше в этом плане адреса — только грепом. **Б16 — шапки статуса research/experiments.** Тела НЕ трогать (D23.3). **Приёмка — команда:** ``` for f in docs/research/*.md docs/experiments/*.md; do head -12 "$f" \ | grep -qiE 'ревью-шапка|ревю-шапка|⚠|статус|superseded|отработан|принят|переопределено' || echo "$f"; done ``` → пусто. ⚠ **ИСПР. 05.09, и поправка тут в ДВЕ стороны — батч закрывался с красной собственной приёмкой.** Прогон команды 05.09 дал ШЕСТЬ файлов при заявленном «пусто». Из них ДВА — ложные срабатывания самой команды: `research/05` и `research/11-gap-5` шапку несут, но словом «ПЕРЕОПРЕДЕЛЕНО», которого в словаре грепа не было (слово добавлено выше). Остальные ЧЕТЫРЕ шапки не имели вовсе — `06-local-models`, `12-consumer-feedback`, `28-contract-review`, `29-harness-topology-survey-codex` — и получили их 05.09; заодно шапки проставлены `29` и `30`. **Урок батча:** приёмочная команда, чей словарь уже словаря реальных формулировок, закрывает батч зелёным и прячет ровно то, ради чего батч заводился. Отдельно: `12-failure-modes-ja.md` и `12-failure-modes-zh.md` не имеют ни одной входящей ссылки во всём дереве — по норме НЕ архив, но шапка обязательна. **Б17 — пинги зонам по мёртвым указателям В КОДЕ.** **Приёмка:** пинг = строка зонного журнала, называющая файл, символ и что именно неверно. **Кода не трогать вовсе.** ## Карта ДЫР самой ревизии — записываю честно, а не молчу Ревизоры сами назвали, чего не проверили. План это НЕ закрывает; пункты числятся как «не проверено» (что не равно «опровергнуто»): - **30 строк бэклога веса «скоро» не проверены** ни одним агентом: 2, 4, 18, 46, 109, 113, 114, 119, 120, 121, 134, 136, 140, 142, 143, 150, 167, 172, 182, 183, 188, 191, 207, 210, 216, 219, 224, 225, 49, 55. Плюс ~120 строк «когда-нибудь» проверены выборочно (16 из них). - 18 пунктов строки 243 не проверены. - В реестре триггеров 13 проверено 59 якорей из 100+. - `14-api-contract/README.md` прочитан частями; `openapi.yaml` — только грепами. - `SEAM_PACK_FINDINGS.md` — НЕ_УСПЕЛ. `D15.2` — сверено два якоря из десятков. - `FRONTEND_PLAN.md` §1–4, §5.2–5.5 не открывались. - **Классы, которых воркфлоу не заказывал по построению:** дубли БЕЗ расхождения · вес контекста в байтах на маршруте онбординга · сироты (входящие ссылки спрашивались только как гард) · забаннированное историческое (анти-оверфлаг объявил его легитимным — а это самый большой класс кандидатов на вынос) · весь `archive/` (213 файлов) · не-`.md` носители (puml, комментарии кода и yaml) · зонные трекеры. ## Что вынесено ИЗ плана **Планы доработок в бэкенд и платформу (заказ 0б)** — отдельная работа, не критерий закрытия техдолга доков. Носитель — CURRENT-STATE. **Хвост лендинга ресёрча.** Очередь п.5 велит новой смене лендить файл, лендинг которого владелец 01.09 откатил (`162ab9b`). Пока формулировка стоит, следующая смена повторит откат. **Формулировку задаёт владелец — сам не переписываю.** --- ## ⟶ СОСТОЯНИЕ НА ЗАКРЫТИЕ СМЕНЫ №22 (02.09.2026) **Что случилось сверх плана.** Владелец 02.09 расширил заказ с «починить протухшее» до «спилить всё лишнее во ВСЕХ зонах». Отработали три прохода агентами (рез → сверка → дофикс) плюс финальный: **живые доки 4.41 → 3.68 МБ, снято 731 КБ**; вход бэкенд-сессии **347 → ~270 КБ**. **Батчи Б7–Б13 закрыты РЕЗОМ частично, а не по реестру находок.** Контролёр свёл два потока: 29 находок закрываются уликой реза (`N042 N043 N045 N116 N117 N024 N092 N093 N027 N028 N098 N099 N101 N050 N051 N088 N094 N010 N074 N055 N121 N057 N059 N061 N062 N124 N126 N065 N128`), 11 остатков (`N044/N115` строка 243 · `N048` · `N097` · `N095` · `N025` · `N008` · `N073` · `N060` · `N066` · `N129`), 2 открыты (`N007` backend/README · `N100` 10-prompt). **Седьмой слайс журнала — ВЫЧЕРКНУТ**, не отложен. Довод замером: журнал на маршруте чтения не лежит (канон велит «целиком не читать», номер грепается), а греп ходит и в слайсы ⇒ вынос не экономит ни байта входа, ни шума поиска. Только выглядел бы работой. **Гейты, построенные вместо норм-пожеланий** (`docs/scripts/counts.py`, проверены посадкой мутаций): вес бэклога судится ПРЕФИКСОМ ячейки (девять известных рядов — дедовщиной, гейт краснеет на десятом) · токен якоря короче 12 знаков не считается сверкой по содержимому · временные доки разбора в `LINT_SKIP_DOCS`. Линтер: **52 предупреждения → 0**; сверяемых по содержимому **16% → 22%**. **Что НЕ построено и передаётся:** гейт «удалена строка защищённого класса без адреса в том же коммите» — идея контролёра, выведенная из корпуса: все 18 признанных потерь смены несли маркер защищённого класса. Это перевод протокола удаления из дисциплины в механику, и он стоит больше остальных вместе взятых. **Сжатие реестра нот под кап 400 Б/ряд — следующей смене.** Замер: реестр 132 КБ, **47% входа**; медиана ряда первых 60 нот — 277 Б, последних 60 — **566 Б** (норма «одна строка на ноту» сгнила вдвое за месяц). Гейт формы родится КРАСНЫМ на ~100 рядах — это и есть наряд. ## ⟶ ИТОГ РЕВИЗИИ 17.09 (четыре чтеца, сплошное чтение) — что вынесено и что выносить ЗАПРЕЩЕНО **Вынесено:** отчёты десяти принятых паков из журнала прогресса (4552 строки) · рабочий каталог консилиума банка (1.49 МБ, 33 файла из 46 не упомянуты нигде) · два обзора топологии (476 КБ). Живой `docs/` — 10.2 МБ в начале дня, 8.34 МБ после. ⛔ **ВЫНОСИТЬ ЗАПРЕЩЕНО, и это не осторожность, а действующая норма** (`docs/archive/README.md`): частично устаревший ресёрч НЕ переносится — он получает ⚠-баннер на месте, потому что перенос ломает `file:line` из журнала и архитектуры. Под неё подпадают: - **блок ранних ресёрчей 01–18 (26 файлов, 1.25 МБ).** Ревизор насчитал ноль байт к выносу: у каждого живые входящие, часть — из носителя архитектурных принципов, часть — из ТЕЛ отчётов, которые править запрещает дисциплина улик, так что после переноса они указывали бы в пустоту навсегда. ⚠ И замер: вынос ничего не покупает — на маршруте онбординга стоит ОДИН файл из 26, а поиск архив не исключает, меняется лишь префикс в выдаче. Это тот же довод, которым вычеркнули седьмой слайс журнала. - **контрактное ревью `research/28` (203 КБ)** — 50 живых входящих в 13 файлах, включая замороженную зону. Вместо выноса поправить строку карты `docs/README.md`, которая шлёт исполняющие сессии читать оригинал. - **юридический носитель `08-legal`** — на него ссылается ЯКОРЕМ тело ратифицированной ноты. ⚠ **Условие владельца 17.09 (`D39.261` п.2), обязательное для всякого выноса:** перед переносом проверить, не лежит ли в носителе ЗАМЫСЕЛ, ещё не построенный в коде. Носитель с баннером «отработал» может оказаться единственным местом, где живёт нереализованное решение; такой кусок уезжает СТРОКОЙ ТРЕКЕРА прежде, чем файл уедет в архив. ⭐ **Основание выноса обзоров топологии** — не «предмет закрыт ратификацией» (эта ссылка при проверке НЕ подтвердилась), а их собственные шапки: оба объявляют себя фактурой без ратификации, и у первого в шапке стоит признание о ВЫДУМАННОМ хвосте хеша — идентификаторе, которого автор не видел целиком. Носитель с порождённой уликой в живом дереве опаснее отсутствующего.