1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

10/27 の公式ドキュメント更新:パーミッション評価順の明文化と削除操作の制御拡張

1
Posted at

2026-10-27 のドキュメント追加は、ツール呼び出しのパーミッション評価順序の明文化と、危険な削除操作に対するタイムリミット制御の環境変数による切り替えに集中している。

パーミッション評価の順序と canUseTool コールバックの動作

Agent SDK のパーミッションドキュメントに、ツール呼び出しが承認されるまでの評価順序が詳細に記述された。評価は「フック → 拒否ルール → 許可ルール → パーミッションモード → canUseTool コールバック」の順に行われる。

ここで注意が必要なのは、disallowed_tools や settings.json の拒否ルールがマッチした場合、canUseTool コールバックは呼ばれないという点だ。bypassPermissions モードで動作中であっても、フックが allow を返した後であっても同様である。

canUseTool isn't called, even in bypassPermissions mode and even when a hook returned allow .

(出典 [1])

(訳:bypassPermissions モード中でも、フックが allow を返した後であっても、canUseTool は呼ばれません。)

また、canUseTool コールバックが特定の設定下で一部の呼び出しを受け取れなくなる「シャドウ」現象に関する警告についての記述も追加された。allowedTools にベアのツール名(例: Read)を登録すると、そのツールへの呼び出しは canUseTool コールバックより先に承認される。この状態を検知したい場合は、以下のように警告を捕捉できる。

listen with process.on('warning', ...) and match the CLAUDE_SDK_CAN_USE_TOOL_SHADOWED code.

(出典 [1])

(訳:process.on('warning', ...) でリスンし、CLAUDE_SDK_CAN_USE_TOOL_SHADOWED コードと照合してください。)

コールバックが期待する呼び出しをすべて受け取れていれば設定変更は不要で、この警告は実際の動作をブロックするものではないとドキュメントには記載されている。

危険な削除操作のタイムリミットと CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT

permission-modes ドキュメントには、「Dangerous rm operation not ruled out」と判定されたコマンドに対する挙動の詳細が追加された。

The time limit applies in Claude Code v2.1.281 and later, and so does the auto mode denial outside the terminal.

(出典 [3])

(訳:タイムリミットは Claude Code v2.1.281 以降で適用され、端末外での auto モード拒否も同様です。)

端末上では bypassPermissions モードで承認プロンプトとタイムリミットが提示される。端末外(VS Code の Chat パネルや Desktop アプリなど)では auto・bypassPermissions どちらのモードでも拒否となる。PermissionRequest フックが allow を返した場合はこの拒否から外れる。

この挙動を変更する場合は、環境変数 CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT を 1 に設定する。

CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT Set to 1 to turn off the auto and bypassPermissions time limit and denials on critical-path removals.

(出典 [2])

(訳:1 に設定すると、auto モードおよび bypassPermissions モードにおけるクリティカルパス削除のタイムリミットと拒否が無効になります。)

設定後の挙動は auto モードではクラシファイアが判断を行い、bypassPermissions モードでは端末でタイムリミットなしのプロンプトが表示される形に変わる。なおこの環境変数は Claude Code の settings ファイルではなく、シェルや SDK の env オプションから設定する必要がある点に注意が必要だ。

その他の更新

  • PowerShell ツールを有効にしている場合、Remove-Item と cmd の組み込みコマンド(rd、rmdir、del、erase)が rm のクリティカルパスリストとは別に独自のチェックを受けるようになった
  • v2.1.198 以降、セッションのバックグラウンド作業にバックグラウンドサブエージェントが含まれるようになった
  • plan モードでは許可ルールに関係なく、ファイル編集ツールは canUseTool コールバックに送られる
  • signed-in Claude apps gateway セッションは Claude Code v2.1.280 以降が必要

まとめ

この日の更新は、Agent SDK を使って自前の承認フローを実装している開発者と、bypassPermissions モードで危険な削除操作を扱う運用者に直接影響する。パーミッション評価の順序が明文化されたことで canUseTool コールバックが呼ばれない状況を事前に把握しやすくなり、CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT の追加により削除操作のタイムリミット挙動をシェルレベルで切り替えられる選択肢が正式に提供された形になる。

出典

本稿の引用はすべて一次資料と逐語照合(verify_article 通過)のうえ掲載しています(2026-11-03 検証)。

[1] https://code.claude.com/docs/en/agent-sdk/permissions
[2] https://code.claude.com/docs/en/env-vars
[3] https://code.claude.com/docs/en/permission-modes

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?