hooks.md +5 −3
2413```2413```
2414 2414
2415| Field | Description |2415| Field | Description |
24162416| :------- | :--------------------------------------------------------- || :------- | :------------------------------------------------------- |
24172417| `ok` | `true` allows the action, `false` prevents it || `ok` | `true` allows the action, `false` blocks it |
24182418| `reason` | Required when `ok` is `false`. Explanation shown to Claude || `reason` | Required when `ok` is `false`. Explanation for the block |
2419
2420For `Stop` and `SubagentStop`, an `ok: false` reason is fed back to Claude as its next instruction and the turn continues. For all other supported events, the turn ends and the reason appears in the chat as a warning line; Claude does not see it. This is equivalent to returning `"continue": false` from a command hook. If you need different blocking semantics on those events, use a [command hook](#command-hook-fields) with the per-event fields described in [Decision control](#decision-control).
2419 2421
2420### Example: Multi-criteria Stop hook2422### Example: Multi-criteria Stop hook
2421 2423