01 / Architecture as narrative
Make layered hook configuration explicit
The hooks section lists user-global, project, and project-local settings in increasing precedence. Agents can inspect the correct layer instead of assuming the first configuration file controls behavior.
Source excerpt starting at line 59.59 - **Config locations** (lowest to highest precedence):60 - `~/.claude/settings.json`, `~/.continue/settings.json` (user-global)61 - `.claude/settings.json`, `.continue/settings.json` (project)62 - `.claude/settings.local.json`, `.continue/settings.local.json` (project-local)
02 / Architecture as narrative
Define the protocol meaning of exit codes
The guide distinguishes a blocked operation from an error that should not block it. It also states how stderr becomes feedback when a hook rejects an action.
Source excerpt starting at line 63.63 - **Exit code semantics**: 0 = proceed, 2 = block (stderr becomes feedback), other = non-blocking error
03 / Architecture as narrative
Name unsupported hook types
The hook inventory separates implemented command and HTTP handlers from prompt and agent handlers that are not implemented. This keeps a familiar configuration name from being mistaken for a supported feature.
Source excerpt starting at line 65.65 - **Hook types**: `command` (shell), `http` (POST request), `prompt`/`agent` (not yet implemented)
04 / Good and bad pairs
Show the import spelling required by the build
The build section connects the package's module setup with explicit file extensions. A short contrasting example gives an agent the syntax needed for relative imports.
Source excerpt starting at line 89.89- Relative import paths require explicit file extensions, e.g. 'from "./test.js"' instead of 'from "./test"'