33以下の表は、各イベントがいつ発火するかをまとめています。[フック イベント](#hook-events)セクションでは、各イベントの完全な入力スキーマと決定制御オプションについて説明しています。33以下の表は、各イベントがいつ発火するかをまとめています。[フック イベント](#hook-events)セクションでは、各イベントの完全な入力スキーマと決定制御オプションについて説明しています。
34 34
35| Event | When it fires |35| Event | When it fires |
36| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |36| :- | :- |
37| `SessionStart` | When a session begins or resumes |37| `SessionStart` | When a session begins or resumes |
38| `Setup` | When you start Claude Code with `--init-only`, or with `--init` or `--maintenance` in `-p` mode. For one-time preparation in CI or scripts |38| `Setup` | When you start Claude Code with `--init-only`, or with `--init` or `--maintenance` in `-p` mode. For one-time preparation in CI or scripts |
39| `UserPromptSubmit` | When you submit a prompt, before Claude processes it |39| `UserPromptSubmit` | When you submit a prompt, before Claude processes it |
183フックを定義する場所によって、そのスコープが決まります。183フックを定義する場所によって、そのスコープが決まります。
184 184
185| 位置 | スコープ | 共有可能 |185| 位置 | スコープ | 共有可能 |
186| :-------------------------------------------------- | :--------------- | :---------------------------------- |186| :- | :- | :- |
187| `~/.claude/settings.json` | すべてのプロジェクト | いいえ、マシンにローカル |187| `~/.claude/settings.json` | すべてのプロジェクト | いいえ、マシンにローカル |
188| `.claude/settings.json` | 単一プロジェクト | はい、リポジトリにコミット可能 |188| `.claude/settings.json` | 単一プロジェクト | はい、リポジトリにコミット可能 |
189| `.claude/settings.local.json` | 単一プロジェクト | いいえ、Claude Code が作成するときに gitignored |189| `.claude/settings.local.json` | 単一プロジェクト | いいえ、Claude Code が作成するときに gitignored |
200`matcher` フィールドは、フックが発火するタイミングをフィルタリングします。マッチャーの評価方法は、含まれている文字に依存します。200`matcher` フィールドは、フックが発火するタイミングをフィルタリングします。マッチャーの評価方法は、含まれている文字に依存します。
201 201
202| マッチャー値 | 評価方法 | 例 |202| マッチャー値 | 評価方法 | 例 |
203| :----------------------------- | :--------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |203| :- | :- | :- |
204| `"*"`、`""`、または省略 | すべてにマッチ | イベントのすべての出現で発火 |204| `"*"`、`""`、または省略 | すべてにマッチ | イベントのすべての出現で発火 |
205| 文字、数字、`_`、`-`、スペース、`,`、`\|` のみ | 完全一致、または `\|` または `,` で区切られた完全一致のリスト(オプションで周囲の空白を含む) | `Bash` は Bash ツールのみにマッチ。`Edit\|Write` と `Edit, Write` はいずれかのツールに完全にマッチ。`code-reviewer` はそのエージェント タイプのみにマッチ |205| 文字、数字、`_`、`-`、スペース、`,`、`\|` のみ | 完全一致、または `\|` または `,` で区切られた完全一致のリスト(オプションで周囲の空白を含む) | `Bash` は Bash ツールのみにマッチ。`Edit\|Write` と `Edit, Write` はいずれかのツールに完全にマッチ。`code-reviewer` はそのエージェント タイプのみにマッチ |
206| その他の文字を含む | JavaScript 正規表現、アンカーなし | `^Notebook` は Notebook で始まるツールにマッチ。`mcp__memory__.*` は `memory` サーバーのすべてのツールにマッチ |206| その他の文字を含む | JavaScript 正規表現、アンカーなし | `^Notebook` は Notebook で始まるツールにマッチ。`mcp__memory__.*` は `memory` サーバーのすべてのツールにマッチ |
218各イベント タイプは異なるフィールドでマッチします。218各イベント タイプは異なるフィールドでマッチします。
219 219
220| イベント | マッチャーがフィルタリングするもの | マッチャー値の例 |220| イベント | マッチャーがフィルタリングするもの | マッチャー値の例 |
221| :---------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |221| :- | :- | :- |
222| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | ツール名 | `Bash`、`Edit\|Write`、`mcp__.*` |222| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | ツール名 | `Bash`、`Edit\|Write`、`mcp__.*` |
223| `SessionStart` | セッションの開始方法 | `startup`、`resume`、`clear`、`compact` |223| `SessionStart` | セッションの開始方法 | `startup`、`resume`、`clear`、`compact` |
224| `Setup` | セットアップをトリガーした CLI フラグ | `init`、`maintenance` |224| `Setup` | セットアップをトリガーした CLI フラグ | `init`、`maintenance` |
337これらのフィールドはすべてのフック タイプに適用されます。337これらのフィールドはすべてのフック タイプに適用されます。
338 338
339| フィールド | 必須 | 説明 |339| フィールド | 必須 | 説明 |
340| :-------------- | :-- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |340| :- | :- | :- |
341| `type` | はい | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"`、または `"agent"` |341| `type` | はい | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"`、または `"agent"` |
342| `if` | いいえ | `"Bash(git *)"` または `"Edit(*.ts)"` などの権限ルール構文を使用してこのフックが実行されるタイミングをフィルタリングします。ツール呼び出しがパターンにマッチする場合のみ、フック コマンドが実行されます。[Bash マッチング テーブル](#bash-if-matching)を参照して、Bash パターンがサブコマンド、`$()`、バッククォートに対してどのように評価されるかを確認してください。ツール イベントでのみ評価されます。`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`。他のイベントでは、`if` が設定されたフックは実行されません。[権限ルール](/docs/ja/permissions)と同じ構文を使用します |342| `if` | いいえ | `"Bash(git *)"` または `"Edit(*.ts)"` などの権限ルール構文を使用してこのフックが実行されるタイミングをフィルタリングします。ツール呼び出しがパターンにマッチする場合のみ、フック コマンドが実行されます。[Bash マッチング テーブル](#bash-if-matching)を参照して、Bash パターンがサブコマンド、`$()`、バッククォートに対してどのように評価されるかを確認してください。ツール イベントでのみ評価されます。`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`。他のイベントでは、`if` が設定されたフックは実行されません。[権限ルール](/docs/ja/permissions)と同じ構文を使用します |
343| `timeout` | いいえ | キャンセルまでの秒数。デフォルト: `command`、`http`、`mcp_tool` は 600、`prompt` は 30、`agent` は 60。[`UserPromptSubmit`](#userpromptsubmit) は `command`、`http`、`mcp_tool` のデフォルトを 30 に低下させ、[`MessageDisplay`](#messagedisplay) はそれを 10 に低下させます |343| `timeout` | いいえ | キャンセルまでの秒数。デフォルト: `command`、`http`、`mcp_tool` は 600、`prompt` は 30、`agent` は 60。[`UserPromptSubmit`](#userpromptsubmit) は `command`、`http`、`mcp_tool` のデフォルトを 30 に低下させ、[`MessageDisplay`](#messagedisplay) はそれを 10 に低下させます |
349<span id="bash-if-matching" />Bash パターンの場合、フック コマンドが実行されるかどうかは、パターンの形状と Claude が呼び出している Bash コマンドに依存します。先頭の `VAR=value` 割り当ては、マッチング前に削除されます。349<span id="bash-if-matching" />Bash パターンの場合、フック コマンドが実行されるかどうかは、パターンの形状と Claude が呼び出している Bash コマンドに依存します。先頭の `VAR=value` 割り当ては、マッチング前に削除されます。
350 350
351| `if` パターン | Bash コマンド | フックが実行されるか | 理由 |351| `if` パターン | Bash コマンド | フックが実行されるか | 理由 |
352| :----------------- | :--------------------- | :--------- | :-------------------------------------------------------- |352| :- | :- | :- | :- |
353| `Bash(git *)` | `FOO=bar git push` | はい | 先頭の割り当ては削除されます。`git push` がマッチします |353| `Bash(git *)` | `FOO=bar git push` | はい | 先頭の割り当ては削除されます。`git push` がマッチします |
354| `Bash(git *)` | `npm test && git push` | はい | 各サブコマンドがチェックされます。`git push` がマッチします |354| `Bash(git *)` | `npm test && git push` | はい | 各サブコマンドがチェックされます。`git push` がマッチします |
355| `Bash(rm *)` | `echo $(rm -rf /)` | はい | `$()` とバッククォート内のコマンドがチェックされます。`rm -rf /` がマッチします |355| `Bash(rm *)` | `echo $(rm -rf /)` | はい | `$()` とバッククォート内のコマンドがチェックされます。`rm -rf /` がマッチします |
365[共通フィールド](#common-fields)に加えて、コマンド フックはこれらのフィールドを受け入れます。365[共通フィールド](#common-fields)に加えて、コマンド フックはこれらのフィールドを受け入れます。
366 366
367| フィールド | 必須 | 説明 |367| フィールド | 必須 | 説明 |
368| :------------ | :-- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |368| :- | :- | :- |
369| `command` | はい | 実行するシェル コマンド。`args` を使用する場合、直接生成する実行可能ファイル。[Exec フォームとシェル フォーム](#exec-form-and-shell-form)を参照してください |369| `command` | はい | 実行するシェル コマンド。`args` を使用する場合、直接生成する実行可能ファイル。[Exec フォームとシェル フォーム](#exec-form-and-shell-form)を参照してください |
370| `args` | いいえ | 引数リスト。存在する場合、`command` は実行可能ファイルとして解決され、`args` を引数ベクトルとして直接生成されます。シェルは関与しません。[Exec フォームとシェル フォーム](#exec-form-and-shell-form)を参照してください |370| `args` | いいえ | 引数リスト。存在する場合、`command` は実行可能ファイルとして解決され、`args` を引数ベクトルとして直接生成されます。シェルは関与しません。[Exec フォームとシェル フォーム](#exec-form-and-shell-form)を参照してください |
371| `async` | いいえ | `true` の場合、ブロックせずにバックグラウンドで実行されます。[バックグラウンドでフックを実行](#run-hooks-in-the-background)を参照してください |371| `async` | いいえ | `true` の場合、ブロックせずにバックグラウンドで実行されます。[バックグラウンドでフックを実行](#run-hooks-in-the-background)を参照してください |
422[共通フィールド](#common-fields)に加えて、HTTP フックはこれらのフィールドを受け入れます。422[共通フィールド](#common-fields)に加えて、HTTP フックはこれらのフィールドを受け入れます。
423 423
424| フィールド | 必須 | 説明 |424| フィールド | 必須 | 説明 |
425| :--------------- | :-- | :----------------------------------------------------------------------------------------------------------------- |425| :- | :- | :- |
426| `url` | はい | POST リクエストを送信する URL |426| `url` | はい | POST リクエストを送信する URL |
427| `headers` | いいえ | キー値ペアとしての追加 HTTP ヘッダー。値は `$VAR_NAME` または `${VAR_NAME}` 構文を使用した環境変数補間をサポートします。`allowedEnvVars` にリストされている変数のみが解決されます |427| `headers` | いいえ | キー値ペアとしての追加 HTTP ヘッダー。値は `$VAR_NAME` または `${VAR_NAME}` 構文を使用した環境変数補間をサポートします。`allowedEnvVars` にリストされている変数のみが解決されます |
428| `allowedEnvVars` | いいえ | ヘッダー値に補間される可能性のある環境変数名のリスト。リストされていない変数への参照は空の文字列に置き換えられます。環境変数補間が機能するために必須 |428| `allowedEnvVars` | いいえ | ヘッダー値に補間される可能性のある環境変数名のリスト。リストされていない変数への参照は空の文字列に置き換えられます。環境変数補間が機能するために必須 |
463[共通フィールド](#common-fields)に加えて、MCP ツール フックはこれらのフィールドを受け入れます。463[共通フィールド](#common-fields)に加えて、MCP ツール フックはこれらのフィールドを受け入れます。
464 464
465| フィールド | 必須 | 説明 |465| フィールド | 必須 | 説明 |
466| :------- | :-- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |466| :- | :- | :- |
467| `server` | はい | 設定された MCP サーバーの名前。[プラグイン バンドル サーバー](/docs/ja/mcp#plugin-provided-mcp-servers)の場合、これはスコープ付き名前 `plugin:<plugin-name>:<server-name>`(例:`plugin:my-plugin:db`)であり、ベア サーバー キーではありません。サーバーは既に接続されている必要があります。フックは OAuth または接続フローをトリガーしません |467| `server` | はい | 設定された MCP サーバーの名前。[プラグイン バンドル サーバー](/docs/ja/mcp#plugin-provided-mcp-servers)の場合、これはスコープ付き名前 `plugin:<plugin-name>:<server-name>`(例:`plugin:my-plugin:db`)であり、ベア サーバー キーではありません。サーバーは既に接続されている必要があります。フックは OAuth または接続フローをトリガーしません |
468| `tool` | はい | そのサーバー上で呼び出すツールの名前 |468| `tool` | はい | そのサーバー上で呼び出すツールの名前 |
469| `input` | いいえ | ツールに渡される引数。文字列値は、フックの[JSON 入力](#hook-input-and-output)から `${path}` 置換をサポートします(例:`"${tool_input.file_path}"`) |469| `input` | いいえ | ツールに渡される引数。文字列値は、フックの[JSON 入力](#hook-input-and-output)から `${path}` 置換をサポートします(例:`"${tool_input.file_path}"`) |
501[共通フィールド](#common-fields)に加えて、プロンプト フックとエージェント フックはこれらのフィールドを受け入れます。501[共通フィールド](#common-fields)に加えて、プロンプト フックとエージェント フックはこれらのフィールドを受け入れます。
502 502
503| フィールド | 必須 | 説明 |503| フィールド | 必須 | 説明 |
504| :------- | :-- | :----------------------------------------------------------------------------------------------------------------------------- |504| :- | :- | :- |
505| `prompt` | はい | モデルに送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。バックスラッシュでエスケープしてリテラル テキストを含めます。`\$1.00` は `$1.00` としてレンダリングされます |505| `prompt` | はい | モデルに送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。バックスラッシュでエスケープしてリテラル テキストを含めます。`\$1.00` は `$1.00` としてレンダリングされます |
506| `model` | いいえ | 評価に使用するモデル。デフォルトは高速モデル |506| `model` | いいえ | 評価に使用するモデル。デフォルトは高速モデル |
507 507
642フック イベントは、各[フック イベント](#hook-events)セクションで説明されているイベント固有のフィールドに加えて、これらのフィールドを JSON として受け取ります。コマンド フックの場合、この JSON は stdin 経由で到着します。HTTP フックの場合、POST リクエスト本体として到着します。642フック イベントは、各[フック イベント](#hook-events)セクションで説明されているイベント固有のフィールドに加えて、これらのフィールドを JSON として受け取ります。コマンド フックの場合、この JSON は stdin 経由で到着します。HTTP フックの場合、POST リクエスト本体として到着します。
643 643
644| フィールド | 説明 |644| フィールド | 説明 |
645| :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |645| :- | :- |
646| `session_id` | 現在のセッション識別子 |646| `session_id` | 現在のセッション識別子 |
647| `prompt_id` | 現在処理中のユーザー プロンプトを識別する UUID。[OpenTelemetry イベントの `prompt.id` 属性](/docs/ja/monitoring-usage#event-correlation-attributes)と一致するため、単一のプロンプトのテレメトリでフック出力を相関させることができます。最初のユーザー入力まで存在しません。Claude Code v2.1.196 以降が必要です |647| `prompt_id` | 現在処理中のユーザー プロンプトを識別する UUID。[OpenTelemetry イベントの `prompt.id` 属性](/docs/ja/monitoring-usage#event-correlation-attributes)と一致するため、単一のプロンプトのテレメトリでフック出力を相関させることができます。最初のユーザー入力まで存在しません。Claude Code v2.1.196 以降が必要です |
648| `transcript_path` | 会話 JSON へのパス。トランスクリプト ファイルは非同期に書き込まれ、メモリ内の会話に遅れる可能性があるため、フックが発火するときに現在のターンの最新メッセージがまだ含まれていない可能性があります。現在のターンの最終的なアシスタント テキストが必要なフックは、トランスクリプトを読む代わりに[Stop](#stop)と[SubagentStop](#subagentstop)の `last_assistant_message` を使用する必要があります |648| `transcript_path` | 会話 JSON へのパス。トランスクリプト ファイルは非同期に書き込まれ、メモリ内の会話に遅れる可能性があるため、フックが発火するときに現在のターンの最新メッセージがまだ含まれていない可能性があります。現在のターンの最終的なアシスタント テキストが必要なフックは、トランスクリプトを読む代わりに[Stop](#stop)と[SubagentStop](#subagentstop)の `last_assistant_message` を使用する必要があります |
654`--agent` で実行するか、サブエージェント内で実行する場合、2 つの追加フィールドが含まれます。654`--agent` で実行するか、サブエージェント内で実行する場合、2 つの追加フィールドが含まれます。
655 655
656| フィールド | 説明 |656| フィールド | 説明 |
657| :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |657| :- | :- |
658| `agent_id` | サブエージェントの一意の識別子。フックがサブエージェント呼び出し内で発火する場合にのみ存在します。これを使用して、サブエージェント フック呼び出しをメイン スレッド呼び出しから区別します。 |658| `agent_id` | サブエージェントの一意の識別子。フックがサブエージェント呼び出し内で発火する場合にのみ存在します。これを使用して、サブエージェント フック呼び出しをメイン スレッド呼び出しから区別します。 |
659| `agent_type` | エージェント名(例えば、`"Explore"` または `"security-reviewer"`)。セッションが `--agent` を使用するか、フックがサブエージェント内で発火する場合に存在します。サブエージェントの場合、サブエージェントのタイプがセッションの `--agent` 値よりも優先されます。[カスタム サブエージェント](/docs/ja/sub-agents)の場合、これはエージェントのフロントマターの `name` フィールドであり、ファイル名ではありません。[プラグイン](/docs/ja/plugins)によって提供されるサブエージェントの場合、これは `my-plugin:reviewer` などのプラグイン スコープ識別子であり、フロントマター名ではありません。[SubagentStart](#subagentstart)を参照して、プラグイン スコープ名に対するマッチャーを記述する方法を確認してください。 |659| `agent_type` | エージェント名(例えば、`"Explore"` または `"security-reviewer"`)。セッションが `--agent` を使用するか、フックがサブエージェント内で発火する場合に存在します。サブエージェントの場合、サブエージェントのタイプがセッションの `--agent` 値よりも優先されます。[カスタム サブエージェント](/docs/ja/sub-agents)の場合、これはエージェントのフロントマターの `name` フィールドであり、ファイル名ではありません。[プラグイン](/docs/ja/plugins)によって提供されるサブエージェントの場合、これは `my-plugin:reviewer` などのプラグイン スコープ識別子であり、フロントマター名ではありません。[SubagentStart](#subagentstart)を参照して、プラグイン スコープ名に対するマッチャーを記述する方法を確認してください。 |
660 660
717終了コード 2 は、フックが「停止、これをしないでください」と通知する方法です。効果はイベントに依存します。一部のイベントはブロック可能なアクション(まだ発生していないツール呼び出しなど)を表し、他のイベントはすでに発生したか防止できないことを表すためです。717終了コード 2 は、フックが「停止、これをしないでください」と通知する方法です。効果はイベントに依存します。一部のイベントはブロック可能なアクション(まだ発生していないツール呼び出しなど)を表し、他のイベントはすでに発生したか防止できないことを表すためです。
718 718
719| フック イベント | ブロック可能? | 終了 2 で何が起こるか |719| フック イベント | ブロック可能? | 終了 2 で何が起こるか |
720| :-------------------- | :------ | :-------------------------------------------------------------------------------------- |720| :- | :- | :- |
721| `PreToolUse` | はい | ツール呼び出しをブロック |721| `PreToolUse` | はい | ツール呼び出しをブロック |
722| `PermissionRequest` | はい | 権限を拒否 |722| `PermissionRequest` | はい | 権限を拒否 |
723| `UserPromptSubmit` | はい | プロンプト処理をブロックしてプロンプトを消去 |723| `UserPromptSubmit` | はい | プロンプト処理をブロックしてプロンプトを消去 |
788* **`hookSpecificOutput`** はより豊かな制御が必要なイベント用のネストされたオブジェクトです。イベント名に設定された `hookEventName` フィールドが必要です。788* **`hookSpecificOutput`** はより豊かな制御が必要なイベント用のネストされたオブジェクトです。イベント名に設定された `hookEventName` フィールドが必要です。
789 789
790| フィールド | デフォルト | 説明 |790| フィールド | デフォルト | 説明 |
791| :----------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |791| :- | :- | :- |
792| `continue` | `true` | `false` の場合、フックが実行された後、Claude は完全に処理を停止します。イベント固有の決定フィールドよりも優先されます |792| `continue` | `true` | `false` の場合、フックが実行された後、Claude は完全に処理を停止します。イベント固有の決定フィールドよりも優先されます |
793| `stopReason` | なし | `continue` が `false` のときにユーザーに表示されるメッセージ。Claude には表示されません |793| `stopReason` | なし | `continue` が `false` のときにユーザーに表示されるメッセージ。Claude には表示されません |
794| `suppressOutput` | `false` | `true` の場合、デバッグ ログから stdout を非表示にします |794| `suppressOutput` | `false` | `true` の場合、デバッグ ログから stdout を非表示にします |
882すべてのイベントが JSON を通じたブロッキングまたは動作制御をサポートしているわけではありません。サポートするイベントは、その決定を表現するために異なるフィールド セットを使用します。フックを書く前に、このテーブルをクイック リファレンスとして使用してください。882すべてのイベントが JSON を通じたブロッキングまたは動作制御をサポートしているわけではありません。サポートするイベントは、その決定を表現するために異なるフィールド セットを使用します。フックを書く前に、このテーブルをクイック リファレンスとして使用してください。
883 883
884| イベント | 決定パターン | キー フィールド |884| イベント | 決定パターン | キー フィールド |
885| :-------------------------------------------------------------------------------------------------------------------------- | :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |885| :- | :- | :- |
886| UserPromptSubmit、UserPromptExpansion、PostToolUse、PostToolUseFailure、PostToolBatch、Stop、SubagentStop、ConfigChange、PreCompact | トップレベル `decision` | `decision: "block"`、`reason`。Stop と SubagentStop は[会話を続行する非エラー フィードバック](#stop-decision-control)のために `hookSpecificOutput.additionalContext` も受け入れます |886| UserPromptSubmit、UserPromptExpansion、PostToolUse、PostToolUseFailure、PostToolBatch、Stop、SubagentStop、ConfigChange、PreCompact | トップレベル `decision` | `decision: "block"`、`reason`。Stop と SubagentStop は[会話を続行する非エラー フィードバック](#stop-decision-control)のために `hookSpecificOutput.additionalContext` も受け入れます |
887| TeammateIdle、TaskCreated、TaskCompleted | 終了コードまたは `continue: false` | 終了コード 2 はアクションをブロックし、stderr フィードバックを使用します。JSON `{"continue": false, "stopReason": "..."}` はチームメイト全体を停止し、`Stop` フック動作と一致します |887| TeammateIdle、TaskCreated、TaskCompleted | 終了コードまたは `continue: false` | 終了コード 2 はアクションをブロックし、stderr フィードバックを使用します。JSON `{"continue": false, "stopReason": "..."}` はチームメイト全体を停止し、`Stop` フック動作と一致します |
888| PreToolUse | `hookSpecificOutput` | `permissionDecision`(allow/deny/ask/defer)、`permissionDecisionReason` |888| PreToolUse | `hookSpecificOutput` | `permissionDecision`(allow/deny/ask/defer)、`permissionDecisionReason` |
970マッチャー値はセッションがどのように開始されたかに対応しています。970マッチャー値はセッションがどのように開始されたかに対応しています。
971 971
972| マッチャー | いつ発火するか |972| マッチャー | いつ発火するか |
973| :-------- | :------------------------------------ |973| :- | :- |
974| `startup` | 新しいセッション |974| `startup` | 新しいセッション |
975| `resume` | `--resume`、`--continue`、または `/resume` |975| `resume` | `--resume`、`--continue`、または `/resume` |
976| `clear` | `/clear` |976| `clear` | `/clear` |
983[共通入力フィールド](#common-input-fields)に加えて、SessionStart フックは `source` と、オプションで `model`、`agent_type`、`session_title` を受け取ります。983[共通入力フィールド](#common-input-fields)に加えて、SessionStart フックは `source` と、オプションで `model`、`agent_type`、`session_title` を受け取ります。
984 984
985| フィールド | 説明 |985| フィールド | 説明 |
986| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |986| :- | :- |
987| `source` | セッションがどのように開始されたか: 新しいセッションの場合は `"startup"`、再開されたセッションの場合は `"resume"`、`/clear` の後は `"clear"`、コンパクション後は `"compact"` |987| `source` | セッションがどのように開始されたか: 新しいセッションの場合は `"startup"`、再開されたセッションの場合は `"resume"`、`/clear` の後は `"clear"`、コンパクション後は `"compact"` |
988| `model` | アクティブなモデル識別子。例えば `/clear` の後、またはセッションが会話復旧を通じて復元されるときなど、フィールドが省略される可能性があるため、読み取る前にフィールドをチェックしてください |988| `model` | アクティブなモデル識別子。例えば `/clear` の後、またはセッションが会話復旧を通じて復元されるときなど、フィールドが省略される可能性があるため、読み取る前にフィールドをチェックしてください |
989| `agent_type` | `claude --agent <name>` で Claude Code を開始する場合、エージェント名が存在 |989| `agent_type` | `claude --agent <name>` で Claude Code を開始する場合、エージェント名が存在 |
1007フック スクリプトが stdout に出力するテキストは Claude のコンテキストとして追加されます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、これらのイベント固有のフィールドを返すことができます。1007フック スクリプトが stdout に出力するテキストは Claude のコンテキストとして追加されます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、これらのイベント固有のフィールドを返すことができます。
1008 1008
1009| フィールド | 説明 |1009| フィールド | 説明 |
1010| :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1010| :- | :- |
1011| `additionalContext` | Claude のコンテキストの開始時に追加される文字列。最初のプロンプトの前。[Claude のコンテキストを追加](#add-context-for-claude)を参照して、テキストがどのように配信されるか、何を含めるかを確認してください |1011| `additionalContext` | Claude のコンテキストの開始時に追加される文字列。最初のプロンプトの前。[Claude のコンテキストを追加](#add-context-for-claude)を参照して、テキストがどのように配信されるか、何を含めるかを確認してください |
1012| `initialUserMessage` | セッションの最初のユーザー メッセージとして使用される文字列。[非対話型モード](/docs/ja/headless)で `-p` フラグで適用され、プロンプトが提供されない場合でも最初のターンになります。プロンプトが提供される場合、次のターンとして続きます。`additionalContext` とは異なり、既存のターンに付加されるのではなく、このターンを作成します |1012| `initialUserMessage` | セッションの最初のユーザー メッセージとして使用される文字列。[非対話型モード](/docs/ja/headless)で `-p` フラグで適用され、プロンプトが提供されない場合でも最初のターンになります。プロンプトが提供される場合、次のターンとして続きます。`additionalContext` とは異なり、既存のターンに付加されるのではなく、このターンを作成します |
1013| `sessionTitle` | セッション タイトルを設定します。`/rename` と同じ効果があります。起動フォルダ、git ブランチ、またはワークツリー名からセッションを自動的に名前付けするのに使用します。`source` が `"startup"` または `"resume"` の場合のみ適用されます。`"clear"` と `"compact"` では無視されます |1013| `sessionTitle` | セッション タイトルを設定します。`/rename` と同じ効果があります。起動フォルダ、git ブランチ、またはワークツリー名からセッションを自動的に名前付けするのに使用します。`source` が `"startup"` または `"resume"` の場合のみ適用されます。`"clear"` と `"compact"` では無視されます |
1091マッチャー値はフックをトリガーした CLI フラグに対応しています。1091マッチャー値はフックをトリガーした CLI フラグに対応しています。
1092 1092
1093| マッチャー | いつ発火するか |1093| マッチャー | いつ発火するか |
1094| :------------ | :------------------------------------------ |1094| :- | :- |
1095| `init` | `claude --init-only` または `claude -p --init` |1095| `init` | `claude --init-only` または `claude -p --init` |
1096| `maintenance` | `claude -p --maintenance` |1096| `maintenance` | `claude -p --maintenance` |
1097 1097
1124Claude のコンテキストに情報を渡すには、JSON 出力で `additionalContext` を返します。プレーン stdout はデバッグ ログにのみ書き込まれます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、これらのイベント固有のフィールドを返すことができます。1124Claude のコンテキストに情報を渡すには、JSON 出力で `additionalContext` を返します。プレーン stdout はデバッグ ログにのみ書き込まれます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、これらのイベント固有のフィールドを返すことができます。
1125 1125
1126| フィールド | 説明 |1126| フィールド | 説明 |
1127| :------------------ | :-------------------------------------- |1127| :- | :- |
1128| `additionalContext` | Claude のコンテキストに追加される文字列。複数のフックの値は連結されます |1128| `additionalContext` | Claude のコンテキストに追加される文字列。複数のフックの値は連結されます |
1129 1129
1130```json theme={null}1130```json theme={null}
1153[共通入力フィールド](#common-input-fields)に加えて、InstructionsLoaded フックはこれらのフィールドを受け取ります。1153[共通入力フィールド](#common-input-fields)に加えて、InstructionsLoaded フックはこれらのフィールドを受け取ります。
1154 1154
1155| フィールド | 説明 |1155| フィールド | 説明 |
1156| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------- |1156| :- | :- |
1157| `file_path` | ロードされた命令ファイルへの絶対パス |1157| `file_path` | ロードされた命令ファイルへの絶対パス |
1158| `memory_type` | ファイルのスコープ: `"User"`、`"Project"`、`"Local"`、または `"Managed"` |1158| `memory_type` | ファイルのスコープ: `"User"`、`"Project"`、`"Local"`、または `"Managed"` |
1159| `load_reason` | ファイルがロードされた理由: `"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"`、または `"compact"`。`"compact"` 値はコンパクション イベント後に命令ファイルが再ロードされるときに発火します |1159| `load_reason` | ファイルがロードされた理由: `"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"`、または `"compact"`。`"compact"` 値はコンパクション イベント後に命令ファイルが再ロードされるときに発火します |
1224プロンプトをブロックするには、`decision` を `"block"` に設定した JSON オブジェクトを返します。1224プロンプトをブロックするには、`decision` を `"block"` に設定した JSON オブジェクトを返します。
1225 1225
1226| フィールド | 説明 |1226| フィールド | 説明 |
1227| :----------------------- | :---------------------------------------------------------------------------- |1227| :- | :- |
1228| `decision` | `"block"` はプロンプトが処理されるのを防ぎ、コンテキストから消去します。許可するには省略 |1228| `decision` | `"block"` はプロンプトが処理されるのを防ぎ、コンテキストから消去します。許可するには省略 |
1229| `reason` | `decision` が `"block"` のときにユーザーに表示されます。コンテキストに追加されません |1229| `reason` | `decision` が `"block"` のときにユーザーに表示されます。コンテキストに追加されません |
1230| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |1230| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |
1281`UserPromptExpansion` フックは展開をブロックするか、コンテキストを追加できます。すべての[JSON 出力フィールド](#json-output)が利用可能です。1281`UserPromptExpansion` フックは展開をブロックするか、コンテキストを追加できます。すべての[JSON 出力フィールド](#json-output)が利用可能です。
1282 1282
1283| フィールド | 説明 |1283| フィールド | 説明 |
1284| :------------------ | :------------------------------------------------------------------------------------------- |1284| :- | :- |
1285| `decision` | `"block"` はコマンドが展開されるのを防止。許可するには省略 |1285| `decision` | `"block"` はコマンドが展開されるのを防止。許可するには省略 |
1286| `reason` | `decision` が `"block"` のときにユーザーに表示されます |1286| `reason` | `decision` が `"block"` のときにユーザーに表示されます |
1287| `additionalContext` | 展開されたプロンプトと一緒に Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |1287| `additionalContext` | 展開されたプロンプトと一緒に Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |
1324[共通入力フィールド](#common-input-fields)に加えて、MessageDisplay フックはターンとメッセージの識別子、この呼び出しのメッセージ内での位置、および `delta` の新しいテキストを受け取ります。バッチ境界はテキストがどのようにストリーミングされるかに依存するため、行が特定の方法でグループ化されることを期待するのではなく、`index` と `final` を使用してメッセージを通じた進行状況を追跡します。1324[共通入力フィールド](#common-input-fields)に加えて、MessageDisplay フックはターンとメッセージの識別子、この呼び出しのメッセージ内での位置、および `delta` の新しいテキストを受け取ります。バッチ境界はテキストがどのようにストリーミングされるかに依存するため、行が特定の方法でグループ化されることを期待するのではなく、`index` と `final` を使用してメッセージを通じた進行状況を追跡します。
1325 1325
1326| フィールド | 説明 |1326| フィールド | 説明 |
1327| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1327| :- | :- |
1328| `turn_id` | 現在のターンの UUID |1328| `turn_id` | 現在のターンの UUID |
1329| `message_id` | 表示されるアシスタント メッセージの UUID。メッセージの同じバッチ全体で安定しています。これは API `msg_…` id ではないため、トランスクリプト メッセージ id と相関させることはできません |1329| `message_id` | 表示されるアシスタント メッセージの UUID。メッセージの同じバッチ全体で安定しています。これは API `msg_…` id ではないため、トランスクリプト メッセージ id と相関させることはできません |
1330| `index` | メッセージ内のこのバッチのゼロベースのインデックス |1330| `index` | メッセージ内のこのバッチのゼロベースのインデックス |
1352すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、MessageDisplay フックは `displayContent` を返して画面上の delta を置き換えることができます。1352すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、MessageDisplay フックは `displayContent` を返して画面上の delta を置き換えることができます。
1353 1353
1354| フィールド | 説明 |1354| フィールド | 説明 |
1355| :--------------- | :----------------------------------- |1355| :- | :- |
1356| `displayContent` | delta の代わりに表示されるテキスト。元のテキストを表示するには省略 |1356| `displayContent` | delta の代わりに表示されるテキスト。元のテキストを表示するには省略 |
1357 1357
1358MessageDisplay フックは決定制御がありません。メッセージをブロックしたり、トランスクリプトに保存されたもの、または Claude に送信されたものを変更することはできません。1358MessageDisplay フックは決定制御がありません。メッセージをブロックしたり、トランスクリプトに保存されたもの、または Claude に送信されたものを変更することはできません。
1462シェル コマンドを実行します。1462シェル コマンドを実行します。
1463 1463
1464| フィールド | タイプ | 例 | 説明 |1464| フィールド | タイプ | 例 | 説明 |
1465| :------------------ | :--- | :----------------- | :------------------------------------------------------------------------------- |1465| :- | :- | :- | :- |
1466| `command` | 文字列 | `"npm test"` | 実行するシェル コマンド |1466| `command` | 文字列 | `"npm test"` | 実行するシェル コマンド |
1467| `description` | 文字列 | `"Run test suite"` | コマンドが何をするかのオプション説明 |1467| `description` | 文字列 | `"Run test suite"` | コマンドが何をするかのオプション説明 |
1468| `timeout` | 数値 | `120000` | ミリ秒単位のオプション タイムアウト。[最大値](/docs/ja/tools-reference#bash-tool-behavior)を超える値は最大値に削減されます |1468| `timeout` | 数値 | `120000` | ミリ秒単位のオプション タイムアウト。[最大値](/docs/ja/tools-reference#bash-tool-behavior)を超える値は最大値に削減されます |
1475ファイルを作成または上書きします。1475ファイルを作成または上書きします。
1476 1476
1477| フィールド | タイプ | 例 | 説明 |1477| フィールド | タイプ | 例 | 説明 |
1478| :---------- | :-- | :-------------------- | :------------- |1478| :- | :- | :- | :- |
1479| `file_path` | 文字列 | `"/path/to/file.txt"` | 書き込むファイルへの絶対パス |1479| `file_path` | 文字列 | `"/path/to/file.txt"` | 書き込むファイルへの絶対パス |
1480| `content` | 文字列 | `"file content"` | ファイルに書き込むコンテンツ |1480| `content` | 文字列 | `"file content"` | ファイルに書き込むコンテンツ |
1481 1481
1486既存ファイル内の文字列を置換します。1486既存ファイル内の文字列を置換します。
1487 1487
1488| フィールド | タイプ | 例 | 説明 |1488| フィールド | タイプ | 例 | 説明 |
1489| :------------ | :--- | :-------------------- | :-------------- |1489| :- | :- | :- | :- |
1490| `file_path` | 文字列 | `"/path/to/file.txt"` | 編集するファイルへの絶対パス |1490| `file_path` | 文字列 | `"/path/to/file.txt"` | 編集するファイルへの絶対パス |
1491| `old_string` | 文字列 | `"original text"` | 検索して置換するテキスト |1491| `old_string` | 文字列 | `"original text"` | 検索して置換するテキスト |
1492| `new_string` | 文字列 | `"replacement text"` | 置換テキスト |1492| `new_string` | 文字列 | `"replacement text"` | 置換テキスト |
1499ファイル コンテンツを読み取ります。1499ファイル コンテンツを読み取ります。
1500 1500
1501| フィールド | タイプ | 例 | 説明 |1501| フィールド | タイプ | 例 | 説明 |
1502| :---------- | :-- | :-------------------- | :----------------- |1502| :- | :- | :- | :- |
1503| `file_path` | 文字列 | `"/path/to/file.txt"` | 読み取るファイルへの絶対パス |1503| `file_path` | 文字列 | `"/path/to/file.txt"` | 読み取るファイルへの絶対パス |
1504| `offset` | 数値 | `10` | 読み取りを開始する行番号のオプション |1504| `offset` | 数値 | `10` | 読み取りを開始する行番号のオプション |
1505| `limit` | 数値 | `50` | 読み取る行数のオプション |1505| `limit` | 数値 | `50` | 読み取る行数のオプション |
1511グロブ パターンにマッチするファイルを検索します。1511グロブ パターンにマッチするファイルを検索します。
1512 1512
1513| フィールド | タイプ | 例 | 説明 |1513| フィールド | タイプ | 例 | 説明 |
1514| :-------- | :-- | :--------------- | :--------------------------------- |1514| :- | :- | :- | :- |
1515| `pattern` | 文字列 | `"**/*.ts"` | ファイルにマッチするグロブ パターン |1515| `pattern` | 文字列 | `"**/*.ts"` | ファイルにマッチするグロブ パターン |
1516| `path` | 文字列 | `"/path/to/dir"` | 検索するオプション ディレクトリ。デフォルトは現在の作業ディレクトリ |1516| `path` | 文字列 | `"/path/to/dir"` | 検索するオプション ディレクトリ。デフォルトは現在の作業ディレクトリ |
1517 1517
1522正規表現でファイル コンテンツを検索します。1522正規表現でファイル コンテンツを検索します。
1523 1523
1524| フィールド | タイプ | 例 | 説明 |1524| フィールド | タイプ | 例 | 説明 |
1525| :------------ | :--- | :--------------- | :----------------------------------------------------------------------------- |1525| :- | :- | :- | :- |
1526| `pattern` | 文字列 | `"TODO.*fix"` | 検索する正規表現パターン |1526| `pattern` | 文字列 | `"TODO.*fix"` | 検索する正規表現パターン |
1527| `path` | 文字列 | `"/path/to/dir"` | 検索するオプション ファイルまたはディレクトリ |1527| `path` | 文字列 | `"/path/to/dir"` | 検索するオプション ファイルまたはディレクトリ |
1528| `glob` | 文字列 | `"*.ts"` | ファイルをフィルタリングするオプション グロブ パターン |1528| `glob` | 文字列 | `"*.ts"` | ファイルをフィルタリングするオプション グロブ パターン |
1537Web コンテンツを取得して処理します。1537Web コンテンツを取得して処理します。
1538 1538
1539| フィールド | タイプ | 例 | 説明 |1539| フィールド | タイプ | 例 | 説明 |
1540| :------- | :-- | :---------------------------- | :------------------ |1540| :- | :- | :- | :- |
1541| `url` | 文字列 | `"https://example.com/api"` | コンテンツを取得する URL |1541| `url` | 文字列 | `"https://example.com/api"` | コンテンツを取得する URL |
1542| `prompt` | 文字列 | `"Extract the API endpoints"` | 取得したコンテンツで実行するプロンプト |1542| `prompt` | 文字列 | `"Extract the API endpoints"` | 取得したコンテンツで実行するプロンプト |
1543 1543
1548Web を検索します。1548Web を検索します。
1549 1549
1550| フィールド | タイプ | 例 | 説明 |1550| フィールド | タイプ | 例 | 説明 |
1551| :---------------- | :-- | :----------------------------- | :------------------------ |1551| :- | :- | :- | :- |
1552| `query` | 文字列 | `"react hooks best practices"` | 検索クエリ |1552| `query` | 文字列 | `"react hooks best practices"` | 検索クエリ |
1553| `allowed_domains` | 配列 | `["docs.example.com"]` | オプション: これらのドメインからのみ結果を含める |1553| `allowed_domains` | 配列 | `["docs.example.com"]` | オプション: これらのドメインからのみ結果を含める |
1554| `blocked_domains` | 配列 | `["spam.example.com"]` | オプション: これらのドメインからの結果を除外 |1554| `blocked_domains` | 配列 | `["spam.example.com"]` | オプション: これらのドメインからの結果を除外 |
1560[サブエージェント](/docs/ja/sub-agents)を生成します。1560[サブエージェント](/docs/ja/sub-agents)を生成します。
1561 1561
1562| フィールド | タイプ | 例 | 説明 |1562| フィールド | タイプ | 例 | 説明 |
1563| :-------------- | :-- | :------------------------- | :----------------------------- |1563| :- | :- | :- | :- |
1564| `prompt` | 文字列 | `"Find all API endpoints"` | エージェントが実行するタスク |1564| `prompt` | 文字列 | `"Find all API endpoints"` | エージェントが実行するタスク |
1565| `description` | 文字列 | `"Find API endpoints"` | タスクの短い説明 |1565| `description` | 文字列 | `"Find API endpoints"` | タスクの短い説明 |
1566| `subagent_type` | 文字列 | `"Explore"` | 使用する特殊エージェントのタイプ |1566| `subagent_type` | 文字列 | `"Explore"` | 使用する特殊エージェントのタイプ |
1569`PostToolUse` では、完了した Agent 呼び出しの `tool_response` はサブエージェントの最終テキストと使用テレメトリを含みます。フックからサブエージェント単位のコストを記録するためにこれらのフィールドを読み取ります。1569`PostToolUse` では、完了した Agent 呼び出しの `tool_response` はサブエージェントの最終テキストと使用テレメトリを含みます。フックからサブエージェント単位のコストを記録するためにこれらのフィールドを読み取ります。
1570 1570
1571| フィールド | タイプ | 例 | 説明 |1571| フィールド | タイプ | 例 | 説明 |
1572| :------------------ | :----- | :---------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1572| :- | :- | :- | :- |
1573| `status` | 文字列 | `"completed"` | `"completed"` は同期呼び出しの場合、`"async_launched"` はバックグラウンド サブエージェントの場合。v2.1.198 以降では、サブエージェントはデフォルトでバックグラウンドで実行されるため、省略された `run_in_background` も `"async_launched"` を生成します |1573| `status` | 文字列 | `"completed"` | `"completed"` は同期呼び出しの場合、`"async_launched"` はバックグラウンド サブエージェントの場合。v2.1.198 以降では、サブエージェントはデフォルトでバックグラウンドで実行されるため、省略された `run_in_background` も `"async_launched"` を生成します |
1574| `agentId` | 文字列 | `"a4d2c8f1e0b3a297"` | サブエージェント実行の識別子 |1574| `agentId` | 文字列 | `"a4d2c8f1e0b3a297"` | サブエージェント実行の識別子 |
1575| `content` | 配列 | `[{"type": "text", "text": "Found 12 endpoints..."}]` | サブエージェントの最終テキスト ブロック |1575| `content` | 配列 | `[{"type": "text", "text": "Found 12 endpoints..."}]` | サブエージェントの最終テキスト ブロック |
1592ユーザーに 1 つから 4 つの複数選択肢の質問をします。1592ユーザーに 1 つから 4 つの複数選択肢の質問をします。
1593 1593
1594| フィールド | タイプ | 例 | 説明 |1594| フィールド | タイプ | 例 | 説明 |
1595| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |1595| :- | :- | :- | :- |
1596| `questions` | 配列 | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 提示する質問。各質問には `question` 文字列、短い `header`、`options` 配列、およびオプションの `multiSelect` フラグがあります |1596| `questions` | 配列 | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 提示する質問。各質問には `question` 文字列、短い `header`、`options` 配列、およびオプションの `multiSelect` フラグがあります |
1597| `answers` | オブジェクト | `{"Which framework?": "React"}` | オプション。質問テキストを選択されたオプション ラベルにマップします。複数選択の回答はラベルをコンマで結合します。Claude はこのフィールドを設定しません。`updatedInput` 経由で提供して、プログラムで回答します |1597| `answers` | オブジェクト | `{"Which framework?": "React"}` | オプション。質問テキストを選択されたオプション ラベルにマップします。複数選択の回答はラベルをコンマで結合します。Claude はこのフィールドを設定しません。`updatedInput` 経由で提供して、プログラムで回答します |
1598 1598
1603Claude が[プラン モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)を離れる前にプランを提示し、ユーザーに承認を求めます。Claude はツールを呼び出す前にプランをディスク上のファイルに書き込むため、モデルからのリテラル `tool_input` は通常空です。Claude Code はプラン コンテンツとファイル パスをフックに渡す前に注入します。1603Claude が[プラン モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)を離れる前にプランを提示し、ユーザーに承認を求めます。Claude はツールを呼び出す前にプランをディスク上のファイルに書き込むため、モデルからのリテラル `tool_input` は通常空です。Claude Code はプラン コンテンツとファイル パスをフックに渡す前に注入します。
1604 1604
1605| フィールド | タイプ | 例 | 説明 |1605| フィールド | タイプ | 例 | 説明 |
1606| :--------------- | :-- | :------------------------------------------ | :---------------------------------------------------------------------------------------------- |1606| :- | :- | :- | :- |
1607| `plan` | 文字列 | `"## Refactor auth\n1. Extract..."` | Markdown のプラン コンテンツ。ディスク上のプラン ファイルから注入 |1607| `plan` | 文字列 | `"## Refactor auth\n1. Extract..."` | Markdown のプラン コンテンツ。ディスク上のプラン ファイルから注入 |
1608| `planFilePath` | 文字列 | `"/Users/.../plans/refactor-auth.md"` | プラン ファイルへのパス。注入 |1608| `planFilePath` | 文字列 | `"/Users/.../plans/refactor-auth.md"` | プラン ファイルへのパス。注入 |
1609| `allowedPrompts` | 配列 | `[{"tool": "Bash", "prompt": "run tests"}]` | 非推奨。Claude Code はフィールドを受け入れますが無視します。v2.1.205 より前では、プランを実装するために Claude が要求していたプロンプト ベースの権限を含みました |1609| `allowedPrompts` | 配列 | `[{"tool": "Bash", "prompt": "run tests"}]` | 非推奨。Claude Code はフィールドを受け入れますが無視します。v2.1.205 より前では、プランを実装するために Claude が要求していたプロンプト ベースの権限を含みました |
1617`PreToolUse` フックはツール呼び出しが進行するかどうかを制御できます。トップレベル `decision` フィールドを使用する他のフックとは異なり、PreToolUse は `hookSpecificOutput` オブジェクト内に決定を返します。これにより、より豊かな制御が可能になります。4 つの結果(許可、拒否、質問、遅延)と、実行前にツール入力を変更する機能。1617`PreToolUse` フックはツール呼び出しが進行するかどうかを制御できます。トップレベル `decision` フィールドを使用する他のフックとは異なり、PreToolUse は `hookSpecificOutput` オブジェクト内に決定を返します。これにより、より豊かな制御が可能になります。4 つの結果(許可、拒否、質問、遅延)と、実行前にツール入力を変更する機能。
1618 1618
1619| フィールド | 説明 |1619| フィールド | 説明 |
1620| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1620| :- | :- |
1621| `permissionDecision` | `"allow"` はツール呼び出しをスキップします。[ユーザー操作が必要なツール](#pretooluse-decision-control)と、組織が [`ask`](/docs/ja/mcp#organization-controls-on-connector-tools)に設定したコネクター ツールを除きます。`"deny"` はツール呼び出しを防止します。`"ask"` はユーザーに確認を促します。`"defer"` は優雅に終了して、ツールを後で再開できるようにします。[拒否と質問ルール](/docs/ja/permissions#manage-permissions)は、フックが返す内容に関係なく引き続き評価されます |1621| `permissionDecision` | `"allow"` はツール呼び出しをスキップします。[ユーザー操作が必要なツール](#pretooluse-decision-control)と、組織が [`ask`](/docs/ja/mcp#organization-controls-on-connector-tools)に設定したコネクター ツールを除きます。`"deny"` はツール呼び出しを防止します。`"ask"` はユーザーに確認を促します。`"defer"` は優雅に終了して、ツールを後で再開できるようにします。[拒否と質問ルール](/docs/ja/permissions#manage-permissions)は、フックが返す内容に関係なく引き続き評価されます |
1622| `permissionDecisionReason` | `"allow"` と `"ask"` の場合、ユーザーに表示されますが Claude には表示されません。`"deny"` の場合、Claude に表示されます。`"defer"` の場合、無視されます |1622| `permissionDecisionReason` | `"allow"` と `"ask"` の場合、ユーザーに表示されますが Claude には表示されません。`"deny"` の場合、Claude に表示されます。`"defer"` の場合、無視されます |
1623| `updatedInput` | 実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更されていないフィールドを変更されたフィールドと一緒に含めます。`"allow"` と組み合わせて自動承認するか、`"ask"` と組み合わせて変更された入力をユーザーに表示します。`"defer"` の場合、無視されます |1623| `updatedInput` | 実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更されていないフィールドを変更されたフィールドと一緒に含めます。`"allow"` と組み合わせて自動承認するか、`"ask"` と組み合わせて変更された入力をユーザーに表示します。`"defer"` の場合、無視されます |
1736`PermissionRequest` フックは権限リクエストを許可または拒否できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを持つ `decision` オブジェクトを返すことができます。1736`PermissionRequest` フックは権限リクエストを許可または拒否できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを持つ `decision` オブジェクトを返すことができます。
1737 1737
1738| フィールド | 説明 |1738| フィールド | 説明 |
1739| :------------------- | :------------------------------------------------------------------------------------------------------------------------------ |1739| :- | :- |
1740| `behavior` | `"allow"` は権限を付与、`"deny"` は拒否。[拒否と質問ルール](/docs/ja/permissions#manage-permissions)は引き続き評価されるため、`"allow"` を返すフックは一致する拒否ルールをオーバーライドしません |1740| `behavior` | `"allow"` は権限を付与、`"deny"` は拒否。[拒否と質問ルール](/docs/ja/permissions#manage-permissions)は引き続き評価されるため、`"allow"` を返すフックは一致する拒否ルールをオーバーライドしません |
1741| `updatedInput` | `"allow"` のみ: 実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更されていないフィールドを変更されたフィールドと一緒に含めます。変更された入力は拒否と質問ルールに対して再評価されます |1741| `updatedInput` | `"allow"` のみ: 実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更されていないフィールドを変更されたフィールドと一緒に含めます。変更された入力は拒否と質問ルールに対して再評価されます |
1742| `updatedPermissions` | `"allow"` のみ: 適用する[権限更新エントリ](#permission-update-entries)の配列。許可ルールを追加したり、セッション権限モードを変更したりするなど |1742| `updatedPermissions` | `"allow"` のみ: 適用する[権限更新エントリ](#permission-update-entries)の配列。許可ルールを追加したり、セッション権限モードを変更したりするなど |
1764`updatedPermissions` 出力フィールドと[`permission_suggestions` 入力フィールド](#permissionrequest-input)の両方が同じエントリ オブジェクトの配列を使用します。各エントリには、その他のフィールドを決定する `type` と、変更が書き込まれる場所を制御する `destination` があります。1764`updatedPermissions` 出力フィールドと[`permission_suggestions` 入力フィールド](#permissionrequest-input)の両方が同じエントリ オブジェクトの配列を使用します。各エントリには、その他のフィールドを決定する `type` と、変更が書き込まれる場所を制御する `destination` があります。
1765 1765
1766| `type` | フィールド | 効果 |1766| `type` | フィールド | 効果 |
1767| :------------------ | :------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- |1767| :- | :- | :- |
1768| `addRules` | `rules`、`behavior`、`destination` | 権限ルールを追加します。`rules` は `{toolName, ruleContent?}` オブジェクトの配列です。ツール全体にマッチするには `ruleContent` を省略します。`behavior` は `"allow"`、`"deny"`、または `"ask"` |1768| `addRules` | `rules`、`behavior`、`destination` | 権限ルールを追加します。`rules` は `{toolName, ruleContent?}` オブジェクトの配列です。ツール全体にマッチするには `ruleContent` を省略します。`behavior` は `"allow"`、`"deny"`、または `"ask"` |
1769| `replaceRules` | `rules`、`behavior`、`destination` | `destination` で指定された `behavior` のすべてのルールを提供されたルールに置き換えます |1769| `replaceRules` | `rules`、`behavior`、`destination` | `destination` で指定された `behavior` のすべてのルールを提供されたルールに置き換えます |
1770| `removeRules` | `rules`、`behavior`、`destination` | 指定された `behavior` の一致するルールを削除 |1770| `removeRules` | `rules`、`behavior`、`destination` | 指定された `behavior` の一致するルールを削除 |
1779すべてのエントリの `destination` フィールドは、変更がメモリに留まるか設定ファイルに永続化されるかを決定します。1779すべてのエントリの `destination` フィールドは、変更がメモリに留まるか設定ファイルに永続化されるかを決定します。
1780 1780
1781| `destination` | 書き込み先 |1781| `destination` | 書き込み先 |
1782| :---------------- | :---------------------------- |1782| :- | :- |
1783| `session` | メモリのみ、セッション終了時に破棄 |1783| `session` | メモリのみ、セッション終了時に破棄 |
1784| `localSettings` | `.claude/settings.local.json` |1784| `localSettings` | `.claude/settings.local.json` |
1785| `projectSettings` | `.claude/settings.json` |1785| `projectSettings` | `.claude/settings.json` |
1823```1823```
1824 1824
1825| フィールド | 説明 |1825| フィールド | 説明 |
1826| :------------ | :---------------------------------------------------- |1826| :- | :- |
1827| `duration_ms` | オプション。ツール実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は除外 |1827| `duration_ms` | オプション。ツール実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は除外 |
1828 1828
1829<h4 id="posttooluse-decision-control">1829<h4 id="posttooluse-decision-control">
1833`PostToolUse` フックはツール実行後に Claude にフィードバックを提供できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。1833`PostToolUse` フックはツール実行後に Claude にフィードバックを提供できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。
1834 1834
1835| フィールド | 説明 |1835| フィールド | 説明 |
1836| :--------------------- | :---------------------------------------------------------------------------- |1836| :- | :- |
1837| `decision` | `"block"` は Claude に `reason` でプロンプトを表示。許可するには省略 |1837| `decision` | `"block"` は Claude に `reason` でプロンプトを表示。許可するには省略 |
1838| `reason` | `decision` が `"block"` のときに Claude に表示される説明 |1838| `reason` | `decision` が `"block"` のときに Claude に表示される説明 |
1839| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |1839| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |
1901```1901```
1902 1902
1903| フィールド | 説明 |1903| フィールド | 説明 |
1904| :------------- | :---------------------------------------------------- |1904| :- | :- |
1905| `error` | 何が悪かったかを説明する文字列 |1905| `error` | 何が悪かったかを説明する文字列 |
1906| `is_interrupt` | 失敗がユーザー割り込みによって引き起こされたかどうかを示すオプション ブール値 |1906| `is_interrupt` | 失敗がユーザー割り込みによって引き起こされたかどうかを示すオプション ブール値 |
1907| `duration_ms` | オプション。ツール実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は除外 |1907| `duration_ms` | オプション。ツール実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は除外 |
1913`PostToolUseFailure` フックはツール失敗後に Claude にコンテキストを提供できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。1913`PostToolUseFailure` フックはツール失敗後に Claude にコンテキストを提供できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。
1914 1914
1915| フィールド | 説明 |1915| フィールド | 説明 |
1916| :------------------ | :---------------------------------------------------------------------------- |1916| :- | :- |
1917| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |1917| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |
1918 1918
1919```json theme={null}1919```json theme={null}
1974`PostToolBatch` フックは Claude のコンテキストを注入できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。1974`PostToolBatch` フックは Claude のコンテキストを注入できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。
1975 1975
1976| フィールド | 説明 |1976| フィールド | 説明 |
1977| :------------------ | :----------------------------------------------------------------------------------- |1977| :- | :- |
1978| `additionalContext` | 次のモデル呼び出しの前に 1 回注入されるコンテキスト文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |1978| `additionalContext` | 次のモデル呼び出しの前に 1 回注入されるコンテキスト文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |
1979 1979
1980```json theme={null}1980```json theme={null}
2020```2020```
2021 2021
2022| フィールド | 説明 |2022| フィールド | 説明 |
2023| :------- | :--------------------- |2023| :- | :- |
2024| `reason` | ツール呼び出しが拒否された理由の分類器の説明 |2024| `reason` | ツール呼び出しが拒否された理由の分類器の説明 |
2025 2025
2026<h4 id="permissiondenied-decision-control">2026<h4 id="permissiondenied-decision-control">
2047Claude Code が通知を送信するときに実行されます。通知タイプでマッチします。マッチャーを省略して、すべての通知タイプのフックを実行します。2047Claude Code が通知を送信するときに実行されます。通知タイプでマッチします。マッチャーを省略して、すべての通知タイプのフックを実行します。
2048 2048
2049| マッチャー | いつ発火するか |2049| マッチャー | いつ発火するか |
2050| :--------------------- | :-------------------------------------------------------------------- |2050| :- | :- |
2051| `permission_prompt` | Claude が権限承認を必要とする |2051| `permission_prompt` | Claude が権限承認を必要とする |
2052| `idle_prompt` | Claude が完了して次のプロンプトを待機 |2052| `idle_prompt` | Claude が完了して次のプロンプトを待機 |
2053| `auth_success` | 認証が完了 |2053| `auth_success` | 認証が完了 |
2136SubagentStart フックはサブエージェント作成をブロックできませんが、サブエージェントにコンテキストを注入できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、以下を返すことができます。2136SubagentStart フックはサブエージェント作成をブロックできませんが、サブエージェントにコンテキストを注入できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、以下を返すことができます。
2137 2137
2138| フィールド | 説明 |2138| フィールド | 説明 |
2139| :------------------ | :-------------------------------------------------------------------------------------------- |2139| :- | :- |
2140| `additionalContext` | サブエージェントのコンテキストの開始時に追加される文字列。最初のプロンプトの前。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |2140| `additionalContext` | サブエージェントのコンテキストの開始時に追加される文字列。最初のプロンプトの前。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |
2141 2141
2142```json theme={null}2142```json theme={null}
2211```2211```
2212 2212
2213| フィールド | 説明 |2213| フィールド | 説明 |
2214| :----------------- | :-------------------------------- |2214| :- | :- |
2215| `task_id` | 作成されるタスクの識別子 |2215| `task_id` | 作成されるタスクの識別子 |
2216| `task_subject` | タスクのタイトル |2216| `task_subject` | タスクのタイトル |
2217| `task_description` | タスクの詳細説明。存在しない可能性があります |2217| `task_description` | タスクの詳細説明。存在しない可能性があります |
2272```2272```
2273 2273
2274| フィールド | 説明 |2274| フィールド | 説明 |
2275| :----------------- | :-------------------------------- |2275| :- | :- |
2276| `task_id` | 完了しているタスクの識別子 |2276| `task_id` | 完了しているタスクの識別子 |
2277| `task_subject` | タスクのタイトル |2277| `task_subject` | タスクのタイトル |
2278| `task_description` | タスクの詳細説明。存在しない可能性があります |2278| `task_description` | タスクの詳細説明。存在しない可能性があります |
2325`background_tasks` の各エントリは 1 つの進行中のタスクを説明し、これらのフィールドを使用します。2325`background_tasks` の各エントリは 1 つの進行中のタスクを説明し、これらのフィールドを使用します。
2326 2326
2327| フィールド | 説明 |2327| フィールド | 説明 |
2328| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2328| :- | :- |
2329| `id` | タスク識別子 |2329| `id` | タスク識別子 |
2330| `type` | フレンドリーなタスク タイプ ラベル(`shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session`、`MCP task` など)。各ラベルは Claude Code のどの機能がタスクを作成したかを識別します。認識されないタイプの場合は生の判別式にフォールバック |2330| `type` | フレンドリーなタスク タイプ ラベル(`shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session`、`MCP task` など)。各ラベルは Claude Code のどの機能がタスクを作成したかを識別します。認識されないタイプの場合は生の判別式にフォールバック |
2331| `status` | 現在のタスク ステータス |2331| `status` | 現在のタスク ステータス |
2339`session_crons` の各エントリは 1 つのセッション スコープのスケジュール済みウェイクアップを説明し、`CronCreate`、`ScheduleWakeup`、`/loop` から取得されます。2339`session_crons` の各エントリは 1 つのセッション スコープのスケジュール済みウェイクアップを説明し、`CronCreate`、`ScheduleWakeup`、`/loop` から取得されます。
2340 2340
2341| フィールド | 説明 |2341| フィールド | 説明 |
2342| :---------- | :--------------------------------------------------------------------------- |2342| :- | :- |
2343| `id` | Cron タスク識別子 |2343| `id` | Cron タスク識別子 |
2344| `schedule` | Cron 式(例:`0 9 * * 1-5`) |2344| `schedule` | Cron 式(例:`0 9 * * 1-5`) |
2345| `recurring` | スケジュールが単一の発火時刻をエンコードする 1 回限りのウェイクアップの場合は `false`、すべてのマッチで再発火するタスクの場合は `true` |2345| `recurring` | スケジュールが単一の発火時刻をエンコードする 1 回限りのウェイクアップの場合は `false`、すべてのマッチで再発火するタスクの場合は `true` |
2383`Stop` と `SubagentStop` フックは Claude が続行するかどうかを制御できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。2383`Stop` と `SubagentStop` フックは Claude が続行するかどうかを制御できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。
2384 2384
2385| フィールド | 説明 |2385| フィールド | 説明 |
2386| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |2386| :- | :- |
2387| `decision` | `"block"` は Claude が停止するのを防止。Claude を停止させるには省略 |2387| `decision` | `"block"` は Claude が停止するのを防止。Claude を停止させるには省略 |
2388| `reason` | `decision` が `"block"` のときに必須。Claude が続行すべき理由を伝える |2388| `reason` | `decision` が `"block"` のときに必須。Claude が続行すべき理由を伝える |
2389| `hookSpecificOutput.additionalContext` | 非エラー フィードバック Claude 用。会話は続行されるため Claude が対応できますが、`decision: "block"` とは異なり、トランスクリプトでは「Stop フック フィードバック」としてラベル付けされ、フック エラー通知は表示されません |2389| `hookSpecificOutput.additionalContext` | 非エラー フィードバック Claude 用。会話は続行されるため Claude が対応できますが、`decision: "block"` とは異なり、トランスクリプトでは「Stop フック フィードバック」としてラベル付けされ、フック エラー通知は表示されません |
2419[共通入力フィールド](#common-input-fields)に加えて、StopFailure フックは `error`、オプションの `error_details`、およびオプションの `last_assistant_message` を受け取ります。`error` フィールドはエラー タイプを識別し、マッチャー フィルタリングに使用されます。2419[共通入力フィールド](#common-input-fields)に加えて、StopFailure フックは `error`、オプションの `error_details`、およびオプションの `last_assistant_message` を受け取ります。`error` フィールドはエラー タイプを識別し、マッチャー フィルタリングに使用されます。
2420 2420
2421| フィールド | 説明 |2421| フィールド | 説明 |
2422| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2422| :- | :- |
2423| `error` | エラー タイプ: `rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、または `unknown` |2423| `error` | エラー タイプ: `rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、または `unknown` |
2424| `error_details` | 利用可能な場合、エラーに関する追加詳細 |2424| `error_details` | 利用可能な場合、エラーに関する追加詳細 |
2425| `last_assistant_message` | 会話に表示されるレンダリングされたエラー テキスト。`Stop` と `SubagentStop` とは異なり、このフィールドは Claude の会話出力ではなく、`"API Error: Rate limit reached"` などの API エラー文字列を含みます |2425| `last_assistant_message` | 会話に表示されるレンダリングされたエラー テキスト。`Stop` と `SubagentStop` とは異なり、このフィールドは Claude の会話出力ではなく、`"API Error: Rate limit reached"` などの API エラー文字列を含みます |
2465```2465```
2466 2466
2467| フィールド | 説明 |2467| フィールド | 説明 |
2468| :-------------- | :----------------------- |2468| :- | :- |
2469| `teammate_name` | アイドル状態になろうとしているチームメイトの名前 |2469| `teammate_name` | アイドル状態になろうとしているチームメイトの名前 |
2470| `team_name` | チームの名前 |2470| `team_name` | チームの名前 |
2471 2471
2502マッチャーは設定ソースでフィルタリングします。2502マッチャーは設定ソースでフィルタリングします。
2503 2503
2504| マッチャー | いつ発火するか |2504| マッチャー | いつ発火するか |
2505| :----------------- | :-------------------------------- |2505| :- | :- |
2506| `user_settings` | `~/.claude/settings.json` が変更 |2506| `user_settings` | `~/.claude/settings.json` が変更 |
2507| `project_settings` | `.claude/settings.json` が変更 |2507| `project_settings` | `.claude/settings.json` が変更 |
2508| `local_settings` | `.claude/settings.local.json` が変更 |2508| `local_settings` | `.claude/settings.local.json` が変更 |
2553ConfigChange フックは設定変更が有効になるのをブロックできます。終了コード 2 または JSON `decision` を使用して変更を防止します。ブロックされた場合、新しい設定は実行中のセッションに適用されません。2553ConfigChange フックは設定変更が有効になるのをブロックできます。終了コード 2 または JSON `decision` を使用して変更を防止します。ブロックされた場合、新しい設定は実行中のセッションに適用されません。
2554 2554
2555| フィールド | 説明 |2555| フィールド | 説明 |
2556| :--------- | :-------------------------------------- |2556| :- | :- |
2557| `decision` | `"block"` は設定変更が適用されるのを防止。変更を許可するには省略 |2557| `decision` | `"block"` は設定変更が適用されるのを防止。変更を許可するには省略 |
2558| `reason` | `decision` が `"block"` のときにユーザーに表示される説明 |2558| `reason` | `decision` が `"block"` のときにユーザーに表示される説明 |
2559 2559
2600すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、CwdChanged フックは `watchPaths` を返して、[FileChanged](#filechanged)が監視するファイル パスを動的に設定できます。2600すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、CwdChanged フックは `watchPaths` を返して、[FileChanged](#filechanged)が監視するファイル パスを動的に設定できます。
2601 2601
2602| フィールド | 説明 |2602| フィールド | 説明 |
2603| :----------- | :------------------------------------------------------------------------------ |2603| :- | :- |
2604| `watchPaths` | 絶対パスの配列。現在の動的監視リストを置き換えます(マッチャー設定からのパスは常に監視されます)。新しいディレクトリに入るときは、空の配列を返すのが一般的です |2604| `watchPaths` | 絶対パスの配列。現在の動的監視リストを置き換えます(マッチャー設定からのパスは常に監視されます)。新しいディレクトリに入るときは、空の配列を返すのが一般的です |
2605 2605
2606CwdChanged フックは決定制御がありません。ディレクトリ変更をブロックできません。2606CwdChanged フックは決定制御がありません。ディレクトリ変更をブロックできません。
2625[共通入力フィールド](#common-input-fields)に加えて、FileChanged フックは `file_path` と `event` を受け取ります。2625[共通入力フィールド](#common-input-fields)に加えて、FileChanged フックは `file_path` と `event` を受け取ります。
2626 2626
2627| フィールド | 説明 |2627| フィールド | 説明 |
2628| :---------- | :----------------------------------------------------------------- |2628| :- | :- |
2629| `file_path` | 変更されたファイルへの絶対パス |2629| `file_path` | 変更されたファイルへの絶対パス |
2630| `event` | 何が起こったか: `"change"`(ファイル変更)、`"add"`(ファイル作成)、または `"unlink"`(ファイル削除) |2630| `event` | 何が起こったか: `"change"`(ファイル変更)、`"add"`(ファイル作成)、または `"unlink"`(ファイル削除) |
2631 2631
2647すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、FileChanged フックは `watchPaths` を返して、監視されるファイル パスを動的に更新できます。2647すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、FileChanged フックは `watchPaths` を返して、監視されるファイル パスを動的に更新できます。
2648 2648
2649| フィールド | 説明 |2649| フィールド | 説明 |
2650| :----------- | :----------------------------------------------------------------------------------------------- |2650| :- | :- |
2651| `watchPaths` | 絶対パスの配列。現在の動的監視リストを置き換えます(マッチャー設定からのパスは常に監視されます)。フック スクリプトが変更されたファイルに基づいて検出した追加ファイルを監視する場合に使用します |2651| `watchPaths` | 絶対パスの配列。現在の動的監視リストを置き換えます(マッチャー設定からのパスは常に監視されます)。フック スクリプトが変更されたファイルに基づいて検出した追加ファイルを監視する場合に使用します |
2652 2652
2653FileChanged フックは決定制御がありません。ファイル変更をブロックできません。2653FileChanged フックは決定制御がありません。ファイル変更をブロックできません。
2764マッチャー値は、コンパクションが手動でトリガーされたか自動的にトリガーされたかを示します。2764マッチャー値は、コンパクションが手動でトリガーされたか自動的にトリガーされたかを示します。
2765 2765
2766| マッチャー | いつ発火するか |2766| マッチャー | いつ発火するか |
2767| :------- | :--------------------------- |2767| :- | :- |
2768| `manual` | `/compact` |2768| `manual` | `/compact` |
2769| `auto` | コンテキスト ウィンドウが満杯のときの自動コンパクション |2769| `auto` | コンテキスト ウィンドウが満杯のときの自動コンパクション |
2770 2770
2798`PreCompact` と同じマッチャー値が適用されます。2798`PreCompact` と同じマッチャー値が適用されます。
2799 2799
2800| マッチャー | いつ発火するか |2800| マッチャー | いつ発火するか |
2801| :------- | :---------------------------- |2801| :- | :- |
2802| `manual` | `/compact` の後 |2802| `manual` | `/compact` の後 |
2803| `auto` | コンテキスト ウィンドウが満杯のときの自動コンパクション後 |2803| `auto` | コンテキスト ウィンドウが満杯のときの自動コンパクション後 |
2804 2804
2830フック入力の `reason` フィールドはセッションが終了した理由を示します。2830フック入力の `reason` フィールドはセッションが終了した理由を示します。
2831 2831
2832| 理由 | 説明 |2832| 理由 | 説明 |
2833| :---------------------------- | :------------------------------- |2833| :- | :- |
2834| `clear` | `/clear` コマンドでセッションをクリア |2834| `clear` | `/clear` コマンドでセッションをクリア |
2835| `resume` | インタラクティブ `/resume` 経由でセッションを切り替え |2835| `resume` | インタラクティブ `/resume` 経由でセッションを切り替え |
2836| `logout` | ユーザーがログアウト |2836| `logout` | ユーザーがログアウト |
2932```2932```
2933 2933
2934| フィールド | 値 | 説明 |2934| フィールド | 値 | 説明 |
2935| :-------- | :-------------------------- | :------------------------------------------ |2935| :- | :- | :- |
2936| `action` | `accept`、`decline`、`cancel` | リクエストを受け入れるか、拒否するか、キャンセルするか |2936| `action` | `accept`、`decline`、`cancel` | リクエストを受け入れるか、拒否するか、キャンセルするか |
2937| `content` | オブジェクト | 送信するフォーム フィールド値。`action` が `accept` のときのみ使用 |2937| `content` | オブジェクト | 送信するフォーム フィールド値。`action` が `accept` のときのみ使用 |
2938 2938
2984```2984```
2985 2985
2986| フィールド | 値 | 説明 |2986| フィールド | 値 | 説明 |
2987| :-------- | :-------------------------- | :------------------------------------------------- |2987| :- | :- | :- |
2988| `action` | `accept`、`decline`、`cancel` | ユーザーのアクションをオーバーライド |2988| `action` | `accept`、`decline`、`cancel` | ユーザーのアクションをオーバーライド |
2989| `content` | オブジェクト | フォーム フィールド値をオーバーライド。`action` が `accept` のときのみ意味がある |2989| `content` | オブジェクト | フォーム フィールド値をオーバーライド。`action` が `accept` のときのみ意味がある |
2990 2990
3067```3067```
3068 3068
3069| フィールド | 必須 | 説明 |3069| フィールド | 必須 | 説明 |
3070| :---------------- | :-- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |3070| :- | :- | :- |
3071| `type` | はい | `"prompt"` である必要があります |3071| `type` | はい | `"prompt"` である必要があります |
3072| `prompt` | はい | LLM に送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。`$ARGUMENTS` が存在しない場合、入力 JSON がプロンプトに追加されます |3072| `prompt` | はい | LLM に送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。`$ARGUMENTS` が存在しない場合、入力 JSON がプロンプトに追加されます |
3073| `model` | いいえ | 評価に使用するモデル。デフォルトは高速モデル |3073| `model` | いいえ | 評価に使用するモデル。デフォルトは高速モデル |
3088```3088```
3089 3089
3090| フィールド | 説明 |3090| フィールド | 説明 |
3091| :------- | :--------------------------------------------------------------------------- |3091| :- | :- |
3092| `ok` | `true` はアクションを許可、`false` は `decision: "block"` を生成します。以下のイベント ごとの動作を参照してください |3092| `ok` | `true` はアクションを許可、`false` は `decision: "block"` を生成します。以下のイベント ごとの動作を参照してください |
3093| `reason` | `ok` が `false` のときに必須。ブロック理由として使用されます |3093| `reason` | `ok` が `false` のときに必須。ブロック理由として使用されます |
3094 3094
3159`type` を `"agent"` に設定し、`prompt` 文字列を提供します。設定フィールドは[プロンプト フック](#prompt-hook-configuration)と同じですが、より長いデフォルト タイムアウトです:3159`type` を `"agent"` に設定し、`prompt` 文字列を提供します。設定フィールドは[プロンプト フック](#prompt-hook-configuration)と同じですが、より長いデフォルト タイムアウトです:
3160 3160
3161| フィールド | 必須 | 説明 |3161| フィールド | 必須 | 説明 |
3162| :-------- | :-- | :----------------------------------------------------------- |3162| :- | :- | :- |
3163| `type` | はい | `"agent"` である必要があります |3163| `type` | はい | `"agent"` である必要があります |
3164| `prompt` | はい | 検証する内容を説明するプロンプト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します |3164| `prompt` | はい | 検証する内容を説明するプロンプト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します |
3165| `model` | いいえ | 使用するモデル。デフォルトは高速モデル |3165| `model` | いいえ | 使用するモデル。デフォルトは高速モデル |