Aller au contenu
Mastering Claude

Accueil / Une installation structurée

Une installation structurée10 minApplication

Hooks et battement de coeur

Les événements du cycle de vie déclenchent des hooks selon trois cadences distinctes, SessionStart et SessionEnd forment la paire naturelle pour automatiser le protocole mémoire, et la consolidation nocturne reste une tâche planifiée du système d'exploitation à construire soi même, pas un mécanisme Claude Code documenté sous ce nom.

Un hook est une action automatique déclenchée par le harnais sur un événement précis du cycle de vie, jamais une préférence que le modèle choisit de suivre ou non. Le tableau des événements disponibles s'est étoffé depuis la mi-2026, la figure qui accompagne cette leçon en chiffre le compte exact et sa date de mesure plutôt que de le répéter ici.

Trois cadences, une paire naturelle pour la mémoire

Les événements de hook ne se déclenchent pas tous au même rythme. Certains tournent une seule fois par session, SessionStart et SessionEnd. D'autres tournent une fois par tour, comme UserPromptSubmit ou Stop. D'autres encore tournent à chaque appel d'outil à l'intérieur de la boucle d'agent, PreToolUse et PostToolUse. Pour le protocole mémoire décrit dans brancher la mémoire de fichiers sur git, SessionStart et SessionEnd forment exactement la paire recherchée : un hook SessionStart déclenche le pull avant la première lecture, un hook SessionEnd déclenche le commit et le push après la dernière réponse. Les hooks SessionEnd partagent un budget de 1,5 seconde à eux tous, un push vers un remote distant n'y tient pas : il faut un timeout explicite dans le hook, ce qui relève le budget partagé jusqu'à soixante secondes, et un fichier témoin écrit à la fin pour que la session suivante vérifie que le push a réussi plutôt que de le supposer.

{
  "hooks": {
    "SessionStart": [
      { "hooks": [{ "type": "command", "command": "cd ~/memoire && git pull", "timeout": 30 }] }
    ],
    "SessionEnd": [
      { "hooks": [{ "type": "command", "command": "cd ~/memoire && git add notes-du-jour.md && git commit -m sync && git push && date > .dernier-sync-reussi", "timeout": 55 }] }
    ]
  }
}

Deux détails de cet exemple comptent autant que le timeout. D'abord, l'ajout git cite les fichiers voulus plutôt qu'un git add -A qui engloberait tout le dossier sans filtre, ce qui respecterait la règle posée par la leçon précédente de grep un secret avant tout push. Ensuite, la sortie standard d'un hook SessionStart, comme celle de ce git pull, entre dans le contexte que Claude peut lire, contrairement à la plupart des autres événements : un dossier partagé mérite donc d'être surveillé avant de brancher ce genre de hook. La ligne de statut suit la même logique de déclenchement automatique : elle peut se rafraîchir seule à un intervalle réglé en secondes, et non en millisecondes comme un réglage plus ancien pourrait le laisser croire.

La consolidation nocturne reste hors du produit documenté

Une tâche planifiée du système d'exploitation, qui relance Claude en mode non interactif au milieu de la nuit pour consolider les notes de la journée, n'a pas d'équivalent documenté par Anthropic sous ce nom précis : ce que la documentation nomme des tâches planifiées tourne dans l'application de bureau, pas via une tâche Windows ou un cron pilotant l'outil en ligne de commande. Le geste reste donc à construire soi même, exactement comme le protocole de la leçon précédente, avec un garde fou anti boucle explicite : la tâche ne relance jamais une nouvelle session tant que la précédente n'a pas écrit son témoin de fin.

Figure 1

Ce qui a mesurablement changé depuis la mi-2026

33événements
dénombrés dans le tableau des événements de hook du cycle de vie disponibles
code.claude.com/docs/en/hooks, 2026-09-02
1seconde
valeur minimale acceptée pour le rafraîchissement automatique de la ligne de statut
code.claude.com/docs/en/statusline, 2026-09-02
Le tableau des événements de hook comptait environ trente entrées à la mi-2026, il en compte trente trois au moment de la mesure, et l'intervalle de rafraîchissement de la ligne de statut se règle en secondes, avec un minimum d'une seconde.
Figure 2

Une journée avec le protocole mémoire branché sur les hooks

Matin
Ouverture de session
Le hook SessionStart exécute le pull du dossier mémoire avant la première réponse.
Journée
Travail de la journée
Les événements PreToolUse et PostToolUse tournent à chaque appel d'outil, sans intervention manuelle.
Soir
Fermeture de session
Le hook SessionEnd commite et pousse les notes écrites depuis le dernier pull.
Nuit
Tâche planifiée
Un déclencheur du système d'exploitation, hors du produit documenté sous ce nom, relance une session non interactive pour consolider, avec un verrou de fichier qui refuse tout second lancement tant que le premier n'a pas écrit son témoin de fin.
La chronologie montre les quatre moments où le protocole mémoire dépend d'un déclencheur automatique plutôt que d'un geste manuel, du pull d'ouverture au garde fou de la tâche nocturne.
Calibrez vous-même

Un administrateur ajoute un hook SessionEnd qui exécute git push sur le dossier mémoire, relance Claude Code, travaille pendant une heure, puis ferme la session avec la commande de sortie normale. Le journal du hook indique une exécution réussie.

Écrivez en une phrase ce que cette situation établit, et en une phrase ce qu'elle n'établit pas.

Ce qu’il faut retenir
  • Un hook est une action exécutée par le harnais sur un événement précis, jamais une préférence que le modèle décide de suivre ou non.
  • Les événements de hook se répartissent en trois cadences, une fois par session, une fois par tour, et une fois par appel d'outil, et SessionStart avec SessionEnd forment la paire naturelle pour un protocole de mémoire.
  • Le budget partagé de 1,5 seconde des hooks SessionEnd ne suffit pas à un git push distant : sans timeout explicite dans le hook et sans témoin de fin, le push peut être coupé sans que rien ne le signale.
  • Le nombre d'événements de hook disponibles a grandi depuis la mi-2026, la liste précise se vérifie dans la documentation en vigueur, et l'intervalle de rafraîchissement automatique de la ligne de statut se règle en secondes, pas en millisecondes.
  • Une consolidation nocturne relancée par une tâche planifiée du système d'exploitation reste une technique à construire soi même, elle n'a pas d'équivalent documenté par Anthropic sous ce nom.
À faire maintenant

Écrivez dans votre settings.json un hook SessionStart qui exécute un pull sur votre dossier mémoire, un hook SessionEnd qui commite et pousse, puis ouvrez et fermez une session de test pour confirmer que les deux commandes se sont bien exécutées.

Vérifier à la source

Chaque affirmation datable de cette leçon renvoie ici au texte public qui la porte. Une source qui ne s’ouvre pas ne prouve rien.