Claude-skill-registry hooks-management
Use PROACTIVELY when you need to create, update, configure, or validate Claude hooks for various events and integrations
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/hooks-management" ~/.claude/skills/majiayu000-claude-skill-registry-hooks-management && rm -rf "$T"
manifest:
skills/data/hooks-management/SKILL.mdsource content
Goal: Create, update or troubleshoot Claude Code hook scripts
Workflow
Phase 1: Exploration & Analysis
- T001: Read hook docs from
.claude/skills/hooks-management/references/hooks.md - T002: Analyze the request and identify if the task is to create, update or troubleshoot a hook.
- T003: Choose the appropriate task to perform based on the request in
.claude/skills/hooks-management/tasks/ - T004: Check existing hooks in
and settings configuration in.claude/hooks/.claude/settings.local.json - T005: Perform the task
- T006: Test the hook execution and edge cases using
(see Testing Strategy)echo - T007: Review security and performance
- T008: Update
to reflect changes.claude/skills/hooks-management/references/hooks-status.md - T009: Update
if architectural changes were made (new modules, utils, patterns).claude/skills/hooks-management/references/architecture-pattern.md - T010: Provide comprehensive report to main agent
Implementation Strategy
- For new hooks: Create script file in
following naming convention.claude/hooks/ - If the task is to troubleshoot, follow the troubleshooting task in
.claude/skills/hooks-management/tasks/troubleshooting.md - If the task is to update, follow the update task in
.claude/skills/hooks-management/tasks/update-hook.md - If the task is to create, follow the create task in
.claude/skills/hooks-management/tasks/create-new-hook.md - Prefer Python over shell scripts if possible.
- Implement idempotent operations where possible
Testing Strategy
Use
echo to pipe test input directly to hook scripts without creating test files:
# Test with sample JSON input echo '{"session_id": "test-123", "tool": "Read", "result": "sample output"}' | python .claude/hooks/your-hook.py # Test with minimal input echo '{}' | python .claude/hooks/your-hook.py # Test error handling with malformed input echo 'invalid json' | python .claude/hooks/your-hook.py # Test with specific event data echo '{"event": "stop", "reason": "user_request"}' | python .claude/hooks/your-hook.py
Testing Checklist:
- Hook accepts valid JSON input via stdin
- Hook handles empty input gracefully
- Hook handles malformed input without crashing
- Hook returns appropriate exit codes (0 for success, non-zero for errors)
- Hook output is valid JSON when required by the event type
Constraints
- Must update
to link hooks.claude/settings.local.json - Must test hooks after generation without creating test files
- Never create hooks that modify critical system files
- Never implement hooks with hardcoded credentials
- Never write hooks that can cause infinite loops
- Never bypass security validations or access controls
- Never create hooks without proper error handling
- Never create test files when testing hooks
- Never write complicated hooks with complex logic. Keep it simple and straightforward.
Success Criteria
- Hook script exists and is syntactically valid
- Hook is properly linked in
settings.local.json - Hook executes successfully on target event
- Error handling covers common failure scenarios
- No security vulnerabilities detected
reference updated to reflect current hook statehooks-status.md
updated if architectural changes were madearchitecture-pattern.md- Comprehensive report provided to main agent upon completion
- Code is readable and concise.