diff --git a/docs/superpowers/zamer/2026-08-02-ZAMER-metoda.md b/docs/superpowers/zamer/2026-08-02-ZAMER-metoda.md index 3e2aa475..a39f9017 100644 --- a/docs/superpowers/zamer/2026-08-02-ZAMER-metoda.md +++ b/docs/superpowers/zamer/2026-08-02-ZAMER-metoda.md @@ -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. 🔴🔴🔴 СЛОВА ПРИБОРА О ТОМ, ЧТО ВЛАДЕЛЕЦ ЧЕГО-ТО НЕ РЕШАЛ, ПРОВЕРЯЙ +ПО ПРОТОКОЛУ ДО ТОГО, КАК ПЕРЕСКАЖЕШЬ ИХ ВЛАДЕЛЬЦУ.** Прибор ищет по имени настройки — +человек решает по смыслу. Цена ошибки замерена: одно отменённое решение владельца. diff --git a/docs/superpowers/zamer/2026-08-11-PROMT-smena-19-prodolzhaem.md b/docs/superpowers/zamer/2026-08-11-PROMT-smena-19-prodolzhaem.md new file mode 100644 index 00000000..8b0318f3 --- /dev/null +++ b/docs/superpowers/zamer/2026-08-11-PROMT-smena-19-prodolzhaem.md @@ -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 (145–150), +> 17 (151–159) и 18 (`2026-08-10-PROMT-smena-18-prodolzhaem.md`, правила 160–176). +> Здесь только правила **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. **Две двери из девяти — заглушки** («отклик владельца», «от прошлого никого»).