Claude écrit du code, un test échoue, et il te renvoie l'erreur à traiter.
Un agent auto-correcteur ne fait pas ça : il lit son propre échec, corrige la cause, et relance jusqu'à ce que tout soit vert.
Configure-le une fois et tu cesses d'être le débogueur bénévole de ton agent.
Voici la configuration complète dont tu as besoin 👇
Avant de plonger, je partage des notes quotidiennes sur l'IA et le vibe coding dans mon canal Telegram : https://t.me/zodchixquant 🧠

Pourquoi un seul passage ne suffit pas
Par défaut, Claude exécute une tâche une seule fois. Un test échoue, il signale l'erreur et attend. Tu lis, tu colles l'erreur, tu lui dis de réessayer. C'est toi qui débogues, lui ne fait que taper.
Un agent auto-correcteur inverse ce processus. Il lit son propre échec, détermine le type de bogue, corrige cette cause, puis relance, comme le ferait un débogueur. Tu n'interviens que quand ça passe ou qu'il est vraiment bloqué.
Fichier 1 : la commande de correction
C'est la boucle que tu exécutes réellement. Place-la dans .claude/commands/fix.md :
1---2description: Exécute une tâche et s'auto-corrige jusqu'à ce que tous les tests passent3argument-hint: <tâche>4allowed-tools: Read, Write, Edit, Glob, Grep, Bash5model: sonnet6---78Tâche : $ARGUMENTS910Boucle :111. Implémente la tâche.122. Exécute la suite de tests : `npm test` (ou pytest, cargo test).133. Si tous les tests passent : arrête-toi et montre-moi le résultat.144. Si un test échoue : classifie le type d'erreur, nomme la cause racine,15 corrige cette cause, puis retourne à l'étape 2.165. Limite à 5 tentatives. Annonce le numéro de chaque tentative à chaque tour.1718L'ordre classifie-puis-corrige est le cœur du principe. Diagnostic avant19édition, à chaque tour. N'affaiblis jamais un test pour le faire passer, corrige le code.
Tu tapes /fix ajouter la pagination au point de terminaison utilisateurs et l'agent écrit, teste et se répare jusqu'à ce que la suite soit verte.
Fichier 2 : le hook de vérification automatique
La commande fonctionne à la demande. Le hook rend la vérification automatique à chaque édition.
Ajoute ceci dans .claude/settings.json :
1{2 "hooks": {3 "PostToolUse": [4 {5 "matcher": "Write|Edit",6 "hooks": [7 { "type": "command", "command": "npm test --silent 2>&1 | tail -5 || echo 'TESTS EN ÉCHEC, corrige avant de continuer'" }8 ]9 }10 ]11 }12}
Maintenant, chaque fois que Claude modifie un fichier, les tests s'exécutent et le résultat revient directement dans son champ de vision.
Un échec apparaît immédiatement, donc l'agent le corrige dans le même flux au lieu de passer à autre chose et d'empiler d'autres modifications sur un code cassé.
Fichier 3 : apprendre à lire l'erreur
C'est le fichier qui distingue un vrai débogueur d'un devineur. La plupart des agents voient "test échoué" et commencent à éditer au hasard.
Un bon agent lit d'abord le type d'erreur, car chaque type pointe vers une cause différente. Place ceci dans CLAUDE.md :
1## Comment lire un échec avant de le corriger23Nomme toujours d'abord le type d'erreur. Chacun signifie quelque chose de différent :45- Échec d'assertion (attendu X, obtenu Y) : la logique est erronée.6 Remonte de l'assertion jusqu'à l'endroit où la valeur a été construite.7 Corrige le calcul, pas l'attente du test.89- Erreur de type / undefined is not a function : une incompatibilité de forme.10 Quelque chose est nul, ou le mauvais type a atteint cette ligne.11 Trouve l'origine de cette valeur, protège-la ou corrige-la là-bas.1213- Timeout / blocage : un await manque, ou une promesse ne se résout jamais.14 Cherche des appels asynchrones sans await, ou une condition qui ne change jamais.1516- Import / module introuvable : un problème de chemin ou de dépendance, pas de logique.17 Corrige le chemin ou installe, ne touche pas au code qui l'utilise.1819- Instable (passe parfois) : état partagé ou problème de timing, jamais aléatoire.20 Cherche des tests dépendants de l'ordre ou du temps/réseau non simulé.2122Règle : énonce le type et la cause racine en une phrase à voix haute23avant d'éditer. Si tu ne peux pas nommer la cause, tu devines. Arrête-toi.
Une erreur de type et un échec d'assertion nécessitent des actions opposées : l'une est un problème de forme des données en amont, l'autre une logique erronée à cet endroit. Classe d'abord et l'agent corrige la bonne chose.
Saute cette étape et il édite au hasard jusqu'à ce que le rouge disparaisse, ce qui donne une suite verte mais discrètement cassée.
Ce que tu vois concrètement
Tu tapes une ligne :
1/fix le formateur de date renvoie des fuseaux horaires erronés
Ensuite, ça travaille tout seul :
1Tentative 12 tests exécutés → ÉCHEC3 type : assertion (attendu 5, obtenu 11)4 cause : taille de page non appliquée à la requête5 clause LIMIT corrigée67Tentative 28 tests exécutés → ÉCHEC9 type : erreur de type (offset est indéfini)10 cause : page 1 n'envoie pas d'offset, valeur par défaut erronée11 offset = (page-1)*size ajouté1213Tentative 314 tests exécutés → TOUT VERT (7/7)1516Corrigé en 3 tentatives. Voir le diff ?
Tu n'as jamais eu à coller une erreur. Il a lu ses propres échecs, nommé chaque cause, et corrigé jusqu'à ce que la suite réussisse.
Erreurs courantes
Corriger avant de diagnostiquer. La plus grosse. Un agent qui édite avant de nommer le type d'erreur devine, et deviner rend le vert par chance, pas par correction. La règle de classifier d'abord est la seule défense.
Traiter toutes les erreurs de la même manière. Un timeout et un échec d'assertion n'ont rien en commun, mais un agent sans le guide des types d'erreur traite les deux comme "quelque chose cloche" et édite la ligne la plus proche. La moitié de tes corrections atterrissent dans le mauvais fichier.
Corriger le symptôme. Envelopper un appel qui lance une exception dans un try/catch fait passer le test mais laisse le bogue. Le protocole interdit d'étouffer les erreurs pour cette raison précise.
Laisser affaiblir les tests. Un agent autorisé à modifier les tests finira par supprimer celui qui échoue pour atteindre le vert. Une suite qui passe mais ne prouve rien est le pire résultat, donc cette règle est non négociable.
La configuration en 5 minutes
2 minutes : crée .claude/commands/fix.md.
1 minute : ajoute le hook PostToolUse dans settings.json.
1 minute : ajoute le protocole d'auto-débogage dans CLAUDE.md.
1 minute : exécute /fix sur un bogue connu et regarde-le travailler sur la cause, tentative après tentative.
Tu cesses d'être l'humain qui relaie les erreurs. L'agent lit son propre rouge et corrige jusqu'à ce que ce soit vert. Il n'est pas devenu plus intelligent, il a juste arrêté de te renvoyer le problème.
Merci d'avoir lu !
Je partage des notes quotidiennes sur l'IA, la finance et le vibe coding dans mon canal Telegram : https://t.me/zodchixquant






