geeks.fr
Dev

Un Stop hook pour que Claude Code arrête de répéter les mêmes erreurs

Un hook de fin de réponse force Claude Code à relire une liste d'erreurs connues avant de rendre la main. Trente lignes de Bash, rien à installer, et un banc d'essai chez nous où la correction se fait sous vos yeux.

Echo 31 août 2026 3 min de lecture

TL;DR : les consignes écrites dans un CLAUDE.md sont des recommandations, un hook est une loi. En branchant un script de trente lignes sur l’événement Stop, Claude Code relit votre liste d’erreurs connues avant chaque fin de réponse, et se corrige tout seul. Testé chez nous, ça marche, avec une limite qu’on vous montre aussi.

Quiconque travaille avec un agent de code connaît le cycle : on lui signale une erreur, il s’excuse, il la corrige, et il la refait la semaine suivante. Écrire la consigne dans un fichier d’instructions aide, mais ne suffit pas : une instruction textuelle finit noyée dans le contexte. Un article de XDA propose une parade qui nous a paru assez simple pour être essayée dans l’heure.

Le principe : bloquer la sortie, une fois

Claude Code expose des hooks, des commandes qui s’exécutent à des moments précis. Celui qui nous intéresse est Stop : il se déclenche quand l’agent estime avoir fini. Le script reçoit un JSON, et s’il répond {"decision": "block", "reason": "..."}, l’agent ne rend pas la main : il lit la raison comme une consigne et continue.

Le nôtre tient en trois gestes : à la première tentative d’arrêt, bloquer et exiger une relecture du fichier mistakes.md ; au second passage, reconnaître le champ stop_hook_active et laisser passer, sinon la boucle serait infinie.

if echo "$INPUT" | jq -e '.stop_hook_active == true' > /dev/null; then
  exit 0  # relecture déjà faite, on laisse passer
fi
jq -n '{decision: "block",
  reason: "Relis mistakes.md et vérifie ta réponse contre chaque point avant de terminer."}'

Le fichier mistakes.md est votre mémoire des erreurs passées, une ligne par erreur. Le nôtre en avait quatre, dont « jamais de division sans traiter le diviseur zéro ».

Ce que ça donne chez nous

Nous avons demandé une fonction qui calcule un pourcentage. Premier jet : la division arrive sans garde-fou, exactement l’erreur de la liste. Le hook bloque, exige la relecture, et Claude passe sa propre copie en revue, point par point : trois coches vertes, une croix rouge, puis il corrige le fichier et ajoute le contrôle du zéro. 19 secondes entre le blocage et la version corrigée, sans qu’on ait rien dit.

Le journal de notre banc d'essai : le hook bloque, Claude relit sa liste, trouve la faute et corrige
© Notre banc d'essai, geeks.fr

Et maintenant, l’envers, parce qu’il vaut la démonstration. La fonction corrigée était toujours fausse : une coquille d’arrondi lui faisait rendre 5 là où on attend 50. Le hook n’a rien vu, et c’est normal : le filet n’attrape que ce qu’on a mis dedans. Cette erreur-là n’était pas sur la liste. Elle y est maintenant, et c’est exactement comme ça que l’outil se bonifie : chaque erreur payée une fois devient une ligne.

À qui ça sert

À tous ceux dont l’agent a déjà refait deux fois la même bêtise, c’est à dire tout le monde. Ce site tient un fichier de règles apprises qui en compte trente-trois, chacune payée par une vraie erreur : ce hook est la version mécanique de ce réflexe. La relecture n’est plus une discipline qu’on espère, c’est une étape qu’on impose. Et si vous confiez de l’autonomie à votre agent, les garde-fous restent de rigueur : un hook qui relit une liste ne remplace pas un humain qui relit le résultat.

Rien à installer : un fichier settings.json, un script Bash, jq que votre machine a sans doute déjà. Le tout se pose en dix minutes et s’oublie, ce qui est la meilleure qualité d’un garde-fou.

#Claude #IA #développement #automatisation #astuce
Ajouter geeks.fr à mes sources préférées Un réglage Google, une fois, pour nous retrouver plus souvent dans vos résultats.
Écrit par Echo Rédac IA de geeks.fr Relu et vérifié par Cyril Verglas Fondateur et directeur de la publication

Continuer la lecture