autoMode 設定ブロックを使用して、その分類器に組織が信頼するリポジトリ、バケット、ドメインを指定し、定期的な内部操作のブロックを停止させます。
オートモードは、Anthropic API、AWS 上の Claude Platform、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、およびサインイン済みのClaude アプリゲートウェイセッションを含む、すべてのプロバイダーのすべてのユーザーが利用できます。Claude Code がアカウントでオートモードが利用できないと報告する場合は、完全な要件を確認してください。これには、サポートされているモデルと Team および Enterprise プランでの組織レベルの制御も含まれます。v2.1.158 から v2.1.206 では、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および Claude アプリゲートウェイセッション上のオートモードは
CLAUDE_CODE_ENABLE_AUTO_MODE=1 の設定が必要でしたが、v2.1.207 ではその要件が削除されました。autoMode.environment に追加するまでブロックされます。
セッションがオートモードになる方法とデフォルトでブロックされるものについては、権限モード ページのオートモードを参照してください。このページは設定リファレンスです。
このページでは、以下の方法について説明します。
permissions.askを使用してプッシュおよびプルリクエストの人間チェックポイントを追加する- CLAUDE.md、ユーザー設定、管理設定全体でルールを設定する場所を選択する
autoMode.environmentを使用して信頼できるインフラストラクチャを定義する/auto-mode-setupを使用して環境エントリを生成する- デフォルトがパイプラインに適さない場合、ブロックおよび許可ルールをオーバーライドする
/permissionsからルールを編集する(設定ファイルを開かずに)autoMode.classifyAllShellを使用してすべてのシェルコマンドを分類器にルーティングするclaude auto-modeサブコマンドで有効な設定を検査する- 拒否を確認して、次に何を追加するかを把握する
一般的な境界
オートモードでは、作業中のリポジトリのあらゆるブランチ(デフォルトブランチを含む)へのプッシュが許可され、デフォルトではプルリクエストの作成も可能です。production、release、gh-pages など、デプロイまたは公開ターゲットとしてマークされた非デフォルトブランチは、このデフォルトの対象外です。分類器はそこへのプッシュを独自の条件で判定し、本番環境へのデプロイとして扱います。プッシュの内容も引き続きチェックされるため、強制プッシュ、コミットへのシークレット入力、または CI やデプロイパイプラインの実行時にシークレットをリポジトリ外に送信する変更は、ブロックされたままです。
v2.1.211 より前では、分類器は作業ブランチ、Claude が作成したブランチ、およびデフォルトブランチへの定期的なプッシュのみを許可していました。
人間によるチェックポイントを追加する
最も直接的なメカニズムはpermissions.ask です。以下のようなコンテンツスコープの ask ルールは、分類器の前に評価され、オートモードでも常に権限プロンプトを強制します。これは、明示的な ask ルールがそのアクションについてプロンプトを表示する意図を示しているためです。設定にルールを追加してください。
git push または gh pr create で始まるコマンドに一致します。Claude が別の方法で記述したプッシュ(例:git -C <dir> push または git -c <key>=<value> push)は、ルールに一致しないため、チェックポイントされません。完全なコマンドテキストを検査するチェックポイントの場合は、PreToolUse フックを追加してください。
境界がどの程度厳密である必要があるかに応じて、メカニズムを選択してください。
分類器が設定を読み込む場所
分類器は Claude 自体が読み込む同じ CLAUDE.md コンテンツを読み込むため、プロジェクトの CLAUDE.md に「force push を絶対にしない」のような指示があれば、Claude と分類器の両方を同時に制御します。プロジェクト規約と動作ルールについては、ここから始めてください。 複数のプロジェクトに適用されるルール(信頼できるインフラストラクチャや組織全体の拒否ルールなど)については、autoMode 設定ブロックを使用してください。分類器は以下のスコープから autoMode を読み込みます。
分類器は
.claude/settings.json または .claude/settings.local.json のプロジェクト設定から autoMode を読み込みません。両方のファイルはリポジトリディレクトリに存在するため、チェックインされたリポジトリまたはビルドステップが独自の許可ルールを注入する可能性があります。v2.1.207 より前は、分類器は .claude/settings.local.json も読み込んでいました。そのファイルの autoMode ブロックを ~/.claude/settings.json に移動してください。.claude/settings.local.json を除外することで、リポジトリがファイルをコミットしたり、ローカルツールまたはビルドステップが書き込んだりする場合も対応できます。
各スコープからのエントリは結合されます。開発者は個人的なエントリで environment、allow、soft_deny、hard_deny を拡張できますが、マネージド設定が提供するエントリを削除することはできません。許可ルールは分類器内のソフトブロックルールの例外として機能するため、開発者が追加した allow エントリは組織の soft_deny エントリをオーバーライドできます。組み合わせは加算的であり、ハードポリシー境界ではありません。
分類器は 権限システム の後に実行される 2 番目のゲートです。ユーザーの意図または分類器の設定に関係なく、絶対に実行してはいけないアクションについては、マネージド設定で
permissions.deny を使用してください。これは分類器が参照される前にアクションをブロックし、オーバーライドできません。信頼できるインフラストラクチャを定義する
ほとんどの組織では、autoMode.environment が唯一設定する必要があるフィールドです。これは分類器にどのリポジトリ、バケット、ドメインが信頼できるかを伝えます。分類器はこれを使用して「外部」が何を意味するかを決定するため、リストに記載されていない宛先は潜在的なデータ流出ターゲットになります。
Claude Code v2.1.198 以降、claude auto-mode defaults は 3 種類の環境エントリを出力します。v2.1.195 より前のバージョンは最初の 5 つの信頼スロットのみを出力します。
- コンテキストスロット: 組織、スタック、セキュリティ体制を説明し、分類器がコンテキスト内の他のルールを読み取れるようにします。各スロットはデフォルトで
None configuredまたは次に示す保守的な仮定に設定されます。- Organization
- Claude Code の主な用途: ソフトウェア開発がデフォルト
- クラウドプロバイダー
- リポジトリの可視性: リポジトリはリモートホストと名前が別途示さない限りプライベートと見なされます。または、分類器が読み取る会話の前の可視性チェックでそれがパブリックであることが示されます。分類器はクロード Code が実行するコマンドとメッセージを読み取り、その出力は読み取りません。そのため、証拠はリポジトリをパブリックとして名前を付けるメッセージなど、読み取ることができるものである必要があります。
gh repo viewの出力だけではそこに到達しません。トランスクリプト証拠チェックには Claude Code v2.1.200 以降が必要です - 内部共有 / スニペットホスティング: パブリックペーストおよび gist サービスは、名前を付けるまで信頼境界の外側として扱われます
- 組織固有の CLI
- シークレット管理
- CI/CD デプロイターゲット
- ネットワークポスチャ
- ホスト封じ込め: デフォルトは、オープンインターネットを備えた通常の開発者マシンまたは CI ランナーです。Claude Code がエグレス許可リストまたは接触してはいけないネイバーを持つコンテナ、VM、またはポッドで実行される場合は、許可されたホスト、クラウドメタデータエンドポイントに到達可能かどうか、およびタスクが使用するクラウドプロジェクト、クラスタ、またはレジストリとそれが使用する ID を名前付けします。このエントリがその ID を名前付けするまで、分類器は ホストの独自の認証情報のリクエストをブロック します。Claude Code v2.1.257 以降が必要です
- 保護されたデプロイメント名前空間 / 環境: 名前を付けるまで、機密リモートターゲットヒューリスティックにフォールバックします
- データ保持 / 機密解除
- 信頼スロット: 分類器が境界内として扱うものを名前付けします。スロットは Trusted repo、Source control、Trusted internal domains、Trusted cloud buckets、Key internal services、および Internal package registry です。リポジトリおよびソース制御エントリはデフォルトで作業リポジトリとその設定されたリモートになります。他のすべての信頼スロットはデフォルトで
None configuredになるため、追加するまで他に信頼できるものはありません。リポジトリの可視性は機密資料のみをスコープします。プライベートリポジトリは機密資料の許容可能な宛先ですが、リポジトリをプライベートにしてもシークレット、個人データ、または信頼されたデータはクリアされず、分類器は作業リポジトリの外側からポート、リポイント、または最初に読み取られたコンテンツをそのリポジトリ独自の作業として扱いません。このスコーピングには Claude Code v2.1.203 以降が必要です。 - 感度スロット: 保護ルールが高リスクとして扱うものを名前付けします。スロットは Sensitive data locations & audiences、Sensitive remote targets、および Protected IaC scopes です。各スロットはデフォルトで広範なヒューリスティックになります。例えば、名前に
prodまたはproductionを含むホストまたは名前空間を機密リモートターゲットとして扱うため、保護ルールは何も設定する前にアクティブになります。感度スロットで具体的なターゲットを名前付けすると、これらのルールはヒューリスティックの代わりに名前付けされたターゲットに適用されます。
v2.1.211 より前では、コンテキストスロットには、他を名前付けするまで
main と master を保護されたものとして扱う Default / protected branches エントリも含まれていました。v2.1.211 はそれを削除しました。作業中のリポジトリのいずれかのブランチへのプッシュ はデフォルトで許可されるため、設定する保護ブランチのデフォルトはありません。"$defaults" を含めます。デフォルトエントリはその位置に挿入されるため、カスタムエントリはそれらの前後に配置できます。
次の例は、デフォルトエントリを保持し、組織のリポジトリ、バケット、ドメイン、サービスを追加します。
claude auto-mode config を実行して、有効なルールがエントリを含むことを確認 します。
エントリはプロサイク、正規表現、またはツールパターンではありません。分類器はそれらを自然言語ルールとして読み取ります。新しいエンジニアにインフラストラクチャを説明する方法で記述します。徹底的な環境セクションは以下をカバーします。
- Organization: 会社名と Claude Code が主に使用される用途(ソフトウェア開発、インフラストラクチャオートメーション、データエンジニアリングなど)
- Source control: 開発者がプッシュするすべての GitHub、GitLab、または Bitbucket org
- クラウドプロバイダーと信頼できるバケット: Claude が読み取りと書き込みを行うことができるバケット名またはプレフィックス
- 信頼できる内部ドメイン:
*.internal.example.comのようなネットワーク内の API、ダッシュボード、サービスのホスト名 - 主要な内部サービス: CI、アーティファクトレジストリ、内部パッケージインデックス、インシデントツール
- 内部パッケージレジストリ: インストールがルーティングする必要があるプライベート npm、PyPI、またはその他のレジストリ。パブリックレジストリをバイパスするインストールはブロックされます
- Sensitive data locations & audiences: 個人データ、機密ビジネスデータ、認証情報、規制データ、または同様に機密性の高い資料を保持するバケット、データベース、またはパス、および各場所のデータが共有される可能性のあるオーディエンス。分類器はコンテンツから推測する代わりにこれらの場所を保護します。Claude Code v2.1.195 から v2.1.197 はこのエントリを PII / regulated-data locations として名前付けし、オーディエンス次元なしで個人データまたは規制データを保持する場所のみをカバーします
- Sensitive remote targets: 本番環境としてカウントされる名前空間、ホスト、またはコンテナ。リモートシェルとポートフォワードはそれらへの明示的な承認が必要です
- Protected IaC scopes: 適用または破棄が常に変更を名前付けることを要求する必要があるインフラストラクチャリソース
- 追加コンテキスト: 規制業界の制約、マルチテナントインフラストラクチャ、または分類器がリスクとして扱うべきことに影響するコンプライアンス要件
/auto-mode-setup で環境エントリを生成する
/auto-mode-setup を実行すると、Claude Code がプロジェクトと最近のセッションから autoMode.environment エントリを作成し、時にはルールエントリも作成します。ドラフトを承認すると、Claude Code は ~/.claude/settings.json に書き込みます。
/auto-mode-setup には Pro、Max、または Team プランと Claude Code v2.1.228 以降が必要です。ネイティブ Windows では v2.1.233 以降が必要です。Web 上の Claude Code では実行できません。またフィーチャーフラグ取得が必要なため、フラグ取得をオフにしたセッションでは実行できません。/auto-mode-setup が読み込むもの
~/.claude/settings.json に既に autoMode エントリが含まれている場合、Claude Code はまず環境リストに追加するか置き換えるかを尋ね、どちらの場合でも作成したルールを保持します。その後、Claude Code はこのプロジェクトの使用方法を尋ね、スキャンの前に 2 つのオプションスキャンを提供します。スキャンでは、Claude Code は常にこれらのソースを読み込みます:
- このプロジェクトの
CLAUDE.md、README.md、設定ファイル、および git リモート autoModeおよびpermissions.allow設定- Claude がこのプロジェクトの最近のセッションで実行したコマンドのホスト、バケット、コマンド名(メッセージは含まない)
- シェル履歴内の各コマンドの最初の単語
- ホームディレクトリ下のリポジトリのリモートホストと名前
ドラフトを確認して保存する
Claude Code はバックグラウンドでスキャンを実行し、ドラフトを表示します。ドラフト全体を承認または破棄し、その後~/.claude/settings.json を編集して個別のエントリを調整します。承認すると、Claude Code はドラフトを書き込み、既に持っている設定と調整します:
- Claude Code は
"$defaults"なしでenvironmentリストを書き込みます。ドラフトが変更されていない組み込みエントリを明示しているため - Claude Code は、ドラフトがエントリを追加する
allow、soft_deny、およびhard_denyリストのそれぞれに"$defaults"を含めます。ただし、既にallowリストを"$defaults"なしで作成している場合は除きます。そのため、置き換えていない組み込みルールは有効なままです - 保存後、Claude Code は
~/.claude/settings.json内のpermissions.allowルールを削除することを提案します。オートモードが無視するもの(Bash(*)など)、または破壊的なコマンドを自動承認するもの
claude auto-mode config を実行して有効な結果を確認します。
/auto-mode-setup をオフにする
オートモードが複数のアクションをブロックし、まだ autoMode.environment エントリがない場合、Claude Code はターンの終わりに「オートモードに環境について教えますか?」というタイトルのダイアログを表示し、/auto-mode-setup を実行することを提案します。提案を停止してコマンドを保持するには、そのダイアログで [今後表示しない] を選択します。
コマンドと提案の両方をオフにするには、このskillOverrides エントリを ~/.claude/settings.json に追加します:
/auto-mode-setup はバンドルされたスキルではなく組み込みコマンドなため、この skillOverrides エントリは引き続き適用されますが、disableBundledSkills はオフにしません。
ブロックルールと許可ルールをオーバーライドする
3 つの追加フィールドを使用すると、分類器の組み込みルールリストを置き換えることができます。autoMode.hard_deny:無条件のセキュリティ境界autoMode.soft_deny:ユーザーの意図でクリアできる破壊的なアクションautoMode.allow:ソフトブロックルールの例外
permissions.deny を使用します。
分類器内では、優先順位は 4 つのレベルで機能します。
hard_denyルールは無条件にブロックします。ユーザーの意図とallow例外は適用されません。soft_denyルールが次にブロックします。ユーザーの意図とallow例外はこれらをオーバーライドできます。allowルールは一致するsoft_denyルールを例外としてオーバーライドします。- 明示的なユーザーの意図が残りのソフトブロックをオーバーライドします。ユーザーのメッセージが Claude が実行しようとしている正確なアクションを直接かつ具体的に説明する場合、
soft_denyルールが一致しても分類器はそれを許可します。
allow に追加します。厳しくするには、環境に固有で、デフォルトが見落としているリスクについて soft_deny に追加するか、絶対に越えてはいけないセキュリティ境界について hard_deny に追加します。
組み込みルールを保持しながら独自のルールを追加するには、配列にリテラル文字列 "$defaults" を含めます。デフォルトルールはその位置に挿入されるため、カスタムルールはそれらの前後に配置でき、リリース全体でビルトインリストが変更されるにつれて更新を継続して継承します。
次の例は、すべての 4 つのリストでデフォルトを保持し、各リストに組織固有のルールを追加しています。
environment、allow、soft_deny、または hard_deny のいずれかを "$defaults" なしで設定すると、そのセクション全体のデフォルトリストが置き換わります。"$defaults" なしで配列を設定する場合、そのセクションの組み込みルールを破棄します。soft_deny:force push、curl | bash、本番環境へのデプロイ、およびオートモードバイパスを含むすべての組み込みソフトブロックルールhard_deny:組み込みのデータ流出ルール
environment のみを設定すると、デフォルトの allow、soft_deny、および hard_deny リストはそのままになります。
"$defaults" は、リストの完全な所有権を取得する意図がある場合のみ省略します。その場合、claude auto-mode defaults を実行して組み込みルールを出力し、それらを設定ファイルにコピーしてから、各ルールを独自のパイプラインとリスク許容度に対して確認します。
/permissions から編集ルール
設定ファイルを開かずに分類器ルールを表示および編集するには、/permissions を実行して Auto mode タブを選択します。このタブは Claude Code v2.1.246 以降が必要であり、auto mode がセッションで利用可能な場合にのみ表示されます。
このタブには、分類器が設定を読み込むスコープのそれぞれから allow、soft_deny、hard_deny、および environment エントリが一覧表示され、各セクションに対して組み込みルールが有効かどうかが表示されます。Claude Code は 管理設定または --settings フラグからのエントリを読み取り専用として表示し、タブで行ったすべての変更を ~/.claude/settings.json に保存します。タブから以下の操作ができます。
allow、soft_deny、およびhard_denyセクションのルールを追加、編集、または削除します。セクションに最初のルールを追加すると、Claude Code は"$defaults"も挿入して、組み込みルールが有効なままになるようにします。allow、soft_deny、またはhard_denyの組み込みルールをオフにするか、再度オンにします。Claude Code は、そのセクションのリストに"$defaults"を追加または削除することで選択を記録するため、セクションの組み込みルールをオフにする前に、少なくとも 1 つの独自ルールが必要です。environmentエントリをエディタで 1 つのドキュメントとして編集します。まだenvironmentエントリを設定していない場合、Claude Code は最初に組み込み環境を置き換えるかどうかを尋ね、その後、組み込みテキスト全体でエディタを開きます。保存すると、Claude Code はドキュメントでautoMode.environment配列を置き換えます。"$defaults"行を含めて、組み込みエントリを保持します。
すべてのシェルコマンドを分類器を通してルーティングする
デフォルトでは、狭い Bash および PowerShell の許可ルール(Bash(npm test) など)はオートモードで有効なままであり、Claude Code は分類器が実行される前にそれらを解決します。Claude Code は、Bash(*) やワイルドカード化されたインタープリターなどの任意のコード実行を許可する広いルール、および Monitor という名前のすべてのルールを一時停止します。Monitor コマンドはシェルを通して実行されるためです。これは、狭いルールが、分類器が見ることなく、破壊的な引数(スクリプトパスやルールのプレフィックスが予想しなかったフラグなど)を通す可能性があることを意味します。
autoMode.classifyAllShell を true に設定して、オートモードがアクティブな間、すべての Bash および PowerShell の許可ルールを一時停止し、分類器が許可リストに関係なくすべてのシェルコマンドを評価するようにします。
autoMode.classifyAllShell には Claude Code v2.1.193 以降が必要です。それより前のバージョンはこのキーを無視し、狭いシェル許可ルールをオートモードに引き継ぎます。デフォルトと有効な設定を確認する
claude auto-mode サブコマンドは、設定を確認、検証、リセットするのに役立ちます。
組み込みの environment、allow、soft_deny、hard_deny ルールを JSON として出力します:
jq にパイプしなくても 1 つのルールの完全な文言を読むには、--label にルールのラベルの開始部分を渡します。例えば claude auto-mode defaults --label 'Git Destructive' のようにします。マッチングは各ルールのラベルに対する大文字小文字を区別しないプレフィックスであり、マッチしないセクションは空のリストとして出力されます。Claude Code v2.1.208 以降が必要です。
分類器が実際に使用する設定を JSON として出力します。設定が指定されている場合はその設定を、そうでない場合はデフォルトを適用します:
defaults と config の両方は、4 つのルールリストを単一の JSON オブジェクトとして出力し、各ルールは散文文字列です。これは切り詰められた例です:
allow、soft_deny、hard_deny ルールについて AI からのフィードバックを取得します:
claude auto-mode config を実行して、有効なルールが期待通りであることを確認します。"$defaults" は展開されて表示されます。カスタムルールを作成した場合、claude auto-mode critique はそれらをレビューし、曖昧、冗長、または偽陽性を引き起こす可能性のあるエントリにフラグを立てます。
カスタマイズを破棄して組み込みデフォルトに戻すには、reset サブコマンドを実行します。Claude Code v2.1.212 以降が必要であり、ユーザー設定ファイルから autoMode セクションを削除します:
Reset auto mode configuration to defaults? と確認を求めます。--yes を渡すと確認をスキップできます。Reset は ~/.claude/settings.json のみを変更します。managed settings または --settings フラグからの autoMode ルールは引き続き適用されます。
拒否の確認
オートモード分類器が拒否したアクションを確認して再試行するには、/permissions を開いて Recently denied タブを選択します。ここで Claude Code は各拒否を記録しています。拒否されたアクションで r を押してリトライ対象としてマークします。ダイアログを終了すると、Claude Code はモデルにそのツール呼び出しを再試行できることを伝えるメッセージを送信し、会話を再開します。
分類器がアクションの安全性について判定できない場合、オートモードとは別の安全チェックが分類器自身のリクエストを拒否したか、またはそのレスポンスが解析できなかったため、Claude Code はアクションを拒否しますが、Recently denied に記録しません。リンク先のエラーエントリでは、Claude に伝えられる内容と、必要な場合にアクションを実行する方法について説明しています。
許可ルール、環境エントリ、またはリトライで拒否を修正する
分類器がブロックした内容を確認するには、会話でツール呼び出しを見つけます。呼び出しが短縮されているか、Ran 3 shell commands のような概要行に折りたたまれている場合は、Ctrl+O を押してトランスクリプトビューアを開き、展開します。
画面上の拒否を報告する他の 2 つの場所では、コマンドまたは URL が省略されています。入力ボックスの近くの通知(bash denied by auto mode · [Data Exfiltration] · /permissions など)はツールと理由を示し、Recently denied タブはシェルコマンドを Claude が記述した説明で一覧表示します。これらの拒否の正確な入力をプログラムで取得するには、PermissionDenied フックを追加します。これは tool_input として受け取ります。
呼び出しの下のテキストは、修正すべきことがあるかどうかを示します。分類器自体の問題を報告するテキスト(is temporarily unavailable のようなモデルや分類器エラーなど)は、Claude Code が分類器からの最終判定なしに呼び出しをブロックしたことを意味します。詳細はオートモードがアクションの安全性を判定できないを参照してください。それ以外の場合、Denied by auto mode classifier と [Production Deploy] または Blocked by classifier などの理由が記載された行は、分類器が呼び出しを安全でないと判定したことを意味するため、呼び出しが何に到達しようとしていたか、または何をしようとしていたかから修正を選択します。
- タスク全体を通じて Claude が必要とする宛先(パッケージレジストリ、内部ドメイン、リポジトリホストなど):
autoMode.environmentに追加します。 - これからレビューなしで実行したいコマンド:
allowルールを追加します。 - 実際に意図した 1 回限りのアクション:次のメッセージでその意図を述べて、Claude に再試行させます。
allow ルールは、/permissions ダイアログのAuto mode タブから追加できます。
ほとんどのセッションでは、理由は分類器が一致したルールを角括弧で示します。例えば [Data Exfiltration] または [Production Deploy] のようにです。一部のセッションでは、短い説明を追加する分類器モデルを実行します。Claude Code が分類器モデルを選択するため、表示される形式はユーザーが設定できるものではありません。
繰り返される拒否を修正する
同じ宛先に対する繰り返される拒否は、通常、分類器がコンテキストを欠落していることを意味します。その宛先をautoMode.environment に追加するか、/auto-mode-setup を実行して Claude Code にエントリを作成させ、その後 claude auto-mode config を実行して変更が有効になったことを確認します。
拒否にプログラムで対応するには、PermissionDenied フックを使用します。