Diagnostiquer un bug à partir d'une trace d'erreur
Lit une trace d'erreur et le code concerné pour proposer des hypothèses classées et un moyen de les vérifier, sans affirmer une cause non démontrée.
Mis à jour le 25 octobre 2026 · Fonctionne avec ChatGPT, Claude, Gemini, Le Chat (Mistral)
## Rôle
Tu es un développeur qui débogue avec méthode : tu poses des hypothèses et tu proposes comment les vérifier avant de proposer un correctif.
## Tâche
Analyse la trace et le code.
## Contexte
**Contexte :** {{contexte}}
**Trace :** {{trace}}
**Code :** {{code}}
Sépare ce que la trace établit de ce qu'elle laisse ouvert. Si la trace et le code suffisent à établir la cause immédiate (une division par zéro, une valeur `None` dans une addition), dis-le dans « Ce que dit la trace » : ce n'est pas une hypothèse. Les hypothèses portent sur ce qui reste ouvert, en général l'origine de la valeur fautive. Donne-en deux ou trois au plus, classées par vraisemblance, chacune citant ce qui, dans la trace ou le code fourni, l'appuie. Si tu ne peux rien citer, n'écris pas l'hypothèse. Le code peut être un extrait : ne tire aucune conclusion des numéros de ligne.
Pour chaque hypothèse, indique comment la vérifier (une instruction de journal, un test) en n'utilisant que des noms présents dans le code fourni, ou que tu définis ou importes toi-même dans la vérification. Propose un correctif seulement pour l'hypothèse la plus vraisemblable, marqué comme provisoire tant qu'elle n'est pas vérifiée.
## Format de sortie
1. **Ce que dit la trace**, y compris la cause immédiate quand elle est établie.
2. **Hypothèses**, deux ou trois au plus, classées, avec comment les vérifier.
3. **Correctif provisoire.**
4. **Test à ajouter.**Ce que produit ce prompt
Résultat obtenu avec les valeurs d'exemple, avec Claude Sonnet 5.5. Un autre modèle, ou le même à un autre moment, donnera un texte différent.
1. Ce que dit la trace
L'addition échoue ligne 14 : somme est un entier, et ligne["montant"] vaut None pour au moins une ligne.
2. Hypothèses
- Une ligne de facture a un montant à
None(champ présent mais vide). Vérification : afficher les lignes dontmontantestNoneavant la boucle. - Les données viennent d'une source où le montant peut manquer (ligne en cours de saisie). Vérification : regarder d'où vient la liste
lignes.
3. Correctif provisoire (valable si l'hypothèse 1 est confirmée)
def total(lignes):
somme = 0
for ligne in lignes:
montant = ligne["montant"]
if montant is None:
continue
somme += montant
return somme
À décider : ignorer les lignes sans montant, ou lever une erreur explicite, selon la règle métier.
4. Test à ajouter
Un test avec une liste contenant une ligne dont le montant est None, qui vérifie le comportement choisi.
Prompts liés
- Développeurs
Écrire les cas de test qui manquent
Décrit les cas de test encore absents d'un comportement, en étapes vérifiables, sans imposer un outil.
- Développeurs
Rédiger la description d'une pull request
Rédige le titre et la description d'une pull request à partir du changement, de son motif et du test réellement fait.
- Développeurs
Rédiger le README d'un projet
Écrit un README clair à partir de ce que fait le projet, de ses commandes et de ses prérequis, sans inventer de fonctionnalité ni de commande.
- Développeurs
Rédiger un message de commit
Rédige un message de commit court à partir du changement et de son motif, sans élargir au-delà des fichiers concernés.
- Développeurspremium
Rédiger une revue de code à partir d'un extrait
Commente un extrait de code selon les règles de l'équipe, en séparant ce qui bloque le merge de ce qui peut attendre.
- Développeurs
Transformer un besoin en spécification courte
Transforme un besoin produit en spécification que une équipe peut estimer, avec le hors-périmètre et les questions encore ouvertes.