Ce que les équipes vivent :
| Tension | Exemple |
|---|---|
| Productivité vs Qualité | “L’IA code plus vite mais le code est moins maintenable” |
| Apprentissage vs Dépendance | “Les juniors ne comprennent pas ce que l’IA génère” |
| Transparence vs Secret | “Faut-il dire au client que l’IA a écrit le code ?” |
| Standardisation vs Créativité | “Tous les codeurs génèrent le même style” |
# CONVENTIONS_IA.md
## Usage Acceptable
### Interdit
- Commit du code IA sans review humain
- Utiliser l'IA pour des décisions d'architecture sans consensus
- Partager des secrets/API keys avec l'IA
- Générer du code sensible (auth, crypto) sans expert review
### Obligatoire
- Documenter les prompts significatifs dans `prompts/`
- Review IA code comme du code humain
- Maintenir une couverture de tests > 70%
- Signaler les limitations de l'IA dans les commentaires
### Recommandé
- Utiliser AGENTS.md pour le contexte projet
- Préférer les modèles frugaux pour les tâches simples
- Valider les dépendances générées
| Aspect | Question |
|---|---|
| Lisibilité | Le code est-il compréhensible par un humain ? |
| Maintenabilité | Un humain peut-il le modifier sans IA ? |
| Tests | Les tests testent-ils vraiment quelque chose ? |
| Sécurité | Pas de credentials, pas d’injection SQL ? |
| Dépendances | Les packages ajoutés sont-ils légitimes ? |
Junior :
Junior: "L'IA a généré ce code, je le commit."
Senior: "Tu comprends ce qu'il fait ?"
Junior: "Non, mais l'IA l'a dit."
Le problème : Le junior n’apprend pas, dépend de l’IA.
## Règle Junior-Senior
1. Le junior DOIT expliquer le code généré avant de commit
2. Le senior DOIT questionner les choix de l'IA
3. Les décisions d'architecture restent humaines
4. Le code incomprisn'est pas commit
Faut-il déclarer l’usage de l’IA au client ?
Qui est responsable si l’IA génère un bug ?
Le code IA appartient-il à qui ?
┌────────────────────────────────────────────────────────────┐
│ WORKFLOW ÉQUIPE │
│ │
│ 1. Dev A génère avec IA │
│ │ │
│ ▼ │
│ 2. Dev A comprend le code (sinon refuse) │
│ │ │
│ ▼ │
│ 3. Tests passent + lint OK │
│ │ │
│ ▼ │
│ 4. PR avec label "ai-generated" │
│ │ │
│ ▼ │
│ 5. Reviewer vérifie : │
│ - Code quality │
│ - Tests coverage │
│ - Security │
│ │ │
│ ▼ │
│ 6. Merge siapprouvé │
└────────────────────────────────────────────────────────────┘
Exemple de configuration GitLab/GitHub :
# .github/labeler.yml
ai-generated:
- any: ['**/*']
all:
- changed-files:
any-glob-to-any-file: '**/*'
Utilité :
| Outil | Usage |
|---|---|
| Jules (Google) | Travaille sur les PR en background |
| GitHub Copilot for PR | Suggestions automatiques |
| CodeRabbit | Review automatique |
## PR Review Bot Rules
1. Bot comments are suggestions, not requirements
2. Human reviewer has final say
3. Bot reviews supplement, not replace human review
4. Security issues flagged by bot = MUST fix
Situation :
Solution :
## Résolution de Conflits
1. Comparer objectivement :
- Lisibilité
- Maintenabilité
- Performance
- Tests
2. Préférer la compréhension humaine
- Le code que personne ne comprend = supprimer
3. Documenter le choix
- Pourquoi cette approche ?
Voir 10_tp_conventions.md →