mcpField
P
parallel-worktrees

parallel-worktrees

github.com/onsager-aiエージェントワークフロー760 回インストール2 週間前に更新
リポジトリ

parallel-worktrees について

複数の AI コーディングセッションを、独立した Git worktree、ブランチ、プルリクエストで調整するスキルです。並行作業に向けた環境作成、担当範囲の指定、同期、後片付けを扱います。

主な機能

  1. 01分離された worktree とブランチの作成
  2. 02worktree ごとにエージェントを割り当て
  3. 03プルリクエストを通じた調整
  4. 04main への worktree のリベース
  5. 05worktree の削除と古い記録の整理

活用シーン

  1. 01複数エージェントで別々の機能を並行開発
  2. 02単一リポジトリから個別のプルリクエストを作成
  3. 03プルリクエストのマージ後に作業環境を整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/onsager-ai/dev-skills --skill parallel-worktrees

インストール後、Claude Code で/parallel-worktreesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
agent-coordination.md
github-pr-sync.md
worktree-lifecycle.md

詳細

並列ワークツリー

複数の AI コーディングセッションを並行して実行します。それぞれ独自の Git ワークツリーで分離し、独自のブランチにプッシュして、独自の PR を作成します。

このスキルを使うタイミング

次の場合に有効にしてください:

  • ユーザーが、2 つ以上の AI エージェントを別々の機能やバグに同時に取り組ませたい
  • ユーザーがエージェントのセッションで git worktree について質問している
  • ユーザーが複数のクローンを作らずに、1 つのリポジトリから並列に PR を作成したい
  • ユーザーが並行するエージェント用ワークスペースのセットアップ、調整、またはクリーンアップを必要としている

判断ツリー

What does the user need?

Start a new parallel session?
  → Create a worktree + branch (Lifecycle §1–2)
  → Open a terminal/agent session pointed at the worktree path
  → Brief the agent: "Work only in <worktree-path>. Branch: <branch-name>."

Push and open a PR?
  → git push -u origin <branch>
  → gh pr create (GitHub PR Sync reference)
  → Note related PRs in the description

Sync a worktree with the latest main?
  → Inside the worktree: git fetch origin && git rebase origin/main
  → Never merge across worktrees directly

Merge and clean up?
  → Merge PR on GitHub
  → git worktree remove <path> && git branch -d <branch>
  → git worktree prune

Hit an error?
  → "already checked out" → branch open elsewhere; use a new branch name
  → ".git/index.lock" → two processes on same worktree; one agent per worktree
  → Detached HEAD → git switch -c <new-branch> inside the worktree
  → Stale entry after dir deleted → git worktree prune

基本概念

ワークツリーとクローンの違い — ワークツリーはメインのチェックアウトと同じ .git ディレクトリを共有します。二重のフェッチも、ディスクの無駄もありません。各ワークツリーでは異なるブランチをチェックアウトします。ファイルシステムレベルでは分離されていますが、オブジェクトストアは共有されます。

エージェント 1 つにつき、ワークツリー 1 つ、ブランチ 1 つ — これが基本ルールです。2 つのエージェントがワークツリーを共有すると、互いのインデックスが破損します。2 つのエージェントが同じブランチを使うと、履歴が競合します。

調整の手段としての PR — エージェントは、共有ファイルや別のワークツリーを直接読み取るのではなく、PR のタイトル、説明、コメントを通じて意図を伝えます。

レイアウトの規約

.gitignore に余計な項目が増えないよう、ワークツリーはリポジトリのルートと同じ階層に置きます。

~/projects/
  myrepo/              ← main checkout (main branch)
  myrepo-wt/           ← worktree root (sibling dir)
    feat/auth/         ← worktree for branch feat/auth
    fix/login-bug/     ← worktree for branch fix/login-bug

ライフサイクル

1. ワークツリーを作成する
# New branch (most common)
git worktree add ../myrepo-wt/feat/auth -b feat/auth

# From an existing remote branch
git worktree add ../myrepo-wt/fix/login-bug origin/fix/login-bug
2. エージェントに作業内容を伝える

エージェントにワークスペースを明確に伝えます。

Working directory: /home/user/projects/myrepo-wt/feat/auth
Branch: feat/auth
Scope: implement JWT authentication — do not touch files outside this scope

エージェントはこのディレクトリ内だけで作業します。他のワークツリーについて認識させる必要はありません。

3. 作業してコミットする

ワークツリー内では通常の Git フローを使います。エージェントは通常どおり git add と git commit を実行します。ブランチはメインブランチおよび他のすべてのワークツリーから分離されています。

4. プッシュして PR を作成する
git push -u origin feat/auth
gh pr create \
  --title "feat(auth): implement JWT login" \
  --body "Parallel session. Related: #<pr-number> (if any)."

ドラフト PR、PR テンプレート、リンクについては references/github-pr-sync.md を参照してください。

5. メインと同期する
# Inside the worktree
git fetch origin
git rebase origin/main   # keep history linear

PR を開く前と、最終的にマージする前に実行してください。

6. マージしてクリーンアップする

GitHub で PR がマージされた後:

# From the main repo (not inside the worktree)
git worktree remove ../myrepo-wt/feat/auth
git branch -d feat/auth
git worktree prune          # removes stale metadata entries

ブランチの命名

エージェントと人が担当範囲をひと目で把握できるよう、一貫したパターンを使います。

<type>/<scope>/<short-description>

feat/auth/jwt-login
fix/api/null-pointer
chore/deps/upgrade-pnpm
agent/experiment/refactor-parser   ← for exploratory agent sessions

注意点

症状原因対処方法
fatal: 'branch' is already checked out別のワークツリーでブランチが開かれている新しいブランチ名を使う
.git/index.lock エラー同じワークツリーで 2 つのプロセスが実行されているワークツリー 1 つにつきエージェント 1 つにする
Detached HEADブランチではなくコミット SHA から作成されたgit switch -c <new-branch>
再起動後にワークツリーのパスが見つからないディレクトリが外部から削除されたgit worktree prune を実行してから再作成する
git worktree list に古いエントリーが表示されるgit worktree remove を実行せずにディレクトリが削除されたgit worktree prune
エージェントがメインのチェックアウト内のファイルを編集するエージェントの作業範囲にワークツリーのパスが指定されていない作業ディレクトリを明示して、エージェントに再度指示する

参考資料

さらに詳しく知りたい場合は、以下を読んでください。

  • references/worktree-lifecycle.md — コマンド、フラグ、特殊なケース(複数のワークツリー、ベアリポジトリ、ワークツリーの移動)の完全なリファレンス
  • references/github-pr-sync.md — gh CLI を使った PR の作成、ドラフト PR、リンク、ステータスチェック、マージ戦略
  • references/agent-coordination.md — 並列セッション間で出力を調整するパターン:順序付け、引き継ぎ、PR を介した共有状態

セットアップと有効化

npx skills add -g onsager-ai/dev-skills --skill parallel-worktrees -a claude-code -y

ユーザーが「worktree」「parallel agents」「multiple agent sessions」に言及したとき、または AI を使って複数の機能に同時に取り組むよう依頼したときに、自動的に有効になります。

コメント