Hook Development

Richtlijnen voor het schrijven van Claude Code plugin-hooks voor alle negen event-typen

Door tzachbon · tzachbon/smart-ralph

Getest · Werkt ★ 8.4/10

Hook Development — Richtlijnen voor het schrijven van Claude Code plugin-hooks voor alle negen event-typen

Wat het doet

Biedt referentierichtlijnen voor het schrijven van Claude Code plugin-hooks, inclusief alle negen hook-events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification), prompt-gebaseerde versus commando-hooks, matchers, en de plugin hooks.json versus settings.json formaten. Wordt geactiveerd wanneer de gebruiker vraagt om een hook te maken, gevaarlijke commando's te blokkeren, toolgebruik te valideren, ${CLAUDE_PLUGIN_ROOT} te gebruiken, of event-gestuurde automatisering in te stellen. Levert voorbeeldscripts en een hooks.json schema-validator.

Testrapport

De repo gekloond en twee hooks.json-artefacten geschreven voor dezelfde taak (validate writes op PreToolUse + check completion op Stop). Baseline (mijn eigen kennis) produceerde een Stop-hook die de eigen validate-hook-schema.sh van de repo markeerde als "Missing 'matcher' field", met een relatief ./hooks/-pad en geen timeouts; de skill-geleide versie voegde matcher, ${CLAUDE_PLUGIN_ROOT} draagbare paden, timeouts en een prompt-gebaseerde Stop toe — een concrete winst in draagbaarheid/volledigheid. 3 gerefereerde bestanden gecontroleerd (validate-write.sh, validate-hook-schema.sh, patterns.md) allemaal HTTP 200, geen beveiligingsrisico's. Een echte inconsistentie waargenomen: het plugin-wrapper-formaat dat de skill zelf aanbeveelt, verbreekt de eigen validator van de skill (jq error), die alleen het directe instellingenformaat verwerkt; en de skill verplicht een matcher op Stop-hooks, die officiële Claude Code-hooks niet gebruiken.

Getest op: 2026-07-21 · Claude Code 2.x (agent harness)

Installatie

git clone --depth 1 https://github.com/tzachbon/smart-ralph.git /tmp/hook-development-src
mkdir -p ~/.claude/skills
cp -R "/tmp/hook-development-src/.agents/skills/Hook Development" ~/.claude/skills/hook-development
# SKILL.md lands at ~/.claude/skills/hook-development/SKILL.md
# Utility scripts (scripts/validate-hook-schema.sh, test-hook.sh, hook-linter.sh) require `jq` on PATH.
# Note: the validator parses the DIRECT settings-format hooks.json, not the {"hooks":{...}} plugin
#   wrapper the SKILL recommends — feed it the inner events object, or it errors with a jq index error.

Commando's en voorbeeldprompts

  • /hook-developmentRichtlijnen voor het schrijven van Claude Code plugin-hooks voor alle negen event-typen

Skills reageren op gewone verzoeken — geen commando's om te onthouden. Na installatie activeren prompts zoals deze de skill (in het Engels):

  • Create a PreToolUse hook that blocks rm -rf
  • Add a Stop hook for event-driven automation
  • Write a prompt-based hook for this plugin