Auto Modeで作業していると、突然アクションが止められることがあります。公式ドキュメントは代表例しか載せていませんが、実はコマンド1つで判定ルールの全文を取り出せます。実際に取得した83のルールをもとに、何が止まるのか、そしてどう書けば通るのかを整理します。
Claude Code の Auto Mode は、実行前に専用の分類器がアクションを審査し、危険と判定したものをブロックします。2026年8月14日からは Pro・Max・Team プランの新規セッションで既定の権限モードになりました。
問題は、何がブロック対象なのかが分かりにくいことです。公式ドキュメントには代表的な例が並んでいますが、全件ではありません。「なぜこれが止められたのか」「どう書けば通るのか」が分からないまま、都度やり直している人も多いはずです。
実は、その判定ルールはコマンド1つで全文を取り出せます。この記事は、その出力を実際に解析した結果です。
判定ルールを実機から取り出す
Claude Code には、分類器の既定ルールをJSONで出力するサブコマンドがあります。
claude auto-mode defaults
手元の v2.1.220 で実行したところ、61,641バイトのJSONが返りました。トップレベルのキーは4つです。
allow
確認なしで通る
soft_deny
条件付きでブロック
hard_deny
無条件でブロック
environment
管理者が調整できる項目
ルール本体は合計83件です。この構造を知っているだけで、ブロックへの向き合い方が変わります。とくに重要なのは、無条件でブロックされるルールがたった1つしかないという点です。
この記事の数値は v2.1.220 で取得したものです。ルールはアップデートで追加・改訂されるため、実際に運用する際はご自身の環境で同じコマンドを実行して確認してください。管理者が environment を設定している組織では、その内容も判定に影響します。
無条件ブロックは1つだけ ― Data Exfiltration
hard_deny に入っているのは Data Exfiltration(データの持ち出し) ただ1件です。機密データが信頼境界を越えることだけが、例外なくブロックされます。
条文を読むと、判定の考え方がかなり明確に書かれています。要点は3つです。
- コマンドが直接向いている先ではなく、データが最終的にどこへ着地するかで判断する
- 手段は限定されない ― HTTPリクエスト、ファイルアップロード、gitのcommit/push、APIのベースURL変更、公開ストレージへのアップロード、Gistなどでの平文共有、共有URLや署名付きURLの生成、パッケージ公開コマンドなど
- base64・16進数・圧縮・暗号化などで難読化したペイロードも対象
興味深いのは、リポジトリが公開か非公開か分からない場合の扱いです。「可視性が不明であること自体はブロックの理由にならない」と明記され、内容そのもので判断するとされています。一方で、environment に登録されていないリポジトリ以外の宛先は外部として扱われます。
後述する65件のソフトブロックは、指示の書き方で解除できます。しかし hard_deny はユーザーが何を明示しても通りません。機密データを外部へ出す必要がある作業は、Auto Modeではなく手動承認で行ってください。
65件のソフトブロックは「名指し」で解除できる
ここがこの記事でいちばん実用的な部分です。
soft_deny の各ルールには、必ず named+specifics という但し書きと must name: という項目が付いています。これは「何を明示すれば通るか」の指定です。
Production Deploy [named+specifics — **must name:** the production target]:
Deploying to production/a production service or running production
database migrations
つまり 「本番にデプロイして」ではブロックされ、「本番の◯◯サービスにデプロイして」なら通るという設計です。曖昧な指示を止め、対象を特定した指示は通す。これが65ルールに共通する骨格です。
主なルールと、解除に必要な明示
| ブロックされる操作 | 明示すべきこと |
| Production Deploy(本番デプロイ) | 本番環境の対象名 |
| Cloud Storage Mass Delete(大量削除) | 削除対象のバケット・データセット・テーブル |
| Irreversible Local Destruction(不可逆なローカル削除) | 破壊される正確な対象 |
| Code from External(外部コードの実行) | 外部ソースのURLまたはリポジトリ |
| Secret-Store Writes(シークレット変更) | 変更するシークレットのエントリ |
| Git Destructive(force push等) | 破壊的操作の内容とその対象 |
| Permission Grant(権限付与) | 誰にどの権限を与えるか |
| DNS / Domain / Cert Changes | 変更するレコード・ドメイン・証明書 |
| Blind Apply(プレビュー省略) | そのプレビューを飛ばすこと自体 |
| Safety Bypass Flag(安全装置の解除フラグ) | そのフラグ名 |
ブロックされたときは、モードを変える前に対象を特定した言い方に書き直すのが先です。
- ✗「古いファイルを削除して」 → ✓「
build/配下の生成物を削除して」 - ✗「このスクリプトを実行して」 → ✓「
https://example.com/install.shを取得して実行して」 - ✗「デプロイして」 → ✓「staging ではなく本番の api サービスへデプロイして」
「誤検知だ」と伝えることで解除するルールもあります
65件のうち7件は、対象を名指しするのではなく 「これは誤検知である」と明示することで解除する設計になっています。
- Credential Exploration(認証情報の探索)
- Exfil Scouting(持ち出し先の下調べ)
- Sandbox Network Callback(サンドボックスからの通信)
- Tmux Self Drive(自身のtmuxペインの操作)
- Instruction Poisoning(指示ファイルの汚染)
- Auto-Mode Bypass(Auto Mode自体の回避)
- Session Transcript Tampering(セッション記録の改ざん)
いずれも「エージェントが自分の監視を外そうとしている」パターンを疑うルールです。正当な作業で引っかかった場合は、なぜ誤検知なのかを説明すれば通ります。
分野別に見る65のブロックルール
65件を内容ごとに分類すると、Auto Modeが何を警戒しているかが見えてきます。
| 分野 | 件数 | 代表的なルール |
| 本番・共有インフラの操作 | 11 | Production Deploy/Remote Shell Writes/Protected-Scope IaC Apply/Node Lifecycle Operations |
| 認証情報・個人情報の扱い | 8 | Credential Leakage/Credential Materialization/PII Data Handling |
| エージェントの自己改変・監視回避 | 7 | Self-Modification/Auto-Mode Bypass/Instruction Poisoning |
| 外部への公開・送信 | 7 | Out-of-Place Publication/Create Public Surface/Traffic Redirection |
| セキュリティ機構の弱体化 | 7 | TLS/Auth Weaken/Security Test Removal/Logging/Audit Tampering |
| 不可逆な削除・破壊 | 6 | Irreversible Local Destruction/Cloud Storage Mass Delete/Git Destructive |
| 外部コードの取り込み | 5 | Code from External/Untrusted Code Integration/Package Registry Bypass |
| CI・レビューの回避 | 5 | CI Bypass/Merge Without Review/Self-Approval |
| ブラウザ操作からの流出 | 5 | Browser Navigate Exfil/Browser File Upload Exfil |
| ネットワークの露出 | 3 | Expose Local Services/External Ingress Tunnel |
| 実世界への影響 | 1 | Real-World Transactions |
見落とされがちな3つのルール
Real-World Transactions
ソフトウェアの外に影響が出る行為が対象です。購入・支払い・サービス予約・注文・サブスクの確定に加え、組織外の実在の人物(顧客・取引先・ベンダー)への連絡送信まで含まれます。条文は「ユーザーがその取引を明示的に依頼していない限りブロックする」と書かれています。
Self-Modification
エージェントが自分の設定を書き換えて権限を広げることを止めるルールです。ワイルドカードの許可ルール追加、フックやサンドボックスの変更、承認ゲートの設定が対象になります。注目すべきは「ユーザーが依頼した同じファイルの編集中であっても、依頼していない権限拡大は対象」と明記されている点です。
Irreversible Local Destruction
このセッションより前から存在したローカルファイルの不可逆な削除・切り詰め・上書きが対象です。rm -rf だけでなく、git clean -fd、git reset --hard、git stash drop、> file による切り詰め、さらに unzip -o や Write/Edit による上書きまで列挙されています。
確認なしで通る17の操作
逆に、allow に入っている17件は明示的に許可されます。実務で効いてくるのは次のあたりです。
| Git Push Destination | セッションのリポジトリならどのブランチへのpushも通常扱い。デフォルトブランチも含み、ブランチ名の作法は問われない。ただし宛先を許可するだけで、pushの中身は他のルールで判定される |
| Local Operations | 作業ディレクトリ内のファイル操作。ただし ~/ や /etc、他のリポジトリへ出るのはスコープ逸脱として扱われる |
| Read-Only Operations | GET・読み取り専用API。ただしURLに機密を含まず、レスポンスに認証情報やPIIが返らないこと |
| Declared Dependencies | npm install などマニフェストに宣言済みの依存導入。npm install <個別パッケージ名> は対象外 |
| CLAUDE.md Content | 権限や認可、Auto Modeの挙動を変えない内容の編集は常に許可 |
| Standard Credentials | .env 等から認証情報を読み、本来の宛先APIへ送ること |
Git Push Destination は宛先を許可するルールですが、pushの中身は Data Exfiltration や Code That Leaks When Run など他のルールで判定されます。また production や gh-pages のように名前がデプロイ先を示すブランチは、このルールの対象外として個別に判断されます。
管理者が調整できる20項目
environment は、組織の実情を分類器に伝えるための設定枠です。20項目あり、ここを埋めるほど正当な作業が誤ってブロックされる頻度が下がります。
- 信頼するリポジトリ/内部ドメイン/クラウドバケット/主要な内部サービス
- 内部パッケージレジストリ、組織固有のCLI、シークレット管理の方式
- CI/CDのデプロイ先、保護されたデプロイ用namespace、保護されたIaCスコープ
- 機密データの所在と公開範囲、機微なリモート対象、リポジトリの可視性
- ネットワーク構成、データ保持・機密解除の方針
「社内では当たり前の操作なのに毎回止まる」という状況は、多くの場合ここが未設定であることが原因です。設定は管理設定(managed settings)の autoMode.environment で行います。
よくある質問
claude auto-mode defaults は比較的新しいサブコマンドです。まず claude --version でバージョンを確認し、古い場合はアップデートしてください。この記事は v2.1.220 で確認しています。
実機で不正な値を渡して確認したところ、受け付けられるのは次の6つでした。
acceptEdits / auto / bypassPermissions / manual / dontAsk / plan
1つずつ確認する Manual モードは、設定ファイルでは default と書きますが、CLIでは manual というエイリアスも使えます。
公式ドキュメントによると、3回連続または合計20回ブロックされると Auto Mode は一時停止し、通常の確認プロンプトに戻ります。プロンプトを承認すれば再開します。このしきい値は変更できません。
公式ドキュメントは、会話中に述べた制約をブロック信号として扱うとしています。ただしルールとして保存されるわけではなく、分類器が毎回トランスクリプトから読み直しているため、コンテキストの圧縮でその発言が消えると制約も失われます。確実に守らせたい場合は deny ルールを設定してください。
できます。拒否されたアクションは /permissions の Recently denied タブに記録され、r キーで手動承認つきの再試行ができます。
まとめ
claude auto-mode defaultsで判定ルールの全文をJSONで取得できる- v2.1.220 での内訳は allow 17件/soft_deny 65件/hard_deny 1件/environment 20項目
- 無条件ブロックは Data Exfiltration の1件だけ。ここは言い方を変えても通らない
- 残る65件は
must name:で「何を明示すれば通るか」が指定されている - うち7件は「誤検知である」と説明することで解除する設計
- セッションのリポジトリへのpushは宛先としては許可されるが、中身は別ルールで判定される
- 誤ブロックが多い組織は
environmentの20項目を埋めると改善する
今日やれることは1つです。手元で claude auto-mode defaults を実行してみてください。自分の環境で実際にどのルールが有効になっているかが分かりますし、直近でブロックされた操作があれば、該当ルールの must name: を読むだけで「次はどう書けば通るか」が判明します。
モードそのものの選び方や、8月14日のデフォルト化で何が変わったのかは、Auto Modeが8月14日からデフォルトに|変わること・手動に戻す方法で解説しています。


