Files
portal/docs
Дмитрий 951b15fb85 fix(ночь): «свободных пунктов нет» больше не значит «задача сделана»; сторож был зелен случайно
Находка М-406, правила 244-246.

Смена 27 передала список «пять доступных настоящих долгов». Правило 243 велит проверять
такой список замером, каждую строку отдельно. Проверил — ДОСТУПНЫМ ОКАЗАЛСЯ ОДИН.
Третья смена подряд с той же долей: 14 ложных из 33 долгов, 3 из 4 разъездов, 4 из 5.

 - `zadachaKonchena` —  настоящий, закрыт этим коммитом;
 - `reshyonnyeSNevypolnimymi` — 🔒 заперт словом владельца: единственный источник
   невыполнимых пунктов — ответ владельца «нет» в `questions.mjs`, а он мёртв целиком;
 - `mailFailedSince` — 🔒 заперт им же: замысел строки 750/1073 называет его дословно
   («затея видит, что сводка не ушла») частью правила ворот «отклик владельца»;
 - `readResult` —  не долг, а МЁРТВЫЙ ОСТАТОК. Дороги «запусти, дождись конца, возьми
   итог» в затее нет: `startWorker` отдаёт живого ребёнка. Четверо читающих потоки делают
   ДРУГОЕ (надзиратель — живьём по строке; `budget` — ищет замеры предела; судья — берёт
   последнее событие `result` и текст приговора; `dengi-bez-zapisi` — первую цену), а расход
   затея нарочно не считает, а спрашивает. Не снесён намеренно: это решение владельца.

ЧТО ПОЧИНЕНО. В блоке 5а надзирателя стояло упрощение `otlozhennyePunkty.size === 0` —
«отложенных нет, значит всё засчитано». Сюда приходят по ДВУМ причинам, и вторая — не
«пунктов не осталось», а «пункт ЕСТЬ, но его файлы держит живой сосед и занять их из-под
руки не вышло». Отложенных при этом нет — и на НЕДОДЕЛАННОЙ задаче поднимался флаг
приёмщику, а владельцу уходило «Пункты задачи кончились и все засчитаны».

Доказано вырезанием: сторож написан первым и покраснел (`items_all_verified` = true на
недоделанной задаче), после починки зелёный, при возврате упрощения — снова красный, и
ровно один, посчитанный ДО прогона. Прибор №6 подтвердил независимо: имя ушло из приговора.

🔴 ГЛАВНОЕ, ЧТО КУПИЛА СМЕНА, И КУПЛЕНО ЧУЖИМ КРАСНЫМ. Полный прогон после починки дал
красное у чужого сторожа `primechanie-ne-rashoditsya-s-pravdoy.test.mjs`. Правило 242 велит
сперва спросить, что он бережёт. Он бережёт согласие примечания с правдой и по замыслу ПРАВ.
Шапку я поправил — он всё равно краснел.

Причина: сторож брал `items.mjs` СЫРЫМ файлом и искал фразу-маркер «НЕТ НИ ОДНОГО», а она
стоит там в ЖИВОМ КОДЕ — в тексте ошибки «в плане задачи нет ни одного пункта». Пока шапка
врала тем же словом, обе половины совпадали и сторож молчал: он был зелёным ПО ДВУМ ПРИЧИНАМ
РАЗОМ, и одна из них случайная.

⇒ Заведён третий рез `tolkoPrimechaniya`, обратный `bezPrimechaniy`, в тот же дом и к той же
развилке «какой брать». Обратность стережётся отдельной проверкой (что вырезал один — то
оставил второй). Все три места сторожа переведены на него, хотя слепота задевала одно:
у двух других фразы-маркера в коде сегодня нет — но это удача, а не защита.

244. У СТОРОЖА, ЧИТАЮЩЕГО ФАЙЛ СЫРЫМ, СПРОСИ: НЕ ОТВЕЧАЕТ ЛИ ЗА ПРИМЕЧАНИЕ ТО, ЧТО
ПРИМЕЧАНИЕМ НЕ ЯВЛЯЕТСЯ. Обратная сторона 234: тот про «рез срезал зерно», этот про
«отсутствие реза подсунуло шелуху».
245. У КРАСНОГО ЧУЖОГО СТОРОЖА ТРИ ИСХОДА, А НЕ ДВА. Третий: прав он по замыслу, но слеп
по способу — тогда чинят САМОГО СТОРОЖА. Спроси, что он измерил, и то ли это, что он
берётся охранять.
246. `grep -i` НА РУССКИХ БУКВАХ РЕГИСТР НЕ ПРИВОДИТ: «НЕТ НИ ОДНОГО» → 0, «нет ни одного»
→ 1, node тем же выражением → нашёл. Мерь тем же телом, каким меряет проверяемый.

ПОПУТНО три примечания приведены к правде (правило 235): у `zadachaKonchena` живой зовущий
теперь ЕСТЬ И ОН ОДИН (второго не будет, пока нет куска 7 — писать «зовут двое» значило бы
чинить враньё половиной правды); `readResult` назван мёртвым остатком; `reshyonnyeSNevypolnimymi`
помечен запертым, а не «некому сделать».

Проверок 2929 в 108 файлах (было 2927), ноль красных, код 0. Прибор №6: вывозится 613,
точных долгов 29 — число то же, состав другой: `zadachaKonchena` ушёл, на его место встал
новый рез (класс правила 231, прибор говорит это сам).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 06:16:51 +03:00
..