Zenn Claude Code Worktree Isolation Bug
Claude Code の worktree 隔離は信用するな — 1週間13件のインシデントと PreToolUse フックによる解決
- URL: https://zenn.dev/penne_inc/articles/claude-code-worktree-isolation-bug
- 日付: 2026-06-10
- Tier: Tier 3
- 要旨:
isolation: "worktree"で複数エージェントを並列運用したところ、1週間で13件のworktree隔離破りが発生。根本原因は「絶対パス経由でCLAUDE_PROJECT_DIR基準のパス解決」と「Bash cwdの親セッション継承」の2つで、PreToolUse hookで対処。
詳細
発生した問題パターン(主要3例):
- 事象#1:devエージェントがworktree内ではなく親リポジトリの
gateway/email_msg.pyを直接書き換え - 事象#7:PRレビュー委任中に9ファイルを親リポジトリの
frontend/app/配下に直書き→ステージング破損 - 事象#10:worktreeを管理するleadエージェント自身がPOブランチに誤commit
根本原因(2つ):
絶対パス問題(公式Issue #57847 cwd継承問題)
isolation: "worktree"エージェントが絶対パス引数を受け取ると、worktreeではなくCLAUDE_PROJECT_DIR(親リポジトリ)を基準にパス解決
Bash cwd継承
- エージェントがworktreeや別ブランチの確認のため
git checkoutした後、cwdをそのままにして次のタスクを開始
- エージェントがworktreeや別ブランチの確認のため
解決: PreToolUse hookによる動的なcwd・絶対パスの検証でEdit/Write/Bashを事前ブロック(詳細は別記事)。
「worktree隔離の概念そのものが脆弱だった」という認識が重要で、Claudeを責めるのではなくフックで物理的に封じる必要がある。