What are seven additional hooks available in Claude Code besides PreToolUse and PostToolUse?	Notification, Stop, SubagentStop, PreCompact, UserPromptSubmit, SessionStart, and SessionEnd.
When does the Notification hook execute?	When Claude Code sends a notification, such as requesting tool permission or after being idle for 60 seconds.
What event triggers the Stop hook?	When Claude Code finishes responding.
How does the stdin input to a hook command vary?	It changes based on the hook type and, for tool-related hooks, the specific tool that was called.
Why is predicting stdin input structure challenging when writing hooks?	The JSON payload differs significantly depending on the hook type and matcher, so commands may receive unexpected fields.
What debugging strategy is recommended to inspect raw hook input data?	Use a helper hook with a wildcard matcher (`"matcher": "*"`) running a command like `jq . > log.json` to save the stdin to a file.
In the provided example, which built-in tool was being monitored by the PostToolUse hook?	TodoWrite
Which JSON field indicates whether the Stop hook is currently active?	`stophookactive`
What is the primary purpose of setting `"matcher": "*"` in a helper hook?	To capture every event for that hook type regardless of conditions, allowing complete inspection of the input structure.
When does the UserPromptSubmit hook run?	When a user submits a prompt, before Claude processes it.
