並列の worktree セッションで「触るファイル」を先に宣言し、ぶつからないように進める(mizchi/bit の issue を共有掲示板にする)
worktree で複数の Claude Code を並列に動かすとき、各セッションに「これから変更・削除するファイル(Target Files)」を issue として書かせ、他のセッションの宣言と重ならないか確かめてから作業させる。issue は mizchi/bit で .git に保存するので、同じリポジトリの全 worktree から見える。
どんな問題を解決する?
- 並列セッションが同じファイルを別々に書き換え、マージで衝突する
- どのセッションが何をしているか、人も他のセッションも分からない
仕組み(作者の start-work スキル)
- 作業を始めるとき、親になる計画の issue と、タスクごとの issue をまとめて先に作る。タイトルは
[task:<ブランチ名>#<連番>:<タスクID>]の形にし、本文に Target Files(変更・削除するファイル)を書く bit issue list --openで他の開いている issue を見て、変更・削除するファイルが重なっていないか確かめる。確認するのは3回: issue を作った直後、作業範囲が変わったとき、issue を閉じる前- 一部だけ重なったら、そのファイルを自分の範囲から外して続ける。全部重なったら手を止めて人に聞く
- TaskCompleted hook で、タスクを終えるたびに対応する issue を自動で閉じ、チェックをかける
- worktree の作成・削除は WorktreeCreate/WorktreeRemove hook から gwq で行う
- 計画ファイルは worktree 内の相対パスではなく、メインのリポジトリの絶対パスで読む(全セッションが同じ計画を見るため)
注意点
- bit には他の場所へ中継・取り込みするコマンド(claim・import・relay・relay を含む clone など)がある。非公開リポジトリの中身が外に出るおそれがあるため、作者はスキルで禁止し、
permissions.denyにも入れている。真似するなら同じように止めておく - 宣言はエージェントの自己申告。宣言外のファイルを触ることはありうるので、最後は差分で確かめる
- 並列の基本は Claude Code: git worktree で3〜5セッションを並列に回す(--worktree / --tmux)