Extend the weight-column row with its second half: the cell has neither vocabulary nor escaping, and one prefix rule kills both traps
This commit is contained in:
parent
b6679c6fdf
commit
9aa7106603
1 changed files with 1 additions and 1 deletions
|
|
@ -204,7 +204,7 @@
|
|||
| 246 | ⚠ **ДВЕ КОПИИ ПОЛОСЫ ОТКАЗОВ 10–19 ОБЕЩАЮТ РАЗНОЕ — потребитель держит гарантию, которую производитель ОТОЗВАЛ.** Движок (`backend/cmd/tmctl/main.go:53`=`Nothing was written` is NOT the band's promise any more): «„Nothing was written“ is NOT the band's promise any more … **exit 15 legitimately answers with files on disk**». Платформа (`platform/internal/ingest/exit.go:38`=`nothing this process would have written was written`): «… and nothing this process would have written was written». ⚠ Опасность не теоретическая: по `PD-196` интейк действует по полосе РАЗРУШИТЕЛЬНО (отклоняет книгу и удаляет загрузку), а `exit 15` теперь легитимно оставляет файлы на диске. Хвост: движковый `exitBookIncomplete = 16` у платформы константы НЕ имеет вовсе (её словарь 10·11·12·13·14·15·19). ⚠ **Денежная половина ЦЕЛА в обеих копиях** (`nothing was spent` — по одному хиту в каждой), поэтому запрет отказывать классом полосы там, где деньги уже потрачены, в силе. Предсказано п.6 закона шва 17 | платформа (правка) + оркестратор (маршрут) | СРОЧНО | зона платформы приводит свою копию к движковой ЛИБО обе стороны идут в ратификацию, если расхождение намеренное | пак «деньги и честность», находка A15 вне заказа, 31.08; пере-проверено оркестратором дословно обеими копиями |
|
||||
| 247 | **§2.2 закона раскрытия опровергает себя следующей же строкой — эррата зонного дока.** Формальная фраза требует «держит ОБА операнда сравнения и обязано их НАПЕЧАТАТЬ», а её собственный пример тут же говорит обратное: честная форма — НАЗВАТЬ ОСЬ («снапшот разошёлся» честно, «конфиг/промпты изменились» ложно). ⚠ **Ратифицированный текст D39.181 п.1 требования «напечатать» НЕ СОДЕРЖИТ ВОВСЕ** — оно живёт только в `backend/docs/DISCLOSURE_LAW_DESIGN.md`, значит противоречия с ратификацией нет и решает ЗОНА, не владелец. ⚠ Довод «граница прячет имена моделей и хеши» ОПРОВЕРГНУТ исполнением: эти значения уже едут по тому же stderr штатным INFO-логом, включая `memory_version=<12 hex>` — значение того самого поля. Цена бездействия на живых данных = НОЛЬ (единственная сдвинувшаяся ось — хешевая, печать дала бы две несравнимые строки SHA) | бэкенд | когда-нибудь | эррата к §2.2: операнды называются осью, а не значением | приёмка D39.182 + разведка оркестратора 31.08 |
|
||||
| 248 | **Полнота самообъявления о правках чужих тестов ничем не проверяется — и трижды оказалась неполной.** P11 назвала файл, которого не трогала; P12 не назвала тест, у которого переписаны ОБА утверждения; сессия пака «деньги и честность» в первой редакции комментария утверждала неверное о силе собственной правки. ⚠ **Мой метод проверки был слабее, чем я его подал:** греп `^[-+].*t\.(Error|Fatal)` ловит строку СООБЩЕНИЯ, а утверждение — это строка СРАВНЕНИЯ, и она другая (замер: греп локализует утверждение в 1 случае из 475). Предложение разведки: warn-only гейт-детектор при лендинге — список пред-существующих тестов с изменёнными строками утвержденческой формы ВНУТРИ пред-существующих тел; прототип ~25 строк sh прогнан на двух лендингах и указал ровно на `bankfixpack_test.go`. Площадка есть — `docs/scripts/githooks/pre-commit` уже warn-only. ⚠ Ложняки измерены: целиком новый `t.Run` внутри старого `func` даёт срабатывание (1 из 6 на P12) | оркестратор | скоро | гейт-детектор warn-only + пункт чек-листа приёмки | разведка оркестратора 31.08 по вопросу владельца |
|
||||
| 249 | **Колонка веса бэклога не судится ничем, и девять рядов её потеряли.** Правило таблицы (легенда ниже) даёт ТРИ веса — «блокер-очереди» · «скоро» · «когда-нибудь», — но `counts.py` словаря весов бэклога НЕ ИМЕЕТ: `WEIGHT_VOCAB` в нём — словарь РЕГИСТРА платформы (`major/minor/info`), а `backlog()` лишь считает подстроку «скоро». Замер 02.09 самопроверочным скриптом (`cells(l)[-4]` по всем рядам): **девять** ячеек веса не содержат ни одного слова словаря — ряды **5 · 13б · 94 · 96 · 97 · 149 · 205 · 221 · 246** («отложено-до-замера», «СРОЧНО», «—», «сделано 21.08», «гейчена разморозкой фронта»…). Три из них — 96/97 — надгробия переехавших в зонный бэклог строк, у них «—» законно; остальные шесть потеряли вес молча. ⚠ Найдено не ревизией, а ПОБОЧНО: контролёр приёмки заметил, что мои же две правки снесли вес-слово, я починил свои и пере-считал весь трекер. Лечение: завести `BACKLOG_WEIGHT_VOCAB` по образцу регистра — после дофикса 02.09 нарушений ровно эти девять, значит гейт родится с известным долгом, а не зелёным. **Решение владельца нужно только на форму гейта; сами девять ячеек чинит оркестратор.** | оркестратор | скоро ($0, гигиена трекера) | режим `counts.py` + правка девяти ячеек | ревизия доков 02.09, приёмка контролёра |
|
||||
| 249 | **Колонка веса бэклога не судится ничем, и девять рядов её потеряли.** Правило таблицы (легенда ниже) даёт ТРИ веса — «блокер-очереди» · «скоро» · «когда-нибудь», — но `counts.py` словаря весов бэклога НЕ ИМЕЕТ: `WEIGHT_VOCAB` в нём — словарь РЕГИСТРА платформы (`major/minor/info`), а `backlog()` лишь считает подстроку «скоро». Замер 02.09 самопроверочным скриптом (`cells(l)[-4]` по всем рядам): **девять** ячеек веса не содержат ни одного слова словаря — ряды **5 · 13б · 94 · 96 · 97 · 149 · 205 · 221 · 246** («отложено-до-замера», «СРОЧНО», «—», «сделано 21.08», «гейчена разморозкой фронта»…). Три из них — 96/97 — надгробия переехавших в зонный бэклог строк, у них «—» законно; остальные шесть потеряли вес молча. ⚠ Найдено не ревизией, а ПОБОЧНО: контролёр приёмки заметил, что мои же две правки снесли вес-слово, я починил свои и пере-считал весь трекер. ⚠ **ВТОРАЯ ПОЛОВИНА КЛАССА, найдена тем же заходом: у ячейки веса нет ни словаря, ни ЭКРАНИРОВАНИЯ.** Счётчик ищет подстроку ГДЕ УГОДНО в ячейке, поэтому упоминание веса в прозе неотличимо от самого веса: фраза «переведена из «скоро»» ре-добавила два ряда в счёт (53 → 56 при одной новой строке), поймано пере-счётом скриптом. **Лечение ОДНИМ правилом на обе половины: вес обязан быть ПРЕФИКСОМ ячейки** (`startswith` по трём словам), и «скоро» считается тоже по префиксу, а не подстрокой — тогда потеря веса и ре-добавление счётом умирают одной проверкой, без экранирования. Сегодня такой гейт даёт **9 нарушений, а не 0** — он родится КРАСНЫМ, и это правильно: покажет то, что есть. ⚠ Два ряда девятки шире класса: **149** («исполнен и заленден 10.08») и **205** («сделано 21.08») объявляют себя ИСПОЛНЕННЫМИ прямо в колонке веса, хотя по правилу таблицы закрытые строки в ней не живут — это либо живой остаток без веса, либо непойманный класс C; **246** несёт самодельное «СРОЧНО», которого в словаре нет. **Решение владельца нужно только на форму гейта; сами девять ячеек чинит оркестратор.** | оркестратор | скоро ($0, гигиена трекера) | режим `counts.py` + правка девяти ячеек | ревизия доков 02.09, приёмка контролёра |
|
||||
| 217 | **Скрипты полигона захардкодили АБСОЛЮТНЫЕ пути двух корней и не работают на этой машине вовсе.** ДВА РАЗНЫХ слома. **Корень репо** — смена пользователя: литерал в 121 файле, из них 104 дословно `REPO = Path("/home/ubuntu/projects/textmachine")`, портабельных форм всего 5. **Корень книг** — оба события порознь: литерал `/home/ubuntu/books` 86 файлов (пользователь), портабельный `Path.home()/"books"` 89 файлов (переезд каталога; на прежних машинах работал). Объединение 173 файла. Пользователь теперь `ubuntu-26`, книги переехали в `<репозиторий>/books` ⇒ ломается и то и другое, включая ЖИВОЙ гейт фазы Д `eval/conformance.py:48`=`REPO = Path("/home/ubuntu/projects/textmachine")`. Живых носителей 26 по корню книг (среди них портабельная форма преобладает 20:6) плюс корневые гейты и сборщики корпусов; остальное — скрипты закрытых эксп-12–16, их владелец велел ВЫБРОСИТЬ, а не чинить (D39.157 п.4а). Форма правки — за зоной; приор оркестратора: один модуль путей, корень резолвится МАРКЕРОМ вверх по дереву (движок так и делает — `backend/internal/miner/miner_parity_test.go:29`=`derived from the repository MARKER`), книги от него, обе ручки перекрываются env | полигон | скоро (блокирует любой прогон зоны) | пак путей полигона | переезд машины 24.08, №19 |
|
||||
| 219 | **Line-якоря в тела D-лога обречены съезжать, и механизм именно в дисциплине эррат.** Эрраты вписываются в КАРТУ ШАПКИ (append-only, D23.3), то есть в начало файла, — значит каждая эррата сдвигает номера строк ВСЕХ тел ниже, и любой якорь вида `05-decisions-log.md:NNN` умирает молча. ⚠ Замерено на себе 27.08: три эрраты за сессию убили якоря в `17-seam-inbound-law.md:120` и `research/25-seam-cold-review.md:5` (оба целили в `:232`, тело уехало на `:239`). Лечение — не пере-нацеливание (оно повторится через эррату), а СМЕНА ФОРМЫ якоря: в тела D-лога целиться номером ноты (`^## D39.106`), который стабилен навсегда, а не строкой. ⚠ Строка ОБЪЯВЛЕНА в CURRENT-STATE 24.08 и до 27.08 в таблице НЕ СУЩЕСТВОВАЛА — очередь три дня ссылалась на носитель, которого нет; поймано свипом якорей при выдаче контрактного минора | оркестратор | скоро (растёт с каждой эрратой) | `--lint` учит форму `файл:^## D<номер>`, живые якоря в D-лог переводятся на неё | ревью доков 24.08, механизм и отсутствие носителя — 27.08, D39.160 |
|
||||
| 220 | **Репо-широкий гейт доков бутстрапится пакетным менеджером ОДНОЙ зоны, и та заморожена.** Диспетчер `.git/hooks/pre-commit` зоно-нейтрален по построению (`for hook in */scripts/githooks/pre-commit`, `#!/bin/sh`, node не нужен) и судит `CLAUDE.md` + `docs/**` + `platform/docs/**` + `frontend/docs/**` (`docs/scripts/counts.py:500`=`ROOT / "CLAUDE.md"`), но единственный его УСТАНОВЩИК — `frontend/scripts/githooks/install.mjs`, вызываемый ключом `prepare` из `frontend/package.json`. Охват и бутстрап не совпадают ⇒ инструмент решает свою задачу не в полной мере. Проверено исполнением 24.08: на этой машине `.git/hooks/` содержал только `*.sample`, гейт МОЛЧАЛ, ничего не проверив, и поймал первые четыре дефекта только после ручной установки; сессия бэкенда или доков `npm install` не делает никогда. Приор: зоно-нейтральный установщик в `docs/scripts/githooks/` как ЕДИНСТВЕННЫЙ писатель диспетчера, `prepare` фронта зовёт его — фронтовая половина выписана пингом №19 в зонный журнал фронта. ⚠ Ручная установка — временная мера, пока строка открыта; записывать её как порядок работы ЗАПРЕЩЕНО (это ровно тот обход, цену которого называет шапка `CLAUDE.md`) | доки + фронт | скоро | зоно-нейтральный бутстрап + правка `prepare` при разморозке | аудит переезда 24.08, №19 |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue