マージ後の片付けで,メインが `herdr worktree remove` を手で使うと,worktree だけが消えてブランチが残る.worktree が消えたリポジトリは `cleanup_worktrees.py`(セッション起動時の hook)の対象からも外れるので,ブランチはそのまま取り残される.片付けの手順を「メインが `cleanup_worktrees.py` を実行する」に変え,sandbox の外で動かせるようにする. ```mermaid flowchart LR M[ユーザー: マージ] --> C[メイン: cleanup_worktrees.py] C --> W[herdr のワークスペースと worktree を削除] C --> B[ローカルブランチを削除] C --> F[main を fast-forward] ``` | | 変更前 | 変更後 | |---|---|---| | マージ後の片付け | メインが `herdr worktree remove` で手で消す.ブランチは残る | メインが `~/.claude/hooks/cleanup_worktrees.py` を実行し,worktree,ブランチ,main の更新がまとめて済む | | 実行場所 | — | sandbox の外(ほかのリポジトリの `.git` に書くため).`excludedCommands` にこのスクリプトだけを足す | | 許可 | — | guard の hook でも,引数なしと `--dry-run` だけを許可する | ## 受け入れ条件 - [ ] `agents/claude/settings.json` の `sandbox.excludedCommands` に `cleanup_worktrees.py` の実行が入っている.引数なしと `--dry-run` 以外は対象にならない - [ ] guard の hook がこのスクリプトの実行を確認なしで許可する(引数なしと `--dry-run` だけ) - [ ] README の「Development Cycle」の手順表の片付けと,`agents/skills/git-workflow/references/branches.md` の片付けの記述が,「マージ後にメインが `cleanup_worktrees.py` を実行する.`herdr worktree remove` を手で使わない」になっている - [ ] `switch` のあと,メインのセッションから実行すると,別のリポジトリのマージ済みの worktree とブランチが消える - [ ] 既存のテストと lefthook が通る <details> <summary>前提</summary> - スクリプトは nix が生成し,エージェントは書き換えられない.消すのは,マージ済みの PR の最後のコミットとブランチの先頭が一致し,未保存の変更がないものだけ. - 2026-10-23 の片付けで,vitest の 3 リポジトリなどにブランチが残ったのがきっかけ. </details>
Activity
furedea-agent commentedon Oct 22, 2026
計画
レーン 1 本:
cleanup-after-merge(ブランチfeat/cleanup-after-merge)cleanup_worktrees.pyの引数なしと--dry-runを許可し,それ以外の引数は許可しないこと.excludedCommandsの項目があること.agents/claude/settings.jsonのexcludedCommandsと guard の許可ルールを足す.excludedCommandsで~や$HOMEが展開されるかは,レーンが Claude Code の仕様で確かめる.-uなしの push,PR.LANE-READY.switchのあと,メインがこのスクリプトを実行し,このレーン自身の worktree とブランチが消えることを確かめる.furedea-agent commentedon Oct 22, 2026
計画の更新
ユーザーの要望で 2 点を足す.
~/.claude/hooks/cleanup_worktrees.pyに統一する.excludedCommandsの~/は agent-harness が書き出すときにホームディレクトリへ置き換える(設定を書き出すとき,sandbox.excludedCommands の先頭の ~/ をホームディレクトリに置き換える agent-harness#174).Codex プラグインの行も~/にする.cleanup-after-merge(#300)excluded-tilde順番:agent-harness#174 をマージ → dotfiles の flake で取り込む(#300 のレーンが行う) →
switch前に書き出された設定を確認 → #300 をマージ.