確認を出さないように allow のルールを足したのに、毎回確認が出る。deny を書いた、あるいは bypassPermissions を設定したのに、挙動が変わらない。困るのは、こっそり一致していない権限のルールは、ルールが無いより危険な点です。守られているつもりで作業を続けてしまうからです。これが実際に起きる原因を、確認すべき順に並べました。
何かを変える前に、Claude Code で /permissions を実行してください。統合された後の有効なルールと、Claude が実際に照合している形が表示されます。「ルールが無視される」のほとんどは、書いた内容と /permissions に出る内容のずれです。期待するルールがそこに在るか、別の形になっていないかを照合してください。これが手元での正本です。
Windows では、ルールを照合する前にパスが POSIX 風の形に正規化されます。C:\Users\alice\project は /c/Users/alice/project として照合されます。そのため、backslash で書いたルールや \\server\share のような UNC のパスは、正規化後の形と永久に一致せず、毎回確認に落ちます。
/permissions で確認してください。ドライブや UNC の正規化後の形は自明でないことがあるので、/permissions からコピーしてルールを組み立てます。
ルールは複数のファイルから統合され、上位の層が今編集した内容を上書きします。おおよそ、上位から下位の順に:
| 層 | 場所 |
|---|---|
| 組織・管理の方針 | システムが管理する設定 |
| コマンドラインの引数 | claude の起動に渡す引数 |
| プロジェクト(ローカル・追跡外) | .claude/settings.local.json |
| プロジェクト(共有) | .claude/settings.json |
| ユーザー | ~/.claude/settings.json |
上位の層の deny は、下位で足した allow に勝ちます。また .claude/settings.local.json に書いたのを忘れたルールが、プロジェクトのファイルを静かに覆い隠すこともあります。/permissions は統合後の結果を出すので、自分のルールが勝っていないなら、どのファイルが衝突する記述を持っているかを探します。
ルールは、ツール名とパターンの両方が、Claude がこれから行う内容に一致した時だけ発火します。
Bash(npm run test:*) は npm run test:unit に一致しますが、素の npm test には一致しません。細かすぎるパターンは何にも一致しません。Edit)は、そのツールの全ての使用に一致します。素のルールが「何もしない」なら、パターンが違うのではなく、効いているモードが思っているものと違う合図です(原因4)。Bash)で動きます。ツール名は /permissions か確認のプロンプト自体で確かめます。defaultMode(例: acceptEdits や bypassPermissions)を settings.json に設定したのに確認が出るなら、使っている画面の側が上書きしている可能性があります。VS Code の拡張では、UI で選んだモード(例えば acceptEdits にあたる「自動で編集」)が settings.json の既定より優先されます。さらに bypassPermissions は拡張の独自のトグル(claudeCode.allowDangerouslySkipPermissions)でゲートされ、そのトグルを有効にするまで settings.json の bypass は効きません。
確認を止めるために一括の bypass を有効にすると、本当に取り返しのつかない操作を止めている分も含めて、全てのガードが一度に外れます。「日常の編集は acceptEdits、取り返しのつかない数件の操作は deny のリスト」という狭い設定の方が、確認が雑音になる所では止め、効くべき所では残せます。
確認そのものを止めるつもりで skipDangerousModePermissionPrompt を設定したなら、それは違う梃子です。これは危険なモードに入る時に出る警告を消すだけで、操作ごとの確認は消しません。しかも一度設定すると「ガード無しで動いている」という警告が二度と出なくなり、欲しかった挙動は得られないまま、安全の合図だけが消えます。
Claude Code が動いている間に settings.json(や hook)を編集しても、セッションを再起動するまで反映されないことがあります。ルールを直したのに変わらないなら、Claude Code を再起動して /permissions で再確認します。
/permissions に出るようになったルールは照合されています。ただし最も確実な確認は挙動の確認です。その操作を一度だけ実際に起こして、意図どおりに許可・拒否・確認されるかを見ます。権限のルールの目的は「肝心な時に効くこと」で、効くと分かる唯一の方法は一度動かしてみることです。
プロンプトのモードの混乱に依らず、ツールの段で守りたいなら
npx cc-safe-setup
破壊的・取り返しのつかない操作を実行の前に止める無料の hook。どの UI のモードが効いていても、ツールの段で守ります。
本ページは公開された Anthropic の権限と設定のドキュメントと、再現された報告に基づきます。権限の挙動は版や画面(コマンドラインか VS Code の拡張か)で変わりうるので、手元では /permissions が正本です。最新は公式のドキュメントで確認してください。cc-safe-setup は Anthropic とは無関係の独立したオープンソースです。
さらに詳しく: 事故防止の実践ガイド(Zenn) · 全ツール