Say what my own number was conditional on: the recipe cannot go green at all, and its skip predicate asks about a free port instead of about consent

This commit is contained in:
heaven 2026-09-11 15:42:51 +03:00
parent 3a464ec465
commit a6384c2d0d

View file

@ -89,6 +89,7 @@
> ⚠ **Эррата 11.09-д (`D39.248` п.4) — «ЧЕТЫРЕ СТРОКИ СВЁРНУТЫ В ОДНУ» НЕВЕРНО ДВАЖДЫ, и вторая половина была не опиской, а НЕДОДЕЛКОЙ.** Пере-снято мною самоаудитом через час после лендинга ноты: полигонных строк в таблице активных промтов было **ТРИ** (`ХОЛОДНЫЙ ПРОГОН A` · `РЕМОНТ ПРИБОРА` · `фаза Д`), а не четыре — четвёртый файл (`PHASE_D_HANDOFF`) строкой таблицы никогда не был. ⛔ **И свернулись только ДВЕ:** моя правка шла от строки `РЕМОНТ ПРИБОРА` до `Фронт`, а `ХОЛОДНЫЙ ПРОГОН A` стоит в таблице ВЫШЕ и уцелел — то есть в таблице час провисели ДВЕ строки про один и тот же закрытый пак, сводная и прежняя. Строка удалена, в таблице осталась одна полигонная. ⭐ Класс — мой же, записанный в этой смене: **«моя правка на месте» не значит «сделано то, что я объявил»**; объём правки надо сверять с объявленным, а не с намерением. Поймал самоаудит ноты, не читатель.
> ⚠ **Эррата 11.09-е (`D39.247`, шапка «Что принято») — «33 файла… НЕ КОММИЧЕНЫ» УСТАРЕЛО В ТОТ ЖЕ ЧАС.** Пере-снято 11.09: улики прогона закоммичены в отдельный репозиторий книг коммитом `ef0509f` («четыре артефакта нельзя воспроизвести ни за какие деньги»), **33 файла, 4953 вставки**, все тридцать три под контролем версий (`git -C books ls-files 'gu-zhenren/door-to-file' | wc -l` = 33). ⛔ **Но они НЕ ОТПРАВЛЕНЫ: репозиторий книг на один коммит впереди `origin/main`.** Владелец санкционировал пуш словом «Да» 11.09, мой классификатор прав его не пропустил, и выполнить его должен владелец у себя: `git -C books push origin HEAD`. ⇒ единственная копия улик платного прогона живёт на ОДНОЙ машине. ⚠ Класс: утверждение о состоянии дерева, верное в момент написания, протухает молча — у него нет ни гейта, ни даты.
> ⚠ **Эррата 11.09-ж (`D39.246` п.5, число «0 FAIL» в рецепте стенда) — ЧИСЛО БЫЛО УСЛОВНЫМ, И УСЛОВИЕ Я НЕ НАЗВАЛ.** Моя приёмка вписала в `platform/docs/STACK_DECISIONS.md` «20 ok · 0 FAIL · 5 скипов» как свойство рецепта. Замер платформенной сессии 11.09 (контроль: 15 файлов возвращены к `git show HEAD:<file>`, два новых удалены, тот же FAIL воспроизведён) показывает: **рецепт не может дать зелёный `internal/runner` НИ ПРИ КАКОЙ конфигурации** — $0-шаблон нужен `TestTheSnapshotGuardIsLoudWithoutTheFlagsAndPassesWithThem`, и он же обнуляет проекцию цены, которую читают `TestTheRealEnginesPriceProjectionIsReadByThisBuild` и `TestWhatTheLiveManifestCarriesAndThisBuildDeclinesToRead`. Моё «0 FAIL» согласуется с ПЛАТНЫМ шаблоном плюс выполненным условием скипа. ⛔ **И под этим лежит опасность дороже неверного числа: предикат скипа неверен ПО РОДУ.** `platform/internal/runner/translate_resnapshot_live_test.go:41-43` слушает `127.0.0.1:11434` и скипает, только если порт ЗАНЯТ, — то есть отвечает на вопрос «свободен ли порт», а НЕ «разрешил ли кто-нибудь тратить деньги». Условий скипа три (переменные гейта · порт · артефакт контраста), и **хорошо провизионированный хост выполняет все три** — то есть платная ветвь рецепта сработает именно там, где всё настроено правильно. Прецедент верного рода в дереве есть: `TM_LIVE`. ⇒ раздел «Гейты батареи» остановлен ⛔-баннером зоной 11.09 до починки; носитель — `П-22`. ⭐ **Класс, и он мой: я вписал в чужой носитель число, не назвав условий, при которых оно снято.** Условное число без условия читается как свойство предмета — и следующая смена получит красное и решит, что сломала сама. Нашла зона, не я.
> ⚠ **Эррата 11.09-б (АДРЕС ИСПР. 11.09: носители — промт пака и таблица `docs/README.md`, НЕ тело `D39.247`) — «18 РАСХОЖДЕНИЙ» ЗАВЫШЕНО В 2.5 РАЗА, настоящих СЕМЬ.** Замерено бэкенд-сессией пака консистентности 11.09 по-юнитно: из восемнадцати промахов **11 ложные** — банковская форма доехала до читателя в том же юните СКЛОНЁННОЙ, а `SameStem` её не признал, потому что стеммер снимает ровно одно окончание и стеммы выходят разной длины (во всех одиннадцати один — строгий префикс другого с разницей в ОДИН знак). Пять из одиннадцати — намеренно исключённый мягкий знак (`D39.71`), и записка в дереве сама называет лечение — «anchor-gated match». ⇒ **акт остаётся верен в направлении и неверен в величине:** механизм консистентности работает и работает не везде, но НЕ-мест семь, а не восемнадцать. Носитель — строка бэклога **419**. ⚠ Класс: я опубликовал число, снятое ОДНИМ прибором, не спросив, что этот прибор не видит. ⛔ **Второй класс, пойманный ревью 11.09: эррату я адресовал НЕ ТУДА.** Числа «18» в теле `D39.247` нет ни разу — пере-снято грепом по живым докам (контроль: прибор прочёл 101 файл `docs/`, число нашлось в промте пака, в строке таблицы `docs/README.md`, в журнале и в ряду **419**). Акт говорит ДРУГУЮ величину на ДРУГОЙ популяции — «16 из 69, из них 6 отданы не банковской формой», снятую глазами по отгруженному файлу, и поправка стеммера её НЕ трогает. ⇒ поправлять надо было промт и таблицу, а акт — не надо было. ⭐ Урок: **у эрраты есть адрес, и он проверяется грепом ЧИСЛА по телу ноты, а не памятью о том, откуда я его взял.**
> ⚠ **Эррата 11.09-в (D39.247 п.4 и вопрос владельцу) — Я ПИСАЛ ПО ОСИ, КОТОРОЙ В ПРОДУКТЕ НЕТ.** Акт называл «подписанный/неподписанный ТЕРМИН» и ставил владельцу вопрос «закон ли для неподписанного». Владелец 11.09: «нет такого понятия, подписан либо ВЕСЬ банк, либо он в неконсистентном состоянии; есть галочка скипать подпись — тогда автоподписывание». Это ратифицировано `D39.144` (подписывается банк ЦЕЛИКОМ; пер-термная подпись — НЕ модель продукта; дефолт — авто-продолжение с неподписанным банком, строки едут с пометкой). ⇒ **вопрос был сформулирован неверно и снят.**Но под ним лежит РЕАЛЬНАЯ находка, и она дороже: в коде есть пер-термный автомат `auto|draft|approved`, и пост-проверка считает нарушением только `approved`**механизм решает по единице, которой в продуктовой модели не существует.** Носители — строки **407** (исправлена) и **419**. Мерить надо состоянием КНИГИ (подписана целиком либо авто-продолжение), а не статусом отдельного терма.
> ⚠ **Эррата 11.09-г (D39.247 п.4, ряд 418) — РАСХОЖДЕНИЯ ДВУХ ЧИСЕЛ ДВИЖКА НЕ СУЩЕСТВУЕТ, это была моя ошибка ЧТЕНИЯ.** Акт завёл ряд на «`spread=4` при трёх формах в списке» и «`other proposals` 2 против `drafts` 3». Пере-снято бэкенд-сессией и пере-проверено мной: движок печатает ДВЕ РАЗНЫЕ величины В ОДНОЙ СТРОКЕ`spread=%d conventions=%d` (`backend/internal/pipeline/mining.go:542`=`spread=%d conventions=%d`), где `Spread()` = Σ сырых форм, `Conventions()` = len(свёрнутых классов); комментарий у определения говорит прямо: «Spread 3 with Conventions 3 is a real contest, and the two must not read the same at the stop». Распределение по 69 термам прогона: 60×(1,1) · 6×(2,2) · 2×(3,3) · 1×(4,3) — противоречий ноль. Второй «экземпляр» того же класса: `other proposals` печатает `props[1:]`, то есть ИСКЛЮЧАЕТ текущий `dst`, поэтому 3 черновика дают «other proposals: 2». **Ряд 418 удалён из таблицы; работы он не несёт.** ⚠ Класс ошибки — тот, что эта же смена записала нормой: сравнил число с длиной списка, меряющего ДРУГУЮ величину, и обе половины по отдельности были верны. Пин равенства вешает пак консистентности, чтобы объяснение держалось не текстом.