投稿

Claude Code の Permission Classifier — Auto Mode が外部書き込みを止めた話

Claude Code の Permission Classifier — Auto Mode が外部書き込みを止めた話

結論

Claude Code の Auto Mode 中に外部システム(チケット管理ツール)への書き込みコマンドを実行したら、Permission for this action has been denied. で止められた。設定の deny ルールでも hook でもなく、公式機能 “Permission Classifier” によるリアルタイムのリスク評価が正体だった。

参考:

エラーの形

Permission for this action has been denied.
Reason: Creating an external ticket — agent did not create it earlier in
this session, and posting to external collaboration tools requires
explicit, specific user authorization which only appears in the prior
compacted context summary, not in actual visible user messages of this
session.

注目点は Reason 文がコンテキスト依存 であること。「本セッション中に同種操作をしたか」「圧縮サマリにしか承認が無い」など、静的 allow/deny ルールでは絶対に出力できない判定文が含まれる。

切り分け

候補 確認
settings.jsondeny [](空)
.claude/settings.local.jsondeny [](空)
ユーザー定義 PreToolUse hook 登録は ecc 系のみ、外部投稿系ルールなし

ローカル設定起因ではない。ランタイム側の動的判定。

正体: Permission Classifier

Before each tool call runs, a classifier reviews it to check for potentially destructive actions like mass deleting files, sensitive data exfiltration, or malicious code execution. — Anthropic Engineering blog

各 tool call の直前に classifier が内容をレビューする。

評価軸

  • Reversibility(可逆性): 取り消せる行為か
  • Scope alignment(スコープ整合): 元のタスク範囲内か
  • 副作用の種類: mass deletion / sensitive data exfiltration / malicious code execution / 外部コラボツールへの投稿

今回は外部コラボツールへの書き込みに該当し、本セッション内の明示承認が無いため deny された。

二層の防御

  • 入力層: ファイル読込・Web fetch・ツール出力を context に入れる前に prompt-injection probe がスキャン
  • 出力層: tool call 直前に classifier がリスク評価

失敗時の挙動

  • deny は /permissions の “Recently denied” タブに記録、r で retry(手動承認)可能
  • 3 回連続 deny または 累計 20 回 deny で Auto Mode は一時停止し、通常の都度確認モードに戻る
  • ユーザーが prompt を承認すると Auto Mode 再開

ブロックされ続けて詰む設計ではなく、閾値超えで人間に戻す設計。

モード比較

モード 振る舞い リスク
Auto Mode(classifier 付き) 安全なものは自動実行、危険なものは deny 中(classifier の見逃しあり)
dontAsk permissions.allow に無いものと read-only Bash 以外は自動 deny 低だが作業停滞しがち
--dangerously-skip-permissions 全部素通り 高(破壊・流出リスク)

Auto Mode は permission fatigue を安全側に倒して解消するのがコンセプト。

限界(Anthropic 自身の言)

  • ユーザー意図が曖昧だと危険操作を通してしまうことがある
  • 環境固有のリスクは context 無しでは判断できない
  • 良性アクションを誤 block することがある

誤 block 時はエラーの Reason 文に判断理由が出るので、まずそれを読むのが近道。設定を疑うより先にメッセージを読む。

トレンドのタグ