コンテンツにスキップ
Zenn Dev Kanfupanda Articles Isolated Worktrees

AI を並列で動かす前提は、独立した作業領域を切り分けること

  • URL: https://zenn.dev/kanfupanda/articles/isolated-worktrees
  • 日付: 2026-06-25
  • Tier: Tier 3
  • 要旨: 複数 AI エージェントが並列で同じプロジェクトを編集する際、読み取りは共有可でも書き込みは隔離が必須。git clone による物理的な全ディレクトリ複製は git/履歴の重複コストが大きく、回収不可で場所を食い続けるため、git worktree への切り替えで解決:複数作業ツリーが .git 共有、ディスク浪費なし、一時的で終了後回収可能。セッション内 subagent 並列は AI が自動で隔離を判断・worktree 開設するが、手動で複数端末を並列起動する場合は明示的に指示「別の AI がこのディレクトリを編集中。worktree を使って」で初めて主幹に直接手を出さない動作に切り替わる。スムーズな流れ:疎結合の境で独立タスク分割→各々を別 worktree に→各自検証して問題なければ主控 agent が一つずつ主幹に戻す→問題時その場で直す→worktree 回収。worktree 衝突は稀(設計段階で相互依存排除)。常時ルール:主幹で直接作業しない。すべて新規ブランチで開始→検証→PR で主幹合併。worktree であれ単一ブランチであれこの線を守り、主幹を信頼できる状態に保つ。

詳細

複数手が同時に一つのプロジェクトを編集する問題の発生:手動で複数 AI 端末を並列起動すると、ファイルが相互上書きされ状態が混乱。解決策の進化:①素朴な物理隔離(clone を複数作)は React フロント+Python バック複合プロジェクトで数G の重複コスト、ディスク常時消費。②git worktree への切り替え:複数作業ツリーが単一 .git 共有、リポジトリと履歴を何度も複製しない、一時的で終了後即回収可能(clone のような長期居座りなし)。隔離効果はほぼ同じながらディスク浪費なし。二種類の並列シーン:セッション内 subagent は AI が自動で隔離判断・worktree 配置(指示不要)。手動端末並列では AI が「別の AI も触っている」を既定では知らず、明示指示「worktree で作業して」で初めて主幹回避動作に入る。スムーズなワークフロー:タスク分割時に疎結合部を選ぶ→各ブロックを独立 worktree に→全終了後、主控 agent が一つずつ検証・merge・問題あれば即座に修正・worktree 解放。worktree が本当に同じファイル接触する衝突は稀(初設計で相互依存最小化)。よくある落とし穴:worktree 片付け忘れ(場所食うが致命的でない;主幹に合わさっているので失われるものなし)。防御:「worktree 検証 OK→merge 完了→解放前に commits が主幹に全合併したか確認」で早期消し込み防止。人の手作業片付けは確認が消えるリスク(合わさっていない機能をまるごと失う)。無用な worktree 開設は割に合わず(数ファイル変更なら単一ブランチで十分)。ただ緩めない線:主幹で直接作業しない。どの変更も新規ブランチで開始→検証→PR で合併→主幹は常にきれい。AI が新しい場面(並列編集)で古い git 機能を新しい価値で活用する例。