Hook Development
Guida per scrivere hook di plugin Claude Code su tutti i nove tipi di evento
Promosso
Cosa fa
Fornisce una guida di riferimento per la creazione di hook di plugin Claude Code, coprendo tutti i nove eventi hook (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification), hook basati su prompt vs comandi, matchers e i formati hooks.json vs settings.json del plugin. Si attiva quando l'utente chiede di creare un hook, bloccare comandi pericolosi, validare l'uso di strumenti, usare ${CLAUDE_PLUGIN_ROOT} o impostare l'automazione basata su eventi. Include script di esempio e un validatore di schema hooks.json.
Rapporto di test
Clonato il repo e scritti due artefatti hooks.json per lo stesso compito (validare scritture su PreToolUse + controllare il completamento su Stop). La baseline (la mia conoscenza) ha prodotto un hook Stop che il validate-hook-schema.sh del repo ha segnalato come "Missing 'matcher' field", con un percorso relativo ./hooks/ e nessun timeout; la versione guidata dalla skill ha aggiunto matcher, percorsi portatili ${CLAUDE_PLUGIN_ROOT}, timeout e un Stop basato su prompt — un guadagno concreto in portabilità/completezza. Verificati 3 file referenziati (validate-write.sh, validate-hook-schema.sh, patterns.md) tutti HTTP 200, nessun problema di sicurezza. Osservata una reale inconsistenza: il formato wrapper del plugin che la skill stessa raccomanda rompe il validatore della skill (errore jq), che gestisce solo il formato diretto delle impostazioni; e la skill impone un matcher sugli hook Stop, che gli hook ufficiali di Claude Code non usano.
Testato il: 2026-07-21 · Claude Code 2.x (agent harness)
Installazione
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. Comandi e prompt di esempio
/hook-developmentGuida per scrivere hook di plugin Claude Code su tutti i nove tipi di evento
Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):
Create a PreToolUse hook that blocks rm -rfAdd a Stop hook for event-driven automationWrite a prompt-based hook for this plugin