Conception du plus petit harnais fonctionnel : un orchestrateur qui enchaîne les agents Cadrage, Spécifications et Architecture, un registre minimal conforme au schéma de l'étape 1, et le point de contrôle humain PC1 (validation du cahier des charges).
L'étape 2 construit le premier harnais fonctionnel de bout en bout : une demande initiale entre, et des artefacts amont validés (cahier des charges, spécifications, architecture) sortent, enregistrés dans le registre avec traçabilité complète.
| Élément | Détail |
|---|---|
| Orchestrateur minimal | CLI helios run : reçoit la demande, séquence les agents, gère le registre, expose PC1 |
| Agent Cadrage | Note d'opportunité, cahier des charges, analyse des risques, estimation |
| Agent Spécifications | Spécifications fonctionnelles puis techniques |
| Agent Architecture | Architecture, ADR (un par décision), modèle de données, choix technologiques |
| Registre minimal | Implémentation du schéma étape 1 : Git (contenu) + SQLite (métadonnées), types limités aux 3 familles amont |
| Point de contrôle PC1 | Approuver / rejeter / amender le cahier des charges, via CLI |
| Outils de vérification | Garde-fous : conformité référentiel, cohérence terminologique, revue croisée entre agents |
Le périmètre de l'étape 2 se concentre sur le flux amont : Cadrage → PC1 → Spécifications → Architecture. L'orchestrateur est un simple moteur séquentiel : chaque agent s'exécute, publie dans le registre, puis laisse la main.
Figure 1 — Orchestrateur minimal : séquence linéaire Cadrage → PC1 → Spécifications → Architecture, avec écriture systématique dans le registre.
helios run <demande.yaml> + commandes de contrôle helios approve|reject|amend.create, transition, impact (liste des avals), status.artefacts/<famille>/<type>/ (ex. artefacts/archi/adr/0001-...).registre.db, tables artefacts, transitions, dependances, garde_fous — conformes au schéma étape 1.cadrage.*, spec.*, archi.*, plus config.referentiels et transverse.matrice-tracabilite (dérivée).Tous les agents de l'étape 2 partagent la même boucle (principe 4 de la V3), implémentée une seule fois :
| Phase | Action | Sortie |
|---|---|---|
| 1. Contexte | Lecture des artefacts amont validés + configuration des référentiels + glossaire projet | Contexte injecté dans le prompt |
| 2. Planification | L'agent annonce sa liste d'artefacts et ses hypothèses | Mini-plan (journalisé) |
| 3. Génération | Production des artefacts (documents markdown) | Fichiers + métadonnées |
| 4. Auto-vérification | Relecture par l'agent : cohérence, complétude, conformité au référentiel | Garde-fous remplis |
| 5. Publication | Écriture Git + SQLite, passage brouillon → en_revue | Artefacts en attente de contrôle |
Chaque agent est défini par un contrat : mission, entrées, sorties, référentiels, garde-fous spécifiques. Le contrat est injecté dans le prompt de l'agent (exigence V3 section 4) et stocké dans le registre comme configuration.
| Aspect | Définition |
|---|---|
| Mission | Transformer la demande initiale en socle décisionnel validable : opportunité, périmètre, risques, budget de premier niveau. |
| Entrées | Demande initiale (YAML) — aucun artefact amont requis |
| Sorties | cadrage.note-opportunite, cadrage.cahier-des-charges, cadrage.analyse-risques, cadrage.estimation |
| Référentiels | ISO 25010 (grille qualité) ; exigences identifiables et vérifiables (cahier des charges) |
| Garde-fous | Chaque exigence du cahier des charges a un identifiant unique (EX-001…) ; le périmètre distingue inclus / exclu ; l'estimation fournit ordre de grandeur + hypothèses |
| Point de contrôle | PC1 — validation du périmètre et du budget par le sponsor |
| Aspect | Définition |
|---|---|
| Mission | Décliner le cahier des charges validé en exigences fonctionnelles puis techniques, traçables jusqu'aux tests futurs. |
| Entrées | cadrage.cahier-des-charges (statut valide) |
| Sorties | spec.fonctionnelles puis spec.techniques |
| Référentiels | Exigences identifiables et vérifiables ; matrice de traçabilité exigences ↔ tests |
| Garde-fous | Chaque exigence fonctionnelle reprend l'identifiant EX-xxx du cahier des charges ; chaque exigence technique est liée à une ou plusieurs exigences fonctionnelles ; aucune exigence amont oubliée (revue de couverture) |
| Point de contrôle | Aucun dédié à ce stade (la validation des specs est implicite via l'architecture) — peut être ajouté en PC3-bis si besoin |
| Aspect | Définition |
|---|---|
| Mission | Concevoir l'architecture cible répondant aux specs, en documentant chaque décision structurante par un ADR. |
| Entrées | spec.fonctionnelles + spec.techniques (statut valide) |
| Sorties | archi.architecture, archi.adr (un artefact par décision — D3), archi.modele-donnees, archi.choix-technos |
| Référentiels | ADR, C4 model, ISO/IEC/IEEE 42010 |
| Garde-fous | Au moins un ADR par décision structurante ; diagrammes C4 (contexte, conteneurs) présents ; modèle de données couvre les entités des specs ; chaque choix technologique est justifié dans un ADR ou archi.choix-technos |
| Point de contrôle | PC3 — revue d'architecture (déjà prévu à l'étape 2, validé par l'architecte) |
Le point de contrôle PC3 (revue d'architecture) est inclus dès cette étape : l'architecture est le premier artefact dont une erreur coûte cher. Il s'ajoute à PC1 sans alourdir le flux (deux suspensions humaines sur la chaîne amont).
Le flux complet de l'étape 2, avec les transitions de statut à chaque étape :
| # | Action | Acteur | Artefacts produits | Statuts traversés |
|---|---|---|---|---|
| 1 | Saisie de la demande initiale | Porteur | — (fichier demande.yaml hors registre) | — |
| 2 | Création du projet + config référentiels | Orchestrateur | config.referentiels | brouillon → en_revue → valide (automatique) |
| 3 | Génération du cadrage | agent:cadrage | 4 artefacts cadrage.* | brouillon → en_revue (garde-fous) |
| 4 | Suspension PC1 | Humain (sponsor) | — | en_revue → valide ou rejete |
| 5 | Génération des spécifications | agent:specifications | spec.fonctionnelles, spec.techniques | brouillon → en_revue → valide |
| 6 | Génération de l'architecture | agent:architecture | archi.architecture, archi.adr×n, archi.modele-donnees, archi.choix-technos | brouillon → en_revue |
| 7 | Suspension PC3 | Humain (architecte) | — | en_revue → valide ou rejete |
| 8 | Régénération de la matrice de traçabilité | Orchestrateur (mécanique) | transverse.matrice-tracabilite | générée depuis les liens derive_de |
| 9 | Bilan d'étape | Orchestrateur | rapport CLI | — |
Scénario de test obligatoire : après validation, le sponsor amende le cahier des charges (transition valide → brouillon sur cadrage.cahier-des-charges). L'orchestrateur doit :
spec.fonctionnelles, spec.techniques, puis archi.* (propagation transitive).À l'étape 2, la régénération après amendement est manuelle (commande helios regenerate <type>) : l'automatisation complète de la propagation est prévue à l'étape 3 (traçabilité complète). Le mécanisme d'impact est en revanche opérationnel dès maintenant.
PC1 valide le périmètre et le budget (gouvernance V3, section 8). Il s'agit de la première suspension humaine du harnais : c'est ici que se joue la crédibilité du dispositif — l'humain doit vraiment lire, pas cocher.
| Commande | Effet | Journalisation |
|---|---|---|
helios approve <artefact> | en_revue → valide ; débloque les avals | qui, quand, commentaire obligatoire |
helios reject <artefact> -m "..." | en_revue → rejete ; le flux s'arrête | qui, quand, motif obligatoire |
helios amend <artefact> -m "..." | en_revue → brouillon avec instructions de modification ; l'agent régénère | qui, quand, instructions |
helios status | Affiche les artefacts en attente de contrôle | — |
Pour éviter la dérive « l'humain valide sans lire » (V3 section 8), l'orchestrateur fournit avec chaque artefact soumis :
| Couche | Choix | Justification |
|---|---|---|
| Langage | Python 3.11 | Écosystème, cohérence avec l'environnement, lisibilité |
| CLI | Typer / Click | Commandes run, approve, reject, amend, status, regenerate |
| Registre | Git (contenu) + SQLite (métadonnées) — décision D1 | Traçabilité native du contenu, recherche efficace des métadonnées |
| LLM | DeepSeek (API OpenAI-compatible) | Fournisseur configuré par défaut ; deepseek-v4-flash pour génération, modèle supérieur si besoin |
| Génération documents | Markdown + schémas Mermaid (diagrammes C4) | Versionnable, diffable, convertible |
| Tests | pytest | Pyramide de tests du harnais lui-même (les tests du harnais ne sont pas générés par le harnais à ce stade) |
helios/ ├── cli.py # commandes run/approve/reject/amend/status/regenerate ├── orchestrateur.py # séquencement, retry, escalade, impact ├── boucle_agent.py # boucle générique : contexte → plan → génération → auto-vérif → publication ├── registre/ │ ├── git_store.py # écriture contenu (Git) │ ├── sqlite_store.py # métadonnées, transitions, dépendances │ └── machine_etats.py # statuts + transitions (annexe A V3) ├── agents/ │ ├── cadrage.py │ ├── specifications.py │ └── architecture.py ├── garde_fous.py # conformité référentiel, cohérence terminologique, couverture ├── referentiels.yaml # config type ↔ référentiel (étape 1, section 6) ├── tests/ # pytest : machine à états, registre, garde-fous, orchestration └── artefacts/ # dépôt Git des contenus, par famille ├── cadrage/ spec/ archi/ transverse/
artefacts(id TEXT PK, type TEXT, version TEXT, statut TEXT, auteur TEXT, cree_le TEXT, modifie_le TEXT, valide_le TEXT, valide_par TEXT, contenu TEXT, empreinte TEXT, tags TEXT) transitions(id INTEGER PK, artefact_id TEXT FK, de TEXT, vers TEXT, le TEXT, par TEXT, commentaire TEXT) -- append-only dependances(artefact_id TEXT FK, lien TEXT, cible TEXT) -- derive_de / conforme_a / valide_par garde_fous(artefact_id TEXT FK, verif TEXT, resultat TEXT, detail TEXT)
Le scénario de validation de l'étape 2, exécuté en conditions réelles avec un petit projet fictif :
| Étape | Attendu | Critère de succès |
|---|---|---|
1. helios run demande.yaml | Projet créé, 4 artefacts cadrage.* générés | Tous les artefacts passent les garde-fous et atteignent en_revue |
2. helios status | Liste les artefacts en attente | Le cahier des charges apparaît avec résumé exécutif |
3. helios amend cadrage.cahier-des-charges -m "ajouter plafond de dépense" | Régénération ciblée | Nouvelle version avec l'exigence ajoutée, dépendances conservées |
4. helios approve cadrage.cahier-des-charges | PC1 validé, flux débloqué | Statut valide, transition journalisée avec commentaire |
| 5. Génération specs puis archi | spec.* puis archi.* produits dans l'ordre | Chaque spec référence les exigences EX-xxx ; chaque ADR est autonome |
6. helios approve archi.architecture | PC3 validé | Statut valide |
| 7. Amendement amont (test propagation) | Modifier cadrage.cahier-des-charges (valide → brouillon) | helios status liste specs et archi comme impactés |
8. helios regenerate spec.fonctionnelles | Régénération manuelle aval | Les specs reflètent le nouveau cahier des charges |
Le jeu de test doit être rejoué intégralement après chaque modification du harnais (régression) : c'est le premier noyau de tests tests/test_etape2_e2e.py.
L'étape 2 est considérée terminée lorsque :
Ce livrable introduit des choix de conception à confirmer avant implémentation (point de contrôle humain de l'étape 2).
Validation — 1 août 2026. Décisions D6 → D10 toutes validées par Hugues (point de contrôle humain de l'étape 2). Les choix retenus sont signalés en gras dans le tableau ci-dessous. Ce document passe au statut Validé — l'implémentation de l'étape 2 démarre.
| # | Décision | Options | Recommandation |
|---|---|---|---|
| D6 | Inclusion de PC3 (revue d'architecture) dès l'étape 2 | Oui, dès maintenant / Non, à l'étape 3 | Oui — une erreur d'architecture coûte cher ; deux suspensions humaines restent légères |
| D7 | Modèle LLM par défaut pour les agents | deepseek-v4-flash seul / flash + pro (pro pour architecture) | flash pour cadrage+specs, pro pour architecture — maîtrise des coûts (V3 §10.1) |
| D8 | Format des artefacts documents | Markdown seul / Markdown + Mermaid / HTML | Markdown + Mermaid — versionnable, diffable, diagrammes C4 |
| D9 | Validation des specs (agent Spécifications) | Aucun contrôle dédié / contrôle humain léger (PC3-bis) / contrôle par l'agent Architecture (revue croisée) | Revue croisée par l'agent Architecture — sans coût humain supplémentaire, conforme au principe de recoupement V3 |
| D10 | Emplacement du projet | GitHub (koandko93/MyHelios) / dépôt local / GitLab | GitHub — préférence pour les nouveaux projets ; branches main + her (workflow habituel) |
Une fois ce livrable validé, l'implémentation de l'étape 2 démarre : dépôt Git, registre (Git+SQLite), boucle agentique, les trois agents, PC1/PC3, puis le jeu de test de bout en bout.