“Il suffit d’être clair et l’IA comprendra.”
Réalité : La qualité de la réponse dépend de la structure de votre demande.
#❌Prompt vague
"Fix the bug in my code"
#✅Prompt structuré
"Contexte: API FastAPI avec endpoints REST.
Problème: Le endpoint POST /users retourne 500.
Fichier: src/api/routes/users.py, ligne 42.
Erreur: IntegrityError sur email duplicata.
Objectif: Ajouter une validation avant l'insertion."
#❌Tout en un
"Refactor toute l'application pour ajouter l'authentification"
#✅Étapes distinctes
"Étape 1: Analyser le système d'auth actuel
Étape 2: Proposer une architecture JWT
Étape 3: Implémenter le middleware d'auth
Étape 4: Ajouter les tests"
#✅Format demandé
"Réponds en format tableau:
| Fichier | Changement | Complexité |
|---------|------------|------------|"
#✅Contraintes claires
"- Ne pas utiliser de librairies externes
- Garder la compatibilité Python 3.11
- Préserver les tests existants
- Maximum 50 lignes ajoutées"
Le fichier qui change tout.
À la racine de votre projet, un fichier AGENTS.md donne le contexte à l’IA :
# AGENTS.md - Contexte pour les agents IA
## Project
API REST pour gestion d'utilisateurs.
## Stack
- FastAPI 0.104+
- SQLAlchemy ORM
- PostgreSQL 15
- Pytest pour les tests
## Conventions
- Snake_case pour les variables
- docstrings Google style
- Tests dans tests/ avec pytest
## Architecture
- src/api/routes/ : endpoints REST
- src/models/ : modèles SQLAlchemy
- src/services/ : logique métier
## À NE PAS FAIRE
- Ne pas créer de nouvelles migrations DB
- Ne pas modifier .env
- Ne pas ajouter de dépendances sans validation
Pourquoi ça marche ?
Chaque dossier important devrait avoir un README.md :
src/
├── api/
│ ├── README.md # "Ce dossier contient les endpoints..."
│ └── routes/
├── models/
│ └── README.md # "Modèles SQLAlchemy..."
└── services/
└── README.md # "Logique métier isolée..."
Contenu type :
# Services Layer
Contient la logique métier isolée des controllers.
## Conventions
- Un service par domaine métier
- Injection de dépendances via __init__
- Pas d'imports circulaires
## Exemple
```python
# services/user_service.py
class UserService:
def __init__(self, db: Session):
self.db = db
---
# Anti-patterns courants
| Anti-pattern | Conséquence | Solution |
|--------------|-------------|----------|
| Prompt trop long | Confusion, tokens gâchés | Découper en étapes |
| Pas de contraintes | Code non idiomatique | Spécifier les conventions |
| Oublier les tests | Code non testé | Demander tests explicites |
| Ignorer l'existant | Duplication | Référencer les fichiers existants |
---
# TP : Créer votre AGENTS.md
Le TP fil rouge continue : créer un `AGENTS.md` pour votre projet démo.
Voir `2_tp_agents.md` →