diff --git a/docs/orchestrator-norms-scratchpad.md b/docs/orchestrator-norms-scratchpad.md index ecac0b6a..a83c65a7 100644 --- a/docs/orchestrator-norms-scratchpad.md +++ b/docs/orchestrator-norms-scratchpad.md @@ -320,3 +320,34 @@ UNKNOWN 1 — её, дошёл один раз до правок; десять ⚠ И цена ошибки несимметрична: не найденный дефект стоит одной находки, а «починка» исправного гейта портит инструмент, которому верят все смены — тем более теперь, когда он БЛОКИРУЕТ (D39.260 п.3). + +## ⛔ НОМЕР РЯДА — ЧИСЛО-ОМОНИМ: массовое закрытие строк трекера автоматическим поиском НЕВОЗМОЖНО в принципе (17.09) + +Задача выглядела механической: в трекере 29 рядов несут маркер закрытия в теле и весят 47 КБ, а конвенция +единого трекера велит закрытые ряды из таблицы удалять, оставляя номер решения. Я написал под это **четыре +прибора подряд, и все четыре дали неверный ответ.** + +1. **Фильтр «есть акт и нет слов о живом остатке»** выдал 12 кандидатов — и среди них **ряд 224**, у которого + я САМ в тот же день актом `D39.262` записал, что закрыта только платформенная половина. Прибор не увидел + остаток, потому что в клетке он назван **номерами других рядов** (479, 353), а не словом «остаток». +2. **Поиск подтверждения в журнале решений** объявил девять из двенадцати неподтверждёнными — но грепал только + ЖИВОЙ файл, тогда как тела закрытых эр (`D39.64`, `D39.69`, `D39.164`) лежат в архивных слайсах. +3. **Сбор образцов формулировок** напечатал «фраз с закрытием и числом: **0**» — рядом с прибором, который в том + же выводе нашёл десяток таких фраз. Ноль был артефактом шаблона (`[^.|]` спотыкается о точку внутри `D39.243`), + и опроверг себя сам. +4. **Поиск окном ±130 знаков по всем десяти носителям (1.63 МБ)** отработал технически верно и доказал НЕ ТО: + для ряда 141 он поймал «нормы `D39.141` исполнены» — номер НОТЫ; для 359 — «тестов 261→359», количество тестов; + для 409 — «обработка `daily_ceiling`/409», HTTP-код; для 115 — «принят `D39.115`». А ряд 324 попал в кандидаты + потому, что слово «ЗАКРЫТ» относится там к ПРЕДМЕТУ — «вход рендера закрыт», — а не к статусу ряда. + +⇒ **Утверждение «ряд N закрыт» неотличимо прибором от «числа N» в другом смысле:** номер ноты, номер теста, +HTTP-код, количество, номер строки кода. Никакая regexp-точность это не лечит — омонимия в самих данных. +⇒ **Порядок работы: только поштучно, партиями по три-пять рядов, читая КЛЕТКУ целиком и тело акта по ссылке.** +Автоматика допустима лишь как генератор КАНДИДАТОВ на чтение, и её список обязан идти с пометкой «не проверено». + +⚠ Цена ошибки несимметрична и потому решает: не удалённый закрытый ряд стоит лишних килобайт, а удалённый живой +стирает работу, которую никто не восстановит — в трекере ряд и есть носитель. Поэтому при сомнении ряд остаётся. + +⚠ И отдельно: ряд **315** закрыт ЗАМЕРОМ, а не актом, а ряд **485** — половиной. Удаление такого ряда уносит сам +замер, если он никуда не перенесён ⇒ прежде удаления факт переезжает в D-ноту или в справочник якорей техдолга. +