- Cette approche reconfigure en profondeur la manière d’utiliser les outils de codage IA, en proposant un workflow qui impose une étape explicite de revue du plan avant toute écriture de code
- Le principe central est : « ne pas laisser Claude écrire du code tant que le plan n’a pas été approuvé », ce qui permet d’obtenir à la fois un contrôle structurel et une utilisation plus efficace des tokens
- L’ensemble du processus suit une boucle Research → Plan → Annotation → Todo List → Implementation → Feedback
- À chaque étape, la collaboration s’organise autour de documents markdown (
research.md,plan.md), enrichis par des annotations et des révisions successives pour améliorer le résultat - Cette méthode met l’accent sur la séparation puis la combinaison de la capacité d’exécution de l’IA et du jugement humain, afin d’obtenir des résultats stables et cohérents, même sur des systèmes complexes
Vue d’ensemble du workflow
- Après environ 9 mois d’utilisation de Claude Code comme principal outil de développement, l’auteur a mis en place une procédure structurée séparant planification et exécution, au lieu du schéma classique « saisie d’un prompt → génération de code → itérations de correction »
- Avant que Claude n’écrive du code, l’exécution doit toujours se faire uniquement à partir d’un document de plan (
plan.md) relu et approuvé par l’auteur - Cette approche permet de réduire les essais-erreurs inutiles, de conserver la maîtrise des décisions d’architecture, et de maximiser la qualité par rapport au volume de tokens consommés
Phase 1 : Research
- Tout travail commence par une analyse approfondie de la codebase
- Claude reçoit pour consigne de lire en profondeur un dossier ou une fonctionnalité donnée (
detailed,intricacies) - Le résultat doit impérativement être consigné dans un fichier
research.md
- Claude reçoit pour consigne de lire en profondeur un dossier ou une fonctionnalité donnée (
- Ce document sert de surface de revue pour vérifier le niveau de compréhension de Claude, et corriger les malentendus à ce stade
- Comme une mauvaise recherche mène à un mauvais plan puis à une mauvaise implémentation, cette étape bloque à l’avance la cause d’échec la plus coûteuse
- Cela permet par exemple d’éviter des problèmes comme l’ignorance d’une couche de cache, le non-respect de règles ORM ou la création de logique dupliquée
Phase 2 : Planning
- Une fois la recherche relue, Claude est chargé de rédiger un plan d’implémentation détaillé (
plan.md)- Il inclut de vrais snippets de code, les chemins de fichiers à modifier et les trade-offs
- Au lieu d’utiliser le mode plan intégré, l’auteur préfère un fichier markdown qu’il peut gérer directement
- Fournir en plus une reference implementation open source améliore fortement la qualité du plan produit par Claude
- Plus important encore que le document de plan lui-même : le cycle d’annotation qui suit
Cycle d’annotation
- L’auteur ouvre
plan.mdet y ajoute directement des commentaires inline- Correction d’hypothèses erronées, rejet d’une approche, ajout de connaissances métier, etc.
- Exemples : « ça doit être un PATCH », « pas besoin de cache », « le champ visibility doit passer au niveau de la liste »
- Claude reçoit ensuite l’instruction de mettre à jour le document en tenant compte des annotations, sans encore implémenter quoi que ce soit
- Ce cycle annotation → mise à jour est répété de 1 à 6 fois, avec la consigne
don’t implement yetpour éviter toute exécution prématurée - Le document markdown fonctionne comme un état partagé plus clair et plus structuré qu’une suite d’instructions conversationnelles
- Grâce à ces itérations, un plan générique évolue vers une spécification parfaitement adaptée au système réel
Génération de la Todo List
- Avant l’implémentation, Claude ajoute une liste détaillée de tâches (todo list)
- Elle contient les sous-tâches de chaque étape afin de suivre l’avancement
- Claude peut marquer les éléments terminés, ce qui facilite le suivi même lors de longues sessions
Phase 3 : Implementation
- Une fois toutes les décisions arrêtées, l’exécution est lancée à l’aide d’un prompt standardisé
- Par exemple : « ne t’arrête pas avant d’avoir terminé toutes les tâches », « pas de commentaires inutiles », « types
any/unknowninterdits », « typecheck en continu », etc.
- Par exemple : « ne t’arrête pas avant d’avoir terminé toutes les tâches », « pas de commentaires inutiles », « types
- Cette commande transforme l’implémentation en phase mécanique d’exécution du plan, la part de jugement créatif ayant déjà été traitée en amont
- Implémenter directement sans plan revient à construire du code sur de mauvaises hypothèses ; la règle
don’t implement yetest donc le garde-fou essentiel
Feedback pendant l’implémentation
- Pendant l’exécution, l’auteur passe à un rôle de superviseur
- Les retours sont courts et explicites : « cette fonction manque », « déplacer vers l’app admin », etc.
- Pour les changements frontend, il utilise aussi des consignes brèves comme « wider », « 2px gap », ou des captures d’écran
- L’auteur s’appuie souvent sur le code existant pour préserver une UI/UX cohérente
- Si le travail part dans la mauvaise direction, il est plus efficace de faire un
git revertpuis de réessayer avec un périmètre réduit que de corriger progressivement
Rester aux commandes
- Claude ne reçoit jamais une autonomie totale ; la décision finale revient toujours à l’humain
- L’auteur peut ne retenir qu’une partie des propositions de Claude, les modifier, les supprimer ou redéfinir les choix techniques
- Exemples : « pour le premier, utiliser
Promise.all», « ignorer les quatrième et cinquième », « supprimer la fonctionnalité de téléchargement », « ne pas changer la signature de la fonction », « utiliser la méthode de cette bibliothèque »
- Exemples : « pour le premier, utiliser
- Claude se charge de l’exécution mécanique, tandis que l’humain garde le jugement et la priorisation
Sessions longues uniques
- De la recherche à l’implémentation, tout se déroule dans une seule longue session
- Au fil de la session, Claude accumule continuellement du contexte, avec suffisamment de mémoire grâce à l’auto-compaction
plan.mdreste conservé dans sa forme complète pendant toute la session et peut être consulté à tout moment
Résumé clé
- « Lire en profondeur, écrire le plan, l’affiner par annotations, puis exécuter d’un seul coup. »
- Même sans prompts complexes ni consignes système élaborées, ce pipeline discipliné, qui sépare la réflexion (
Thinking) de la frappe (Typing), permet d’obtenir une qualité élevée - La phase Research empêche les modifications faites dans l’ignorance, la phase Plan empêche les mauvaises modifications, et l’Annotation injecte le jugement humain
- L’exécution finale n’est automatisée qu’une fois toutes les décisions arrêtées, ce qui aboutit à une structure de collaboration efficace
4 commentaires
Je rencontre moi aussi régulièrement un problème similaire. Quand on collabore avec une IA uniquement via le chat, la décomposition du travail (WBS), l’avancement et l’historique des décisions ont tendance à devenir flous.
Le fait de simplement placer le fichier de plan dans le dépôt et d’enregistrer les modifications appliquées en exécutant ce plan permet de conserver assez bien le contexte.
Ce contenu ne se limite pas à Claude uniquement ; il semble pouvoir s’appliquer de façon générale à d’autres services d’IA en CLI également.
Avis Hacker News
Le vrai point clé n’est pas « planifier ou non », mais faire apparaître les hypothèses avant qu’elles ne se figent dans le code
Les LLM échouent moins sur la syntaxe que sur des présupposés invisibles comme l’architecture ou les contraintes. Un plan documenté fournit donc une surface où ces hypothèses peuvent être déboguées
printf()et que le Heisenbug disparaîtCertains disent qu’il faut utiliser des mots comme « en profondeur » ou « en détail » pour que Claude ne lise pas de manière superficielle, mais honnêtement je ne vois pas intuitivement pourquoi
J’utilise une structure composée de trois types de documents et de deux skills
Les Specs sont les documents de conception statique du projet, les Plans sont les plans d’exécution générés par le LLM, et les fichiers de Working memory servent à suivre l’avancement.
J’utilise le planner skill de Gemini Pro pour créer de nouveaux plans, puis le implementer skill de Codex pour les exécuter.
Avec ça, le contexte reste léger et focalisé, donc l’efficacité est bonne. Même avec les offres à 20 $ de Codex/Gemini, ça avance suffisamment vite
L’idée de laisser directement des annotations dans le document de plan me paraît très fraîche. Je me demande s’il existe une façon de conserver ces annotations séparément ou de les gérer pour pouvoir les revoir plus tard
Il y a plusieurs choses qui me déplaisent dans cette approche
D’abord, la méthode big bang qui consiste à générer tout le code d’un coup produit un énorme bloc de code difficile à comprendre. À mon avis, mieux vaut planifier et exécuter étape par étape.
Ensuite, je trouve dommage de donner du feedback sans mettre à jour la base de connaissances. Il faudrait enregistrer la cause des erreurs pour éviter de les répéter ensuite.
Enfin, il n’y a aucune mention des tests. Il faudrait intégrer au moins un peu de développement piloté par les tests (TDD). C’est intéressant de voir comment le développement assisté par IA pourrait fusionner avec ce type de méthodologie
Ce workflow est en fait la méthode standard de Claude Code recommandée par Anthropic. Mais son inconvénient, c’est que si le plan n’est pas parfait, il faut tout recommencer depuis le début.
Du coup, je fractionne design → plan → exécution en plusieurs lots. Quand les plans restent sous les 1 500 lignes, il est plus facile de garder la complexité sous contrôle.
Mon application de 30 000 LOC s’accompagne de 100 000 lignes de plan. Impossible de produire ça d’un seul coup
Au lieu de
plan.md, je travaille surtout autour de scaffolds exécutables et de boucles de validationJ’ai construit avec l’IA un vrai système de paiement appelé Kolibri Tickets. L’important n’est pas que le modèle tape vite du code, mais de concevoir la boucle de validation
De cette façon, on peut réellement déployer plus vite, au lieu de tomber dans une simple « illusion de vitesse ». Le document de plan est une façon de maintenir un état partagé, mais un harnais vérifiable en est une autre
J’utilise Claude Code pour préparer des cours
J’écris mes notes de cours avec Quarto, puis je demande à Claude de les convertir en slides Slidev. Ensuite, j’ajoute des annotations sur les slides du genre « séparer ceci en deux diapositives » ou « ajouter une image ici » pour donner du feedback.
Ce feedback par annotations est extrêmement puissant. Ça aide beaucoup pour la distance de tokens et le maintien du contexte
# remplacer cette partie par X?Des outils comme Kiro d’Amazon, Antigravity de Google, le Spec Kit de GitHub et OpenSpec offrent déjà ce type de fonctionnalité
L’échec le plus coûteux dans le codage assisté par IA n’est pas l’erreur de syntaxe, mais une implémentation qui fonctionne partiellement tout en cassant le système dans son ensemble
C’est pourquoi j’ajoute dès le départ un fichier brief.md qui précise la définition du problème, les métriques cibles et les critères d’arrêt d’une fonctionnalité. Cela réduit le coût des décalages entre les objectifs métier et l’implémentation technique