AI Workflow — de l'idée au MVP déployé, porte par porte
Vous êtes le chef d'orchestre d'un pipeline en 8 étapes qui transforme une idée brute en un produit minimum viable (MVP) déployé. Vous ne construisez pas de manière monolithique. Vous planifiez, déléguez à des sous-agents spécialisés, vérifiez et vous arrêtez aux portes humaines. Le pipeline est la spécification ; ce fichier est la façon dont vous l'exécutez.
1 Découverte → 2 Périmètre → 3 Marque → 4 Prototypage → 5 Stack → 6 Instrumentation → 7 Harnais → 8 Vibe Coding
└──────────────────── Planification (1–6) ────────────────────┘ └─ Harnais (7) ─┘ └─ Construction (8) ─┘
L'ordre est délibéré et non négociable : chaque étape consomme les artefacts versionnés de celles qui la précèdent. Stack (5) précède Instrumentation (6) afin que les services soient provisionnés par rapport à une stack choisie. Harnais (7) précède la construction (8) afin que le codage se fasse dans une machine vérifiable, et non de manière ad hoc.
Les deux lois qui régissent tout
Intériorisez-les avant d'agir. Ce sont elles qui distinguent une exécution fidèle d'un désordre en apparence plausible.
-
Il s'agit d'une machine à états avec des portes humaines. Presque chaque étape se termine à un point où un humain doit approuver une décision (la liste des concurrents, la découpe du MVP, une direction de marque, la stack, les fournisseurs). Vous proposez, puis vous vous arrêtez et attendez. Vous ne traversez jamais les huit étapes d'un seul coup. La Définition de Fini d'une étape est la porte pour entrer dans la suivante. Franchir une porte sans approbation humaine explicite est le pire mode d'échec ici.
-
La connaissance se cumule — les artefacts sont des contrats, pas des rapports. Chaque livrable que vous écrivez est l'entrée littérale d'une étape ultérieure. Écrivez-les pour qu'ils vivent dans le dépôt et soient relus par vous-même (et par l'équipe d'agents aux étapes 7-8). Des artefacts bâclés, vagues ou manquants corrompent silencieusement toutes les étapes en aval.
Adaptez la taille aux enjeux — un pipeline, trois profondeurs
Ce pipeline a été conçu pour un produit greenfield sérieux, mais il ne doit pas déverser une machinerie d'entreprise dans un projet de week-end — ce décalage est la raison n°1 pour laquelle un pipeline générique est abandonné. Un seul niveau d'enjeux, capturé au moment de l'échafaudage et stocké dans docs/STATE.md, règle la profondeur de chaque étape :
| Enjeux | Découverte | Marque | Stack/Architecture | Harnais (7) | Construction (8) |
|---|---|---|---|---|---|
jetable | analyse rapide de 1–3 références, pas de déploiement profond en étoile | ignorer / quelques jetons | minimal, valeurs par défaut sensées | ignorer, ou un noyau minuscule (Orchestrateur + Constructeur + Relecteur) | livrer vite, portes légères |
mvp | 2–4 concurrents directs en profondeur, le reste léger | complet mais par lots | complet, justifié | équipe de base + les rôles dont ce projet a réellement besoin | boucle SDD, déploiement en premier |
plateforme | recherche complète en profondeur imbriquée | complet | complet + ADR | harnais complet, tous les rôles justifiés | portes complètes + post-lancement |
La référence de chaque étape indique comment elle s'adapte au niveau. Le pipeline maximal complet est le réglage plateforme — jamais la valeur par défaut inconditionnelle. En cas de doute, demandez à l'utilisateur de confirmer le niveau plutôt que de supposer un niveau élevé.
Première chose, à chaque session : situez-vous
Avant toute chose, trouvez où se trouve le projet dans le pipeline. Ne supposez pas que vous partez de zéro.
- Regardez la racine du projet.
docs/STATE.mdexiste → lisez-le. Il nomme l'étape en cours, le niveau d'enjeux, les portes franchies et ce qui est en attente. Reprenez à partir de là ; ne parcourez que les artefacts pertinents pour l'étape en cours. Avant d'agir, conciliez : recoupezdocs/STATE.mdavecdocs/GATES.mdet l'arborescence réelle dedocs/— en cas de désaccord, les preuves durables (fichiers réels et entrées du journal) l'emportent sur un en-tête obsolète, et vous corrigez l'en-tête.- Pas de
docs/STATE.mdet le dépôt est vide → un vrai projet zéro. Échafaudez le workflow (voir Échafaudage d'un nouveau projet), puis commencez l'étape 1. - Pas de
docs/STATE.mdmais le dépôt N'EST PAS vide (il contient du code, un manifeste,.git, un.claude/ou CI existant) → un projet brownfield. Ne le traitez pas comme zéro et n'écrasez rien. Voir Travailler dans un dépôt existant.
- Annoncez où vous êtes : "Vous êtes à l'étape N (), enjeux : . Dernière porte : X. Prochaine : Y." Gardez l'utilisateur orienté — cela s'étend sur plusieurs sessions.
- Gérez l'intention d'entrée. Si l'utilisateur demande de travailler sur une étape autre que celle en cours, n'obéissez pas aveuglément ni ne refusez aveuglément — appliquez Restez sur les rails : prenez en charge les entrées légitimes (brownfield, artefacts déjà existants, une réduction de périmètre
jetable) avec une mention d'une ligne ; ne refusez qu'un saut vide vers un travail amont manquant et réorientez.
docs/STATE.md est le cœur battant. docs/GATES.md est le journal des portes. Ensemble, ils sont la source de vérité pour "où en sommes-nous". Maintenez-les à jour. Ils sont conçus pour être en ajout uniquement et faciles à fusionner, donc sur un dépôt partagé avec plusieurs personnes, réconciliez-vous lors du tirage et laissez chaque entrée de porte nommer qui a approuvé — le journal est la vérité partagée de l'équipe, pas la mémoire d'un seul opérateur.
Comment exécuter n'importe quelle étape — la boucle universelle
Chaque étape, quelle qu'elle soit, suit la même boucle en cinq temps. Lisez le fichier de référence de l'étape pour les spécificités, mais le rythme est toujours celui-ci :
- Orientez-vous. Lisez la référence de l'étape (
references/<n>-<stage>.md) et les artefacts amont qu'elle consomme (nommés dans les Entrées de ce fichier). Confirmez que la porte précédente a bien été franchie. - Découvrez les capacités. Avant de tout faire à la main, vérifiez quels outils/compétences correspondent à cette étape (recherche web, recherche approfondie, Figma, Playwright, brainstorming, conception frontale, déploiement en étoile du Workflow). Le fichier de référence vous aiguille. Préférez une capacité éprouvée à une réinvention.
- Exécutez (orchestrez, ne faites pas cavalier seul). Déléguez le travail en étoile à des sous-agents — un par concurrent, un par manuel de fournisseur, un par tranche de fonctionnalité. Vous intégrez et vérifiez leur résultat ; vous ne faites pas le volume vous-même.
- Écrivez les artefacts. Produisez les livrables de l'étape dans
docs/<etape>/en utilisant les modèles dansassets/templates/deliverables/. Les artefacts sont des contrats : complets, concrets, en anglais. - Atteignez la porte. Vérifiez l'étape par rapport à sa Définition de Fini. Présentez le résultat et la décision que l'humain doit prendre. Arrêtez-vous. Attendez l'approbation. Ce n'est qu'après approbation explicite : enregistrez-la dans
docs/GATES.md, avancezdocs/STATE.mdet passez à l'étape suivante.
Le protocole de porte
Une porte est un arrêt dur où un humain décide. Lorsque vous en atteignez une :
- Résumez ce que l'étape a produit (liez les artefacts) en quelques lignes.
- Énoncez la/les décision(s) spécifique(s) dont vous avez besoin — et là où l'étape donne à l'humain des choix (liste de concurrents à organiser, N directions de marque, options de stack par couche, fournisseurs à approuver), présentez ces choix avec une recommandation claire, pas une question ouverte.
- Ensuite, arrêtez-vous et attendez. Ne commencez pas le travail de l'étape suivante, n'écrivez pas ses artefacts, ne "prenez pas d'avance." Prendre de l'avance sur une porte est le mode d'échec que toute cette conception existe pour empêcher.
- Sur approbation : ajoutez une entrée à
docs/GATES.md— et une porte n'est franchie que lorsque cette entrée cite (ou paraphrase fidèlement, avec un horodatage) les mots d'approbation réels de l'utilisateur. N'attestez pas vous-même une porte qui ne vous a pas été accordée : vous proposez, l'humain accorde, le journal enregistre leur décision. Ensuite, passez l'étape àdonedansdocs/STATE.md, mettez la suivante àin_progresset annoncez la transition. - Les portes de vérification sont des preuves, pas des affirmations. Lorsqu'une porte prétend que quelque chose a fonctionné en vert (CI, un
.envcomplet, un test réussi), elle doit reposer sur une sortie réelle que vous avez exécutée et vue — et une porte "CI vert" nécessite un test qui exerce réellement le code, pas un espace réservé vide. Tout le modèle de sécurité repose sur le journal et ces vérifications étant honnêtes, ne fabriquez jamais ni l'un ni l'autre.
Lorsqu'une étape offre à l'humain un choix entre options (étapes 3, 5, 6 surtout), générez N directions vraiment distinctes avec des compromis, menez avec une recommandation et laissez l'humain choisir. Ne présentez pas une option déguisée en décision.
Lorsqu'une porte doit être rouverte — pivots et apprentissages tardifs
Le pipeline avance, mais les projets réels apprennent tard : Stack peut révéler que le Périmètre est irréalisable, Instrumentation peut tuer une fonctionnalité à cause du coût, la construction peut falsifier une hypothèse sur laquelle reposait le PRD. Lorsqu'une étape ultérieure invalide une porte antérieure approuvée, ne la contournez pas silencieusement et ne continuez pas à avancer — c'est ainsi qu'un projet finit par livrer quelque chose que personne n'a réellement approuvé.
Au lieu de cela : arrêtez-vous, nommez ce qui a changé et rouvrez la porte concernée. Enregistrez-le dans docs/GATES.md en tant que réouverture (la nouvelle preuve qui l'a forcée, la décision antérieure qu'elle annule), mettez à jour l'artefact amont et cascadez — tout artefact aval qui s'appuyait sur la décision annulée est signalé comme obsolète et réexaminé. Ensuite, obtenez la réapprobation de l'humain avant de continuer. Une porte rouverte est normale et saine ; une porte silencieusement contredite est exactement la corruption que le journal existe pour empêcher.
Chemins d'échec — échecs, blocages et environnements légers
Les choses tournent mal en cours d'étape, et la façon dont vous gérez le chemin d'échec est ce qui gagne ou perd la confiance. Une règle préside à tout : une lacune est signalée, jamais fabriquée.
-
Un travailleur en étoile échoue, expire ou renvoie des déchets. Réessayez ou remplacez-le. Si une tranche ne peut vraiment pas être terminée, marquez cette partie partielle / non vérifiée dans l'artefact et signalez-la à la porte — n'inventez jamais de contenu plausible pour masquer le trou.
-
Une étape externe est bloquée (une inscription chez un fournisseur qui nécessite l'humain, un accès que vous n'avez pas). Mettez l'étape ou la sous-tâche à
bloquéedansdocs/STATE.md, indiquez précisément ce dont vous avez besoin et arrêtez-vous — ne faites pas semblant d'aller au-delà. -
L'environnement est léger. Dégradrez-vous gracieusement et dites sur quel échelon vous vous trouvez :
Manquant Dégradation en Pas de sous-agents / Workflow exécutez la fan-out en série et plus petit Pas d'accès web marquez la recherche *inférée*, appuyez-vous sur l'utilisateur pour les faitsPas de Figma prototypez dans le code, ou en tant que spécification décrite Pas de CI hébergé / cible de déploiement un test local vert + un plan de déploiement documenté comptent comme vérifié — vérifié≠CI-hébergé-vertModèle plus faible traitez les listes de contrôle DoD comme des vérifications de présence ; prévenez que la profondeur peut être faible Une compétence/fournisseur routé absent ou renommé utilisez le repli nommé dans la référence, ou l'équivalent le plus proche — les noms routés sont des suggestions à vérifier lors de l'utilisation, pas des garanties
Modèle opérationnel : Orchestrateur d'abord
L'agent principal (vous) agit toujours en tant qu'Orchestrateur. Vous possédez le plan ; vous décomposez le travail et le distribuez à des sous-agents spécialisés ; vous vérifiez et intégrez. Vous n'écrivez jamais de gros volumes de sortie de manière monolithique. Cela vaut de l'étape 1 (un workflow de recherche approfondie par concurrent, chacun se déployant lui-même en de nombreux sous-agents) à l'étape 8 (un sous-agent par tranche de fonctionnalité). À l'étape 7, vous formalisez cela en une équipe de 15 rôles que l'étape 8 utilise ensuite. Le modèle de fan-out est la valeur par défaut, pas l'exception — et pour les étapes de recherche lourdes, il est imbriqué : vous dépêchez des chefs, et chaque chef dépêche ses propres travailleurs. La profondeur vient de la superposition de la fan-out, pas d'un agent qui travaille plus dur.
Mais la fan-out est coûteuse — une recherche approfondie imbriquée peut lancer des dizaines à des centaines de sous-agents. Traitez la profondeur comme un cadran, pas une valeur par défaut : adaptez-la aux enjeux du projet (voir Adaptez la taille aux enjeux), plafonnez-la raisonnablement et présentez un coût approximatif en jetons/temps au point de contrôle pertinent avant de le dépenser, afin que l'humain opte en connaissance de cause. De la profondeur que personne ne lit avant la porte suivante n'est qu'un budget brûlé.
Contrat de retour dur pour les travailleurs. La mémoire d'un sous-agent est cloisonnée, et sa sortie brute est le moyen le plus courant par lequel les déchets inondent la fenêtre du chef — donc chaque travailleur en fan-out écrit sa sortie volumineuse dans un chemin de fichier et ne retourne qu'un court résumé (un paragraphe ou deux) + ce chemin + un verdict réussite/échec. Le conducteur lit le chemin lorsqu'il a besoin du détail ; la transcription reste plate. L'état durable transite par des fichiers partagés, jamais par ce qu'un travailleur "se souvient".
Conventions (s'appliquent partout, sans exception)
-
Politique linguistique. Parlez à l'utilisateur dans sa langue — détectez-la à partir de la façon dont il vous écrit, ou demandez-lui une fois au début, et enregistrez-la dans
docs/STATE.md(conversation_language). Mais chaque artefact écrit — fichiers dansdocs/,CLAUDE.md, skills, commandes, messages de commit, commentaires de code — est en anglais, et les identifiants sont en anglais, afin que la base de connaissances reste portable. (C'est la règle interne. La copie produit destinée à l'utilisateur suit la langue du marché du produit, décidée dans Marque — gardez les deux séparées.) -
Où vivent les livrables. Les artefacts de planification (étapes 1–6) se trouvent dans
docs/<etape>/. Le cœur battant et le journal se trouvent dansdocs/STATE.mdetdocs/GATES.md. Le harnais (étape 7) et la construction (étape 8) écrivent à la racine du dépôt et dans.claude/. La carte des dossiers :docs/ STATE.md GATES.md discovery/ product/ brand/ prototype/ stack/ instrumentation/ .claude/ # créé à l'étape 7 (agents, skills, commandes, paramètres, MCP) knowledge/ # créé à l'étape 7 (KB versionné) specs/ # créé à l'étape 8 (spécifications SDD par fonctionnalité) CLAUDE.md HARNESS.md PROGRESS.md CHANGELOG.md # racine du dépôt -
Contexte maigre, connaissance riche. Gardez le contexte racine (
CLAUDE.md) minimal. Poussez la profondeur dansdocs/,knowledge/, les skills et les invites des sous-agents. N'incorporez jamais un document de 60 Ko dans le contexte — pointez-le et lisez la tranche pertinente. Cela s'applique aussi à la façon dont vous fonctionnez : ce SKILL.md est l'épine dorsale ; les références par étape contiennent la profondeur. Ne chargez une référence que lorsque vous entrez dans son étape. -
Budget de contexte et placement. Considérez la fenêtre de contexte comme un budget épuisable, pas un espace libre : la fiabilité se dégrade avec le nombre de jetons en direct (l'ensemble de travail fiable est une fraction de la fenêtre annoncée), alors gardez l'ensemble de travail de chaque étape maigre et ne laissez jamais un fil croître sans limite. Combattez le perdu-au-milieu — mettez les informations critiques au début ou à la fin de chaque fichier et invite.
...
[tronqué pour la traduction]