### **11. Roadmap et Lots de Développement**

#### **11.1. Séquencement**

L'ordre des lots suit une règle unique : **le risque technique le plus élevé est levé le plus tôt possible.** Ce risque n'est ni le backend ni le dashboard, qui sont des travaux connus, mais la capacité à cibler un élément et à l'afficher correctement dans une page que nous ne contrôlons pas. C'est pourquoi le SDK précède tout le reste, avec des parcours écrits à la main.

```mermaid
flowchart LR
    L0[Lot 0: socle] --> L1[Lot 1: SDK]
    L1 --> L2[Lot 2: backend]
    L2 --> L3[Lot 3: extension]
    L3 --> L4[Lot 4: telemetrie et dashboard]
    L4 --> L5[Lot 5: durcissement]
```

| Lot | Contenu | Chapitres |
| --- | --- | --- |
| 0 — Socle | Monorepo, outillage, `contracts`, schéma et migrations, chaîne d'intégration continue | 1, 2.4 |
| 1 — SDK | Moteur de rendu, résolution de cible, machine d'exécution, persistance, banc d'essai de résilience | 2.1 à 2.3, 3, 9.2 |
| 2 — Backend | API publique et d'administration, publication, manifeste, cache, authentification | 5, 7, 8.3 |
| 3 — Extension | Inspecteur, génération des candidats, édition, prévisualisation, publication | 4 |
| 4 — Mesure | Télémétrie du SDK, ingestion, agrégation, écrans du dashboard | 3.6, 5.5, 5.6, 6 |
| 5 — Durcissement | Assainissement, jeton d'extension, rétention, sauvegardes et restauration d'essai, documentation RGPD | 7.4 à 7.6, 8 |

Le lot 1 se développe et se démontre sans backend, à partir de fichiers JSON locaux. Cette autonomie est délibérée : elle permet d'éprouver le mécanisme le plus incertain du produit sans attendre qu'une infrastructure existe.

#### **11.2. Définition de terminé**

Un lot n'est terminé que lorsque ses critères de sortie sont vérifiés, pas lorsque son code est écrit.

| Lot | Critères de sortie |
| --- | --- |
| 0 | La chaîne d'intégration continue passe sur un dépôt vide de fonctionnalités ; les migrations s'appliquent sur une base vierge |
| 1 | Un parcours de trois étapes dont une question s'exécute sur une page de démonstration ; le banc d'essai atteint 100 % de survie sur la deuxième génération ; le poids compressé respecte le seuil ; la navigation au clavier et la restitution du focus sont vérifiées |
| 2 | Une publication crée une version immuable ; le manifeste porte les bons en-têtes de cache ; le délai de propagation est écrit dans la documentation d'intégration et les conditions de service (ADR-03) ; un test établit qu'une organisation ne peut pas lire les données d'une autre |
| 3 | Un administrateur capture, édite et publie un parcours sans écrire de code ; la prévisualisation correspond au rendu réel ; le retour de robustesse s'affiche |
| 4 | Le tunnel de complétion et les sélecteurs rompus sont visibles dans le dashboard pour un parcours réellement exécuté |
| 5 | Une restauration de sauvegarde a été réalisée avec succès ; un contenu hostile injecté dans une étape est neutralisé ; le contrat de sous-traitance est rédigé |

#### **11.3. Premier jalon démontrable**

**La fin du lot 3 est le moment où Circuy devient un produit.** À ce point, la boucle complète est vérifiable devant un prospect, sans intervention technique :

1. Ouvrir l'extension sur son propre site.
2. Pointer un bouton, écrire un titre et un texte.
3. Publier.
4. Recharger le site en tant que visiteur.
5. Voir l'infobulle apparaître au bon endroit.

Tout ce qui précède ce jalon est de l'infrastructure ; tout ce qui le suit est de l'amélioration. Aucune fonctionnalité absente de cette démonstration ne doit être développée avant qu'elle ne fonctionne, quelle que soit la pression qui s'exercera pour ajouter un écran, une option ou une intégration.
