コンテンツにスキップ
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つ):

  1. 絶対パス問題(公式Issue #57847 cwd継承問題)

    • isolation: "worktree"エージェントが絶対パス引数を受け取ると、worktreeではなくCLAUDE_PROJECT_DIR(親リポジトリ)を基準にパス解決
  2. Bash cwd継承

    • エージェントがworktreeや別ブランチの確認のためgit checkoutした後、cwdをそのままにして次のタスクを開始

解決: PreToolUse hookによる動的なcwd・絶対パスの検証でEdit/Write/Bashを事前ブロック(詳細は別記事)。

「worktree隔離の概念そのものが脆弱だった」という認識が重要で、Claudeを責めるのではなくフックで物理的に封じる必要がある。