hookify: example rule files lack the hookify. filename prefix, so copied examples silently never load
plugins/hookify/core/config_loader.py discovers rules with the glob .claude/hookify.*.local.md (line 210), and the writing-rules skill documents the hookify. prefix as mandatory, listing danger.local.md (missing hookify prefix) under bad names (SKILL.md lines 286-298).
The plugin's own examples ship without the prefix:
plugins/hookify/examples/console-log-warning.local.md
plugins/hookify/examples/dangerous-rm.local.md
plugins/hookify/examples/require-tests-stop.local.md
plugins/hookify/examples/sensitive-files-warning.local.md
The docs (help.md, list.md, SKILL.md lines 324-327) point users at examples/ with no rename instruction. A file copied verbatim into .claude/ is silently dead: the glob never matches it, no error is shown, and the rule never fires. This matches hookify's known silent-failure pattern.
Verified by copying each example into a scratch project's .claude/ and running the real load_rules(): all four are invisible to the loader; after renaming with the prefix, all four are discovered (three active, require-tests-stop correctly parsed but inactive since it ships enabled: false). Happy to open a PR renaming the examples and updating the filename references.
Showing cached comments. Read the full discussion on GitHub ↗
3 Comments
PR #79148 is open for this. It renames the four example rule files to the
hookify.prefix and updates the references inskills/writing-rules/SKILL.md, so a copied example is picked up by the loader glob. Verified against the realload_rules(): before the change all four are invisible, after it all four are discovered, withrequire-tests-stopcorrectly inactive because it shipsenabled: false.I have a fix ready on my fork: sepehrtaji-dev:fix/hookify-example-filenames
The patch renames the four example rule files with the required
hookify.prefix so a user who copies one verbatim into.claude/gets a working rule instead of a silently dead one:examples/console-log-warning.local.md→examples/hookify.console-log-warning.local.mdexamples/dangerous-rm.local.md→examples/hookify.dangerous-rm.local.mdexamples/require-tests-stop.local.md→examples/hookify.require-tests-stop.local.mdexamples/sensitive-files-warning.local.md→examples/hookify.sensitive-files-warning.local.mdIt also updates the filename references in
README.md,commands/hookify.md,commands/list.md, andskills/writing-rules/SKILL.md. All renamed files now match the discovery globhookify.*.local.md, and no stale references to the old names remain.PR creation appears to be limited to collaborators on this repository at the moment, so I'm linking the branch here instead — happy to open a proper PR if invited.
A fix is in https://github.com/Faizankhan17623/claude-code/commit/ed29abf432b84499e9ce830849947aabcec272e0 (the repo takes PRs from collaborators only, so I can't open one). The four files in
plugins/hookify/examples/are renamed tohookify.*.local.md, the name the loader globs for, and the list inskills/writing-rules/SKILL.mdfollows. Copied into.claude/, the enabled examples now load.