この日の更新は、Claude Code が「何を実行させ、何を読み込むか」を決める判定ルールの明文化に集まっています。Agent SDK の権限判定の順序、権限モードの優先関係、壊れた設定ファイルの扱い、bare モードで読み込まれないものが、それぞれ追記されました。
権限判定の順序:deny ルールはモードやフックより先に効く
Agent SDK の権限ページには、ツール呼び出しが各ステップで判定される流れが追記されました。ステップは、フック、deny ルール、(canUseTool コールバックに関わる段階)、権限モードの順に並んでいます。各ステップは、呼び出しを決定するか、canUseTool コールバックに回すか、次に渡します。
特に運用に効くのは deny ルールの位置づけです。disallowed_tools や SDK が読み込む設定ファイルの deny ルールに一致した呼び出しは、canUseTool が呼ばれる前に拒否されます。
The call is denied this way even in bypassPermissions mode and when a hook returned allow
(出典 [1])
(訳:この方法での拒否は、bypassPermissions モードでも、フックが allow を返した場合でも行われます。)
bypassPermissions で動かしているエージェントでも、deny ルールは外れないことになります。フックで allow を返して通す設計にしている場合も、deny ルールとの組み合わせを見直す必要があります。
逆方向の例外も追記されています。AskUserQuestion と、サーバー側が _meta で「ユーザー操作が必要」と宣言している MCP ツールは、allow ルールに一致してもコールバックに回されます。dontAsk モードでは、こうしたプロンプトが拒否に置き換わるとも記載されています。承認 UI を canUseTool で実装している場合、このコールバックが allow ルールの有無にかかわらず呼ばれる経路があると想定しておく必要があります。
権限モードの選択:セレクターで選んだモードが project 設定に勝つ
CLI やデスクトップアプリ向けの権限モードのページでは、モードの決まり方が追記されました。ローカルセッションでセレクターから選んだモードは、フォルダごとに記憶されます。
A mode you pick in the mode selector in a local session is remembered per folder and outranks a defaultMode in the project's .claude/ settings
(出典 [7])
(訳:ローカルセッションのモードセレクターで選んだモードはフォルダごとに記憶され、プロジェクトの .claude/ 設定にある defaultMode より優先されます。)
プロジェクトの設定に defaultMode を書いても、メンバーが過去にセレクターで別のモードを選んでいれば、そちらが使われることになります。一方、~/.claude/settings.json や managed settings の defaultMode は新しいローカルセッションの開始モードになり得ると書かれており、最初のメッセージの前にセレクターを確認するよう促されています。Plan を選んだ場合はそのセッションだけに適用されます。
壊れた設定ファイルは読み飛ばされ、診断は claude doctor で行う
設定ページには、設定ファイルが壊れていた場合の挙動がまとまって追記されました。managed settings の文書が解析できる限り、user、project、local の壊れたファイル、または壊れた値は無視され、残りが読み込まれます。
Claude Code skips a broken user, project, or local file or its broken values and continues with the rest
(出典 [3])
(訳:Claude Code は、壊れた user、project、local のファイル、またはその壊れた値を読み飛ばし、残りを読み込んで続行します。)
-p で実行した結果、期待した設定が効いていないときは、ターミナルで claude doctor を実行すると何が捨てられたか確認できます。~/.claude.json が解析できない場合は別の扱いです。claude -p の実行は終了し、ファイルは変更されません。対話セッションでは、壊れたファイルが ~/.claude/backups/ にコピーされたうえで、終了して修正するか、既定の設定にリセットするかを尋ねられます。CI で設定が黙って無視されていた場合の原因調査に使える情報です。
bare モードでは、フラグ経由でもフックは動かない
headless ページの bare モードの説明では、必要なコンテキストを明示的なフラグで渡す一覧が追記されました。システムプロンプトの追加、設定、MCP サーバー、カスタムエージェント、プラグインがそれぞれ対象です。その直後に、フックについての注意があります。
Hooks still don't run in bare mode when you pass them with --settings
(出典 [6])
(訳:--settings で渡しても、bare モードではフックは実行されません。)
フラグで読み込んだプラグインの hooks 定義も同様で、フックが必要な実行では bare モードを使わないよう書かれています。MCP サーバーについても、コマンドラインで渡したものだけが接続されます。起動時間を短くする目的で bare モードに切り替える場合は、フックに依存する処理が抜け落ちないか確認が必要です。
その他の更新
- 環境変数 CLAUDE_CODE_DISABLE_BG_STABLE_PATH:macOS のネイティブインストーラーで、バックグラウンドセッションのホストプロセスを ClaudeCode.app ではなくインストール済みバイナリから起動します。macOS がフォルダアクセスなどの許可を再度求める場合があり、設定は shell ではなく env ブロックに書くとされています。
- 環境変数 CLAUDE_CODE_DISABLE_BUNDLED_SKILLS:1 を設定すると、同梱のスキルとワークフローが無効になります。/init のような組み込みコマンドは入力できますが、モデルからは見えなくなります。バージョン要件は追記部分からは特定できないため、env-vars ページで確認してください。
- 権限モードのページ:サーバーへの問い合わせに必要なバージョンが、セッション種別ごとに追記されました。何を問い合わせるのかは、追記部分だけでは不明です。
- スキルのページ(slash-commands と skills):別モデルで fork する場合の参照先と、説明文の「カスタムコマンドと同梱スキルを含む」という記述が追加されました。
この日の更新が効く人
影響が大きいのは、Agent SDK で承認フローを組んでいる開発者と、CI や非対話環境で Claude Code を動かしている運用者です。前者は deny ルールの優先と、コールバックに必ず回るツールの存在を前提に設計する必要があります。後者は、壊れた設定が黙って読み飛ばされる点と、bare モードがフックを実行しない点に注意が要ります。チームで defaultMode を共有している場合は、個人のセレクター選択が project 設定に勝つことも考慮が必要です。
出典
本稿の引用はすべて一次資料と逐語照合(verify_article 通過)のうえ掲載しています(2026-11-07 検証)。
[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/settings
[4] https://code.claude.com/docs/en/slash-commands
[5] https://code.claude.com/docs/en/skills
[6] https://code.claude.com/docs/en/headless
[7] https://code.claude.com/docs/en/permission-modes