5.1 — Stochastique vs Déterministe : pourquoi les hooks existent
Depuis le début de cette formation, tu configures Claude Code avec des fichiers CLAUDE.md, des instructions projet, et des conventions d'équipe. Tout cela fonctionne -- la plupart du temps. Le problème fondamental : CLAUDE.md est consultatif. Claude le lit, l'interprète, et fait de son mieux. Mais "de son mieux" n'est pas une garantie. Un LLM peut oublier une instruction, mal l'interpréter, ou juger qu'elle ne s'applique pas dans un contexte donné.
Les hooks résolvent ce problème. Ce sont des commandes shell ou des prompts LLM qui s'exécutent automatiquement à des points précis du cycle de vie de Claude Code. Ils ne sont pas "suggérés" -- ils sont exécutés. Quand tu configures un hook qui bloque les suppressions de fichiers, ce hook s'exécutera à chaque tentative, sans exception.
Pense à la différence entre un panneau "vitesse limitee a 50 km/h" (CLAUDE.md) et un radar automatique qui flashe systématiquement (hooks). Le premier informe, le second enforce.
Les hooks se configurent en JSON dans tes fichiers de settings (.claude/settings.json pour le projet, ~/.claude/settings.json pour le global) et se déclenchent sur des événements précis du cycle de vie : démarrage de session, utilisation d'outil, arrêt, compaction de contexte, notification. Chaque événement est un point d'interception où tu peux brancher un ou plusieurs hooks.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "echo '{\"décision\": \"deny\", \"reason\": \"Commande bloquée par hook\"}'",
"timeout": 5
}
]
}
]
}
}
Deux types de hooks sont disponibles : command (script shell déterministee) et prompt (évaluation LLM contextuelle). Le premier est rapide et prédictible, le second est capable de jugement sémantique. Le choix entre les deux dépend de la nature de la vérification.
À retenir
• CLAUDE.md = advisory (Claude essaie de respecter) ; hooks = déterministeic (exécution garantie)
• Deux types de hooks : command (shell) et prompt (LLM)
• Configuration JSON dans les fichiers settings (projet ou global)
• Les hooks sont le mécanisme d'enforcement professionnel de Claude Code