原文(日本語に翻訳)
独立した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にアクセスすることはありません
- この修正は並行処理のパフォーマンスとセキュリティのバランスを適切に保ちます