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/17 の公式ドキュメント更新:スキルのスタック実行とフック動作の明文化

1
Posted at

この日の追加は、ターミナルでの複数スキル連鎖実行の仕様定義と、フック失敗時の動作制御の詳細化が中心になっている。サブエージェントのツール制限ルールや、Agent SDK における Auto mode でのモデル切り替え後の挙動についても補足が加わった。

ターミナルでのスキルスタック実行

プロンプト先頭に複数のスキル名を並べると、各スキルがすべて読み込まれ、末尾のテキストが各スキルの $ARGUMENTS として渡される。

At the terminal prompt, typing /write-tests /fix-issue 123 loads both skills and passes the trailing text 123 as $ARGUMENTS to each of them.

(出典 [1])

(訳:ターミナルのプロンプトで /write-tests /fix-issue 123 と入力すると、両方のスキルが読み込まれ、残りのテキスト 123 がそれぞれの $ARGUMENTS に渡されます。)

展開には停止条件が2つある。インラインで呼び出せるスキルでないトークンが現れた時点で展開は止まる。また、/code-review のようにフォークしたサブエージェントとして動作するスキルや、/loop のように引数が別のコマンドで始まる可能性のあるスキルに達した時点でも展開が終わる。

Agent SDK や claude -p 経由では動作が異なり、最初のスキルのみが読み込まれ、残りの行は引数として扱われる。インタラクティブなターミナル操作とプログラムからの呼び出しで挙動が異なる点は、スキルを組み合わせたワークフローを設計するうえで注意が必要だ。

フック失敗時の動作制御と優先順位

複数の PreToolUse フックが競合する判断を返した場合の優先順位が明示された。

deny takes priority over defer , which takes priority over ask , which takes priority over allow .

(出典 [5])

(訳:deny が defer より優先され、defer が ask より優先され、ask が allow より優先されます。)

セキュリティポリシーを複数のフックに分担させている場合、この優先順位によって最終的な判断が決まる。deny を返すフックが1つでもあれば、他のフックが allow を返していてもツール呼び出しはブロックされる。

onFailure フィールドも追加され、"continue" または "block" を指定できる。ポリシーフックのパスが誤っていたりスクリプトがクラッシュした場合、デフォルトでは処理がそのまま通過する。onFailure: "block" を設定することで、フックが起動しない場合もアクションをブロックできる。

イベントの追加として、PostToolBatch は TypeScript SDK 専用で、ツール呼び出しのバッチが全件解決した後、次のモデル呼び出し前に一度だけ発火する。UserPromptExpansion も TypeScript SDK 限定で、ユーザーが入力したコマンドや MCP プロンプトが展開される前に割り込める。PreModelSwitch フックはタイムアウトした場合にモデルの切り替えをブロックする動作が明記された。

サブエージェントのツール制限ルール

tools フィールドと disallowedTools フィールドが両方設定されている場合の評価順が明確化された。

disallowedTools is applied first, then tools is resolved against the remaining pool.

(出典 [7])

(訳:disallowedTools が先に適用され、その後 tools が残りのプールに対して解決されます。)

MCP サーバー単位の制御についてもワイルドカード構文が整理された。特定サーバーのツールをすべて付与するには tools に mcp__github__* を、サーバーごと除外するには disallowedTools に mcp__github または mcp__github__* を、全 MCP ツールを除外するには mcp__* を指定する。

disallowedTools にコマンド指定付きのエントリ(例: Bash(git push *))を書いた場合、指定のコマンドだけでなくそのツール全体がサブエージェントから除外される点も補足された。

Auto mode でのモデル切り替え後の挙動

Agent SDK の permissions ページで、Auto mode 中のセッションをサポート外のモデルに切り替えた場合の動作が明文化された。

If you switch a session that's in auto mode to a model that auto mode doesn't support, using set_model() , setModel() , or applyFlagSettings() , the session changes to default mode.

(出典 [9])

(訳:auto mode のセッションを、auto mode に対応していないモデルに set_model()、setModel()、または applyFlagSettings() で切り替えると、セッションは default mode に変わります。)

default mode に移行した後、auto mode に戻るにはサポート済みのモデルへ切り替えてから set_permission_mode("auto") を明示的に呼び出す必要がある。モデルを元に戻すだけでは auto mode には復帰しない。この挙動は Claude Code v2.1.299 以降が対象とされている。

plan mode の変更として、allow ルールや PreToolUse フックが allow を返した場合でも、ファイル編集は自動承認されないことが明記された。

その他の更新

  • トークン監視(monitoring-usage): 2026-10-17 時点で、"input" タイプのカウントにはプロンプトキャッシュの読み書きが含まれず、"cacheRead" と "cacheCreation" で別計上される。"cacheCreation" は 5 分と 1 時間の両キャッシュ寿命への書き込みを合算する。
  • サンドボックス設定(sandboxing): /sandbox が "Sandbox settings not changed" と表示する場合、書き込み権限のあるプロジェクトフォルダで起動するか、.claude/settings.local.json の JSON 構文を修正してから /sandbox を再実行する。
  • プラグインエラー修正(slash-commands, mcp, skills): "Plugin not found in marketplace" エラーが出たら /plugin marketplace update claude-plugins-official でカタログを更新してから再試行する。
  • bypassPermissions の制限(permission-modes): Linux と macOS では root や sudo での起動が拒否される。認識済みのサンドボックス内ではこのチェックが自動的に省略される。

まとめ

この日の更新で実務への影響が大きいのは、フック動作の詳細化とスキルスタック実行の仕様明文化だ。複数のフックでポリシーを構成する場合、優先順位と onFailure の設定が意図通りの動作を保証する設計根拠になる。Agent SDK で Auto mode を使うアプリケーションでは、モデル切り替え後のモード復帰に明示的な処理が必要になる点を、Claude Code v2.1.299 以降への更新とあわせて確認しておきたい。

出典

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

[1] https://code.claude.com/docs/en/slash-commands
[2] https://code.claude.com/docs/en/mcp
[3] https://code.claude.com/docs/en/skills
[4] https://code.claude.com/docs/en/monitoring-usage
[5] https://code.claude.com/docs/en/agent-sdk/hooks
[6] https://code.claude.com/docs/en/hooks
[7] https://code.claude.com/docs/en/sub-agents
[8] https://code.claude.com/docs/en/sandboxing
[9] https://code.claude.com/docs/en/agent-sdk/permissions
[10] 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?