Install any skill in seconds. Free to start, no credit card required.
Get Started Free →athola/hook-scope-guide
Select hook scope (plugin, project, global) by audience.
Passed 19 of 22 test cases with the skill, and 3 of 22 without it.
and 20 more in the full report
16 fixed3 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 16 test cases the skill fixed. Same model, same prompt, with and without the skill.
If both a global hook in ~/.claude/settings.json and a project hook in .claude/settings.json match the same PreToolUse event, which hook executes first?
| Checked | Without skill | With skill |
|---|---|---|
| States that all matching hooks execute in parallel rather than sequentially | Missed | Passed |
The instructions your model reads when the skill loads.
This skill helps you choose the right location for Claude Code hooks based on their purpose, audience, and persistence needs.
abstract:hook-authoring)abstract:hooks-eval)
hooks/hooks.jsonis automatically loaded by Claude Code when the plugin is enabled. Do NOT add"hooks": "./hooks/hooks.json"to yourplugin.json- this causes duplicate load errors. Thehooksfield inplugin.jsonis only needed for additional hook files beyond the standardhooks/hooks.json.
| Scope | Location | Audience | Committed? | Persistence |
|---|---|---|---|---|
| Plugin | hooks/hooks.json in plugin | Plugin users | With plugin | When plugin enabled |
| Project | .claude/settings.json | Team members | Yes (repo) | Per project |
| Global | ~/.claude/settings.json | Only you | Never | All sessions |
Only plugin users → Plugin hooks
All team members on this project → Project hooks
/src/production/ configsOnly me, everywhere → Global hooks
test cases passed, vs 3 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.