guard-main по цели записи + регрессионные тесты хуков (B1+B2) #6
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Architectural. Источник: ретро
docs/retro/2026-10-11.md— бэклог B1, B2; решение владельца 1 (раздел 5); находки RT-1, RT-2, RT-6, RT-7. Спека пишется вopenspec/changes/<id>/по итогам brainstorming.Корень (RT-1): guard-main решает по cwd сессии, а не по цели записи. 103 блокировки за 10 дней, около трёх четвертей ложные, реальных нарушений main — ноль.
Пункты:
N>/N>&(36 случаев); для Edit/Write брать ветку репозитория самого файла; записи вне git-репозиториев не блокировать (scratchpad, память); для Bash учитыватьgit -C <dir>и пути в команде; исключения дляgit -C … worktree add,mkdir -p .wt/; хук не должен ломаться от чужогоcd(RT-2).tests/run.shи самотест вdoctor.sh(RT-6).global/CLAUDE.md,docs/HARNESS.md; правило «в main только через PR» без исключений. Пункт 1 чеклиста закрытия переписать.Свежие случаи 12.10.2026 (сессия закрытия #2, cwd = основной checkout на main):
~/.claude/projects/…/memory/roles-and-memory-prs.md— вне репозитория, заблокирован как «you are on main».grep -rniE 'guard-main' docs/… 2>/dev/null— только чтение, заблокирован как «shell write on main».git fetch origin --prune 2>&1 | tail -3— то же.Сырьё для B2: блокировки выгружаются скриптом
docs/retro/scripts/hook_blocks_export.pyиз транскриптов~/.claude/projects/-Users-andrey-epifancev-projects-awp-ca/— транскрипты есть только на рабочей машине, выгрузку сделать там до переезда (см. комментарий).Не входит: B10 (workspace-хук awp-ca живёт в workspace awp-ca), B3 (allow-правило удаления веток), B4 кроме решения 1.
Сырьё для B2 выгружено на рабочей машине:
docs/retro/fixtures/hook-blocks.jsonlв веткеfeat/6-guard-main-target(2549e86). 126 блокировок из 42 сессий: guard-main(Bash) 109, guard-main(Edit/Write) 11, require-plan 4, прочие 2. У каждой записи есть cwd и ветка; полеexpectedпустое — вердикт (block/allow) размечается в рамках B2. В ретро было 103: разница — сессии claude-harness и сессии после среза. Транскрипты на другой машине для #6 не нужны.Закрыто PR #12 (merge
d245e50, 0.4.0). Все пункты выполнены:87f2c95, исправления финального ревью I-1, I-2, M-3, M-5 —2f96a13.1620d1e, M-4 —2f96a13.3d54932.87f2c95.2fd2396, M-7, M-8 —2f96a13.Метрика на корпусе: старые хуки — 41 блок (37 ложных), новые — 4 блока, ложных и пропущенных нет.
Архив OpenSpec — PR #14 (ждёт merge). Отложенные находки — #13.