diff --git a/docs/orchestrator-norms-scratchpad.md b/docs/orchestrator-norms-scratchpad.md index daf1c2ce..327020b1 100644 --- a/docs/orchestrator-norms-scratchpad.md +++ b/docs/orchestrator-norms-scratchpad.md @@ -235,3 +235,23 @@ UNKNOWN 1 — её, дошёл один раз до правок; десять ⚠ И общий класс, ради которого это здесь: **инструмент своей зоны, применённый к замороженному артефакту, чинит его под себя.** Спрашивать надо не «пустит ли меня прибор», а «что он сделает с предметом, когда пустит». +## ⛔ РАБОЧИЙ КАТАЛОГ ЖИВОЙ СЕССИИ НЕ УПОМИНАЕТСЯ В РЕПОЗИТОРИИ ПО ПОСТРОЕНИЮ — греп его «мусором» и назовёт (16.09, моя ошибка) + +Владелец сказал снести мусор. Я собрал кандидатов прибором «упоминается ли каталог в файлах репозитория, +включая архив» — 5034 файла, у семи целей ноль упоминаний, — и снёс 268 МБ. Среди них был `tm-mut-11`, +**рабочий корень идущего мутационного прогона бэкенд-сессии** (`tmmutate -root ~/tm-mut-11/tree -battery`). +Окно сноса 19:36–19:43 пришлось на её первый прогон; она остановила его «по своей причине» и перезапустила +в 20:22, то есть ущерб мог остаться неопознанным с обеих сторон. + +⇒ **Класс: отрицательный замер был верен и отвечал не на тот вопрос.** «Каталог не упомянут в репозитории» +и «каталогом никто не пользуется» — РАЗНЫЕ утверждения, и для временного рабочего дерева первое верно +ВСЕГДА: его для того и создают вне репозитория, чтобы он там не числился. Прибор ответил на свой вопрос. + +⇒ **Норма перед `rm -rf` любого каталога вне репозитория:** к грепу по репозиторию ОБЯЗАТЕЛЬНО добавить +`ps -eo pid,cmd | grep <имя каталога>` и `lsof +D` (или проверку mtime свежее часа) — и печатать их рядом +с решением. Пусто в обоих — сносить; занято — не трогать и назвать владельцу, чей это процесс. + +⚠ И вторая половина нормы, дороже первой: **убил чужое — пиши той сессии САМ, с точным временным окном**, +не дожидаясь, пока она наткнётся. Её числа, снятые в окно вмешательства, недействительны целиком: прогон, +у которого убрали корень, не отличает «мутация не поймана» от «файла нет». +