The Claude Bible
Accueil / Diagnostic et récupération
Niveau: Avance · 8 lecons

Diagnostic et récupération

Quand les choses tournent mal et comment s'en sortir.

Ouvrir le cours interactif212 lecons, quiz, exercices, 3 langues, gratuit.

Quand Claude tourne en rond

Une boucle survient lorsque Claude répète la même approche sans succès : il retente la même commande, réécrit le même fichier, ou s'excuse avant de reproduire exactement la même erreur. Reconnaître une boucle rapidement permet d'économiser des tokens (les unités de texte que le modèle traite) et d'éviter d'aggraver les erreurs.

La sortie la plus rapide est un changement de périmètre : plutôt que de demander à Claude de réparer l'ensemble défaillant, isolez le plus petit élément qui doit d'abord fonctionner. Donnez à Claude un seul fichier, une seule fonction, ou un seul message d'erreur plutôt que le contexte complet. Un périmètre plus étroit signifie moins de variables et un chemin plus court vers une réponse correcte.

Lorsque restreindre le périmètre ne suffit pas, changez complètement d'approche. Indiquez explicitement à Claude quelle stratégie abandonner et quoi essayer à la place. Des formules comme /clear dans Claude Code (qui réinitialise le contexte de la conversation) ou l'ouverture d'une nouvelle session empêchent les tentatives précédentes ayant échoué d'influencer les suivantes.

Points cles
  • Détecter une boucle en comptant les tentatives identiques répétées
  • Utiliser /clear pour réinitialiser le contexte sans perdre les fichiers
  • Réduire le périmètre à un seul fichier ou une seule fonction
  • Interdire explicitement les stratégies ayant échoué avant de réessayer

Récupérer après une mauvaise modification

Claude Code modifie les fichiers directement sur le disque. Si un changement casse quelque chose, il faut agir vite avant que le contexte grossisse et que l'état d'origine devienne difficile à retrouver. Les deux principales voies de récupération sont le retour arrière via git (quand votre projet utilise git, un système de contrôle de version qui suit chaque modification de fichier) et l'annulation manuelle (quand ce n'est pas le cas).

Quand git est disponible, ces commandes couvrent la plupart des situations :

S'il n'y a pas d'historique git, les options sont plus limitées. Claude Code conserve une transcription de la session, vous pouvez donc lui demander de réafficher le contenu original d'un fichier qu'il a modifié, puis le coller à nouveau. Pour les fichiers critiques, la meilleure habitude est d'exécuter cp important.js important.js.bak avant de démarrer une longue session d'édition.

Vous pouvez aussi demander directement à Claude Code : "Annule la dernière modification de config.js" ou "Reviens en arrière sur tous tes changements de cette session." Claude Code utilisera git en coulisse quand c'est possible, ou tentera de reconstruire le contenu précédent depuis sa fenêtre de contexte (la mémoire active de la conversation).

Points cles
  • git checkout -- fichier pour le restaurer au dernier commit
  • git reset --hard HEAD~1 pour effacer entièrement le dernier commit
  • Demander à Claude Code en langage naturel d'annuler ou de revenir en arrière
  • Sauvegarder manuellement les fichiers critiques avant une grande session

Le contexte s'est pollué

Chaque conversation avec Claude se déroule dans une fenêtre de contexte (le bloc de texte que le modèle peut voir à la fois). Lorsqu'une longue session accumule des tentatives échouées, des instructions contradictoires ou des sorties d'outils bruyantes, le modèle commence à privilégier ce mauvais historique et produit de moins bonnes réponses. C'est ce qu'on appelle la pollution de contexte.

Claude Code vous offre trois niveaux d'intervention, du moins au plus perturbateur :

Une bonne règle empirique : si vous vous retrouvez à ré-expliquer quelque chose que vous avez déjà dit trois messages plus tôt, commencez par compacter. Si Claude se contredit ou ignore une contrainte que vous avez définie, utilisez clear. Si le modèle semble halluciner le contenu de fichiers ou des résultats d'outils, repartez de zéro et relisez explicitement les fichiers pertinents.

