# CLAUDE.md — Prompts IA pour tâches de développement
## Section 1 : Structure universelle
Chaque prompt de code efficace contient 4 éléments :
```
Stack: [langage + version + framework + contexte projet]
Tâche: [instruction précise avec verbe d'action]
Contraintes: [ce qu'il ne faut PAS toucher ou faire]
Format de sortie: [diff / code complet / explication / liste de problèmes]
```
**Règle d'or** : code et fichiers EN PREMIER, instruction à la FIN. Améliore la précision de ~30% sur les gros contextes.
**Pour les gros prompts**, structurer avec des balises XML :
```xml
PHP 8.1, Laravel 10
Ajouter la pagination
Ne pas toucher getFilteredProducts()
[fichiers]
```
---
## Section 2 : Bug fix
```
Stack: [langage + version + framework]
Comportement actuel: [symptôme exact — message d'erreur, valeur retournée, condition de déclenchement]
Comportement attendu: [ce que le code devrait faire]
J'ai déjà essayé: [tentatives précédentes et pourquoi elles ont échoué]
Code: [code minimal qui reproduit le bug]
```
**Point critique** : "J'ai déjà essayé" est obligatoire. Sans cette ligne, l'IA re-suggère exactement ce qui a déjà été tenté.
**Exemple** :
```
Stack: PHP 8.1 + PDO, Laravel 10.
Comportement actuel: Call to a member function fetch() on bool — uniquement quand l'ID n'existe pas.
Comportement attendu: Retourner null si l'utilisateur n'existe pas.
J'ai déjà essayé: isset($result) avant fetch() — même erreur.
Code: [fonction getUserById]
```
---
## Section 3 : Nouvelle feature
```
Stack: [contexte technique]
Contexte d'intégration: [composants existants à utiliser, patterns du projet]
Tâche: [description précise]
Critères d'acceptance:
- [comportement 1]
- [comportement 2]
Hors scope:
- [ce qu'on ne veut PAS maintenant]
Fichiers concernés: [liste des fichiers]
```
**Point critique** : le hors scope. Dire ce qu'on ne veut PAS est aussi important que ce qu'on veut — sinon l'IA sur-engineer ou invente des contraintes.
---
## Section 4 : Refactoring
```
Problème concret: [impact réel — pas "c'est sale" mais pourquoi c'est un vrai problème]
Objectif: [ce qu'on veut obtenir]
Contraintes absolues:
- Comportement observable inchangé (les tests existants doivent passer sans modification)
- Ne pas modifier les signatures des méthodes publiques
- [autres contraintes spécifiques]
Scope: [ce qui est IN — ce qui est OUT]
Code: [le code à refactorer]
```
**Point critique** : "les tests existants doivent passer sans modification" est non-négociable. Sans ça, l'IA change l'API publique.
---
## Section 5 : Code review
```
Contexte: [type d'endpoint, données en entrée, auth en place, qui appelle ce code]
Focus: [un seul angle : sécurité / performance / logique métier / architecture]
Décisions intentionnelles (ne pas signaler):
- [décision 1]
- [décision 2]
Format de sortie: [gravité + description + fix avec code / liste simple]
Code: [code à reviewer]
```
**Point critique** : "décisions intentionnelles" réduit le bruit de signal de moitié. L'IA ne signale pas ce qu'on sait déjà.
**Angles disponibles** :
- Sécurité : injection, path traversal, IDOR, upload malveillant, auth bypass
- Performance : N+1 queries, allocations inutiles, index manquants, cache
- Logique métier : edge cases, états incohérents, invariants violés
- Architecture : couplage, responsabilités, contrats d'interface
---
## Section 6 : Techniques transversales
### Deux passes pour les tâches complexes
**Passe 1** : "Qu'est-ce qui ne va pas ? Liste les problèmes sans les corriger."
**Passe 2** : "Maintenant corrige les problèmes 1, 2 et 4. Ignore le 3."
Résultats de la passe 2 significativement plus précis qu'une demande tout-en-un.
### Verbes d'action (Claude 4.x)
Claude 4.x est littéral :
- "Suggère des changements" → liste de suggestions, ne modifie rien
- "Modifie cette fonction" → modification directe
Utiliser des verbes d'action : **Modifie, Corrige, Extrais, Renomme, Supprime, Refactorise**.
### Scoring de référence
| Type de prompt | Score typique |
|----------------|---------------|
| Vague ("fix this") | 2–3/10 |
| Avec stack + erreur | 5–6/10 |
| Template complet (4 éléments) | 8–9/10 |
| Template + XML + two-pass | 9–10/10 |