Claude Media
Claude CodeのAuto modeルールを編集する — /permissionsのタブから

Claude CodeのAuto modeルールを編集する — /permissionsのタブから

/permissionsのAuto modeタブから、allow・soft_deny・hard_deny・environmentの分類器ルールを設定ファイルを開かずに編集する手順をまとめます。

Auto modeタブでできること

/permissionsダイアログに、v2.1.246からAuto modeタブが追加されました。auto mode(自動承認モード)の分類器が読むallow・soft_deny・hard_deny・environmentの4種類のルールを、設定ファイルを開かずにその場で確認・編集できるタブです。追加や削除だけでなく、区画ごとの組み込みルールのオン・オフ切り替えもここから行えます。変更はすべて~/.claude/settings.jsonに保存されます。

この機能が入るまで、分類器のルールを直接いじる経路は設定ファイルの手編集と、たたき台を自動生成する/auto-mode-setup(v2.1.228以降)の2つだけでした。Auto modeタブは、対話的にその場で触れる3つ目の経路です。

分類器そのものが何をどう判定しているかはClaude Codeのauto mode分類器は何を止めているかに、4配列を設定ファイルへ直接書く場合の$defaults構文はClaude CodeのautoModeに独自ルールを追加する書き方にまとめてあります。

タブが表示される条件

Auto modeタブは、Claude Code v2.1.246以降で、かつauto modeがそのセッションで使える場合にだけ表示されます。auto modeを使っていないセッションで/permissionsを開いても、このタブ自体が現れません。auto mode自体をどのプランやモデルで使えるかという利用条件は別の話で、ここでの表示条件はあくまで「このセッションで今auto modeが有効かどうか」だけです。組織が管理設定でauto mode自体を無効化している場合も、同じ理由でタブは出てきません。

タブが読む4区画の意味

タブに並ぶ4つの区画は、それぞれ役割が違います。編集する前に意味を押さえておくと、どこに何を足すべきかで迷いません。同じ「ルールを足す」操作でも、区画を間違えると期待した通りに動きません。

区画何を表すか
hard_deny何を表すか無条件のブロック。ユーザーの意図でも上書きできない安全境界
soft_deny何を表すか破壊的な操作の既定ブロック。ユーザーの明示的な意図で上書きできる
allow何を表すかsoft_denyに対する例外
environment何を表すか分類器が「社内」と「社外」を見分けるための文脈。ここに無い送信先は潜在的な持ち出し先として扱われる

各配列の優先順位や具体的な判定ロジックはClaude Codeのauto mode分類器は何を止めているかで扱っているので、ここではタブ上の見え方に絞ります。

allow・soft_deny・hard_denyの3区画でできる操作

3つの区画では、次の操作がタブ上だけで完結します。

  • ルールの追加・編集・削除
  • 区画ごとの組み込みルールのオン・オフ切り替え

区画に自分のルールを最初の1件追加すると、Claude Codeは自動で"$defaults"をその区画のリストに挿入します。組み込みルールを故意にオフへ切り替えるには、その区画に自分のルールが最低1件必要です。逆に言えば、自分のルールを1件も足していない区画では、組み込みルールをオフにする操作自体が選べません。

タブに表示される内容は、実際には3つのスコープから集まっています。編集できるかどうかはスコープごとに変わります。

スコープファイルタブでの扱い
個人ファイル~/.claude/settings.jsonタブでの扱い追加・編集・削除・トグルがすべて可能
組織全体ファイル管理設定(managed settings)タブでの扱い表示はされるが読み取り専用
実行単位ファイル--settingsフラグ / Agent SDKタブでの扱い表示はされるが読み取り専用

管理設定や--settingsフラグ由来のエントリを緩めたり外したりしたい場合は、タブではなく管理設定側を変更する必要があります。ただしallowはsoft_denyに対する例外として働くため、組織のsoft_denyエントリ自体が読み取り専用でも、個人が自分のallowに例外を足せば実質的に上書きできます。複数スコープの内容は結合される仕組みで、個人の追加が組織の項目を削除するわけではありません。一方hard_denyにはどのスコープのallowも届かず、無条件のブロックのまま残ります。

似た機能との違い — モード切り替えとルール編集は別物

/permissionsまわりでは、Bashの許可プロンプトに出る「Yes, and switch to auto mode」という選択肢もよく目にします(v2.1.247以降、ManualとacceptEditsの両モードで、auto modeが使えるセッションに表示。PowerShellツールの許可プロンプトにはこの選択肢自体が出ません)。これはセッションの権限モードをauto modeへ切り替えるための選択肢で、分類器のルールそのものを変えるものではありません。ルールの内容を変えたいときはAuto modeタブ、モードを切り替えたいだけならこの選択肢、と役割が分かれています。

environmentは全文をエディタで編集する

environment区画だけは他の3区画と挙動が違い、1つの文書としてエディタで編集する形式です。初めてこの区画を開くときの流れは次のとおりです。

  1. environmentにまだ何も設定していない状態でこの区画を開く
  2. Claude Codeが「組み込みのenvironmentを置き換えるか」を確認してくる
  3. 承諾すると、組み込みの全文が入った状態でエディタが開く
  4. 追記したい内容を書き足し、"$defaults"の行は残したまま保存する
  5. 保存するとautoMode.environment配列が、その文書の内容にまるごと置き換わる

3区画のように「1件だけ足す」操作ではなく、文書全体を保存し直す形式である点がenvironment固有の注意点です。組み込みの項目を残したいときは、"$defaults"の行を消さずに保存します。

保存後に効いているか確認する

