Le développement logiciel à l'ère de l'intelligence artificielle. Patterns, outils, sécurité et nouvelles responsabilités du PO-Developer.
L'AI-Driven Development (développement piloté par l'IA) désigne une nouvelle approche du développement logiciel où l'intelligence artificielle n'est plus un simple outil de suggestion, mais devient un véritable partenaire de développement. Contrairement à la simple autocomplétion de code, l'AI-Driven Dev implique que l'IA comprend le contexte de votre projet, peut générer des fonctionnalités complètes, déboguer, refactorer, écrire des tests, et même prendre des décisions architecturales.
| Génération | Période | Paradigme | Exemple |
|---|---|---|---|
| Gen 1 : Autocomplétion | 2021-2023 | L'IA suggère la ligne suivante | GitHub Copilot v1, TabNine |
| Gen 2 : Chat & Edit | 2023-2024 | L'IA répond à des questions et édite des blocs | ChatGPT, Cursor Chat, Copilot Chat |
| Gen 3 : Agents Autonomes | 2024-2026 | L'IA exécute des tâches complexes de bout en bout | Claude Code, Devin, Aider, OpenHands |
Pensez à l'évolution comme ceci : Gen 1 = votre GPS vous dit de tourner à droite. Gen 2 = votre GPS vous explique pourquoi tourner à droite et propose des alternatives. Gen 3 = votre GPS conduit la voiture pour vous, mais vous gardez le volant et pouvez reprendre le contrôle à tout moment.
L'AI-Driven Dev ne s'applique pas de la même façon à tous les projets. Il existe un spectre d'utilisation qui va du simple copilote au système entièrement autonome :
| Profil | Usage Principal | Niveau Typique |
|---|---|---|
| Développeur junior | Apprendre, comprendre du code, générer du boilerplate | Niveau 1-2 |
| Développeur senior | Refactoring, review, prototypage rapide, écriture de tests | Niveau 2-3 |
| Tech Lead / Architecte | Génération d'architecture, documentation, analyse de codebase | Niveau 2-3 |
| DevOps / SRE | Scripts d'automatisation, IaC, debugging de pipelines | Niveau 2-3 |
| Indie Hacker / Solopreneur | Création de produits complets avec un agent IA | Niveau 3-4 |
| Data Engineer | Pipelines ETL, transformations SQL, modélisation | Niveau 2-3 |
L'AI-Driven Dev ne remplace pas les développeurs — il transforme leur rôle. Le développeur moderne devient un architecte et superviseur plutôt qu'un simple rédacteur de code. Les compétences clés évoluent :
| Outil | Éditeur | Modèle par défaut | Forces | Prix |
|---|---|---|---|---|
| Claude Code | Terminal (agnostique) | Claude Sonnet 4 / Opus 4 | Agent terminal puissant, compréhension profonde du code, outils filesystem + bash | ~$0.01-0.10/tâche (API) |
| Cursor | IDE dédié (fork VSCode) | Claude / GPT-4o / custom | IDE natif IA, @codebase search, multi-fichiers, agent mode | $20/mois Pro |
| GitHub Copilot | VSCode, JetBrains, Neovim | GPT-4o / Claude | Intégration GitHub native, workspace agent, multi-fichiers | $10-19/mois |
| Aider | Terminal | Claude / GPT / Gemini | Open-source, git-aware, diffs propres, multi-modèle | Gratuit (+ coût API) |
| Windsurf (Codeium) | IDE dédié (fork VSCode) | Cascade (propriétaire) | Flows persistants, mémoire de conversation longue | Freemium |
| OpenHands (ex-OpenDevin) | Web / Terminal | Multi-modèle | Open-source, sandbox Docker, agent autonome complet | Gratuit (+ coût API) |
| Gemini CLI | Terminal | Gemini 2.5 Pro/Flash | 1M tokens de contexte, Google search intégré, gratuit | Gratuit (quota généreux) |
| Situation | Outil Recommandé | Pourquoi |
|---|---|---|
| Écrire du code au quotidien dans un IDE | Cursor ou Copilot | Intégration native, autocomplétion + chat |
| Tâche complexe multi-fichiers | Claude Code ou Aider | Agents terminaux capables de modifier 10+ fichiers |
| Prototypage rapide d'un projet | Claude Code + MCP | Création de projets complets en quelques minutes |
| Codebase legacy à comprendre | Cursor (@codebase) ou Claude Code | Indexation et recherche sémantique du code |
| Open-source / budget limité | Aider ou Gemini CLI | Gratuit ou coût API uniquement |
| CI/CD et automatisation | Claude Code (headless) ou GitHub Copilot | Exécution en mode non-interactif dans les pipelines |
| Exploration avec contexte énorme | Gemini CLI | Fenêtre de 1M tokens, idéal pour les gros monorepos |
Vous pouvez créer un projet complet en une seule commande :
$ claude
> Crée une API REST en Go avec :
- CRUD utilisateurs avec PostgreSQL
- Authentification JWT
- Middleware de logging
- Tests unitaires
- Dockerfile + docker-compose.yml
- Documentation OpenAPI
Claude Code va créer toute l'arborescence, écrire le code, lancer les tests, et itérer jusqu'à ce que tout compile et passe.
Sélectionnez un fichier de 500 lignes et demandez :
@codebase Refactore ce fichier en suivant les principes SOLID.
Extrait les responsabilités dans des fichiers séparés.
Ajoute des interfaces pour l'injection de dépendances.
Garde la rétrocompatibilité avec les tests existants.
$ aider --model claude-sonnet-4
> /add src/services/payment.go
> Écris des tests unitaires complets pour PaymentService.
Inclus les cas : paiement réussi, carte refusée,
timeout réseau, montant invalide, devise non supportée.
Utilise des mocks pour le client Stripe.
$ claude
> Le test TestPaymentTimeout échoue avec "context deadline exceeded".
Analyse le code de PaymentService.ProcessPayment(),
identifie la cause, propose un fix,
et vérifie que tous les tests passent après le fix.
L'agent va lire le code, comprendre le flow, identifier le problème, appliquer le fix, et relancer les tests automatiquement.
> Analyse toutes les routes HTTP dans cmd/server/
et génère une documentation OpenAPI 3.0 complète
avec des exemples de requêtes/réponses pour chaque endpoint.
> Migre ce module de Python 2 à Python 3.
Gère les changements de print, unicode, division,
imports relatifs, et dict.keys()/values()/items().
Vérifie que les tests passent après migration.
# .github/workflows/ai-review.yml
- name: AI Code Review
run: |
claude --print "Review cette diff git pour :
- Bugs potentiels et edge cases
- Problèmes de sécurité
- Violations des conventions du projet (voir CLAUDE.md)
- Opportunités d'optimisation"
Le cycle de développement assisté par IA suit une boucle itérative :
| Phase | Activité Humaine | Activité IA | Outils |
|---|---|---|---|
| 1. Spécification | Décrire le besoin en langage naturel | Clarifier, poser des questions, proposer une architecture | Claude Code, Chat |
| 2. Design | Valider les choix architecturaux | Générer des diagrammes, proposer des patterns | Claude Code + MCP |
| 3. Implémentation | Superviser et guider | Écrire le code, créer les fichiers | Claude Code, Cursor, Aider |
| 4. Tests | Définir les scénarios critiques | Écrire les tests, atteindre la couverture cible | Agent + test runner |
| 5. Review | Relire le code généré, valider | Proposer des améliorations, détecter des patterns | CI/CD + AI review |
| 6. Deploy | Approuver le déploiement | Générer les configs, Dockerfiles, IaC | Claude Code headless |
| 7. Monitor | Surveiller les alertes | Analyser les logs, proposer des hotfixes | MCP + monitoring tools |
L'humain garde toujours le contrôle. L'IA propose, l'humain dispose. Chaque commit, chaque déploiement, chaque décision architecturale doit être validé par un humain. C'est la règle d'or de l'AI-Driven Dev.
Voici la vérité que personne ne vous dit : le vibe coding sans direction, c'est du bruit. L'IA peut écrire du code, mais elle ne sait pas quoi construire, pourquoi le construire, ni pour qui. C'est votre rôle. Vous n'êtes plus développeur — vous êtes Product Owner, Architecte, et Chef de Projet. L'IA est votre équipe de développement illimitée.
Vous pensez, l'IA exécute. Vous définissez le QUOI et le POURQUOI, l'IA gère le COMMENT. Si vous ne pouvez pas expliquer clairement ce que vous voulez construire et pourquoi, aucun agent IA ne pourra le faire pour vous. La compétence n°1 de 2026 n'est plus de coder — c'est de spécifier avec précision.
| Phase | Votre Rôle (PO) | Le Rôle de l'IA | Livrable | Durée Typique |
|---|---|---|---|---|
| 1. VISION | Identifier le problème réel, valider le marché, dire NON à 90% des idées | Recherche marché, analyse compétitive, brainstorming structuré | One-pager : problème + solution + utilisateur cible | 1-3 jours |
| 2. SPEC | Écrire les user stories, définir les critères d'acceptation, prioriser (MoSCoW) | Générer le CLAUDE.md, proposer l'architecture, estimer la complexité | CLAUDE.md + backlog priorisé + architecture decision records | 1-2 jours |
| 3. BUILD | Superviser, valider les choix, review le code critique | Écrire le code, créer les fichiers, configurer l'infra | Code fonctionnel + tests + documentation | 1-5 jours |
| 4. TEST | Définir les scénarios métier critiques, tester manuellement les edge cases | Tests unitaires, intégration, E2E, load testing, security scan | Suite de tests ≥80% couverture + rapport de qualité | 1-2 jours |
| 5. DEPLOY | Valider le go/no-go, choisir la stratégie de déploiement | Dockerfile, CI/CD, IaC, blue/green ou canary | Pipeline CI/CD fonctionnel + environnements staging/prod | 0.5-1 jour |
| 6. MONITOR | Définir les SLOs, analyser les métriques business | Alerting, dashboards, log analysis, anomaly detection | Dashboards + alertes + runbooks | Continu |
| 7. SCALE | Analyser les bottlenecks, décider quand optimiser vs refactorer | Profiling, caching, parallélisation, optimisation BDD | Architecture scalée + load tests passés | Ad hoc |
C'est la phase la plus importante et la plus négligée. 90% des projets échouent parce qu'ils construisent la mauvaise chose, pas parce que le code est mauvais.
# Vision Product — [Nom du Projet]
## Le Problème (1 phrase)
Les [UTILISATEURS] perdent [TEMPS/ARGENT] parce que [CAUSE RACINE].
## La Solution (1 phrase)
Un [TYPE DE PRODUIT] qui [ACTION PRINCIPALE] pour [RÉSULTAT MESURABLE].
## Les 3 Features Essentielles (pas 4, pas 5 — TROIS)
1. [Feature 1] — résout [aspect du problème]
2. [Feature 2] — résout [aspect du problème]
3. [Feature 3] — résout [aspect du problème]
## Ce qu'on ne fait PAS (aussi important que ce qu'on fait)
- Pas de [feature tentante mais hors scope]
- Pas de [technologie à la mode mais inutile ici]
- Pas de [perfectionnisme prématuré]
## Métrique de Succès (1 seule)
Le projet est un succès si [MÉTRIQUE MESURABLE].
Exemple : "Si 100 utilisateurs l'utilisent quotidiennement après 30 jours."
Le CLAUDE.md n'est pas juste de la documentation — c'est votre contrat avec l'IA. Plus il est précis, meilleur sera le résultat.
# CLAUDE.md — [Nom du Projet]
## Vision
[Copiez votre one-pager ici]
## Stack Technique
- Backend : Go 1.22 + Chi router + PostgreSQL 16
- Frontend : Aucun (API-only pour le MVP)
- Infra : Docker + GitHub Actions
- Tests : Go testing + testcontainers
## Architecture
```
cmd/server/ → Point d'entrée HTTP
internal/domain/ → Logique métier (AUCUNE dépendance externe)
internal/adapters/ → PostgreSQL, HTTP clients, etc.
internal/handlers/ → Routes HTTP
```
## Conventions NON NÉGOCIABLES
- Hexagonal architecture : domain ne dépend de RIEN d'externe
- Tout endpoint a un test d'intégration
- Pas de ORM : SQL brut avec sqlx
- Erreurs wrappées avec contexte : fmt.Errorf("doing X: %w", err)
- Pas de framework magique : stdlib + quelques libs ciblées
## Commandes
- `make test` — lance tous les tests
- `make run` — lance le serveur en local
- `make docker` — build + run dans Docker
## User Stories (priorité MoSCoW)
### Must Have
- US1 : En tant que [user], je veux [action] pour [bénéfice]
Critères : [critères d'acceptation testables]
### Should Have
- US2 : ...
### Won't Have (pour le MVP)
- Pas d'auth OAuth
- Pas de rate limiting
- Pas de multi-tenant
# Étape 1 : Demander un plan AVANT le code
$ claude
> Lis le CLAUDE.md et propose un plan d'implémentation
pour US1. Liste les fichiers à créer, les dépendances,
et les tests. Ne code rien encore.
# Étape 2 : Valider le plan, puis exécuter
> OK, implémente le plan. Commence par le domain,
puis les adapters, puis les handlers.
Fais un commit après chaque couche.
# Étape 3 : Vérifier
> Lance make test et montre-moi les résultats.
Si un test échoue, corrige et recommence.
| Niveau | Qui l'écrit | Quand | Couverture Cible |
|---|---|---|---|
| Unit tests | L'IA (automatique) | Pendant le build | ≥80% |
| Integration tests | L'IA (guidée par vous) | Après chaque feature | Tous les endpoints |
| E2E / Smoke tests | Vous + IA | Avant chaque deploy | Happy paths critiques |
| Load tests | L'IA (vous définissez les SLOs) | Avant la prod | p99 latence < 200ms |
| Tests manuels exploratoires | VOUS (l'IA ne peut pas) | Régulièrement | Edge cases, UX, intuition |
# Demandez à l'agent de créer tout le pipeline
$ claude
> Crée un pipeline CI/CD complet avec :
1. GitHub Actions : test → build → deploy
2. Dockerfile multi-stage optimisé
3. docker-compose.yml avec PostgreSQL
4. Health check endpoint /healthz
5. Structured logging (JSON) sur stdout
6. Métriques Prometheus sur /metrics
7. Alerting basique (webhook Slack si le health check échoue)
8. Rollback automatique si les smoke tests post-deploy échouent
Ne scalez pas prématurément. Les 3 signaux qu'il est temps de scaler :
L'IA est excellente pour le profiling et l'optimisation ciblée. Demandez-lui : « Profile cette route qui prend 2s, identifie le bottleneck, et propose 3 solutions classées par effort/impact. »
En 2026, vous êtes un PO-Developer. Vos responsabilités :
L'IA génère du code rapidement, mais la vitesse est l'ennemie de la sécurité. Un agent peut introduire une faille de sécurité en 3 secondes que vous mettrez 3 mois à découvrir. La sécurité doit être spécifiée dès le jour 0, pas ajoutée en afterthought.
L'IA a été entraînée sur des millions de repos publics, dont beaucoup contiennent du code non sécurisé, des anti-patterns, des dépendances vulnérables, et des secrets exposés. Sans garde-fous explicites, l'IA reproduira ces mauvaises pratiques dans votre projet. La sécurité par défaut n'existe pas — vous devez la spécifier.
npm audit, pip audit,
govulncheck, ou Snyk dans votre CI/CD.
## Sécurité — Règles NON NÉGOCIABLES
### Secrets
- JAMAIS de secret dans le code, les logs, ou les commentaires
- Tous les secrets passent par des variables d'env ou un vault
- Le fichier .env est dans .gitignore
- Les secrets de prod ne sont JAMAIS sur la machine de dev
### Authentification & Autorisation
- Auth : JWT avec expiration courte (15 min) + refresh token
- Mots de passe : bcrypt avec cost ≥ 12, JAMAIS de MD5/SHA1
- Authz : RBAC ou ABAC vérifié côté serveur sur CHAQUE endpoint
- Pas de logique d'autorisation côté client uniquement
### Inputs
- TOUS les inputs sont validés côté serveur (Zod, pydantic...)
- Paramétrage SQL : requêtes paramétrées UNIQUEMENT, jamais
de concaténation de strings dans les requêtes
- Upload fichiers : whitelist de types MIME, limite de taille
### Dépendances
- `npm audit` / `pip audit` / `govulncheck` tourne en CI
- Dépendances majeures épinglées (pas de ^latest)
- Renovate ou Dependabot activé pour les mises à jour
### Données Personnelles (RGPD/GDPR)
- PII chiffré at rest (AES-256)
- Logs purgés de toute PII
- Endpoint de suppression de compte (droit à l'oubli)
- Consentement explicite pour la collecte de données
### Headers & Transport
- HTTPS obligatoire (HSTS activé)
- CORS restrictif (pas de Access-Control-Allow-Origin: *)
- Headers de sécurité : CSP, X-Frame-Options, X-Content-Type
- Rate limiting sur tous les endpoints publics
Si votre application utilise un LLM (chatbot, analyse de texte), un utilisateur malveillant peut injecter des instructions dans son input pour manipuler le comportement de l'IA. Solution : séparez le prompt système du contenu utilisateur, validez les outputs de l'IA, et ne donnez jamais à l'IA un accès direct à des actions destructrices sans validation.
L'IA peut installer des packages qui n'existent pas (hallucination) et un attaquant peut créer un package malveillant avec ce nom exact (« dependency confusion »). Solution : vérifiez toujours que les packages installés existent réellement, ont des téléchargements significatifs, et ne sont pas créés récemment.
Si vous utilisez un service IA cloud, votre code est envoyé à un serveur externe. Solution : ne travaillez jamais avec des données de production sensibles dans l'IA. Utilisez des données anonymisées. Pour les projets très sensibles, utilisez un modèle local (Ollama).
L'IA reproduit les patterns les plus fréquents dans ses données d'entraînement. Beaucoup de code public n'est pas sécurisé. Solution : spécifiez les patterns de sécurité dans votre CLAUDE.md, et utilisez des outils SAST (Semgrep, CodeQL) dans la CI.
# .github/workflows/security.yml
name: Security Checks
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
# 1. Scan des secrets accidentellement commités
- uses: trufflesecurity/trufflehog@main
with:
extra_args: --only-verified
# 2. Audit des dépendances vulnérables
- run: npm audit --audit-level=high
# 3. Analyse statique de sécurité (SAST)
- uses: returntocorp/semgrep-action@v1
with:
config: p/owasp-top-ten
# 4. Scan de l'image Docker
- uses: aquasecurity/trivy-action@master
with:
image-ref: myapp:latest
severity: CRITICAL,HIGH
# 5. Review IA des changements sensibles
- run: |
claude --print "Analyse cette diff pour des
failles de sécurité : injection SQL, XSS,
secrets exposés, auth bypass, IDOR."
Spécifiez la sécurité dans le CLAUDE.md dès le jour 0, automatisez les checks dans la CI, et reviewez manuellement tout code touchant à l'auth, aux paiements, et aux données personnelles. Le reste peut être délégué à l'IA et aux outils automatiques.
Le vibe coding produit du code jetable. Pour construire des systèmes résilients et auto-évolutifs, il faut appliquer les mêmes patterns que les meilleurs data engineers et architectes utilisent depuis des années — mais en les adaptant à l'ère de l'IA.
L'IA peut générer du code, mais elle ne peut pas inventer une architecture. C'est à vous de définir les couches, les contrats, et les interfaces. L'IA remplit les couches. Vous concevez le squelette.
L'architecture en couches est le fondement de tout système maintenable. Chaque couche a une responsabilité unique et ne peut dépendre que de la couche immédiatement en dessous.
| Couche | Rôle | Équivalent Data | Qui l'implémente |
|---|---|---|---|
| 1. Raw / Ingestion | Recevoir les données/requêtes brutes sans transformation | Raw Layer (Meltano targets) | L'IA (boilerplate) |
| 2. Staging / Validation | Nettoyer, valider, normaliser. Pas de logique métier. | Staging (dbt stg_*) | L'IA (guidée par vous) |
| 3. Domain / Business | Logique métier pure, règles, invariants. ZéRO dépendance externe. | Intermediate (dbt int_*) | VOUS (critique) |
| 4. Marts / API | Exposer les données/services aux consommateurs | Marts (dbt fct_*, dim_*) | L'IA (guidée par vous) |
| 5. Semantic Layer | Définitions métier uniques (métriques, dimensions, KPIs) | Semantic Layer (dbt metrics, Cube.js) | VOUS (stratégique) |
L'IA est tentée de tout mélanger dans un seul fichier. Les couches forcent la séparation des responsabilités :
La Semantic Layer (couche sémantique) est un concept emprunté aux data engineers qui résout un problème critique : tout le monde doit parler le même langage.
« Le revenu mensuel » signifie-t-il le revenu brut ou net ? Avec ou sans taxes ? Avec les remboursements déduits ? Chaque développeur (ou chaque agent IA) interprète différemment. Résultat : 3 dashboards montrent 3 chiffres différents pour la même métrique.
# semantic/metrics.yml — Source de vérité unique
metrics:
monthly_revenue:
label: "Revenu Mensuel"
description: "Revenu net après remboursements, hors taxes"
formula: "SUM(amount) - SUM(refunds)"
filters:
- "status = 'completed'"
- "refunded = false"
grain: monthly
owner: finance-team
active_users:
label: "Utilisateurs Actifs"
description: "Utilisateurs avec au moins 1 action dans les 30 derniers jours"
formula: "COUNT(DISTINCT user_id) WHERE last_action > NOW() - 30d"
grain: daily
owner: product-team
churn_rate:
label: "Taux de Churn"
description: "Proportion d'abonnés perdus sur le mois"
formula: "churned_users / total_users_start_of_month * 100"
grain: monthly
owner: growth-team
Mettez ce fichier dans votre CLAUDE.md ou référencez-le. Quand l'IA doit calculer une métrique, elle utilise toujours la définition officielle. Plus d'ambiguïté.
Le secret des systèmes qui résistent au temps : des contrats explicites entre chaque couche.
// internal/domain/ports.go — LES CONTRATS
// L'IA implémente ces interfaces, mais NE LES MODIFIE JAMAIS
// sans validation humaine.
// Port primaire : ce que le monde extérieur demande au domain
type OrderService interface {
CreateOrder(ctx context.Context, req CreateOrderRequest) (Order, error)
CancelOrder(ctx context.Context, orderID string) error
GetOrder(ctx context.Context, orderID string) (Order, error)
}
// Port secondaire : ce que le domain attend de l'infrastructure
type OrderRepository interface {
Save(ctx context.Context, order Order) error
FindByID(ctx context.Context, id string) (Order, error)
FindByCustomer(ctx context.Context, customerID string) ([]Order, error)
}
// Port secondaire : notifications
type Notifier interface {
SendOrderConfirmation(ctx context.Context, order Order) error
}
// RÈGLE : Si l'IA veut ajouter un champ à Order ou
// modifier une interface, elle doit D'ABORD proposer
// le changement et obtenir votre validation.
Les interfaces sont votre filet de sécurité architecturale. L'IA peut réécrire
l'intégralité de l'implémentation d'un adapter PostgreSQL, mais tant que l'interface
OrderRepository est respectée, le domain fonctionne. C'est le principe du
contrat stable, implémentation jetable.
Le niveau supérieur : des systèmes qui s'améliorent automatiquement grâce à des agents IA.
| Agent | Déclencheur | Action | Validation |
|---|---|---|---|
| Agent Monitoring | Alerte latence p99 > seuil | Profile le code, identifie le bottleneck, propose un fix | PR automatique → review humaine |
| Agent Tests | Couverture < 80% | Génère les tests manquants pour les fichiers non couverts | CI verte → merge auto |
| Agent Sécurité | Nouvelle CVE dans une dépendance | Crée une PR qui met à jour la dépendance + lance les tests | CI verte → review humaine |
| Agent Docs | Merge d'une PR sans doc | Génère/met à jour la documentation du code modifié | Merge auto |
| Agent Data Quality | Anomalie détectée dans les marts | Alerte + diagnostic de la source de l'anomalie | Notification Slack + rapport |
# .github/workflows/auto-heal.yml
name: Auto-Healing Agent
on:
schedule:
- cron: '0 6 * * *' # Tous les jours à 6h
jobs:
auto-heal:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# 1. Vérifier la couverture de tests
- run: |
coverage=$(go test ./... -coverprofile=cover.out | grep total)
if [ "$coverage" -lt 80 ]; then
claude --print "La couverture est à $coverage%.
Génère des tests pour les fichiers non couverts.
Crée une branche fix/coverage et pousse." \
| gh pr create --title "[Auto] Improve test coverage"
fi
# 2. Vérifier les dépendances vulnérables
- run: |
if govulncheck ./... 2>&1 | grep -q "FOUND"; then
claude --print "Des CVE ont été trouvées dans les deps.
Mets à jour les packages concernés, lance les tests,
et crée une PR si tout passe."
fi
# 3. Vérifier la fraîcheur de la documentation
- run: |
stale_docs=$(find docs/ -mtime +30 -name "*.md")
if [ -n "$stale_docs" ]; then
claude --print "Ces fichiers de doc n'ont pas été
mis à jour depuis 30+ jours : $stale_docs.
Vérifie qu'ils sont toujours à jour avec le code."
fi
Empruntez le star schema du data warehousing pour structurer vos APIs et vos bases de données applicatives :
Au lieu d'écrire une spécification technique de 20 pages, vous écrivez un prompt détaillé qui sert à la fois de spec et d'instruction pour l'IA.
Le fichier CLAUDE.md à la racine de votre projet sert de documentation vivante que l'IA
lit à chaque session. Il contient les conventions, la structure du projet, les commandes, et les
règles métier. C'est le pattern le plus important de l'AI-Driven Dev.
| Étape | Action |
|---|---|
| Generate | L'IA génère du code basé sur le prompt |
| Test | Les tests automatiques valident le code |
| Iterate | Si les tests échouent, l'IA corrige et recommence |
Ce pattern est au cœur de tous les agents modernes. Claude Code, par exemple, exécute les tests après chaque modification et corrige automatiquement les erreurs.
L'IA génère des diffs standard (comme un patch git) au lieu de réécrire des fichiers entiers. Avantages :
Les LLMs ont une fenêtre de contexte limitée (128K-1M tokens). Le pattern consiste à :
/add dans Aider, @file dans
Cursor)CLAUDE.md pour donner le contexte projet sans charger tout le codegrep, codebase search) plutôt que de
tout chargerL'IA exécute, mais demande une validation humaine aux moments critiques :
L'IA utilise des outils externes via le protocole MCP pour étendre ses capacités au-delà du code pur :
Exécuter l'agent IA en mode non-interactif dans un pipeline CI/CD :
# Dans GitHub Actions
claude --print --dangerously-skip-permissions \
"Analyse cette PR et génère un rapport de review"
Accepter le code généré par l'IA sans le lire. Risque : bugs subtils, failles de sécurité, dépendances obsolètes ou vulnérables silencieusement ajoutées au projet.
Donner des instructions floues comme « fais-moi un backend ». L'IA va faire des choix arbitraires qui ne correspondent pas à vos besoins. Soyez précis sur les technologies, contraintes, et patterns attendus.
Faire confiance à l'IA sans avoir de tests. Les tests sont votre filet de sécurité. Sans eux, vous ne savez pas si le code IA fonctionne réellement dans tous les cas.
Demander à l'IA de refactorer 50 fichiers d'un coup. Le résultat sera incohérent et difficile à reviewer. Procédez par petites étapes itératives.
Ne pas fournir de fichier CLAUDE.md ou équivalent. L'IA va utiliser des conventions par défaut qui ne correspondent pas à votre projet (mauvais framework, mauvais style, mauvais patterns).
Ne plus chercher à comprendre le code. Si vous ne pouvez pas expliquer ce que fait le code de votre projet, vous avez un problème. L'IA est un outil, pas un substitut à la compréhension.
Règle d'or : Plus le risque est élevé, moins l'IA doit être autonome.
| Section | Contenu | Pourquoi |
|---|---|---|
| Project Overview | Description, stack technique, architecture | Donne le contexte global à l'IA |
| Structure du Projet | Arborescence des dossiers avec explications | L'IA sait où mettre les fichiers |
| Conventions | Style de code, nommage, patterns utilisés | Cohérence avec le code existant |
| Commandes | Build, test, lint, deploy | L'IA peut exécuter les bonnes commandes |
| Règles Métier | Contraintes business critiques | Évite que l'IA viole des règles métier |
| Critère | Agent Terminal (Claude Code, Aider) | IDE Intégré (Cursor, Copilot) |
|---|---|---|
| Tâches multi-fichiers | ⭐⭐⭐ Excellent | ⭐⭐ Bon |
| Feedback visuel | ⭐ Limité (terminal) | ⭐⭐⭐ Excellent (inline diffs) |
| Exécution de commandes | ⭐⭐⭐ Natif | ⭐⭐ Via terminal intégré |
| CI/CD headless | ⭐⭐⭐ Facile | ⭐ Difficile |
| Courbe d'apprentissage | ⭐⭐ Moyenne | ⭐⭐⭐ Faible |
Le multi-modèle est la meilleure approche. Chaque modèle a ses forces :
Astuce : utilisez Aider qui supporte nativement le multi-modèle, ou configurez des fallbacks (Claude → Gemini → GPT).
Le Model Context Protocol (MCP) est un standard ouvert créé par Anthropic qui permet aux LLMs d'interagir avec des outils externes de manière standardisée. Pensez-y comme le « USB-C » de l'intelligence artificielle : une interface universelle pour connecter n'importe quel outil à n'importe quel modèle.
| Composant | Rôle | Exemple |
|---|---|---|
| MCP Host | L'application qui héberge l'IA | Claude Code, Cursor, votre app |
| MCP Client | Le connecteur dans le host | Bibliothèque SDK intégrée |
| MCP Server | Le fournisseur d'outils | Serveur PostgreSQL, API GitHub, filesystem |
// .claude/mcp.json
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres",
"postgresql://user:pass@localhost/mydb"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "ghp_..." }
}
}
}
Avec cette configuration, l'IA peut directement interroger votre base de données et interagir avec GitHub pendant le développement.
L'AI-Driven Development n'est pas une mode passagère — c'est une transformation fondamentale de la façon dont nous créons des logiciels. En 2026, ne pas utiliser d'IA dans son workflow de développement, c'est comme ne pas utiliser de contrôle de version en 2010.
CLAUDE.md à la racine de votre prochain projetnpm install -g @anthropic-ai/claude-code)
ou Cursor