Hooks
Les hooks sont des accélérateurs et des garde-fous — ils ne remplacent pas les plans, les contrats, les revues ou les
contrôles. Chaque route est adressée par event + routeId + matcher, et les routes de garde
échouent de façon fermée.
Routes gérées
Section intitulée « Routes gérées »| Événement | Route | Matcher | Fait |
|---|---|---|---|
SessionStart | .default | toutes les sessions | injecte le paquet de reprise de la session précédente |
PreToolUse | .edit 🛡 | Edit / Write | retient les éditions jusqu’à ce qu’un plan soit approuvé |
PreToolUse | .subagent 🛡 | Task / Agent | délimite le travail délégué |
PostToolUse | .edit | Edit / Write | contrôles de dérive d’architecture + de contrat |
PostToolUse | .bash | Bash | trace les commandes shell |
PostToolUse | .always | tous les outils | ajoute à la trace d’événements |
UserPromptSubmit | .default | tous les prompts | route l’intention, fait remonter l’état du plan |
Stop | .default 🛡 | arrêt de session | écrit le prochain paquet de handoff |
🛡 = échoue de façon fermée.
Où ils résident
Section intitulée « Où ils résident »La source installable est assets/hooks/ ; le runtime actif résout en priorité le central.
Les fichiers utilisateur ~/.claude/settings.json et ~/.codex/hooks.json sont les adaptateurs hôtes
qui dispatchent chaque événement dans le harness. Les fichiers repo-local .claude/hooks/ et
.codex/hooks.json sont des cibles de nettoyage héritées — seuls vos propres hooks custom-*.sh sont
préservés.