Prompt Engineering
L'anatomie d'un prompt qui tient en production
Anatomie d'un prompt qui marche, par modèle. Bibliothèque copiable par cas d'usage.
- 01Structurer un prompt efficace : rôle, contexte, tâche, contraintes, format
- 02Adapter le style de prompt selon le modèle (Claude, GPT, Gemini, Copilot)
- 03Utiliser la technique du « Claude Interview »
- 04Constituer une bibliothèque de prompts réutilisables
1. L'anatomie d'un prompt de qualité
Un prompt de développement performant contient 5 éléments. Aucun n'est optionnel pour les tâches complexes.
Framework R.C.T.C.F.
Exemple — vague vs structuré
Prompt vague :
Prompt structuré :
Différence : le second prompt réduit à zéro les ambiguïtés. L'IA sait exactement ce qu'on attend, dans quel contexte, avec quelles contraintes.
2. Techniques avancées
2.1 La technique "Claude Interview"
Au lieu de tout spécifier toi-même, laisse l'IA identifier ce qui manque.
Quand l'utiliser : pour les features nouvelles ou complexes où tu ne sais pas encore exactement ce que tu veux.
Résultat : une spec validée avant d'écrire une seule ligne de code. Commence ensuite une nouvelle session avec cette spec comme contexte.
2.2 L'injection documentaire Just-in-Time
Problème : le modèle ne connaît pas tes librairies internes ou les APIs trop récentes.
Solution : n'injecte pas toute la documentation — injecte uniquement les signatures d'interface pertinentes.
// À éviter
"Lis toute la doc de notre AuthService et implémente..."
// Bonne approche
"Voici l'interface de notre AuthService :
interface AuthService {
login(credentials: LoginDto): Promise<TokenPair>;
refresh(refreshToken: string): Promise<TokenPair>;
logout(userId: string): Promise<void>;
}
Implémente maintenant le LoginController en utilisant STRICTEMENT
ces méthodes. N'invente aucune méthode non listée ici."
2.3 La critique itérative (Reviewer Pattern)
Ne corrige pas manuellement le code généré par l'IA. Demande-lui de se relire elle-même.
Pourquoi. Si tu corriges à la main, l'IA ne sait pas ce qui n'allait pas elle refera la même erreur au prochain prompt. En la forçant à se relire avec un rôle et des critères précis, toi tu comprends pourquoi son premier jet était mauvais, et tu peux mettre à jour ton prompt (ou ton fichier de contexte — CLAUDE.md / AGENTS.md / GEMINI.md) pour qu'elle ne reproduise plus l'erreur.
Résultat : réduit la complexité cyclomatique et améliore la lisibilité sans effort humain supplémentaire.
2.4 Le Plan Mode (Explore sans écrire)
Avant toute implémentation sur du code existant :
3. Différences par modèle
Claude (Anthropic)
Style optimal : contexte riche en amont, demandes de clarification bienvenues.
Spécificités :
- Répond mieux aux instructions procédurales étape par étape
- Très bon pour respecter les contraintes negatives ("ne fais pas X")
- Le tag
<context>...</context>améliore la séparation signal/bruit - Préfixe tes règles critiques avec
IMPORTANT:ouYOU MUST:
<context>
Stack: NestJS 10, TypeScript 5.3, PostgreSQL 15
Pattern: Repository + Service + Controller
Voir fichier existant : @src/users/users.service.ts
</context>
IMPORTANT: N'utilise pas de raw SQL. Utilise uniquement TypeORM QueryBuilder.
Tâche : Ajoute une méthode findByEmailOrUsername(query: string) au UserRepository.
Gemini (Google)
Style optimal : structure ta demande avec des sections claires, cite tes sources.
Spécificités :
- Très bon pour les tâches qui nécessitent de montrer son raisonnement ("show your work")
- Supporte les très longs context windows → bon pour analyser tout un module
- Répond bien aux demandes de comparaison et de synthèse
ChatGPT / GPT-4o (OpenAI)
Style optimal : format d'abord, puis contenu.
Spécificités :
- Très réactif aux exemples de format en début de prompt
- Bon pour les tâches structurées avec des sorties prédictibles (JSON, tables)
- Le system prompt a un impact fort sur le ton et la forme
4. Bibliothèque de prompts essentiels
Analyse & debug
Génération de code
Tests
Revue sécurité
Documentation
Refactoring
5. Les anti-patterns de prompt
| Anti-pattern | Exemple | Pourquoi c'est mauvais | Fix |
|---|---|---|---|
| Trop vague | "améliore ce code" | L'IA improvise selon ses propres critères | Spécifier les critères d'amélioration |
| Trop autoritaire | "sois clean et SOLID" | Vague, interprétation variable | Donner des exemples concrets |
| Contexte absent | "répare le bug" | L'IA ne sait pas ce qui est cassé | Coller le stack trace + contexte |
| Correction en boucle | Corriger 3× sans changer de prompt | Le contexte se pollue, qualité baisse | /clear + nouveau prompt enrichi |
| Demande trop large | "réécris tout le module" | Résultat imprévisible, non reviewable | Découper en étapes atomiques |