章 07
hooks
公式 hooks 仕様だけで、信頼、PreToolUse の deny/書換、Stop 続行、SessionStart の追加文脈を動かします。
到達目標
- hooks.json を置き /hooks で信頼できる
- PreToolUse で deny と updatedInput を返せる
- Stop で stop_hook_active を見て1回だけ続行できる
レッスン
- hooks のライフサイクル — 公式 12 イベントと、command / mcp_tool だけが走ることを把握します。
- 有効化と /hooks 信頼 — [features] hooks = true を明示し、定義を信頼するまで走らないことを確認します。
- PreToolUse で deny する — Bash の command に echo CODEX_SCHOOL_DENY_MARKER が含まれるとき permissionDecision を deny します。
- updatedInput で書き換える — permissionDecision が allow のときだけ updatedInput を返します。
- Stop で1回だけ続行する — stop_hook_active を見て、2回目は続行しません。
- SessionStart の additionalContext — startup や resume で追加の developer context を渡します。
- async と出力上限 — 背景実行、8並列、2500トークン、SessionEnd の短い timeout を読みます。