Follow-ups from #6 #13

Closed
opened 2026-10-16 09:13:16 +03:00 by aep · 1 comment
Owner

Отложенные находки из #6 (PR #12, merge d245e50, 0.4.0). Маркеры из ledger и описания PR; источник указан в скобках: M-n — финальное ревью ветки (opus), O-n — наблюдение исполнителя вне ревью.

Хуки (hooks/harness_target.py):

  • M-1 — git-мутация при пустом cwd во входе хука даёт блок (exit 2); Claude Code cwd передаёт всегда, но вход без него — не «сбой разбора → пропуск» (финальное ревью)
  • M-6 — лексер не разбирает function f { … }, $'…', (( a << 2 )) (финальное ревью)
  • M-7 (сообщения) — в сообщении push? нет корня репозитория; «запись в .» для npm install / tar -x без названия операции (финальное ревью; часть M-7 про design.md исправлена в 2f96a13)
  • M-10 — worktree внутри репозитория, созданный в той же команде, блокирует записи в нём (финальное ревью)
  • M-11 — npm --prefix / pnpm -C / yarn --cwd: значение опции принимается за подкоманду; perl -Mstrict ложно ловится как perl -i (финальное ревью)
  • M-3 (пробел) — rm -rf link/ с косой чертой и mv в ссылку на каталог оцениваются по месту ссылки, а не по самой ссылке (остаток M-3 после исправления в 2f96a13)
  • O-4 — require-plan не видит записей в каталоги кода через Bash (sed -i, cat >), только Edit/Write/MultiEdit (исполнение)

Корпус и тесты:

  • M-2 — tests/test-hook-corpus.sh проходит вхолостую, если hook_corpus.py упал (сейчас страхует test-doctor) (финальное ревью)
  • M-9 — hook_corpus.py собирает песочницу с глобальным git-конфигом машины (gpgsign, hooksPath, templateDir); на этой машине ключей нет, на другой может сломаться (финальное ревью)
  • M-12 — корпус: c002 испорчен редакцией секретов, поле why не проверяется, block-случаи одной формы (архивный коммит в main) — добавить живые block-случаи (финальное ревью)

Процесс и ретро:

  • O-2 — код плана был написан прототипом до самого плана: в репозитории RED каждой задачи наблюдался на исходном состоянии ветки; тема для следующего ретро (исполнение)
  • O-3 — require-plan: правило «план один → пропуск» в этом репозитории пропускало все правки в коде, даже без плана для ветки (исполнение)

Инструменты (не наш код):

  • O-5 — изоляция worktree Claude Code отказывает read-only командам со словом git в «сложном» тексте (heredoc, python -c, $VAR, git -C в основной checkout); обход — скрипты в файлах и литеральные пути (исполнение)
Отложенные находки из #6 (PR #12, merge d245e50, 0.4.0). Маркеры из ledger и описания PR; источник указан в скобках: M-n — финальное ревью ветки (opus), O-n — наблюдение исполнителя вне ревью. Хуки (`hooks/harness_target.py`): - M-1 — git-мутация при пустом `cwd` во входе хука даёт блок (exit 2); Claude Code `cwd` передаёт всегда, но вход без него — не «сбой разбора → пропуск» (финальное ревью) - M-6 — лексер не разбирает `function f { … }`, `$'…'`, `(( a << 2 ))` (финальное ревью) - M-7 (сообщения) — в сообщении `push?` нет корня репозитория; «запись в .» для `npm install` / `tar -x` без названия операции (финальное ревью; часть M-7 про design.md исправлена в 2f96a13) - M-10 — worktree внутри репозитория, созданный в той же команде, блокирует записи в нём (финальное ревью) - M-11 — `npm --prefix` / `pnpm -C` / `yarn --cwd`: значение опции принимается за подкоманду; `perl -Mstrict` ложно ловится как `perl -i` (финальное ревью) - M-3 (пробел) — `rm -rf link/` с косой чертой и `mv` в ссылку на каталог оцениваются по месту ссылки, а не по самой ссылке (остаток M-3 после исправления в 2f96a13) - O-4 — require-plan не видит записей в каталоги кода через Bash (`sed -i`, `cat >`), только Edit/Write/MultiEdit (исполнение) Корпус и тесты: - M-2 — `tests/test-hook-corpus.sh` проходит вхолостую, если `hook_corpus.py` упал (сейчас страхует `test-doctor`) (финальное ревью) - M-9 — `hook_corpus.py` собирает песочницу с глобальным git-конфигом машины (`gpgsign`, `hooksPath`, `templateDir`); на этой машине ключей нет, на другой может сломаться (финальное ревью) - M-12 — корпус: c002 испорчен редакцией секретов, поле `why` не проверяется, block-случаи одной формы (архивный коммит в main) — добавить живые block-случаи (финальное ревью) Процесс и ретро: - O-2 — код плана был написан прототипом до самого плана: в репозитории RED каждой задачи наблюдался на исходном состоянии ветки; тема для следующего ретро (исполнение) - O-3 — require-plan: правило «план один → пропуск» в этом репозитории пропускало все правки в коде, даже без плана для ветки (исполнение) Инструменты (не наш код): - O-5 — изоляция worktree Claude Code отказывает read-only командам со словом `git` в «сложном» тексте (heredoc, `python -c`, `$VAR`, `git -C` в основной checkout); обход — скрипты в файлах и литеральные пути (исполнение)
Author
Owner

Сведено в #70 (консолидация follow-ups обвязки, 24.10.2026). Все маркеры и статусы перенесены туда.

Сведено в #70 (консолидация follow-ups обвязки, 24.10.2026). Все маркеры и статусы перенесены туда.
aep closed this issue 2026-10-24 21:15:33 +03:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/claude-harness#13
No description provided.