結論:説明し直す量が多い時だけforkを選ぶ
Claude Codeのforkは、親sessionの会話履歴、system prompt、tool、modelをそのまま必要とする横道作業に使います。調査logを主会話へ入れたくないだけなら通常subagent、同じ前提から複数案を試すならfork、file編集が衝突するならforkにworktree isolationを加えます。文脈を多く渡せることを、権限やfileの安全な分離と混同しません。
読者の具体的な困りごとは、通常subagentへ背景を短く要約すると前提が抜け、反対にすべてをforkすると機密文脈とtool権限まで広がり、並列編集が衝突することです。この記事を読むと、fork、通常subagent、独立session、worktreeを6軸で選び、停止と統合まで判断できます。
次の行動:並列化したい一作業について、必要な過去文脈、必要tool、書込file、完了証拠、最大turn、統合責任者を一行へ書いてください。
正式なversion・既定動作・費用条件を確認する
公式changelogでは、Claude Code 2.1.232からinteractive sessionのsubagent forkingが既定で有効です。Claudeがfork typeを選んだsubagentは親のconversationとprompt cacheを引き継ぎ、interactiveでspawnされるnon-teammate agentは原則backgroundで動きます。自分で開始する/subtaskは2.1.212以降が必要で、古いversionでは/forkという名称でした。
forkは親のfull conversation、system prompt、tool definitions、model、prompt cacheを継承します。通常subagentは独立contextで、自身のsystem promptと委任messageから始まります。forkの最初のrequestは親のprompt cacheを再利用できるため、同じ長い文脈が必要な仕事ではfresh subagentより効率的になり得ます。ただし実行turnと出力のmodel利用量は発生し、無料のcopyではありません。
interactiveではfork modeが既定onですが、非対話の-pとAgent SDKでは既定offです。CLAUDE_CODE_FORK_SUBAGENT=1または0で環境別に上書きできます。組織で再現性が必要なら、個人端末の既定値に任せずversionと設定を起動台帳へ残します。
forkはbackgroundで動き、permission promptはmain terminalへ表示されます。親と同じtool poolを持つため、通常background subagentよりtoolが広い場合があります。またforkはさらにforkをspawnできません。file editを分けるにはAgent callでisolation: "worktree"を指定します。contextの分岐とrepositoryの分岐は別設定です。
fork・通常subagent・独立sessionを6軸で比較する
- 文脈:親履歴が不可欠ならfork、要約だけで足りるなら通常subagent、長期継続は独立sessionを選びます。
- tool:親と同じtoolが必要なforkより、read-onlyなどtoolを絞れるcustom subagentを先に検討します。
- 費用:同一prompt cacheを活かすfork、安価なmodelを指定できるsubagent、別budgetのsessionを比較します。
- 編集:同じcheckoutを読むだけなら並列化し、書込が重なるならworktreeか順次実行へ切り替えます。
- 承認:background permissionが誰の作業か分かる名前を付け、危険操作はmain側で一件ずつ確認します。
- 統合:最終reportだけで足りるfork、再開が必要なnamed subagent、成果物をcommitで渡すworktreeを分けます。
「同じ会話を知っているからfork」は広すぎます。親履歴にcustomer data、credential、別projectの会話が含まれるなら、fresh subagentへ必要事項だけ要約する方が安全です。forkは入力隔離を失う設計です。逆に設計判断や既読fileが多く、要約すると判断根拠が落ちる場合はforkの価値があります。
subagent forkを安全に使う8手順
claude --versionで2.1.232以降を確認し、interactive、-p、Agent SDKのどれかを記録します。- side taskの完了条件、必要な親文脈、不要な機密情報、返してほしい証拠を一文で固定します。
- fresh promptで説明できるなら通常subagentを選び、full historyが必要な理由がある時だけforkにします。
- 読むfile、書くfile、network、MCP、commit、pushを分類し、不要toolを使わせないtask境界を置きます。
- 同じfileへ書く可能性があれば
isolation: "worktree"を使い、base branchとcleanup責任者を決めます。 /subtaskまたはClaudeのfork spawnで開始し、panelの名前、background状態、permission promptを確認します。- 中間結果が必要ならfork transcriptへfollow-upを送り、失敗、usage limit、停止をmainの成功と混同しません。
- 最終report、diff、test、未追跡fileをreadbackし、採用・修正・破棄を人が決めてからworktreeを片付けます。
二つ以上のforkへ同じ変更を競わせる場合、評価軸も先に固定します。test passだけでなく、変更量、security、保守性、依存追加、rollbackを比べます。先に終わった案を自動採用せず、各forkの前提と未確認点を同じ形式で返させてください。
運用チェックリストとHOLD条件
- 2.1.232以降を確認した
- 実行surfaceを記録した
- forkが必要な理由を書いた
- 不要な親文脈を確認した
- 完了条件を固定した
- 必要toolを限定した
- permission担当者を決めた
- 書込fileを分けた
- worktree baseを確認した
- 最大並列数を決めた
- usage上限を決めた
- testを固定した
- 結果の統合担当者がいる
- cleanup前にdiffを読んだ
HOLDするのは、親会話に渡してはいけない情報がある、完了条件が「良い案を作る」だけ、同じproduction fileを複数forkが直接編集する、permission promptを無人承認する、worktreeのbaseが不明、結果を比較する人がいない、利用上限なしでforkを増やす場合です。parallel表示や完了通知だけを品質証明にしません。
よくある質問と次の行動
/subtaskと通常のAgent依頼は同じですか?
/subtaskは会話をforkする明示操作です。通常Agentはfresh subagentになることがあり、fork mode中はClaudeがfork typeを選ぶ場合があります。
forkを止めると親の変更も消えますか?
親conversationは残りますが、同じcheckoutへ加えたfile変更は別です。worktreeなしの編集は停止だけで元に戻るとは限りません。
forkは何個まで起動できますか?
subagentには同時実行limitがあり、versionや設定で変わります。総数より先にreview可能な並列数、費用上限、file衝突を決めます。
forkの継承内容、/subtask、既定動作、worktreeはClaude Code公式subagents guide、2.1.232の変更は公式changelog、並列方式の全体比較は公式agents guideで公開直前にも確認してください。
複数sessionの連携はsession間messaging、file分離はworktree運用、完了条件は/goal設計へつなげます。Miraigentの無料診断では、文脈、tool、権限、並列数、費用、統合を一枚の運用表へ整理します。

