Hook Development
Conseils pour écrire des hooks de plugin Claude Code pour les neuf types d'événements
Testé · Fonctionne
Ce que fait
Fournit des conseils de référence pour la création de hooks de plugin Claude Code, couvrant les neuf événements de hook (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification), les hooks basés sur des prompts vs des commandes, les matchers, et les formats hooks.json vs settings.json des plugins. Se déclenche lorsque l'utilisateur demande de créer un hook, de bloquer des commandes dangereuses, de valider l'utilisation d'outils, d'utiliser ${CLAUDE_PLUGIN_ROOT}, ou de configurer une automatisation événementielle. Fournit des scripts d'exemple et un validateur de schéma hooks.json.
Rapport de test
Le dépôt a été cloné et deux artefacts hooks.json ont été écrits pour la même tâche (valider les écritures sur PreToolUse + vérifier l'achèvement sur Stop). La version de base (mes propres connaissances) a produit un hook Stop que le validate-hook-schema.sh du dépôt a signalé comme "Missing 'matcher' field", avec un chemin relatif ./hooks/ et sans timeouts ; la version guidée par la compétence a ajouté un matcher, des chemins portables ${CLAUDE_PLUGIN_ROOT}, des timeouts, et un Stop basé sur un prompt — un gain concret en portabilité/complétude. Vérification ponctuelle de 3 fichiers référencés (validate-write.sh, validate-hook-schema.sh, patterns.md) tous HTTP 200, pas de failles de sécurité. Une incohérence réelle a été observée : le format de wrapper de plugin que la compétence elle-même recommande casse le propre validateur de la compétence (erreur jq), qui ne gère que le format de paramètres directs ; et la compétence impose un matcher sur les hooks Stop, que les hooks officiels Claude Code n'utilisent pas.
Testé le: 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. Commandes et exemples de prompts
/hook-developmentConseils pour écrire des hooks de plugin Claude Code pour les neuf types d'événements
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
Create a PreToolUse hook that blocks rm -rfAdd a Stop hook for event-driven automationWrite a prompt-based hook for this plugin