What
When a hook (a command set up to run automatically at certain moments) is not registered, Claude Code now gives a reason:
- its script is in a dot-folder (a folder whose name starts with a dot) that this machine does not read hooks from, with advice to check the script and move it to
~/.claude/hooks - it would run through your
CLAUDE_CODE_SHELL_PREFIX, which this machine cannot verify - its script is missing
A separate status reads that the hook is not registered yet and your next message tries again.
Why
If you define hooks, a skipped hook now comes with something you can act on instead of disappearing silently.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
Where in Claude Code these reasons are shown is not established.