From 535f60a3a21eeca202fef6c1ac68d9fdfe30a93e Mon Sep 17 00:00:00 2001 From: heaven Date: Sat, 5 Sep 2026 15:37:57 +0300 Subject: [PATCH] Record that a line's head and tail can disagree about whether a decision was made, and the banner belongs on the tail in the same stroke --- docs/architecture/05-decisions-log.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index 661bbb35..511f8666 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -2393,7 +2393,7 @@ Gemini как построенный (его в `internal/llm/` нет) · дв **4. Посадки и починки.** Посадка, чей отказ выглядит ТАЙМАУТОМ, посадкой не является (`t.Fatalf` из порождённой горутины — `runtime.Goexit` не на той горутине). **Починка из двух частей требует посадки из двух частей** (одинокая половина воспроизводит третий мир, которого не было). **Починка, у которой проверена только одна половина, — половина починки** (громкая смерть, ставшая тихим исчезновением, — класс из шапки `CLAUDE.md`, допущенный В ПОЧИНКЕ). **Починка с посадкой, но без теста, выглядит покрытой ровно до полного прогона каталога.** Проверка «якорь резолвится ровно один раз» гоняется ПОСЛЕ КАЖДОГО касания кода, а не перед сдачей. -**5. Указатели.** Носитель БЕЗ якоря не проверяется инструментом, который ищет якоря (комментарий в Go пережил линт и нёс снятое различение как действующее). Ноту адресуют НОМЕРОМ: строка журнала подрезку не переживает. **Номер строки протухает от акта СВОЕЙ ЖЕ записи, если запись стоит выше цели в том же файле** ⇒ форма указателя: сначала ТОКЕН, потом номер с оговоркой «на момент этой редакции». **Протухший ЧУЖОЙ указатель ПОМЕЧАЮТ, а не переписывают.** Правка файла, на который целятся якоря, требует линта БЕЗ фильтра по своей зоне: «поправил читателя, оставил писателя» бывает и через НУМЕРАЦИЮ — правка, законная в своей зоне, ломает чужую по механике файла; худший случай — замороженная зона, у которой нет своего линта в цикле. +**5. Указатели.** ⛔ **ГОЛОВА И ХВОСТ ОДНОЙ СТРОКИ МОГУТ ПРОТИВОРЕЧИТЬ ДРУГ ДРУГУ О СОСТОЯНИИ РЕШЕНИЯ** — голова строки 291 говорила «РЕШЕНО владельцем», хвост той же строки — «ВЫБОР НЕ СДЕЛАН», и баннера историчности на хвосте не было (канон велит подавать историческое ТОЛЬКО через баннер). Это `F7` приёмки в чистом виде, но не в коде, а в бэклоге: **правя ГОЛОВУ строки, ставь баннер на ХВОСТ тем же движением.** ⚠ Найдено ЗОНОЙ уже ПОСЛЕ закрытия её пака — то есть свежий глаз ловит это, а автор правки не ловит. Носитель БЕЗ якоря не проверяется инструментом, который ищет якоря (комментарий в Go пережил линт и нёс снятое различение как действующее). Ноту адресуют НОМЕРОМ: строка журнала подрезку не переживает. **Номер строки протухает от акта СВОЕЙ ЖЕ записи, если запись стоит выше цели в том же файле** ⇒ форма указателя: сначала ТОКЕН, потом номер с оговоркой «на момент этой редакции». **Протухший ЧУЖОЙ указатель ПОМЕЧАЮТ, а не переписывают.** Правка файла, на который целятся якоря, требует линта БЕЗ фильтра по своей зоне: «поправил читателя, оставил писателя» бывает и через НУМЕРАЦИЮ — правка, законная в своей зоне, ломает чужую по механике файла; худший случай — замороженная зона, у которой нет своего линта в цикле. **6. Замеры и приборы.** `--stat` даёт ЗАТРОНУТЫЕ строки; «сколько добавлено» — только `--numstat`. Инструмент, чей отказ даёт ПУСТОЙ выход, обязан печатать РАЗМЕР рядом с вердиктом. Отрицание сопровождается КОМАНДОЙ, воспроизводимой другим (греп с `|` требует `-E`). **Сходимость «чистая дельта файла = сдвиг самого нижнего якоря» — ТРЕВОЖКА, а не прибор:** импликация односторонняя в обе стороны (сошлось ⇒ про число ханков ничего; РАЗНЫЕ сдвиги ⇒ ханков ≥2, доказательно), выход всегда «иди мерь», никогда «вот причина»; мерит по-настоящему перегреп токена. **«Покрыть нечем» — ЗАМЕР, а не мнение, и стоит одной попытки.** **Линт якорей в чужие доки — гейт ЛЕНДИНГА, а не сессии:** на грязном чужом дереве у вопроса нет определённого ответа, и называть результат («транзиент» либо «долг») значит выдавать неопределённость за замер.