タブで変更を保存したら、実際に分類器へ反映されているかをコマンドで確認できます。

claude auto-mode config

このコマンドは、組み込みルールと自分の変更を合わせた最終形をJSONで表示します。タブでの編集結果を目で追うより確実です。

拒否されたときにタブから直接ルールを足す

auto modeの分類器がある操作を拒否すると、入力欄近くの通知に理由が添えられます。表示形式はたとえばbash denied by auto mode · [Data Exfiltration] · /permissionsのようになり、ツール名と拒否理由がその場でわかります。会話がRan 3 shell commandsのように折りたたまれて中身が見えないときは、Ctrl+Oでトランスクリプトビューアーを開くと展開されます。

通知や折りたたみを開いた先の文言で、直すべきものがあるかが分かれます。Denied by auto mode classifierと[Production Deploy]のような理由が出ていれば、分類器がその呼び出しを判定した拒否なので、以下の対処で直せます。一方、is temporarily unavailableのようなモデル自体の不調や分類器のエラーを報告する文言は、分類器が最終判定を出せずにブロックした状態で、ルールを足しても変わりません。この場合の原因と回避策はauto modeの分類器が応答不能になるとBashが止まる原因と回避策にまとめています。判定なしのブロックは「最近の拒否」タブにも記録されません。

分類器が判定を出した拒否であれば、ここから取れる対処は3つです。

  1. タスクを通して必要になる接続先(パッケージレジストリや社内ドメイン、リポジトリのホストなど)なら、autoMode.environmentに追加する
  2. 今後は確認なしで実行してよいコマンドなら、allowルールを追加する
  3. その場限りの意図した操作なら、次のメッセージでその意図を伝えてClaudeに再試行させる

1と2の追加は、/permissionsダイアログのAuto modeタブから直接行えます。設定ファイルを開いて配列に手で追記する必要はありません。同じ拒否を繰り返し受けている場合は、分類器が文脈を把握できていないサインなので、autoMode.environmentへの追加を優先します。

拒否の入力をプログラムから正確に捕まえたい場合は、PermissionDeniedフックがtool_inputとしてそれを受け取ります。設定方法はPermissionDenied hookでauto mode拒否時の再試行を制御するにまとめています。

「最近の拒否」タブとの違い

拒否そのものの履歴を見返して同じ操作を再試行したいだけなら、Auto modeタブではなく別の「最近の拒否」タブを使います。この再試行の手順とキー操作はClaude Codeの/permissionsコマンドにまとめてあります。Auto modeタブは今後の判定基準そのものを変える場所、「最近の拒否」タブは過去1件の判定をやり直す場所という違いです。

設定ファイル・/auto-mode-setup・タブの使い分け

autoMode設定を組み立てる手段は3つあり、向いている場面が分かれます。

手段向いている場面特徴
設定ファイルを直接編集向いている場面複数エントリをまとめて書く・差分をレビューに残す特徴$defaultsの書き忘れに注意が必要
/auto-mode-setup向いている場面初回セットアップでたたき台が欲しい特徴プロジェクトと直近セッションから自動で下書き
/permissionsのAuto modeタブ向いている場面1件だけ素早く足す・拒否直後にその場で直す特徴設定ファイルを開かず即編集、environmentは全文編集
組織全体への配布向いている場面管理設定(managed settings)を編集特徴タブでは読み取り専用。配布側の変更が必要

まとまった量のエントリを整理したい場合や、複数人のレビューを挟みたい場合は設定ファイルへの直接編集が向いています。拒否を受けた直後に1件だけ足したいときや、environmentの全体像をまず見てから直したいときはタブが手早く済みます。classifyAllShellのように4配列とは別枠のブール値設定はタブの対象外で、これはautoMode.classifyAllShellで全shellをClaude Codeの審査対象にする設定で扱っています。

タブ編集のよくあるつまずき

組み込みルールをオフにしたいのに、切り替えのボタンが選べない。前述のとおり、その区画に自分のルールが1件も無いと組み込みルールのオフは選べません。まず何か1件ルールを足してから切り替えます。

environmentを編集した文書から"$defaults"の行を消してしまう。この区画は文書ごと置き換える形式なので、組み込みの項目を残すつもりなら"$defaults"の行を消さずに保存する必要があります。

タブでの変更がプロジェクトの挙動に反映されない。タブの変更は常に~/.claude/settings.jsonに保存され、プロジェクト直下の.claude/settings.jsonやチーム全体の管理設定には書き込まれません。組織全体に配りたいルールは、別途管理設定側で管理します。

組み込みルールをオフにしてから元に戻せなくなったと思い込む。トグルの状態はその区画の"$defaults"があるかどうかだけで決まるため、オフにした区画をもう一度オンへ切り替える操作自体はタブ上に残り続けます。自分のルールを1件も消さずに、組み込みだけを後から復帰できます。

まとめ

Auto modeタブは、分類器のルールを設定ファイルなしで直接いじれる入り口です。allow・soft_deny・hard_denyは個別ルールの追加・編集・削除と組み込みのオン・オフ切り替え、environmentは全文編集という違いを踏まえておくと、拒否を受けた直後にもその場で環境エントリやallowルールを足せます。まとまった量を書くときや複数人でレビューしたいとき、組織全体に配りたいときは、引き続き設定ファイルへの直接編集や/auto-mode-setup、管理設定が向いています。どの経路で書いた設定も最終的には同じ分類器が読むので、保存後はclaude auto-mode configで実際に反映されているかを確かめてから運用に入るのが手戻りの少ない順序です。

この記事を共有:XはてブLinkedIn