# 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 |