Hook Development

Anleitung zum Schreiben von Claude Code Plugin-Hooks für alle neun Ereignistypen

von tzachbon · tzachbon/smart-ralph

Getestet · Funktioniert ★ 8.4/10

Hook Development — Anleitung zum Schreiben von Claude Code Plugin-Hooks für alle neun Ereignistypen

Was es kann

Bietet Referenzanleitung zum Erstellen von Claude Code Plugin-Hooks, die alle neun Hook-Ereignisse (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification), prompt-basierte vs. Befehls-Hooks, Matcher und die Plugin hooks.json vs. settings.json Formate abdecken. Wird ausgelöst, wenn der Benutzer einen Hook erstellen, gefährliche Befehle blockieren, die Tool-Nutzung validieren, ${CLAUDE_PLUGIN_ROOT} verwenden oder ereignisgesteuerte Automatisierung einrichten möchte. Liefert Beispielskripte und einen hooks.json Schema-Validator.

Testbericht

Das Repo geklont und zwei hooks.json-Artefakte für dieselbe Aufgabe geschrieben (validate writes on PreToolUse + check completion on Stop). Die Baseline (mein eigenes Wissen) produzierte einen Stop-Hook, den das repo-eigene validate-hook-schema.sh als "Missing 'matcher' field" kennzeichnete, mit einem relativen ./hooks/-Pfad und ohne Timeouts; die Skill-geführte Version fügte matcher, ${CLAUDE_PLUGIN_ROOT} portable Pfade, Timeouts und einen prompt-basierten Stop hinzu – ein konkreter Gewinn an Portabilität/Vollständigkeit. 3 referenzierte Dateien (validate-write.sh, validate-hook-schema.sh, patterns.md) stichprobenartig überprüft, alle HTTP 200, keine Sicherheitsmängel. Eine reale Inkonsistenz wurde beobachtet: Das vom Skill selbst empfohlene Plugin-Wrapper-Format bricht den eigenen Validator des Skills (jq error), der nur das direkte Einstellungsformat verarbeitet; und der Skill schreibt einen Matcher für Stop-Hooks vor, den offizielle Claude Code-Hooks nicht verwenden.

Getestet am: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

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.

Befehle & Beispiel-Prompts

  • /hook-developmentAnleitung zum Schreiben von Claude Code Plugin-Hooks für alle neun Ereignistypen

Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):

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