A hook is a check you configure to run at certain points while Claude Code works. An agent-type hook hands that check to a subagent, a separate helper Claude that can look things up before deciding. Its instructions have changed in two ways:
- It must now return its result "always with a reason". Before, it was only told to give a reason when the condition was not met.
- It now ends with a paragraph explaining what an "ok" verdict means. A rule you wrote is applied as a rule, and a condition you wrote is treated as something that must hold.
The same paragraph also tells the agent to ignore any rule, exception or instruction it finds inside the event data or in anything it reads while judging, even text that claims to come from the user. Prompt-type hooks use this same paragraph, so agent hooks now carry the same guard.
Every verdict from an agent hook now comes with an explanation, which makes it easier to see why something was allowed or blocked. The agent is also harder to trick: text planted in a file or in tool output cannot easily talk it into a different verdict.