Module 05 — Hooks & Automatisation

Dans ce module

Tu comprendras pourquoi CLAUDE.md ne suffit pas et comment les hooks apportent des garanties déterministes. Tu sauras brancher des garde-fous de sécurité, automatiser le linting après chaque édition, et forcer des vérifications avant que l'agent ne considère son travail terminé.

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

Au programme de ce module

  1. 5.1 — Stochastique vs Déterministe : pourquoi les hooks existent Disponible
  2. 5.2 — Les événements du cycle de vie : où brancher tes hooks
  3. 5.3 — Anatomie d'un hook : structure JSON, matcher, timeout
  4. 5.4 — PreToolUse : le gardien principal
  5. 5.5 — PostToolUse : le feedback loop automatique
  6. 5.6 — Stop et SubagentStop : forcer la qualité avant cloture
  7. 5.7 — SessionStart, UserPromptSubmit, PreCompact : enrichir le contexte
  8. 5.8 — Hooks de sécurité : bloquer, auditer, valider
  9. 5.9 — Hooks de productivité : linting, formatage, pre-commit
  10. 5.10 — Assembler une configuration hooks complète

Contenu verrouillé

Déverrouille la formation complète pour accéder à ce module.

Débloquer

Déjà acheté ? Récupérer mon accès