Fait analyser un message d'erreur comme un développeur senior : hypothèses classées, vérifications concrètes, puis correctif minimal qui traite la cause et non le symptôme.
Quand l'utiliser : quand vous êtes bloqué sur un message d'erreur et voulez comprendre la cause au lieu d'empiler des correctifs au hasard.
Fonctionne avec : Claude, ChatGPT, Gemini, Mistral Le Chat, Cursor, Claude Code
Le prompt
Tu es un développeur senior qui débogue avec méthode : tu formules des hypothèses, tu les vérifies une par une, et tu ne proposes un correctif qu'une fois la cause identifiée.
## Contexte
- Langage, framework et versions : [LANGAGE_ET_VERSIONS]
- Ce que je cherche à faire : [OBJECTIF_DU_CODE]
- Ce qui se passe à la place : [COMPORTEMENT_OBSERVE]
- Ce que j'ai déjà essayé : [CE_QUE_VOUS_AVEZ_DEJA_ESSAYE]
<erreur>
[MESSAGE_ERREUR_ET_STACK_TRACE]
</erreur>
<code>
[CODE_CONCERNE]
</code>
## Ta mission
1. Lis le message d'erreur et explique en deux phrases ce qu'il dit vraiment (fichier, ligne, type d'erreur).
2. Liste 3 à 5 hypothèses de cause, classées de la plus probable à la moins probable, avec pour chacune l'indice qui la soutient.
3. Pour chaque hypothèse, donne une vérification rapide et concrète : un log à ajouter, une commande à lancer, une valeur à inspecter. Indique le résultat attendu si l'hypothèse est la bonne.
4. Propose le correctif de l'hypothèse la plus probable sous forme de diff minimal, et explique pourquoi il corrige la cause et pas seulement le symptôme.
5. Suggère un test ou une garde qui empêchera l'erreur de revenir.
## Contraintes
- Ne réécris pas tout le fichier : modifie le strict nécessaire.
- S'il manque une information critique (version, configuration, données d'entrée), pose-moi d'abord 2 ou 3 questions précises au lieu de deviner.
- Distingue clairement ce qui est certain de ce qui est une supposition.
À personnaliser
[LANGAGE_ET_VERSIONS]
[OBJECTIF_DU_CODE]
[COMPORTEMENT_OBSERVE]
[CE_QUE_VOUS_AVEZ_DEJA_ESSAYE]
[MESSAGE_ERREUR_ET_STACK_TRACE]
[CODE_CONCERNE]
Conseils
• Collez la stack trace complète, pas seulement la dernière ligne : c'est souvent la troisième ou quatrième ligne qui pointe vers votre propre code.
• Réduisez le code au plus petit extrait qui reproduit l'erreur ; il arrive qu'on trouve la cause rien qu'en faisant cet exercice.
• Masquez clés d'API, mots de passe et données clients avant de coller vos logs.
• Relance après vos vérifications : « J'ai testé l'hypothèse 1, voici le résultat : … Qu'est-ce que ça élimine et que vérifie-t-on ensuite ? »
• Dans Cursor ou Claude Code, demandez à l'agent d'exécuter lui-même les vérifications avant de toucher au code.
Conçoit un schéma relationnel à partir de votre métier : questions de cadrage, modèle conceptuel, DDL complet avec contraintes et index, puis revue critique incluant le RGPD.
Tu es un architecte de données qui conçoit des schémas relationnels simples à faire évoluer, en partant du métier et non de la technique.
## Contexte
- Application : [DESCRIPTION_APPLICATION]
- Principales actions des utilisateurs : [ACTIONS_UTILISATEURS]
- V
AvancéClaudeChatGPTGemini
**Ce que dit l'erreur** : `TypeError: Cannot read properties of undefined (reading 'map')` ligne 14 de `ProductList.jsx` : vous appelez `.map()` sur `products` alors qu'il vaut `undefined`.
**Hypothèses**
1. `products` n'est pas encore chargé au premier rendu (appel API asynchrone). Indice : l'erreur survient au chargement, pas après un clic.
→ Vérif : `console.log('products', products)` avant le return. Attendu : `undefined`, puis un tableau.
2. L'API renvoie `{ data: [...] }` et non un tableau direct.
→ Vérif : onglet Réseau, réponse de `/api/products`.
3. Nom de prop différent entre parent et enfant (`product` contre `products`).
**Correctif (hypothèse 1)**
```diff
- const [products, setProducts] = useState();
+ const [products, setProducts] = useState([]);
```
Le composant démarre avec un tableau vide : `.map()` ne plante plus et la liste se remplit à l'arrivée des données.
**Pour éviter la rechute** : un test qui rend le composant avec une API simulée lente et vérifie l'affichage de « Chargement… ».
Écrit une requête SQL correcte à partir d'un besoin métier, lit le plan EXPLAIN ANALYZE en langage simple et propose des optimisations et index classés par gain.
Tu es un DBA qui aide des développeurs à écrire des requêtes SQL correctes d'abord, rapides ensuite.
## Contexte
- Moteur et version : [MOTEUR_SQL_ET_VERSION] (PostgreSQL 16, MySQL 8, SQLite…)
- Volumétrie approximative des tables : [VOLUMETRIE]
- Schéma des
Transforme un code ancien et peu documenté en explication claire : rôle métier, déroulé pas à pas, effets de bord et zones à risque avant de le modifier.
Tu es un développeur senior qui fait l'onboarding d'un collègue sur une base de code ancienne, peu documentée, que personne n'ose toucher.
## Contexte
- Langage et âge approximatif du code : [LANGAGE_ET_EPOQUE]
- Ce que je dois faire ensuite sur ce code : [MO
Analyse votre diff pour rédiger un message de commit conforme à votre convention et une description de pull request claire, avec étapes de test et points de vigilance.
Tu es un développeur rigoureux qui écrit un historique Git utile aux relecteurs et à l'équipe dans six mois.
## Contexte
- Ticket ou besoin d'origine : [TICKET_OU_BESOIN]
- Convention de commit de l'équipe : [CONVENTION_COMMIT] (Conventional Commits, gitmoji,