Engineering Notes · Claude Code 2026年5月11日

許可プロンプトの判断基準

「一度だけ許可」と「常に許可」、どちらを選ぶか

度々許可を求められる際に、「一度だけ許可」と「常に許可」の2つの選択肢がある場合があるんだけど、これって常に許可にしてても問題ない?

結論

ケースバイケース。デフォルトは「一度だけ許可」、特定のカテゴリだけ「常に許可」に切り替える、が安全な運用。

「常に許可」してOKなコマンド

繰り返し実行する 読み取り系・既知の安全な操作:

Always Allow

これらは何回呼ばれても挙動が予測可能で、毎回確認すると煩雑になるだけ。

「一度だけ許可」のままにすべきコマンド

Allow Once

これらはミス1回で取り返しがつかないので、毎回確認する価値がある。

個別ケース: shadcn@latest init

これは 初期セットアップ用の一回限りのコマンド。「常に許可」にする意味がない(次回呼ばれないから)ので、「一度だけ許可」で十分

なぜリスクがあるのか

「常に許可」には2つの落とし穴がある:

Claude の判断ミス Claude も間違える。常に許可だとミスが素通りする。確認画面はそのミスを止める最後の機会。
プロンプトインジェクション 外部から取り込んだファイル(npmパッケージのREADMEやウェブで取得した情報)に悪意ある指示が埋め込まれていた場合、Claude がそれを実行しようとしうる。確認画面が最後の防波堤になる。

業務系の重要案件にも Claude Code を使う可能性があるなら、「考えずに常に許可」のクセは付けない方がいい。コマンドを見て「これは何度も繰り返すやつだ」と判断したものだけ「常に許可」に切り替える、というプロセスが習慣化すると安全。

実践的な目安

状況 選択
pnpm devpnpm buildgit status 系を3回目に見た 常に許可
ファイル編集の確認(毎回出る場合) 常に許可
一回限りのセットアップコマンド 一度だけ許可
rmreset、外部API叩き、未知コマンド 一度だけ許可
(または拒否してから精査)
⁕ ⁕ ⁕

迷ったら「一度だけ許可」。後で「常に許可」に切り替えるオプションは Settings → Claude Code から見直せる。