docs(передача): промт смене 19 — вторая ночь закрыла три пункта из трёх; журнал М-364-368, правила 177-188

This commit is contained in:
Дмитрий
2026-08-05 21:23:20 +03:00
parent 1e1fda8aba
commit e69458b486
2 changed files with 362 additions and 0 deletions
@@ -9429,3 +9429,96 @@ psql -c 'select 1' -c 'delete from leads'
⇒ **Правило 183. 🔑 ВОРОТА РАЗВОДИ ПО МОМЕНТУ, В КОТОРЫЙ БУМАГА СРАБОТАЕТ, А НЕ ПО ЕЁ
ТЕМЕ.** «Что читает человек вечером» и «по чему судят утром» — два разных читателя одной
затеи, и пересечения находок между ними близки к нулю.
---
# 🟢🟢🟢 ВТОРАЯ НОЧЬ СОСТОЯЛАСЬ И ПРИНЯТА ЦЕЛИКОМ (05.08.2026, 20:09 → 20:48)
**Трое работников, три пункта, все три закрыты и проверены не по их словам.**
Запуск — печать и рука владельца, разовым ключом. Забрана в ветку коммитом `1e1fda8a`.
## М-364. 🟢 ГЛАВНОЕ ЧИСЛО: 2692 → 2729, РОВНО КАК ПРЕДСКАЗАНО
| | |
|---|---|
| Запуск / конец | 20:09 → **20:48**, тридцать девять минут |
| Рождение всех троих | **13 минут** (20:09 · 20:16 · 20:22) вместо обещанных 45 |
| Прожили | w-1 36 мин · w-2 18 мин · w-3 26 мин |
| Цена | **$17,01** (7,32 + 4,78 + 4,91), 534 хода. Порог листа был 20 |
| Вопросов задали | **ноль** |
| Погасли | **все трое сами**, «дело сделано» |
🔑 **Приёмка прошла ПО ЗАРАНЕЕ НАПИСАННЫМ ЧИСЛАМ, и это главное достижение метода.**
Лист, написанный до запуска, называл: утверждений 16 · 9 · 7; красных при вырезании
8 · 2 · 5; проверок после работы 2692 + 32. Вышло: **16 · 9 · 12**, красных **8 · 2 · 6**,
проверок **2729**. Ни одно число не подгонялось утром — подгонять было нечего.
🔑 **Вырезание показало ровно те красные, что предписаны поимённо** — шесть человеческих
форм, телефон в имени поля, склейка ключей. Не «краснеет вообще», а краснеет **то самое**.
## М-365. 🔑 ЧТО РАБОТНИКИ СДЕЛАЛИ ЛУЧШЕ, ЧЕМ ОТ НИХ ТРЕБОВАЛИ
· **w-1 закрыл склейку ключей** — беду, которую сутки назад не ловила **ни одна** из 19
проверок листа и которую задание прежде велело лишь «назвать словами в бумаге».
Живой вызов: два разных телефона-ключа → **оба значения на месте**.
· **w-2 не стал писать третий сворачиватель путей**, а объяснил конкретной причиной,
почему готовый не годится (`path.resolve` превращает путь во что-то другое). Ровно то,
чего требовал П-Б, и ровно в той форме, которая принимается.
· **w-3 написал в заголовке коммита «починен ОДИН из них»** — не приписал себе второго
сторожа. И положил в бумагу разбор соседнего прибора, которого никто не просил.
· **Ни один не переписал себе разрешения**: шесть файлов настроек в трёх углах — один
и тот же отпечаток, совпадающий с пересчётом из кода.
⇒ **Правило 184. 🔑 ЕСЛИ ЛИСТ НАПИСАН ЗАРАНЕЕ И ЧИСЛАМИ, ПРИЁМКА ЗАНИМАЕТ ЧАС И НЕ
ТРЕБУЕТ СПОРА.** Спорить не о чем: либо сошлось, либо нет. Весь торг переносится на
день, когда лист пишется, — и там ему место.
## М-366. 🔴 ПРИБОР ШАГА 0 СОЛГАЛ ЖИВЬЁМ: «РАЗОДРАНО 0» ПРИ МЁРТВОМ СТОРОЖЕ
Утром прибор шага 0 ответил «957 пакетов, **разодрано 0**». Вечером коммит не прошёл:
сторож орфографии падал с «модуль не найден». Замерено: у пакета
`@cspell/cspell-resolver` в углу лежал **один файл из шести**, а всего в наборе `@cspell`
недоставало **31 файла из 471**. Пакет **был на месте и был пуст внутри**.
🔴 Прибор считает наличие `package.json` — этого мало, и это было **записано как известная
дыра** (хвост 6 передачи 18). Дыра из «известной» стала «купленной»: она молчала ровно
до того часа, когда понадобилось сохранить работу троих.
🪤 И вторая половина: хук напечатал «**cspell нашёл слова, отсутствующие в словаре**».
Это неправда — cspell не нашёл ничего, он **упал**. Ненулевой код возврата хук объяснил
своей догадкой, и догадка увела бы чинить словарь вместо пакета.
⇒ **Правило 185. 🔴🔴 «ПРОГРАММА ОТВЕТИЛА ПЛОХО» И «ПРОГРАММА УПАЛА» — РАЗНЫЕ СОБЫТИЯ,
И СТОРОЖ ОБЯЗАН ИХ РАЗЛИЧАТЬ.** Объяснять ненулевой код возврата своей догадкой —
значит рассылать ложные обвинения. Признак: текст отказа называет причину, которой
проверявший не видел.
⇒ **Правило 186. 🔴 ЦЕЛОСТЬ ХОЗЯЙСТВА МЕРЯЕТСЯ ЧИСЛОМ ФАЙЛОВ ВНУТРИ, А НЕ НАЛИЧИЕМ
ПАПКИ.** Дешёвый достаточный датчик найден: **сравнить число файлов набора с целой
копией** (471 против 440 — видно сразу, без запуска).
## М-367. 🪤 СВОДКА ЛОЖИТСЯ НЕ В МИНУТУ КОНЦА, А ЧЕРЕЗ ТРИ
Прогон закрылся 20:48, бумага легла **20:51**. Между ними затея снимает библиотеки
из трёх углов. Надзиратель, проверивший в 20:49, объявил владельцу «сводки нет» —
и был неправ.
⇒ **Правило 187. 🔑 У КОНЦА РАБОТЫ ЕСТЬ ХВОСТ. ПРЕЖДЕ ЧЕМ ОБЪЯВЛЯТЬ ПРОПАЖУ, СПРОСИ,
ЧТО ЕЩЁ ДЕЛАЕТСЯ ПОСЛЕ «КОНЦА».**
## М-368. 🔴 ОШИБКА НАДЗИРАТЕЛЯ №20: ПЕРЕДАЛ ВЛАДЕЛЬЦУ ЧУЖОЕ УТВЕРЖДЕНИЕ НЕПРОВЕРЕННЫМ
Сторож денег сказал владельцу: «доля прогона 14,3 % — **НЕ ваше решение**, этих слов
в протоколе нет вовсе». Надзиратель **повторил это владельцу как факт**.
Проверено после: в протоколе есть **решение 35 от 06.08** — «решение 31 отменено,
доля остаётся», и есть **правило 142**: «решение владельца ищется по смыслу, а не по
имени настройки». Более того, отменённое решение 31 было принято владельцем **по той же
самой ложной посылке**, принесённой надзирателем тремя днями раньше.
⇒ Тот же класс ошибки, против которого правило уже написано, повторился **через три дня**
и прошёл через надзирателя во второй раз.
⇒ **Правило 188. 🔴🔴🔴 СЛОВА ПРИБОРА О ТОМ, ЧТО ВЛАДЕЛЕЦ ЧЕГО-ТО НЕ РЕШАЛ, ПРОВЕРЯЙ
ПО ПРОТОКОЛУ ДО ТОГО, КАК ПЕРЕСКАЖЕШЬ ИХ ВЛАДЕЛЬЦУ.** Прибор ищет по имени настройки —
человек решает по смыслу. Цена ошибки замерена: одно отменённое решение владельца.
@@ -0,0 +1,269 @@
# ПРОМТ девятнадцатой смены: две ночи подряд удались, метод работает
**Дата:** 11.08.2026, писалась ПО ХОДУ смены 18. Затея «дело идёт без владельца» —
работники трудятся без человека, утром владелец читает сводку.
> ## 🟢🟢🟢 ГЛАВНОЕ: ВТОРАЯ НОЧЬ ЗАКРЫЛА ТРИ ПУНКТА ИЗ ТРЁХ
>
> **05.08.2026, 20:09 → 20:48. Трое работников, три пункта, все закрыты и ПРИНЯТЫ.**
> Цена **$17,01**. Вопросов не задал никто, погасли все трое сами.
>
> 🔑 **Приёмка прошла по числам, написанным ДО запуска.** Лист обещал: утверждений
> 16 · 9 · 7, красных при вырезании 8 · 2 · 5, проверок 2692 + 32. Вышло: **16 · 9 · 12**,
> красных **8 · 2 · 6**, проверок **2729**. Подгонять было нечего.
>
> ⇒ Вопросы «работает ли» и «держит ли троих» — **закрыты оба**.
> Смена 19 отвечает на новый: **что дать ночи делать дальше.**
> ## 🟢 С ЧЕГО НАЧАТЬ — ПЕРВЫЕ ПЯТЬ ДЕЙСТВИЙ, ПО ПОРЯДКУ
>
> **Ты надзиратель.** Своей рукой кода не пишешь: пишешь задания помощникам, приборы,
> приговоры и бумаги. Работаешь в углу
> `c:\моя\проекты\портал crm\Документация\.claude\worktrees\night1`, ветка
> `feat/night-dispatcher-part1`. Между кругами не останавливаешься.
>
> 1. 🔴🔴🔴 **ПРОЧТИ ПЕРЕДАЧУ СМЕНЫ 15 ЦЕЛИКОМ** —
> `docs/superpowers/zamer/2026-08-07-PROMT-smena-15-prodolzhaem.md`.
> **В ней свод правил 1–144, и он в силе ЦЕЛИКОМ.** Затем смены 16 (145150),
> 17 (151159) и 18 (`2026-08-10-PROMT-smena-18-prodolzhaem.md`, правила 160176).
> Здесь только правила **177–188** и новое состояние.
> 2. 🔴 **Прочти ОБА протокола решений владельца** (166 решений).
> · `docs/grilling/2026-07-28-avtonomnaya-rabota-dispetcher.md` — **128**, устройство ночи;
> · `docs/grilling/2026-08-02-nastroyki-nochi-i-ramka-deneg.md` — **38**, настройки и деньги.
> 🪤 Раздел «Решили» первого обрывается на 77 — это **не обрубок**: 78–128 записаны ниже.
> 🪤 Тот же файл лежит в **двух** местах: настоящий в `docs/grilling/` (109 КБ), обрубок
> в `docs/superpowers/zamer/grilling/` (19 КБ).
> 3. **Шаг 0 — пять приборов** (врезка ниже). Расхождение разбирать ДО первой задачи.
> 4. 🔴 **Заведи ВОРОТА ВСЛЕПУЮ первым действием** (правило 87). Двое, порознь, **без права
> читать код**. Стоит ноль. Смена 18: **девятый раз подряд крупнейший улов** — 28 находок,
> 13 смертельных, и первая же из них отменила бы вечер.
> 5. 🔴 **Заведи СУДЬЮ сразу после первых находок** (правило 51). В смене 18 он нашёл
> БОЛЬШЕ, чем обвиняли: снос библиотек, ложный образец в задании, источник неверного порога.
> 🔴🔴🔴 **ШАГ 0 — ПЯТЬ ПРИБОРОВ.**
>
> **1. Цело ли хозяйство:**
> ```sh
> M=node_modules; miss=0; tot=0
> for d in $M/*/; do n=$(basename "$d"); case "$n" in @*) continue;; esac
> tot=$((tot+1)); [ -f "$d/package.json" ] || miss=$((miss+1)); done
> for d in $M/@*/*/; do tot=$((tot+1)); [ -f "$d/package.json" ] || miss=$((miss+1)); done
> echo "пакетов: $tot, разодрано: $miss"
> ```
> Годный ответ: **957 пакетов, разодрано 0**.
> 🔴🔴 **ЭТОТ ПРИБОР СОЛГАЛ ЖИВЬЁМ 05.08 — правило 186.** Он сказал «разодрано 0», а сторож
> орфографии был мёртв: у пакета лежал **один файл из шести**. Считает наличие `package.json`,
> а не содержимое. **Дешёвый достаточный датчик — сравнить ЧИСЛО ФАЙЛОВ с целой копией:**
> ```sh
> echo "@cspell главная: $(find ../../../node_modules/@cspell -type f | wc -l)"
> echo "@cspell угол: $(find node_modules/@cspell -type f | wc -l)"
> ```
> Годно: **471 и 471**. Меньше — дополнить `cp -rn` из главной папки.
>
> **2. Полный прогон:** `npm run test:tools` **из корня угла**.
> 🔴 **КОД ВОЗВРАТА ЧЕСТНО:** `npm run test:tools >/dev/null 2>&1; echo $?`.
> 🔴 **Сверяй ЧИСЛО ПРОВЕРОК, а не число файлов.** Годно: **2729 в 99 файлах, код 0**.
>
> **3. Узкий на мигание:** упавшее прогнать в одиночку трижды.
> 🔴 **Для СЕБЯ:** `cd app && npx vitest run --config vitest.config.tools.mjs <имя>`.
> 🔴🔴 **Для РАБОТНИКА эта команда ЗАПРЕЩЕНА** — `cd` нет в его разрешениях.
> Ему только: `npm run test:tools -- <файл>` (правило 161).
>
> **4. «А оно запускается?»** `node tools/night/cli.mjs` — обязана ответить подсказкой.
>
> **5. Ворота без денег:** `node tools/night/vorota-bez-deneg.mjs <план> --priyomka <лист>
> --spec <замысел>` — что ночь видит в плане, **не тратя ни копейки**. Звать перед каждым запуском.
>
> 🪤 **Первой строкой любой проверочной команды печатай, ГДЕ ты** (`git rev-parse --show-toplevel`).
---
# 🔴🔴🔴 ПЕРВОЕ ДЕЙСТВИЕ СМЕНЫ 19 — ВЗЯТЬ У ВЛАДЕЛЬЦА РАБОТУ ДЛЯ ТРЕТЬЕЙ НОЧИ
**Механика доказана дважды. Кончился не метод — кончились задачи.**
Две ночи закрыли шесть дыр в сторожах. Список сторожевых дыр, найденных прежними сменами,
**исчерпан**. Прежде чем запускать третью ночь, надо ответить на вопрос владельца, который
он отложил 05.08 словами «пока не решать, вернуться после первой ночи»:
🔴 **Ночь не может достраивать саму себя** — папка `tools/night/` ей запрещена. Пока запрет
стоит, фронт работ для ночи — только то, что лежит **вне** затеи. Владельцу нести
**решение**: снимать ли эту строку, и если нет — какую работу ночи давать.
**Три готовых ответа, чтобы владельцу было из чего выбирать:**
1. **Снять запрет частично** — пустить ночь в `tools/night/`, но не в `run.mjs`/`supervisor.mjs`
(сердце затеи). Тогда ночь чинит саму себя, и хвосты ниже закрываются ею, а не днём.
2. **Дать ночи продуктовую работу** — не сторожей, а сам портал Лидерры (`app/**`).
🔴 Упирается в границу «`app/**` не править ни знаком» — тоже решение владельца.
3. **Оставить как есть** и копить сторожевые дыры до следующей находки. Ночь будет
простаивать, зато ничего не сломает.
---
# 🟢 ГЛАВНОЕ ЗА СМЕНУ 18
## 1. ВТОРАЯ НОЧЬ — ЧИСЛА
| | |
|---|---|
| Запуск / конец | 20:09 → **20:48**, 39 минут |
| Рождение всех троих | **13 минут** (20:09 · 20:16 · 20:22) вместо обещанных 45 |
| Прожили | w-1 36 мин · w-2 18 мин · w-3 26 мин |
| Цена | **$17,01** (7,32 + 4,78 + 4,91), 534 хода |
| Вопросов | **ноль** · погасли **все трое сами** |
| Проверок стало | 2692 → **2729** (+16 +9 +12) |
| Вырезание | красных **8 · 2 · 6** при порогах 8 · 2 · 5 |
| Живой вызов приборов | **26 проверок надзирателя — все сошлись** |
| Работа забрана | коммит **`1e1fda8a`** |
🔑 **Работники сделали больше, чем требовали:** w-1 закрыл **склейку ключей** (беду,
которую сутки назад не ловила ни одна проверка); w-2 **не стал** писать третий сворачиватель
и назвал конкретную причину; w-3 написал «починен **один** из них» — не приписал лишнего.
Никто не переписал себе разрешения: шесть файлов настроек — один отпечаток.
## 2. 🔴 ГОТОВНОСТЬ БЫЛА МНИМОЙ — 28 НАХОДОК ДО ЗАПУСКА
Смена началась со слов передачи «осталась только печать владельца». Это было неправдой:
· **бумага вечера была про ПЕРВУЮ ночь** — другой план, «Работников: 1», тишина 15 минут,
потолок 20 долларов. Владелец подписал бы **не тот план**. Ошибка надзирателя №19;
· **главную проверку утра нельзя было снять**: не сказано откуда, а в углу работника
надзиратель сносит библиотеки в конце ночи;
· **в задании лежал случай, уже закрытый** — работник написал бы зелёную проверку по нашему приказу;
· **порог утверждений остался от старой редакции** (11 вместо 15) — можно было выбросить
четыре анти-жадных сторожа и «пройти»;
· **склейку ключей задание велело „назвать словами"** вместо проверки — потеря данных
была описана, признана и пропущена.
## 3. 🔴 ОШИБКИ НАДЗИРАТЕЛЯ — ДВЕ
19. 🔴🔴🔴 **Объявил бумагу владельцу готовой, не перечитав её.** Она была про прошлую ночь.
⇒ правило 177.
20. 🔴🔴🔴 **Передал владельцу слова прибора как факт.** Прибор сказал «доля прогона —
не ваше решение»; в протоколе есть **решение 35**: «доля остаётся», и **правило 142**:
решение ищется по смыслу, а не по имени настройки. Тот же класс уже стоил владельцу
отменённого решения 31 — и прошёл через надзирателя **второй раз за три дня**.
⇒ правило 188.
---
## 🔴🔴 ПРАВИЛА, ДОБЫТЫЕ СМЕНОЙ 18 (177–188)
**177. 🔴🔴🔴 «ГОТОВО» ПРО БУМАГУ ЗНАЧИТ «ПЕРЕЧИТАНО ПОД СЕГОДНЯШНЮЮ ЗАДАЧУ», А НЕ
«ЛЕЖИТ НА МЕСТЕ».** Бумага под прошлый опыт опаснее отсутствующей: отсутствующую пишут
заново, эту берут и исполняют.
**178. 🔴🔴 У ГЛАВНОЙ ПРОВЕРКИ СПРОСИ НЕ «ЧТО ОНА МЕРИТ», А «ГДЕ И ЧЕМ Я ЕЁ СНИМУ» —
И ПРОЙДИ ЭТОТ ПУТЬ ЗАРАНЕЕ.**
**179. 🔴🔴🔴 КАЖДЫЙ ОБРАЗЕЦ БЕДЫ В ЗАДАНИИ ПОЗОВИ ЖИВЬЁМ И УБЕДИСЬ, ЧТО ОН ВПРАВДУ БОЛИТ.**
🪤 Особенно опасна приписка «не потеряй третий случай»: она делает непроверенное обязательным.
**180. 🔴🔴 РАСШИРИЛ ПЕРЕЧЕНЬ — ПЕРЕСЧИТАЙ ПОРОГ ТУТ ЖЕ.** 🔑 Писать порог **арифметикой**
(«8 + 1 + 1 + 6 = 16»), а не итогом.
**181. 🔴🔴 САМООТЧЁТ ИСПОЛНИТЕЛЯ — НЕ ЗАМЕР.** «Назови в бумаге» годится для того, что
нельзя измерить. Признак беды: в задании про опасность есть, в листе приёмки — ни строки.
**182. 🔴🔴 ПРОЩАЙ СЛУЖЕБНОЕ ПО СОДЕРЖИМОМУ, А НЕ ПО ИМЕНИ.** 🔑 И спутник: прежде чем
заводить обряд снятия слепков заранее, спроси, **не считается ли образец из кода** в любой момент.
**183. 🔑 ВОРОТА РАЗВОДИ ПО МОМЕНТУ, В КОТОРЫЙ БУМАГА СРАБОТАЕТ, А НЕ ПО ТЕМЕ.**
«Что читает человек вечером» и «по чему судят утром» — два читателя, пересечение находок ноль.
**184. 🔑 ЕСЛИ ЛИСТ НАПИСАН ЗАРАНЕЕ И ЧИСЛАМИ, ПРИЁМКА ЗАНИМАЕТ ЧАС И НЕ ТРЕБУЕТ СПОРА.**
**185. 🔴🔴 «ПРОГРАММА ОТВЕТИЛА ПЛОХО» И «ПРОГРАММА УПАЛА» — РАЗНЫЕ СОБЫТИЯ.** Объяснять
ненулевой код возврата своей догадкой — рассылать ложные обвинения.
**186. 🔴 ЦЕЛОСТЬ ХОЗЯЙСТВА МЕРЯЕТСЯ ЧИСЛОМ ФАЙЛОВ ВНУТРИ, А НЕ НАЛИЧИЕМ ПАПКИ.**
**187. 🔑 У КОНЦА РАБОТЫ ЕСТЬ ХВОСТ.** Сводка легла через **три минуты** после конца прогона.
**188. 🔴🔴🔴 СЛОВА ПРИБОРА О ТОМ, ЧТО ВЛАДЕЛЕЦ ЧЕГО-ТО НЕ РЕШАЛ, ПРОВЕРЯЙ ПО ПРОТОКОЛУ
ДО ТОГО, КАК ПЕРЕСКАЖЕШЬ ИХ ВЛАДЕЛЬЦУ.** Прибор ищет по имени настройки — человек решает
по смыслу.
---
## ГРАНИЦЫ (не двигать без слова владельца)
🔴 **Выписаны поимённо, а не ссылкой — правило 153.**
· боевой **liderra.ru** — живые клиенты и деньги; не трогать, база только чтение;
· 🔴 **`ANTHROPIC_API_KEY` не выставлять НИКОГДА.** Режим `--bare` закрыт навсегда;
· 🔴 **проверки кода живым платным помощником — нельзя НИКОГДА** (решение 11);
· 🔴 **замеров остатка — не больше 30 за смену** (решение 1);
· 🔴 **живых рождений без владельца — 5–6 за смену** (решение 16), предел **20** (решение 9а);
· 🔴 **работников СЕМЕРО ВСЕГО** (решение 24), `max_tasks_at_once: 1`.
🔑 Замерено дважды: **на плане из N пунктов родится ровно N работников**;
· 🔴 **доля прогона `run_share` = 14,3 % ОСТАЁТСЯ** — решение 35 здесь и решение 95
диспетчерского протокола. 🪤 Прибор говорит «это не ваше решение» — **это неправда**,
см. правило 188 и правило 142;
· порог запаса **0,99**, тумблер `bez_doli_ne_zapuskat`**ВЫКЛ** (решения 18, 19);
· 🔴 **углы погашенных работников уборка НЕ ТРОГАЕТ** до слова владельца (решение 126);
«удалять по-прежнему ничего не будем» (решение 22); углы лежат **вечно** (решение 33);
· 🟢 **утренний будильник `Liderra-Night-Summary` ВКЛЮЧЁН**. 🔴 Вечерний
`Liderra-Night-Start`**выключен и включать нельзя**;
· 🔴 `app/**` — не править ни знаком (кроме решения 14). Исключение: `app/vitest.config.tools.mjs`;
· бумага-замысел `docs/superpowers/specs/2026-07-29-dispetcher-tri-kuska-chto-i-zachem.md`
**ЗАМОРОЖЕНА**;
· не пушить, не сливать в главную, не выкатывать; историю коммитов **не трогать вообще**;
🟢 исключение: **двигать вперёд `feat/noch-proba-1`** — обязательный шаг перед КАЖДОЙ
ночью (решение 25), последним действием перед печатью;
· ветки `feat/client-sms-broadcast` и `feat/client-telegram-ads` — не трогать;
· 🔴 в репозитории работают ПАРАЛЛЕЛЬНЫЕ СЕССИИ. Коммитить только в углу и поимённо;
🪤 `docs/observer/STATUS.md` снимать из индекса после КАЖДОГО коммита;
· 🔴 `.night/` — оплаченные живыми деньгами улики. Помощникам: **только чтение**;
· 🔴 **никого не убивать на машине** без слова владельца;
· 🔴 **вопросы владельцу КОПЯТСЯ и несутся ПАКЕТОМ** (решения 97, 98).
**СТИЛЬ:** простой русский, без программистских слов — владелец не программист.
Не называть сделанным непроверенное. Не останавливаться между кругами.
---
## ⏳ ЧИСЛА НА КОНЕЦ СМЕНЫ 18
🔴 Собери их заново на входе (правило 45).
| | |
|---|---|
| Проверок | **2729 в 99 файлах**, ноль красных |
| Голова ветки | `1e1fda8ab` |
| Коммитов за смену | **4** |
| Отставание базы | **1** коммит — двинуть перед следующей ночью |
| Хозяйство угла | 957 пакетов · @cspell **471 файл** (было 440, дополнено) |
| Кругов помощников | ворота вслепую ×2 + судья ×1 |
| Новых правил | **177 … 188** (12), свод вырос до **188** |
| Находок метода | **М-357 … М-368** |
| 🔴 Ошибок надзирателя | **две** (19, 20) |
| Живых ночей | **две**, обе удались. $4,14 + $17,01 |
| 🟢 Пунктов, закрытых работниками | **ЧЕТЫРЕ** (1 + 3) |
### 🔴 Что осталось незакрытым — по убыванию важности
0. 🔴🔴🔴 **ФРОНТА РАБОТ ДЛЯ НОЧИ НЕТ.** Сторожевые дыры кончились. Нести владельцу
решение (три ответа выше). **Работа номер один.**
1. 🔴🔴 **Затея пачкает угол работника пятью служебными файлами и сама же откладывает суд.**
Замерено трижды за ночь — у всех троих. Работе не мешает (все пункты закрыты), но приговор
мутнеет. 🔑 Починка известна и проверена судьёй: прощать **по содержимому** (пересчёт
`buildWorkerSettings()` + `git hash-object`), а не по имени — правило 182.
2. 🔴🔴 **Прибор шага 0 не ловит разодранный пакет** — купленный хвост, правило 186.
Датчик найден (число файлов), в прибор **не врезан**.
3. 🔴🔴 **Сторож денег говорит владельцу неправду** — «это не ваше решение» про то, что
решено (решение 35). Врать перестанет только правкой текста сторожа.
4. 🔴 **Пара настроек не сходится:** 99 % + 14,3 % = 113 %. Замерено 02.08, владелец решал
**зная об этом**. Сегодня ни на что не влияет — тормоза и так молчат.
5. 🔴 **«20 рождений за смену» выведено из ночи в 14 работников**, а их семеро — основание
уехало. Вопрос владельцу, не срочный.
6. **Сторож боевой базы читает ТЕКСТ команды** — имя базы не названо, связь из окружения:
пропустит. 🪤 Живьём 05.08 он **сработал на поиск слова** в чужом файле — ложная тревога
на чтение. Закрыть можно только запретом на класс: решение владельца, не принято.
7. **Ночные тормоза по деньгам мертвы**, пока система не пришлёт число.
8. **Уборка оборванных насмерть ночей** — углы лежат вечно (решение 126).
9. **Прибор потерь никем не зовётся.** · 10. **Второй светофор `overageStatus`** — до кода не доведён.
11. **Решения владельца 12 (свой судья у ночи) и 14** — одиннадцать смен.
12. **Затея живёт в углу, а угол сносится одной командой** (правило 123).
13. **Телеграма нет вовсе; панели и бота нет вовсе** (часть 3).
14. **Две двери из девяти — заглушки** («отклик владельца», «от прошлого никого»).