Communitygithub.com

oraphadev/ai-workflow

Faites passer un projet d'un répertoire vide à un MVP déployé via un pipeline IA en 8 étapes, piloté par des validations humaines. Installation : npx skills add oraphadev/ai-workflow --agent claude-code

Qu'est-ce que ai-workflow ?

Ce skill définit un pipeline rigoureux en huit étapes (Découverte, Périmètre, Marque, Prototypage, Stack, Instrumentation, Harnais, Vibe Coding) qui transforme une idée brute en un produit minimum viable (MVP) déployé. L'agent principal agit comme un orchestrateur : il décompose le travail, le délègue à des sous-agents spécialisés, vérifie leurs résultats et s'arrête à chaque porte de validation humaine obligatoire. Le pipeline s'adapte à trois niveaux d'enjeux (jetable, MVP, plateforme) pour éviter de déployer une machinerie lourde sur un projet de week-end. Les artefacts produits sont des contrats versionnés qui alimentent les étapes suivantes, et un journal des portes (docs/GATES.md) conserve une trace horodatée de chaque décision humaine. Le skill prend en charge les projets greenfield (démarrage à zéro), brownfield (répertoire existant avec du code) et les reprises sur décision différée. Il s'intègre avec Claude Code, Cursor, Codex et d'autres agents capables d'exécuter des workflows et de déléguer à des sous-agents.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add oraphadev/ai-workflow

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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.

  1. 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.

  2. 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 :

EnjeuxDécouverteMarqueStack/ArchitectureHarnais (7)Construction (8)
jetableanalyse rapide de 1–3 références, pas de déploiement profond en étoileignorer / quelques jetonsminimal, valeurs par défaut senséesignorer, ou un noyau minuscule (Orchestrateur + Constructeur + Relecteur)livrer vite, portes légères
mvp2–4 concurrents directs en profondeur, le reste légercomplet mais par lotscomplet, justifiééquipe de base + les rôles dont ce projet a réellement besoinboucle SDD, déploiement en premier
plateformerecherche complète en profondeur imbriquéecompletcomplet + ADRharnais complet, tous les rôles justifiésportes 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.

  1. Regardez la racine du projet.
    • docs/STATE.md existe → 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 : recoupez docs/STATE.md avec docs/GATES.md et l'arborescence réelle de docs/ — 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.md et 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.md mais 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.
  2. 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.
  3. 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 :

  1. 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.
  2. 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.
  3. 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.
  4. Écrivez les artefacts. Produisez les livrables de l'étape dans docs/<etape>/ en utilisant les modèles dans assets/templates/deliverables/. Les artefacts sont des contrats : complets, concrets, en anglais.
  5. 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, avancez docs/STATE.md et 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 à done dans docs/STATE.md, mettez la suivante à in_progress et 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 .env complet, 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ée dans docs/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 :

    ManquantDégradation en
    Pas de sous-agents / Workflowexécutez la fan-out en série et plus petit
    Pas d'accès webmarquez la recherche *inférée*, appuyez-vous sur l'utilisateur pour les faits
    Pas de Figmaprototypez dans le code, ou en tant que spécification décrite
    Pas de CI hébergé / cible de déploiementun test local vert + un plan de déploiement documenté comptent comme vérifié — vérifié ≠ CI-hébergé-vert
    Modèle plus faibletraitez 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 dans docs/, 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 dans docs/STATE.md et docs/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 dans docs/, 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]

Skills associés