useAutoModeDuringPlanとは — Plan mode中の審査を切り替える設定
useAutoModeDuringPlanは、Plan mode中のBashコマンドをauto modeの分類器に審査させるか都度確認するかを切り替える設定です。既定値とfalseでも止まらないコマンドを解説します。
useAutoModeDuringPlanとは何か
Claude CodeのPlan mode(計画モード)は、ファイルを編集せずに調査と計画づくりだけを行うモードです。編集は止まりますが、調査のためのBashコマンドは実行する必要があります。useAutoModeDuringPlanは、そのBashコマンドをどう審査するかを決めるbool型の設定です。settings.jsonのPermission settingsに属し、/configには「Use auto mode during plan」として表示されます。
既定値はtrueです。auto modeが利用できるセッションでは、Plan mode中のBashコマンドをauto modeの分類器(classifier)が審査し、承認されたコマンドはプロンプトなしで実行されます。falseにすると、組み込みの読み取り専用コマンド以外のすべてのコマンドで、実行前に確認を求められます。
Plan modeのBashコマンドはどの順で扱われるか
「確認が出るか出ないか」は、セッションの状態を上から順に当てはめ、最初に合致したものが決めます。
Plan mode中のBashコマンドの判定順
- 1
対話端末で、bypass permissionsが使えるか
該当するなら、分類器もプロンプトも働きません。計画中のコマンドもファイル編集もそのまま実行されます。明示的なaskルールと、
rm -rf /やrm -rf ~のようなcritical path(保護対象のディレクトリ)への削除だけは、この場合も確認が出ます。 - 2
auto modeが利用でき、設定が`true`か
該当するなら、critical pathへの削除を除くシェルコマンドを分類器が審査します。承認されたコマンドは実行され、拒否されたコマンドはブロックされます。
- 3
それ以外(auto modeが使えない、または`false`)
組み込みの読み取り専用コマンド以外は、すべて確認プロンプトになります。サンドボックスのauto-allowモードを有効にしていても同じです。
1番目が働くのは対話端末のセッションに限られます。-pによる非対話実行、Agent SDK、VS Code拡張のチャットパネルでは、bypass permissionsを使えるようにしてもPlan modeのブロックは維持されます。
trueとfalseで何が変わるか
審査の主体が分類器か利用者か
true(既定)
承認されたコマンドはプロンプトなしで実行され、拒否されたコマンドは実行前に止まります。falseの確認プロンプトが出る場面が減る代わりに、判断を分類器に預けます。
false
読み取り専用コマンド以外は毎回プロンプトが出ます。分類器が止めるはずの操作でも、許可すれば実行されます。
falseにしても、編集のブロックと計画の承認フローはそのまま働きます。変わるのはBashコマンドの確認方法だけで、Plan modeを使う意味が薄れるわけではありません。
毎回確認が出るときの切り分け
trueのまま変えていないのに毎回確認を求められるなら、疑う先は設定値より先にauto modeの利用可否です。auto modeが使えないセッションでは、trueにしていてもfalseと同じ挙動になります。利用条件は次の4点です。
| 条件 | 内容 |
|---|---|
| 組織 | 内容Team・Enterpriseでは既定で利用可能。管理者がmanaged settingsのdisableAutoModeで無効化できる |
| モデル | 内容Anthropic API・Claude Platform on AWSではOpus 4.6以降・Sonnet 4.6以降・Fableモデル系。Amazon Bedrock・Google CloudのAgent Platform・Microsoft Foundry・サインイン済みのClaude apps gatewayではSonnet 5・Opus 4.7以降・Fableモデル系に限る |
| プロバイダー | 内容上記の各プロバイダーで既定有効 |
| サーバー側の一時停止 | 内容Anthropicがサーバー側で無効化している場合や、アカウントがサーバーに拒否された場合がある。その応答を受けたセッションは、終了までautoが戻らない |
サーバー側の一時停止が原因のときは、設定を直しても同じセッションでは戻りません。新しいセッションを開き直す必要があります。auto modeの判定内容そのものはauto mode分類器は何を止めているかで扱っています。
--permission-modeで指定できる値は、v2.1.287のclaude --helpではacceptEdits・auto・bypassPermissions・manual・dontAsk・planの6つです。Plan modeから始めたいときはclaude --permission-mode planと指定します。
falseにしても止まらないコマンド
falseでプロンプトを出さない「読み取り専用コマンド」の集合は、Plan mode固有ではなく、Claude Code全体で共通の組み込みリストです。
| 分類 | 該当コマンド |
|---|---|
| 基本コマンド | 該当コマンドls cat echo pwd head tail grep find wc which diff stat du cd |
| バージョン管理 | 該当コマンド読み取り専用の形のgit |
このリストは設定で増減できません。特定のコマンドを確認対象にしたいときは、/permissionsコマンドでaskかdenyのルールを足します。
サンドボックスを使っている場合は、Plan modeだけ扱いが違います。サンドボックス内のBashを確認なしで通すauto-allowの代替は、Plan modeでは働きません。bareなBashのaskルールがあると、サンドボックス内の読み取り専用コマンドを含め、すべてのBashコマンドが確認になります。v2.1.212より前は、Plan modeでもこの代替が働いていました。
分類器はPlan mode中に何を通し何を止めるか
trueのときPlan mode中のBashコマンドを審査するのは、通常のauto modeと同じ分類器です。v2.1.287のclaude auto-mode defaultsは、既定ルールをJSONで出力します。claude --helpにはこのサブコマンドが「Inspect or reset auto mode classifier configuration」として載っています。件数は次のとおりです。
| ルールの種類 | 件数 |
|---|---|
allow | 件数17 |
soft_deny | 件数72 |
hard_deny | 件数1 |
environment | 件数21 |
代表的なコマンドを既定ルールに当てると、次のように分かれます。ルール名は出力にあった見出しです。
| コマンド例 | true(分類器) | false |
|---|---|---|
git push origin feature-branch | true(分類器)allowの「Git Push Destination」が、セッションのリポジトリへのpushを通常操作として扱う | falseプロンプトが出る |
| リポジトリ内のファイル操作 | true(分類器)allowの「Local Operations」が、プロジェクト範囲内の操作として扱う | false読み取り専用以外はプロンプトが出る |
curl ... | bash | true(分類器)soft_denyの「Code from External」が、外部由来のコードの実行を対象にする | falseプロンプトが出る |
セッション前から存在するファイルへのrm -rf | true(分類器)soft_denyの「Irreversible Local Destruction」が対象にする | falseプロンプトが出る |
soft_denyは、利用者の明示的な指示やallowの例外で解除できるルールです。hard_denyは無条件に止めるルールで、既定では1件だけです。個別ルールの全文は、claude auto-mode defaults --labelにルール名の先頭部分を渡すと読めます。v2.1.208以降です。
rm -rf /やrm -rf ~のようなcritical pathへの削除は、既定では分類器が審査しません。critical pathへの削除はallowルールでも通りません。対話端末では2分のカウントダウン付きで確認が出て、時間内に答えなければ拒否されます。-pのように端末がない実行では拒否されます。denyルールが一致すれば、確認なしで拒否されます。この扱いはv2.1.281以降です。
設定できる場所とできない場所
useAutoModeDuringPlanのスコープは「User、Local、Managed」で、プロジェクト共有のsettings.jsonは対象外です。
{
"useAutoModeDuringPlan": false
}書けるのは~/.claude/settings.json(User)・.claude/settings.local.json(Local)・組織のmanaged settingsの3か所です。リポジトリで共有する.claude/settings.jsonに書いても、チームメンバーの挙動は変わりません。
trueは未設定と同じ扱いで、どれか1つのファイルにfalseがあれば、そのfalseが効きます。permissions.allowやpermissions.askのようにリポジトリで共有してチームの挙動を揃えるキーとは、ここが違います。組織で一律に確認を挟ませたいならmanaged settings、個人で慎重にしたいならUserかLocalに書く、という2択です。
Bashコマンド以外にも及ぶ範囲
分類器の審査対象はBashコマンドだけではありません。サブエージェントなど別のエージェントへSendMessageで送るメッセージも、平文とagent teamsの構造化メッセージの両方が、配信前に分類器の審査を受けます。auto modeでの審査に加えて、Plan modeで分類器がコマンドを審査している間も同じです。この送信審査はv2.1.222以降です。調査を複数のサブエージェントに分担させながらPlan modeで進める場合、コマンドだけでなくエージェント間のメッセージにも、この切り替えが影響します。
この挙動が今の形になった経緯
Plan modeのBash審査は、2026年7月から8月にかけて3回変わっています。
Plan mode中のBash審査の変遷
- 2026年7月17日v2.1.212
Plan mode中に
touchやrmのようなファイル変更コマンドが、確認なしで実行される不具合が修正されました。 - 2026年7月22日v2.1.218
静的解析が読み取り専用と証明できないBashコマンドについて、Plan modeでauto modeを使っているときは確認を出さず、分類器が判断する形に変わりました。
- 2026年8月4日v2.1.222
SendMessageで他のエージェントへ送るメッセージも、送信前に分類器が評価されるようになりました。
関連する設定との役割の違い
Plan mode中の確認まわりには、名前の似た設定がいくつかあります。
名前の似た設定4つ
useAutoModeDuringPlan
対象はPlan mode中のシェルコマンドです。
autoMode.classifyAllShell
Plan modeに限らず、auto modeが有効なあいだ全般に効く設定です。
trueにすると、Bash(npm test)のような個別のallowルールに一致するコマンドも分類器へ回します。既定のfalseでは、Bash(*)やBash(python *)のように任意のコードを実行できるallowルールだけが一時停止され、狭いallowルールに一致したコマンドは分類器を通りません。スコープはUserかManagedで、v2.1.193以降です。disableAutoMode
Shift+Tabのモード循環からauto modeを外します。managed settingsに置くと、利用者が上書きできません。permissions.defaultMode: plan
セッションをPlan modeで始める設定です。シェルコマンドの審査主体は変えません。
分類器の判定基準そのものを調整したいなら、useAutoModeDuringPlanをfalseにするより、autoModeのallow・soft_deny・hard_denyを編集する選択肢があります。falseは分類器を使うかどうかの切り替えで、特定のコマンドだけを確認対象にする細かい制御はできません。なお、soft_denyなどに"$defaults"を書かずに配列を設定すると、その節の既定ルールが丸ごと置き換わります。
まとめ
毎回確認が出る原因は、設定値よりauto modeの利用可否にあることが多く、設定を触る前に利用条件を見ます。