Skip to content

原文(日本語に翻訳)

独立したworktreeで実行されているサブエージェントが、自分自身のworktree内のファイルへのRead/Editアクセスを拒否される問題を修正しました。

原文(英語)

Fixed sub-agents running in isolated worktrees being denied Read/Edit access to files inside their own worktree

概要

独立したworktreeで実行されているサブエージェントが、自分自身のworktreeディレクトリ内のファイルにRead/Editアクセスできないというバグがありました。サブエージェントは自分が作業しているworktree内のファイルにアクセスできるべきですが、パーミッションチェックが誤ってアクセスを拒否していました。このアップデートにより、正しくアクセスが許可されるようになりました。

基本的な使い方

bash
# worktreeでサブエージェントを実行
claude -w feature-branch "このworktree内のコードを分析して修正して"

# 修正前: サブエージェントが独自worktree内のファイルにアクセスできない
# エラー: Permission denied: Read access to /worktrees/feature-branch/src/app.ts

# 修正後: 正しくアクセスが許可される

実践例

マルチエージェントコードレビュー

bash
# 複数のworktreeで並行してコードレビューを実行
# 各worktreeのサブエージェントが自分のworktree内ファイルにアクセス可能になった

claude -w feature/auth "認証モジュールの全ファイルをレビューして問題を修正して"
claude -w feature/api "APIモジュールの全ファイルをレビューして問題を修正して"

# 修正前: 各サブエージェントが自分のworktree内のファイルにアクセスできなかった
# 修正後: 各サブエージェントが自分の担当領域を正常に処理できる

独立した並行開発ワークフロー

bash
#!/bin/bash
# 複数の機能を並行開発するスクリプト

develop_feature() {
  local feature="$1"
  local task="$2"
  
  echo "$feature の開発を開始します..."
  
  # worktreeでサブエージェントが実行される
  # 修正後: サブエージェントがworktree内ファイルに正しくアクセスできる
  claude -w "$feature" "$task" &
}

# 並行して3つの機能を開発
develop_feature "feature/login" "ログイン機能を実装してテストを書いて"
develop_feature "feature/register" "ユーザー登録機能を実装してテストを書いて"
develop_feature "feature/profile" "プロフィール機能を実装してテストを書いて"

# 全て完了するまで待機
wait

echo "全機能の開発が完了しました"

独立したテスト環境

bash
# テスト用worktreeを作成してテストを実行
claude -w test-branch "
テスト環境をセットアップして:
1. テスト依存関係をインストール
2. テスト設定ファイルを作成
3. 全テストを実行
4. 結果レポートを生成
"

# 修正後: サブエージェントがworktree内の全ファイルに
# 適切にアクセスしてタスクを完了できる

セキュアなworktree分離

json
// .claude/settings.json
// worktreeのアクセス設定
{
  "worktree": {
    "isolated": true,
    "allowRead": ["./"],         // worktree内のみ読み取り許可
    "allowWrite": ["./src/", "./tests/"]  // 特定ディレクトリのみ書き込み許可
  }
}
bash
# 制限されたworktreeでのサブエージェント実行
# 修正後: 許可されたパス内のファイルには正しくアクセスできる
claude -w isolated-feature "src ディレクトリのコードを改善して"

注意点

  • このバグはworktree分離機能(-w フラグ)を使用している場合にのみ発生していました
  • サブエージェントが自分のworktree外のファイルにアクセスしようとする場合は、引き続き適切な制限が適用されます
  • セキュリティ上、サブエージェントのファイルアクセスはworktreeのスコープに限定されます
  • 修正後もworktreeの分離は維持されており、一つのworktreeのサブエージェントが別のworktreeにアクセスすることはありません
  • この修正は並行処理のパフォーマンスとセキュリティのバランスを適切に保ちます

関連情報