Files
portal/docs
Дмитрий 5b909844e2 docs(близнец): найден — задваивается любая команда git, а не коммит; правила 251-252
Находка М-408. Охота, шедшая со смены 21, закрыта.

Открылось не поиском. Смена 29 по своей ошибке сделала пробный коммит и откатила его
одной командой `git reset --soft HEAD~1` — голова уехала на ДВА коммита назад, и работа
целой смены осталась в индексе вне истории. Журнал ссылок показал две записи
`reset: moving to HEAD~1` подряд при одной поданной команде.

Проверено вторично, на другой команде: `git reset --soft <номер>` подан один раз —
в журнале снова ДВЕ записи. Задвоение не случайность и не разовый сбой среды.

ЧЕМ ЭТО ОБЪЯСНЯЕТ ПРЕЖНЕГО БЛИЗНЕЦА ЦЕЛИКОМ. Смены 21-29 искали его у коммита и
описывали так: «второй коммит с тем же заголовком, внутри один docs/observer/STATUS.md».
Теперь ясно: задваивается любая команда git, а между двумя заходами успевает отработать
хук status-md-generator — он переписывает STATUS.md и оставляет его в индексе. Второму
заходу коммита есть что коммитить: ровно этот один файл.

⇒ Лечение, найденное сменами вслепую («снимать STATUS.md из индекса ПЕРЕД коммитом»),
работало по правильной причине, но закрывало следствие. Двенадцать чистых коммитов
подряд — не отсутствие близнеца, а ОБЕЗОРУЖЕННЫЙ близнец. Правило снятия — в силе.

251. ЛЮБАЯ КОМАНДА GIT МОЖЕТ ИСПОЛНИТЬСЯ ДВАЖДЫ. ЗАДАВАЙ ЕЁ ТАК, ЧТОБЫ ВТОРОЙ РАЗ
НИЧЕГО НЕ МЕНЯЛ. Откат — только абсолютным адресом, никогда `HEAD~1`. У коммита
задвоение безвредно; у относительного отката оно съело работу целой смены.
252. ОТЧЁТ КОМАНДЫ О САМОЙ СЕБЕ ДОКАЗАТЕЛЬСТВОМ НЕ ЯВЛЯЕТСЯ. `git log` внутри той же
строки показал верную голову — второй заход случился ПОЗЖЕ. Перемеряй следующей командой.

Своя четвёртая ошибка за смену, названная честно: пробный коммит был сделан на
предположении «коммитить нечего» вместо замера. Хук уже положил STATUS.md в индекс.
Ошибка вскрыла близнеца — но ошибкой быть не перестала.

🪤 Попутно: ловушка GIT_TRACE2_EVENT на боевом коммите файла не создала, причина НЕ
УСТАНОВЛЕНА. Замерено, что сама она исправна: пишет на `git status`, на `git commit`
и в связке с `rm`. Не гадаю; второй датчик (история, `sort | uniq -d`) дал тот же ответ.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 07:53:47 +03:00
..