Stop hooks (and other hook types) were not firing because they were
missing the required "matcher" field. According to the hook development
documentation, all hooks must have a matcher field - "*" for wildcard
matching.
Changes:
- Add matcher: "*" to all hooks in hookify, ralph-wiggum,
explanatory-output-style, and learning-output-style plugins
- Update validate-hook-schema.sh to properly handle plugin format
(with 'hooks' wrapper) vs settings format (events at root)
- Add validate-all-hooks.sh script to validate all hooks.json files
Fixes: https://anthropic.slack.com/archives/C08EHE6JF3L/p1765822035850959
Add interactive learning mode plugin that requests meaningful code contributions at decision points. Based on the unshipped Learning output style, this plugin engages users in active learning by having them write 5-10 lines of code for business logic, error handling, and design decisions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>