AIのいろは AI NO IROHA

Claude Code と ChatGPT の使い方を、いろはから。

特定の操作だけ許可・禁止する手順

最終更新: / レビュー日:

この記事には変動しやすい情報が含まれます(確認日:

結論

「毎回聞かれるのは面倒、でも危ない操作は絶対に止めたい」。この2つは両立できます。許可のルールを使うと、安全な操作は確認なしで通し、危ない操作だけを名指しで禁止できます。設定は/permissionsから。モードが土台なら、ルールはその上に重ねる細かい線引きです。

ルールは3つ

ルールの種類は次のとおりです。

  • Allow(許可) … その道具を、手動の承認なしで使わせます
  • Ask(確認) … その道具を使おうとするたびに確認を求めます
  • Deny(禁止) … その道具を使わせません

大事なのは評価される順番です。禁止 → 確認 → 許可の順に見て、最初に一致したものが結果を決めます。ルールの細かさは順番を変えません。

つまり、広い禁止ルールを1つ書くと、より細かい許可ルールがあっても止まります。Bash(aws *)という禁止があれば、Bash(aws s3 ls)という許可があっても実行されません。禁止に例外は作れないという設計です。

道具ごと消すか、一部を止めるか

書き方によって効き方が変わります。道具の名前だけを書いた禁止ルールは、その道具をClaudeの手元から丸ごと取り上げます。Claudeはその道具の存在を知りません。

一方、Bash(rm *)のように範囲を絞った書き方では、道具自体は使えるまま、一致する呼び出しだけが止まります。「シェルは使わせるが、削除だけはさせない」といった線引きはこちらです。

前提条件

  • Claude Codeが動く状態であること
  • ルールはsettings.jsonに保存されます。どのファイル由来のルールかは/permissionsの画面で確認できます
  • ルールを効かせたい範囲(自分だけか、プロジェクト全体か)を決めておくこと

手順

  1. Claude Codeで/permissionsと入力します
  2. いま効いているルールの一覧と、それぞれの出どころのファイルを確認します
  3. 止めたい操作を、禁止のルールとして追加します。範囲を絞るならBash(rm *)のような書き方です
  4. 毎回聞かれたくない安全な操作は、許可のルールとして追加します
  5. 追加後にもう一度/permissionsを開き、順番と内容を確かめます

検証の考え方

実際に試すのが確実です。禁止したはずの操作をClaudeに頼んでみて、止まれば効いています。

意図せず止まる場合は、広い禁止ルールが原因かもしれません。禁止・確認・許可の順で最初に一致したものが勝つため、細かい許可を書いても広い禁止には勝てません。/permissionsで一覧を見返し、範囲の広すぎるルールを探してください。

限界と注意

ルールを守らせているのはClaude Codeであり、モデルではありません。 プロンプトCLAUDE.mdに「これはやらないで」と書くことは、Claudeが何をしようとするかに影響しますが、Claude Codeが何を許すかは変えません。確実に止めたいものは、指示ではなくルールで止めてください。

逆に言えば、ルールで許可した操作は、指示の書き方に関係なく通ります。許可を広げるときは、その道具で何ができるかを考えてから決めてください。

学習上の注意

最初から完璧なルールを作ろうとしないでください。使いながら「これは毎回聞かれなくてよい」「これは絶対に止めたい」が見えてきます。そのつど足す進め方で十分です。

ルールが増えてきたら、/permissionsでときどき棚卸しをしてください。昔の作業のために広げた許可が、そのまま残っていることがあります。

出典・参考

出典等級について(編集方針)