最近はvibe codingが多いですね。特に、上限(额度)がもうすぐリセットされる時期になると、Agentに大量のタスクを投げることがあるんです。中には「タスク完了済み」みたいに表示されて放置してしまうこともあるんですが、翌日のテストで未完了だと分かる。戻って確認すると、原因はworktreeを作っていたのに、mainではなくそこを修正していて、そもそもマージされていなかったんです。

さらにAgentに集中して洗い出しを手伝ってもらいました。同じようなworktreeがまだ他にもあって、それらを整理(クリーンアップ)させました。

最後にAgents.mdにルールを追加して、worktreeを作ること自体は禁止ではないけど、取りこぼしはダメだと明記しました。

--- worktreeのレビュー用プロンプト例 ---

どのworktreeがまだmainに同期されていないか見てください。同期できたものは直接削除して、同期できていないものを次の項目で列挙してください:ブランチ、変更内容の要約(直近数回のcommitを含む)、対応するsession(会話)

--- worktreeのクリーンアップ用プロンプト例 ---
これらのworktreeの内容を見てください。マージして価値があるものは明確に判断し、私の代わりにマージしてworktreeを片付けてください。確信が持てないものは私に確認してください。ただし、判断の根拠として分かりやすい提案は必ず出してください。

--- AGENTS.mdのルール例 ---

- worktreeを残しっぱなしにしない:worktree内で行ったタスクは、完了したら必ずそのworktreeとそのブランチを削除すること。削除前に次のどちらか一方を選ぶ:`main`へマージする;またはマージしない場合は、未提出の変更をまずそのブランチにコミットし、`archive/<worktree名>`タグでアーカイブしてから `git worktree remove` + `git branch -D`。サブエージェントを組む場合、その会話が分岐して生成されたworktreeの後始末を担当する。どうしても残す必要があるもの(ユーザーの判断待ち、有効な競合があって解消待ちなど)は、最終返信でパスと理由を明示しなければならず、黙って残してはいけない。