diff --git a/CLAUDE.md b/CLAUDE.md index 4e79a918..09ece02e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -102,6 +102,19 @@ Go-бэкенд издательского художественного пер чистоту дерева после инцидента надо ПРАВИЛЬНЫМ прибором: искать в исходниках строку-ПОРЧУ бесполезно — у мутаций-усечений она префикс строки-цели и присутствует всегда; спрашивать надо, **на месте ли ЦЕЛЬ** каждой правки каталога (пропавшая цель = мутация всё ещё применена). + ⛔ **ОДНА КОПИЯ — ОДИН МУТАТОР** (11.09, зона поймала у себя и назвала сама). Прежняя норма выше держала + «копия защищается построением» про ИСХОДНОЕ дерево и молчала про саму копию. Инцидент: увидев запись + `UNKNOWN`, сессия пере-запустила её на ТОМ ЖЕ `-root`, по которому в этот момент шёл цикл гейта — одна + программа сажала правку, вторая гоняла базовый прогон. Пере-проверка вернула FAIL, и этот FAIL — + артефакт вмешательства, а не улика. ⇒ **вторая мутирующая программа на том же корне делает результаты + ОБЕИХ недействительными, и делает это МОЛЧА: каждая по отдельности выглядит работающей.** + ⛔ **И вот что здесь ловушка: `diff -rq` показал копию байт-идентичной источнику — и это НЕ доказывало, + что результаты целы.** Восстановление отработало; измерения, снятые МЕЖДУ посадкой и восстановлением, + всё равно испорчены. Чистое дерево говорит о дереве, а не о числах. ⇒ записи, снятые в окно + вмешательства, пере-снимаются на СВЕЖЕЙ копии, а не признаются годными по чистоте дерева. + ⛔ **НЕИЗМЕРЕННАЯ МУТАЦИЯ ХУЖЕ ВЫЖИВШЕЙ.** Запись, у которой не сошёлся БАЗОВЫЙ прогон пакета («NOT GREEN + before any mutation»), не «поймана» и не «выжила» — она НЕ ИЗМЕРЕНА, в число не кладётся и закрывается + отдельно. Выжившая говорит «здесь дыра»; неизмеренная не говорит ничего, а выглядит как строка отчёта. ⛔ **ПИН МОЖЕТ УДОВЛЕТВОРЯТЬСЯ ЧУЖОЙ УЛИКОЙ — и это НЕ флейк, а детерминированная пустота** (10.09, зона поймала у себя). Утверждение `errors.Is(err, context.Canceled)` про ОДИН выход держалось тем, что фикстура гнала петлю через провод: ошибка попытки уже несла отмену в своём поле, и `errors.As` находил