約 4 分で読めます

Claude Code auto modeの分類器と統制設計

Claude Code v2.1.283 以降、対話型のターミナルと VS Code では auto mode が起動時の既定モードになりました。承認ダイアログが減って快適になる一方、「誰も確認していないのに push や削除が走っているのではないか」という不安が情シス担当に残ります。

本記事では、auto mode が何を自動で止め、何を素通しするのかを公式ドキュメントで確認し、少人数の組織が最初に決めるべき統制を整理します。権限ルール全般の考え方は Claude Codeの権限設計 を先に読むと理解しやすくなります。

auto modeとは何か、何が違うのか

auto mode は、人の代わりに分類器(classifier)が各操作を審査するモードです。危険と判定した操作は実行前に止まります。

従来の default モードは、ファイル編集やシェル実行のたびに人へ確認します。auto mode ではこの確認を第二のモデルである分類器が代行し、安全なら実行、危険ならブロックします。分類器を通る前に評価される deny ルールと ask ルールは、auto mode でも有効です。

ただし auto mode は人の確認を完全に置き換えるものではありません。Anthropic も、--dangerously-skip-permissions よりリスクは下がるがゼロにはならず、隔離環境での実行を推奨すると説明しています。

分類器は既定で何を止めるのか

既定では curl | bash、本番デプロイ、force push、権限付与、シークレットの外部送信などがブロックされます。

信頼されるのは作業ディレクトリと、セッション開始時に設定済みのリモートだけです。それ以外は外部扱いになります。ブロック対象の主なものは次のとおりです。

  • コードをダウンロードして即実行する操作(curl | bash)
  • 本番へのデプロイとマイグレーション
  • force push と git reset --hard などの変更破棄
  • IAM やリポジトリ権限の付与
  • シークレットや機密データの外部送信

一方、作業ディレクトリ内のファイル操作、lockfile 記載の依存関係のインストール、参照のみの HTTP リクエストは既定で許可されます。作業中のリポジトリへの push も、デプロイ先と見なされるブランチ名(production など)を除き、確認なしで通ります。「push は必ず人が見る」を守りたい組織は、追加の設定が必要です。

人の承認を確実に残すにはどう設定するか

確実に人の承認を残す手段は permissions.ask、確実に止める手段は permissions.deny です。会話での指示は保証になりません。

制約の強さに応じて、次の3つを使い分けます。

目的仕組みauto mode での挙動
実行前に必ず確認permissions.ask分類器が自動承認できず、必ず確認が出る
絶対に実行させないpermissions.deny分類器の前でブロック。上書き不可
今回のセッションだけ慎重に会話で「push は待って」と伝える分類器が尊重するが、永続しない

会話での指示は、コンテキスト圧縮でその発言が消えると失われます。永続させたい制約は設定ファイルに書きます。push と PR 作成に人の確認を挟む最小例は次のとおりです。

``json
{
"permissions": {
"ask": ["Bash(git push )", "Bash(gh pr create )"]
}
}
``

git -C

push のように書き方を変えた push は、この規則に一致しません。完全な検査が必要なら PreToolUse フックを併用します。フックによる監査記録は Claude Codeのhooksで監査証跡を自動記録する で解説しています。

組織としてauto modeをどこまで許可するか

組織単位の統制は managed settings で行います。disableAutoMode で auto mode 自体を無効化でき、分類器の追加設定は個人設定と管理設定からだけ読まれます。

統制の選択肢は3段階です。

  1. 全面禁止: managed settings で permissions.disableAutoMode を "disable" にします。Shift+Tab の切替から auto が消え、起動時指定しても手動承認モードで始まります
  2. 許可して補強: 管理設定に deny と ask を置き、autoMode.environment で自社の GitHub 組織や社内ドメインを信頼先として登録します
  3. 個人任せ: 非推奨です。信頼先の登録漏れによるブロックが頻発し、現場が bypassPermissions に流れやすくなります

なお bypassPermissions は permissions.disableBypassPermissionsMode で禁止できます。公式も、このモードはプロンプトインジェクションや意図しない操作への防御を持たないと明記しています。

autoMode の設定はプロジェクトの .claude/settings.json からは読まれません。リポジトリに悪意ある許可ルールを仕込まれる経路を塞ぐ仕様です。ルールを書き換えるときは、"$defaults" を配列に含めることが重要です。省略すると既定の soft_deny(force push や本番デプロイの禁止など)が丸ごと置き換わります。

設定後は claude auto-mode config で実効設定を確認し、claude auto-mode critique で自作ルールの曖昧さを点検できます。

運用で何を見るべきか

ブロックが連続3回、または累計20回に達すると auto mode は一時停止し、人の承認に戻ります。この回数は変更できません。

運用では次の3点を週次で確認すれば十分です。

  • /permissions の Recently denied タブで、何がなぜ止まったか
  • 同じ宛先が繰り返し止まる場合は、autoMode.environment への登録漏れ(登録は GitHub 組織・社内ドメイン・バケット単位)
  • PermissionDenied フックでブロックの入力内容を記録に残す

導入初期は、安全が確認できた操作から少しずつ autoMode.allow に足します。逆方向、つまり一度緩めた設定を締め直すのは難しいため、最初は厳しめに始めるのが定石です。さらに隔離実行が必要なら Claude CodeのBashサンドボックス実装ガイド を併用してください。

参考

まとめ

auto mode は便利ですが、統制の代わりにはなりません。deny・ask・managed settings の3点を先に固めてから使います。

  • push や PR 作成に人の確認を残すなら permissions.ask
  • 絶対に走らせない操作は permissions.deny
  • 組織で使うなら disableAutoMode と信頼先登録の方針を決める

Kuu株式会社では、Claude Code を含む AI エージェントの権限設計と運用定着を伴走支援しています。設定の棚卸しから始めたい方は、AI Ops サービス をご覧ください。

関連記事

Claude Codeプラグイン配布を自社基盤で統制するClaude Codeの管理設定が効かない5つの経路Claude Code Mods——権限モデルとガバナンス設計Claude Codeのhooksで監査証跡を自動記録する