Points cles
  • La fenêtre de contexte se remplit et dégrade la qualité des réponses
  • /compact résume, /clear efface, un nouveau départ réinitialise tout
  • Devoir se ré-expliquer est le premier signe d'alerte
  • Un contenu de fichier halluciné nécessite un redémarrage complet

Une API incorrecte ou obsolète

Claude est entraîné sur un instantané figé du monde. Quand vous lui demandez d'appeler une API (une interface de programmation, le contrat qui définit comment deux programmes communiquent), il peut générer du code correspondant à une version plus ancienne de cette API. C'est ce qu'on appelle un appel halluciné ou obsolète : le code paraît plausible mais échouera à l'exécution parce que l'endpoint, le nom du paramètre ou l'en-tête requis n'existe plus.

Le schéma d'échec est généralement l'un des suivants :

La solution est toujours la même : ancrer Claude dans la spécification réelle et actuelle avant de lui demander d'écrire ou de déboguer l'appel. Vous pouvez coller la section pertinente de la documentation officielle directement dans votre prompt, ou pointer Claude Code vers le fichier OpenAPI (description lisible par machine de l'API) en direct avec /fetch. Ne faites jamais confiance à Claude pour connaître une API tierce sans source.

Dans Claude Code (l'agent de codage en ligne de commande et IDE), le flux de travail est le suivant : reproduire l'erreur, collecter la réponse HTTP brute, récupérer la documentation actuelle, puis demander à Claude de comparer son code généré avec la spécification réelle et de ne corriger que ce qui a changé. Gardez la correction chirurgicale pour éviter d'introduire de nouveaux bugs.

Points cles
  • Appel API obsolète : code généré à partir d'une spécification dépassée
  • Ancrer Claude dans la documentation officielle actuelle avant d'écrire les appels
  • Utiliser les codes de statut HTTP bruts pour diagnostiquer la catégorie d'échec
  • Récupérer la spécification OpenAPI en direct avec /fetch, puis demander un correctif ciblé

Vous obtenez une erreur 429

Une erreur 429 signifie "Trop de requetes." L'API (Application Programming Interface, la passerelle que Claude Code utilise pour atteindre Claude) a une limite de débit : un plafond sur le nombre de tokens (morceaux de texte) que vous pouvez envoyer ou recevoir dans une fenêtre de temps donnée. Atteindre ce plafond fait rebondir chaque requête avec un 429 jusqu'à ce que la fenêtre se réinitialise.

Claude Code signale les erreurs 429 par un message d'erreur rouge dans le terminal. Le message inclut généralement une valeur d'en-tête Retry-After, vous indiquant exactement combien de secondes attendre. Si vous êtes sur un plan gratuit ou de niveau 1, la fenêtre est généralement d'une minute ; sur les niveaux supérieurs, les limites s'appliquent aussi par heure et par jour.

Causes courantes des erreurs 429 dans une session Claude Code :

Pour éviter les erreurs 429 : lisez les fichiers de façon incrémentielle avec offset et limit, utilisez le prompt caching (préfixez les parties stables de votre contexte pour qu'elles ne soient pas refacturées à chaque tour), abaissez max_tokens quand vous n'avez pas besoin de longues réponses, et ajoutez une courte pause entre les appels automatisés. Pour les travaux par lots importants, passez à la Batch API, qui a une limite de débit séparée, bien plus élevée, et un rabais de 50 % sur les coûts.

Points cles
  • 429 = limite de débit atteinte, attendez la réinitialisation de la fenêtre
  • L'en-tête Retry-After vous indique le temps d'attente exact
  • Le prompt caching et les lectures incrémentielles réduisent la consommation de tokens
  • La Batch API a une limite séparée et coûte 50 % moins cher

Une commande bloquée

Un processus bloqué est un processus qui a cessé de progresser sans pour autant se terminer. Dans Claude Code, cela se produit généralement quand une commande shell attend indéfiniment une saisie, qu'une requête réseau expire silencieusement, ou qu'une tâche en arrière-plan remplit un tampon. Savoir faire la différence entre "lent" et "vraiment bloqué" vous évite d'interrompre un travail qui a simplement besoin de plus de temps.

La solution la plus rapide est Ctrl+C, qui envoie un signal d'interruption au processus de premier plan. Si le terminal lui-même est gelé, appuyez sur Ctrl+C deux fois rapidement. Claude Code annulera l'appel d'outil en cours et vous rendra le contrôle sans perdre le contexte de la conversation.

Pour les commandes susceptibles de durer longtemps, lancez-les en tant que tâches en arrière-plan en ajoutant run_in_background: true dans les paramètres de l'outil, ou suffixez la commande shell avec &. Vous recevrez une notification à la fin de la tâche au lieu d'attendre de façon bloquante.

Points cles
  • Ctrl+C annule l'appel d'outil actif et rend le contrôle
  • Encadrez les commandes shell risquées avec le préfixe timeout
  • Utilisez run_in_background pour les processus longs ou bloquants
  • /stop arrête une boucle d'agent sans terminer la session

Annuler des modifications en toute sécurité

Git offre plusieurs niveaux d'annulation, chacun adapté à une situation différente. L'essentiel est de savoir lequel utiliser pour récupérer ce dont vous avez besoin sans rien perdre d'autre.

git restore supprime les modifications non validées dans votre répertoire de travail. Exécutez git restore path/to/file.js pour annuler les changements non sauvegardés dans ce fichier et le ramener à son dernier état commité. Ajoutez l'option --staged pour retirer un fichier de la zone de préparation sans toucher aux modifications sur le disque : git restore --staged path/to/file.js.

git checkout (syntaxe plus ancienne, encore largement utilisée) peut faire la même chose pour un fichier unique : git checkout -- path/to/file.js. Il permet aussi de sauter vers un commit ou une branche spécifique, ce qui est utile pour inspecter un état antérieur sans effacer votre travail actuel.

Quand vous pensez avoir perdu un commit, git reflog est votre filet de sécurité. Le reflog (abrégé de "reference log") enregistre chaque position vers laquelle HEAD a pointé, y compris les commits "supprimés" par un reset ou un rebase. Flux de récupération habituel :

Points cles
  • git restore supprime les modifications non validées du répertoire de travail
  • --staged retire de la zone de préparation sans effacer les modifications
  • git reflog liste toutes les positions de HEAD, y compris les commits perdus
  • créer toujours une branche à partir d'un hachage du reflog plutôt que de faire un reset hard

Quand repartir de zéro

Une session Claude Code accumule du contexte (l'historique complet des messages, des appels d'outils et des lectures de fichiers conservés en mémoire). Lorsque ce contexte devient périmé, contradictoire ou simplement trop volumineux, poursuivre la session consomme plus de tokens et produit de moins bons résultats qu'ouvrir une nouvelle session.

Repérez ces signaux indiquant que vouloir sauver la session est la mauvaise décision :

Repartir de zéro ne signifie pas perdre votre travail. Les résumés compressés vous permettent de transporter les décisions essentielles dans la nouvelle session sans le bruit parasite. Utilisez /compact avant de quitter pour comprimer la conversation, puis copiez le résumé au début de votre prochaine session.

La règle pratique : si vous avez passé plus de temps à vous battre contre la session qu'à écrire du code, réinitialisez. Une session propre avec un prompt de passation bien rédigé (un court paragraphe décrivant ce qui a été fait et ce qui vient ensuite) est plus rapide que de maintenir en vie une session défaillante.

Points cles
  • Les boucles répétitives signalent une détérioration du contexte, pas un problème de code.
  • Utilisez /compact pour comprimer l'historique avant de quitter.
  • Un prompt de passation transmet les décisions sans le bruit parasite.
  • Trois échecs d'outils en cascade déclenchent une réinitialisation.
Travailler avec moi

Maitrisez Claude, Claude Code et les LLM, de votre premier prompt a l orchestration multi-agents.

Ce cours vous plait ? Je l ai concu de bout en bout. Besoin d une web app, d une app mobile, d une automatisation IA ou de SEO/GEO ? Parlons-en.

Me contacter sur LinkedInVoir un site que j ai realise