#Sommaire
| § |
Section |
| 1 |
Objet du carnet et règles de lecture |
| 2 |
Conventions : statuts, MoSCoW, effort, preuve |
| 3 |
Carte des 21 épopées |
| 4 |
Épopée E01 — Comprendre l'existant |
| 5 |
Épopée E02 — Spécification exécutable |
| 6 |
Épopée E03 — Copilote de spécification |
| 7 |
Épopée E04 — Traçabilité et analyse d'impact |
| 8 |
Épopée E05 — Conception et artefacts projetés |
| 9 |
Épopée E06 — Métamodèle, collaboration et revues |
| 10 |
Épopée E07 — Espace de travail projet |
| 11 |
Épopée E08 — Orchestration agentique et AgentOps |
| 12 |
Épopée E09 — Registre central d'agents et capacités |
| 13 |
Épopée E10 — Personnel virtuel IA |
| 14 |
Épopée E11 — Exécution de code gouvernée |
| 15 |
Épopée E12 — Vérification et qualité |
| 16 |
Épopée E13 — Livraison et pipeline CI/CD |
| 17 |
Épopée E14 — Mise en ligne du produit client |
| 18 |
Épopée E15 — Plan de contrôle d'administration |
| 19 |
Épopée E16 — Identité, RBAC et multi-locataire |
| 20 |
Épopée E17 — Audit, conformité et Loi 25 |
| 21 |
Épopée E18 — Commercialisation, budgets et quotas |
| 22 |
Épopée E19 — Retours utilisateurs et feuille de route publique |
| 23 |
Épopée E20 — Bilingue, accessibilité et expérience de portail |
| 24 |
Épopée E21 — Documentation publique et prise en main |
| 25 |
Carte des dépendances entre épopées |
| 26 |
Feuille de route par vagues — dates absolues |
| 27 |
Dette technique connue et assumée |
| 28 |
Récapitulatif statistique du carnet |
#1. Objet du carnet et règles de lecture
Ce carnet est la vue unique et opposable de ce que KySpectra fait aujourd'hui, de ce qui est en chantier, et de ce qui reste à faire. Il sert trois usages :
| Usage |
Public |
Ce qu'il en attend |
| Arbitrage de portée avant le jour J |
Direction produit, direction technique |
Savoir ce qui peut être promis publiquement le 2026-11-10 |
| Séquencement des vagues |
Équipe de livraison |
Savoir dans quel ordre construire |
| Réponse à une question client ou analyste |
Ventes, avant-vente, relations publiques |
Ne jamais annoncer une capacité qui n'existe pas |
Trois règles gouvernent la rédaction de ce carnet.
- Aucune ligne n'est écrite sans preuve. La colonne Preuve porte une route d'interface, un chemin de service, un drapeau de fonctionnalité, ou une trace de vérification en navigateur réel. Une fonctionnalité sans preuve est marquée Planifié et sa preuve porte la mention
—.
- Le statut prime sur l'enthousiasme. Une fonctionnalité écrite, testée, mais non déployée est En cours, pas Livré. Une fonctionnalité déployée mais jamais exercée en navigateur réel est En cours, pas Livré.
- La dette est nommée, pas dissimulée. La section 27 recense les écarts assumés. Un carnet qui cache ses écarts se détruit au premier essai client.
#2. Conventions : statuts, MoSCoW, effort, preuve
#2.1 Les quatre statuts
| Statut |
Pastille |
Définition opérationnelle |
| Livré |
🟢 |
Code présent, déployé sur au moins un environnement en ligne, et exercé au moins une fois par un chemin utilisateur réel |
| En cours |
🟡 |
Code présent et testé, mais non déployé, ou déployé derrière un drapeau désactivé, ou non encore exercé en navigateur réel |
| Planifié |
⚪ |
Conception seule, ou implémentation absente du dépôt |
| Bloqué |
🔴 |
Implémentation présente, mais empêchée par une cause externe vérifiée empiriquement |
#2.2 La priorisation MoSCoW
| Code |
Signification |
Critère d'attribution dans ce carnet |
| M |
Must — indispensable |
Sans elle, la promesse « de l'intention au logiciel en production, gouverné » ne tient pas |
| S |
Should — importante |
Améliore fortement la valeur, mais la chaîne fonctionne sans elle |
| C |
Could — souhaitable |
Confort, différenciation secondaire, ou automatisation d'un geste déjà possible |
| W |
Won't — hors périmètre de la première année |
Explicitement écarté, pour éviter qu'il revienne par la porte du marketing |
#2.3 L'échelle d'effort
Toutes les valeurs d'effort sont des estimations internes non contractuelles, donc systématiquement étiquetées [Hypothèse].
| Code |
Ordre de grandeur [Hypothèse] |
Repère |
| S |
1 à 3 jours-personne |
Correctif d'interface, clé de traduction, drapeau à positionner |
| M |
1 à 2 semaines-personne |
Route serveur avec persistance et tests |
| L |
3 à 6 semaines-personne |
Nouvelle surface d'interface complète, ou nouveau service |
| XL |
plus de 6 semaines-personne |
Nouveau plan transversal, ou intégration d'un fournisseur externe complet |
#2.4 Ce que contient la colonne Preuve
| Forme |
Exemple |
Ce que cela signifie |
| Route d'interface |
/projects/[projectId]/workspace |
Écran réellement présent dans le portail client |
| Route de service |
POST /api/v1/reverse-engineering/jobs |
Point d'accès réel, atteignable par la passerelle |
| Fichier de code |
frontend/client-portal/src/lib/workspace/views.ts |
Registre ou table de vérité dans le dépôt |
| Drapeau |
DEPLOY_LIVE |
Interrupteur qui conditionne le comportement |
| Trace de vérification |
WORKFORCE 5/5 dev+prod |
Exercice en navigateur réel consigné |
— |
— |
Aucune preuve : la fonctionnalité est Planifiée |
#3. Carte des 21 épopées
| ID |
Épopée |
Maillon de la chaîne de valeur |
Fonctionnalités |
Statut dominant |
| E01 |
Comprendre l'existant |
1 · Comprendre |
12 |
🟢 Livré |
| E02 |
Spécification exécutable |
2 · Spécifier |
12 |
🟢 Livré |
| E03 |
Copilote de spécification |
2 · Spécifier |
10 |
🟢 Livré |
| E04 |
Traçabilité et analyse d'impact |
2 · Spécifier |
9 |
🟢 Livré |
| E05 |
Conception et artefacts projetés |
3 · Concevoir |
12 |
🟢 Livré |
| E06 |
Métamodèle, collaboration et revues |
3 · Concevoir |
10 |
🟢 Livré |
| E07 |
Espace de travail projet |
Transversal surfaces |
13 |
🟢 Livré |
| E08 |
Orchestration agentique et AgentOps |
4 · Fabriquer |
11 |
🟢 Livré |
| E09 |
Registre central d'agents et capacités |
Plan de contrôle |
12 |
🟢 Livré |
| E10 |
Personnel virtuel IA |
4 · Fabriquer |
11 |
🟢 Livré phase 1 |
| E11 |
Exécution de code gouvernée |
4 · Fabriquer |
10 |
🟢 Livré |
| E12 |
Vérification et qualité |
5 · Vérifier |
12 |
🟢 Livré |
| E13 |
Livraison et pipeline CI/CD |
6 · Livrer |
14 |
🟢 Livré (Kubernetes) |
| E14 |
Mise en ligne du produit client |
6 · Livrer |
11 |
🟡 Partiel |
| E15 |
Plan de contrôle d'administration |
Plan de contrôle |
16 |
🟢 Livré |
| E16 |
Identité, RBAC et multi-locataire |
Plan de contrôle |
12 |
🟢 Livré |
| E17 |
Audit, conformité et Loi 25 |
Plan de contrôle |
10 |
🟢 Livré |
| E18 |
Commercialisation, budgets et quotas |
Plan de contrôle |
13 |
🟡 Partiel |
| E19 |
Retours utilisateurs et feuille de route publique |
Transversal |
9 |
🟢 Livré |
| E20 |
Bilingue, accessibilité et expérience de portail |
Transversal surfaces |
10 |
🟢 Livré |
| E21 |
Documentation publique et prise en main |
Transversal |
9 |
🟡 En cours |
| — |
Total |
— |
238 |
— |
#4. Épopée E01 — Comprendre l'existant
Intention. Partir du système réel du client, pas d'une page blanche. On importe un dépôt, on en extrait des faits horodatés par fichier:ligne, on en infère des candidats de spécification, et on ne promeut rien sans porte de validation.
Ce qui la rend défendable. La rétro-ingénierie ne fabrique jamais : une entrée reconnue mais non analysable devient un unsupported déclaré, pas une hypothèse maquillée.
Nuance à ne jamais omettre en communication. L'analyse de code source par arbre syntaxique complet ne concerne que Python. JavaScript, TypeScript, Go, Java, Ruby et C# sont détectés puis signalés comme non pris en charge — jamais analysés en silence.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-01-01 |
E01 Comprendre |
Enregistrement d'une source de projet durable |
Rattacher un dépôt, une base ou un contrat d'interface à un projet, avec référence de secret par chemin de coffre |
Le projet garde la mémoire de ses sources |
M |
🟢 Livré |
POST /api/v1/reverse-engineering/projects/{id}/sources |
M [Hypothèse] |
| F-01-02 |
E01 Comprendre |
Clonage superficiel authentifié |
Clone --depth 1 --single-branch, jeton injecté par en-tête, jamais dans l'URL ni dans la configuration du dépôt |
Import d'un dépôt privé sans fuite de secret |
M |
🟢 Livré |
backend/reverse-engineering-service — ingestion.py |
M [Hypothèse] |
| F-01-03 |
E01 Comprendre |
Analyse statique Python par arbre syntaxique |
Modules, classes, fonctions, complexité cyclomatique, graphe d'appels, points d'accès HTTP, entités, événements |
Faits objectifs, pas d'intuition |
M |
🟢 Livré |
static_python.py — analyze_python |
L [Hypothèse] |
| F-01-04 |
E01 Comprendre |
Déclaration honnête des langages non pris en charge |
Une extension reconnue sans analyseur produit une entrée unsupported visible |
Honnêteté d'ingénierie opposable |
M |
🟢 Livré |
ingestion.py — liste unsupported |
S [Hypothèse] |
| F-01-05 |
E01 Comprendre |
Ingestion de schéma de base et de contrat d'interface |
Tables, colonnes, clés étrangères par expressions régulières ; OpenAPI analysé réellement |
Reconstruire le modèle de données réel |
M |
🟢 Livré |
POST …/jobs avec system=db_schema ou openapi |
M [Hypothèse] |
| F-01-06 |
E01 Comprendre |
Sept émetteurs d'artefacts d'architecture |
C4, modèle entité-relation, OpenAPI, machines à états, séquences, dictionnaire de données, traçabilité |
L'architecture réelle devient lisible |
M |
🟢 Livré |
GET …/jobs/{id}/emit — drapeau REVERSE_EMIT_ENABLED à true |
L [Hypothèse] |
| F-01-07 |
E01 Comprendre |
File de validation humaine des candidats |
Chaque inférence ouvre une tâche ; l'approbation crée l'objet de spécification réel |
Aucune promotion sans décision |
M |
🟢 Livré |
POST …/validation-tasks/{id}/decision — rôle PUBLISHER |
M [Hypothèse] |
| F-01-08 |
E01 Comprendre |
Promotion automatique au-dessus d'un seuil de confiance |
Seuil par défaut 0,7 ; emprunte exactement le chemin d'une approbation humaine |
Réduire la file sans contourner la porte |
S |
🟢 Livré |
AUTO_PROMOTE_ENABLED à true, seuil 0.7 |
M [Hypothèse] |
| F-01-09 |
E01 Comprendre |
Détection de dérive entre spécification et code |
Constats persistés, filtrables par projet et par nature |
Voir vieillir un système |
S |
🟢 Livré |
POST …/jobs/{id}/drift/analyze |
M [Hypothèse] |
| F-01-10 |
E01 Comprendre |
Analyse incrémentale déclenchée par un crochet de dépôt |
Signature HMAC vérifiée, différentiel, ensemble impacté |
Garder la carte à jour sans tout rejouer |
S |
🟢 Livré |
POST …/jobs/{id}/incremental |
M [Hypothèse] |
| F-01-11 |
E01 Comprendre |
Exploration en direct d'une application cible |
Parcours en largeur borné par périmètre, routes et formulaires découverts |
Comprendre une application sans son code |
C |
🟡 En cours |
POST …/target-envs/{id}/discoveries — 501 sans moteur de navigation configuré |
L [Hypothèse] |
| F-01-12 |
E01 Comprendre |
Analyseurs pour JavaScript, TypeScript, Go, Java, C# |
Extension de l'analyse statique au-delà de Python |
Élargir le marché adressable |
S |
⚪ Planifié |
— |
XL [Hypothèse] |
#5. Épopée E02 — Spécification exécutable
Intention. Faire de l'exigence un objet de données typé, versionné et relié, et non un paragraphe dans un document mort.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-02-01 |
E02 Spécifier |
Entité projet propriétaire |
Le service de spécification possède l'entité projet nue ; tout autre service y accède par son périmètre |
Un seul propriétaire, pas de collision de routes |
M |
🟢 Livré |
GET /api/v1/projects — spec-service port 4107 |
M [Hypothèse] |
| F-02-02 |
E02 Spécifier |
Objets de spécification typés |
Exigences fonctionnelles, non fonctionnelles, règles d'affaires, entités, contrats d'interface, décisions |
Un critère d'acceptation n'est plus confondu avec une contrainte |
M |
🟢 Livré |
/api/v1/spec-items |
L [Hypothèse] |
| F-02-03 |
E02 Spécifier |
Versionnement des objets |
Chaque modification produit une version consultable |
Savoir ce qui a changé, quand et par qui |
M |
🟢 Livré |
/api/v1/spec-items — historique de version |
M [Hypothèse] |
| F-02-04 |
E02 Spécifier |
Explorateur de spécification |
Liste filtrable par type, statut, propriétaire, texte libre |
Retrouver une exigence en secondes |
M |
🟢 Livré |
/projects/[projectId]/spec |
M [Hypothèse] |
| F-02-05 |
E02 Spécifier |
Fiche de détail d'un objet |
Attributs, liens entrants et sortants, historique, commentaires |
Comprendre un objet sans quitter l'écran |
M |
🟢 Livré |
/projects/[projectId]/spec/[itemId] |
M [Hypothèse] |
| F-02-06 |
E02 Spécifier |
Validation de grammaire EARS |
Vérification de la forme des exigences à la génération |
Éviter la revue humaine tardive de forme |
M |
🟢 Livré |
/api/v1/ears — drapeau EARS_GENERATION_ENABLED à true |
M [Hypothèse] |
| F-02-07 |
E02 Spécifier |
Documents d'orientation de projet |
Contraintes transverses appliquées à la génération |
Le projet impose son cadre aux agents |
S |
🟢 Livré |
/api/v1/steering — drapeau STEERING_ENABLED à true |
M [Hypothèse] |
| F-02-08 |
E02 Spécifier |
Tableau de bord par statut du cycle de vie |
Vue en colonnes des objets par étape |
Piloter l'avancement sans tableur |
S |
🟢 Livré |
Vue boards de l'espace de travail |
M [Hypothèse] |
| F-02-09 |
E02 Spécifier |
Recherche plein texte sur la spécification |
Index de recherche adossé au service de spécification |
Trouver par mots plutôt que par arborescence |
S |
🟢 Livré |
spec-service → moteur de recherche |
M [Hypothèse] |
| F-02-10 |
E02 Spécifier |
Approche spécification d'abord |
Le cycle démarre par l'exigence, pas par le ticket |
Le carnet cesse d'être la source de vérité |
M |
🟢 Livré |
Drapeau SPEC_FIRST_ENABLED à true |
M [Hypothèse] |
| F-02-11 |
E02 Spécifier |
Application automatique d'un changement de spécification au code |
Propagation directe d'une modification vers l'implémentation |
Fermer la boucle sans geste manuel |
C |
🟡 En cours |
Drapeau SPEC_APPLY_ENABLED à false par défaut |
L [Hypothèse] |
| F-02-12 |
E02 Spécifier |
Import d'un document existant vers des exigences |
Pipeline document vers spécification |
Récupérer un cahier des charges hérité |
S |
🟢 Livré |
/api/v1/ingestion — ingestion-service port 4125 |
M [Hypothèse] |
#6. Épopée E03 — Copilote de spécification
Intention. Passer du langage naturel à des objets de spécification vérifiables, en montrant le travail de l'agent au lieu de le cacher.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-03-01 |
E03 Copilote |
Génération d'exigences depuis le langage naturel |
Une intention écrite en français produit des objets typés |
Démarrer un projet en minutes |
M |
🟢 Livré |
/api/v1/copilot — copilot-service port 4118 |
L [Hypothèse] |
| F-03-02 |
E03 Copilote |
Écran de spécification assistée |
Formulaire de saisie, prévisualisation, acceptation objet par objet |
L'humain garde la main sur ce qui entre |
M |
🟢 Livré |
/projects/[projectId]/specify |
M [Hypothèse] |
| F-03-03 |
E03 Copilote |
Tableau d'agents en direct |
Flux d'événements serveur montrant les étapes de l'agent |
Voir ce que fait l'agent, pas seulement son résultat |
S |
🟢 Livré |
/projects/[projectId]/agents |
M [Hypothèse] |
| F-03-04 |
E03 Copilote |
Écriture d'objets par l'agent |
L'agent crée les objets acceptés dans le service de spécification |
Pas de copier-coller manuel |
M |
🟢 Livré |
copilot-service — écriture d'objets |
M [Hypothèse] |
| F-03-05 |
E03 Copilote |
Injection du métamodèle du projet dans la génération |
Les types et liens autorisés du projet contraignent l'agent |
L'agent respecte le cadre du projet |
S |
🟢 Livré |
collaboration-service — /api/v1/metamodel |
M [Hypothèse] |
| F-03-06 |
E03 Copilote |
Passerelle de modèles de langage |
Fournisseur unique en façade, priorité au modèle Claude, repli configuré |
Changer de fournisseur sans réécrire |
M |
🟢 Livré |
llm-gateway-service |
M [Hypothèse] |
| F-03-07 |
E03 Copilote |
Prompts personnels et catalogue de prompts |
Prompts d'utilisateur, prompts d'organisation, prompts globaux |
Capitaliser sur ce qui marche |
S |
🟢 Livré |
/prompts et /api/v1/prompt-orchestration |
M [Hypothèse] |
| F-03-08 |
E03 Copilote |
Budget de jetons appliqué à la génération |
Plafond journalier et mensuel, erreur explicite à l'épuisement |
Sobriété assumée |
M |
🟢 Livré |
packages/agent-sdk — token_budget.py, code 402 |
M [Hypothèse] |
| F-03-09 |
E03 Copilote |
Assistants guidés du portail |
Six parcours pas à pas, dont l'identité de locataire, la base de données et l'intégration continue |
Prise en main sans documentation |
S |
🟢 Livré |
portal-experience-service — /api/v1/wizards, vérifié en production |
M [Hypothèse] |
| F-03-10 |
E03 Copilote |
Compagnon conversationnel du plan de contrôle |
Navigation assistée dans le portail d'administration |
Confort d'exploitation |
C |
🟡 En cours |
admin-portal — companion.tsx, message companion.notWired explicite |
M [Hypothèse] |
#7. Épopée E04 — Traçabilité et analyse d'impact
Intention. Relier chaque artefact à l'exigence qui l'a produit, dans les deux sens, pour que la question « pourquoi ce code existe-t-il ? » ait une réponse.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-04-01 |
E04 Traçabilité |
Graphe de traçabilité du projet |
Nœuds d'exigences, d'artefacts, de tests et de défauts, arêtes typées |
Une seule carte pour tout le projet |
M |
🟢 Livré |
Vue graph de l'espace de travail |
L [Hypothèse] |
| F-04-02 |
E04 Traçabilité |
Écran de traçabilité dédié |
Page projet avec matrice et filtres |
Répondre à un auditeur sans export manuel |
M |
🟢 Livré |
/projects/[projectId]/trace |
M [Hypothèse] |
| F-04-03 |
E04 Traçabilité |
Analyse des écarts |
Exigences sans artefact, artefacts sans exigence, tests sans critère |
Voir les trous, pas seulement les liens |
M |
🟢 Livré |
/projects/[projectId]/analyze |
M [Hypothèse] |
| F-04-04 |
E04 Traçabilité |
Ancres de code reliées aux exigences |
Arêtes implements et traces_to produites par l'émetteur de traçabilité |
Le code cesse d'être orphelin |
M |
🟢 Livré |
traceability.py — build_traceability |
M [Hypothèse] |
| F-04-05 |
E04 Traçabilité |
Taux de couverture et trous de traçabilité |
Calcul de couverture et liste des manques |
Un chiffre défendable en comité |
S |
🟢 Livré |
GET …/jobs/{id}/emit/traceability |
S [Hypothèse] |
| F-04-06 |
E04 Traçabilité |
Graphe de dépendances entre composants |
Couplages internes et externes |
Anticiper l'onde de choc d'un changement |
S |
🟢 Livré |
dependency-graph-service port 4117 |
M [Hypothèse] |
| F-04-07 |
E04 Traçabilité |
Remontée d'un défaut vers son exigence |
Le défaut porte le lien vers l'objet source |
Corriger la cause, pas le symptôme |
M |
🟢 Livré |
Vue review de l'espace de travail |
M [Hypothèse] |
| F-04-08 |
E04 Traçabilité |
Réutilisation d'une exigence entre méthodes |
Un document produit par une méthode est consommé par une autre, avec provenance conservée |
Ne pas ressaisir entre cadres méthodologiques |
S |
🟢 Livré |
Arêtes traces_to en base de vérité |
M [Hypothèse] |
| F-04-09 |
E04 Traçabilité |
Export de la matrice de traçabilité vers un tableur |
Sortie tabulaire téléchargeable |
Livrable d'audit hors ligne |
C |
⚪ Planifié |
— |
S [Hypothèse] |
#8. Épopée E05 — Conception et artefacts projetés
Intention. Projeter la spécification en artefacts de conception normalisés, sans ressaisie.
Nuance à ne jamais omettre en communication. Le vocabulaire de diagrammes UML accepté compte 14 types, verrouillé par une assertion au démarrage du service. En profondeur, 5 types possèdent un générateur spécialisé ; les 9 autres retombent sur un rendu d'organigramme générique. La seule sortie graphique est du texte Mermaid — ni PlantUML, ni SVG, ni PNG.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-05-01 |
E05 Concevoir |
Document d'exigences produit |
Projection structurée depuis les objets de spécification |
Un livrable de cadrage sans ressaisie |
M |
🟢 Livré |
artifact-service port 4129 — /api/v1/artifacts |
M [Hypothèse] |
| F-05-02 |
E05 Concevoir |
Rendu UML — vocabulaire de 14 types |
Vocabulaire verrouillé par assertion ; toute autre valeur rejetée |
Contrat de types stable |
M |
🟢 Livré |
POST /api/v1/diagrams/uml — UML_DIAGRAM_TYPES |
M [Hypothèse] |
| F-05-03 |
E05 Concevoir |
Générateurs spécialisés pour 5 types UML |
Rendu dédié, les 9 autres types en organigramme générique |
Qualité de rendu là où elle compte |
S |
🟢 Livré |
mermaid.py — 5 générateurs, 9 replis |
M [Hypothèse] |
| F-05-04 |
E05 Concevoir |
Diagrammes BPMN |
Processus d'affaires projetés |
Le métier lit son propre processus |
S |
🟢 Livré |
artifact-service — /diagrams |
M [Hypothèse] |
| F-05-05 |
E05 Concevoir |
Vues d'architecture d'entreprise TOGAF |
Cartographie par cycle de développement d'architecture |
Alignement avec le cadre de l'entreprise |
S |
🟢 Livré |
artifact-service — /togaf |
M [Hypothèse] |
| F-05-06 |
E05 Concevoir |
Artefacts de sécurité |
Surface d'attaque, diagramme de flux de données, modèle de menace, écarts de confiance zéro |
Sécurité conçue, pas ajoutée |
M |
🟢 Livré |
artifact-service — /sec-artifacts |
L [Hypothèse] |
| F-05-07 |
E05 Concevoir |
Documentation comme code |
Markdown exportable, diagrammes rendus, projection bilingue |
La documentation suit la spécification |
M |
🟢 Livré |
artifact-service — /documentation |
M [Hypothèse] |
| F-05-08 |
E05 Concevoir |
Détection de dérive de documentation |
Écart entre la spécification et la documentation projetée |
Documentation qui ne ment pas |
S |
🟢 Livré |
artifact-service — détection de dérive |
M [Hypothèse] |
| F-05-09 |
E05 Concevoir |
Vue Artefacts de l'espace de travail |
Consultation et export de tous les artefacts du projet |
Un seul point d'accès |
M |
🟢 Livré |
Vue artifacts — capacité docs:export |
M [Hypothèse] |
| F-05-10 |
E05 Concevoir |
Vue Docs de l'espace de travail |
Documentation exportable, diagramme intégré |
Livrer une documentation présentable |
M |
🟢 Livré |
Vue docs — capacité docs:export |
M [Hypothèse] |
| F-05-11 |
E05 Concevoir |
Conception dirigée par le domaine |
Contextes bornés, carte de contexte, agrégats |
Découper un monolithe avec méthode |
S |
🟢 Livré |
GET …/jobs/{id}/ddd et collaboration-service — /ddd |
M [Hypothèse] |
| F-05-12 |
E05 Concevoir |
Export d'un diagramme en image matricielle ou vectorielle |
Sortie image en plus du texte Mermaid |
Insertion dans une présentation |
C |
⚪ Planifié |
— |
M [Hypothèse] |
#9. Épopée E06 — Métamodèle, collaboration et revues
Intention. Permettre à chaque projet de définir ses types et ses liens autorisés, puis d'organiser la revue humaine autour d'eux.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-06-01 |
E06 Collaboration |
Métamodèle par projet |
Types d'objets et relations autorisées, propres au projet |
Un cadre commun sans camisole |
M |
🟢 Livré |
collaboration-service — /api/v1/metamodel |
L [Hypothèse] |
| F-06-02 |
E06 Collaboration |
Validation d'un objet contre le métamodèle |
Rejet explicite d'un objet non conforme |
Cohérence garantie à l'écriture |
M |
🟢 Livré |
spec-service — validation de modèle |
M [Hypothèse] |
| F-06-03 |
E06 Collaboration |
Espaces de travail collaboratifs |
Regroupement d'objets et de personnes |
Travailler à plusieurs sur un même périmètre |
S |
🟢 Livré |
collaboration-service — /api/v1/spaces |
M [Hypothèse] |
| F-06-04 |
E06 Collaboration |
Commentaires sur les objets |
Fil de discussion attaché à l'objet, pas à un canal externe |
La décision reste avec l'exigence |
M |
🟢 Livré |
collaboration-service — /comments |
M [Hypothèse] |
| F-06-05 |
E06 Collaboration |
Machine à états de revue |
Création, soumission, commentaire, décision, avec transitions contrôlées |
Une revue traçable |
M |
🟢 Livré |
collaboration-service — /reviews |
M [Hypothèse] |
| F-06-06 |
E06 Collaboration |
Séparation des devoirs sur la décision de revue |
L'auteur ne peut pas décider de sa propre soumission |
Contrôle interne réel |
M |
🟢 Livré |
review_state_machine.py — ensure_separation_of_duties |
S [Hypothèse] |
| F-06-07 |
E06 Collaboration |
Rôle minimal par transition |
Création et soumission par un rédacteur, décision par un publieur |
Droits alignés sur la responsabilité |
M |
🟢 Livré |
routes_reviews.py — gardes de rôle |
S [Hypothèse] |
| F-06-08 |
E06 Collaboration |
Vue Revue de l'espace de travail |
Écarts, matrice de traçabilité et file de revue |
Un écran pour la qualité de la spécification |
M |
🟢 Livré |
Vue review — capacité review:read |
M [Hypothèse] |
| F-06-09 |
E06 Collaboration |
Champs personnalisés par type d'entité |
Schéma d'exécution par locataire et par type |
Adapter sans redéployer |
S |
🟢 Livré |
custom-fields-service port 4124 |
M [Hypothèse] |
| F-06-10 |
E06 Collaboration |
File de revue transverse à tous les projets |
Vue unique des décisions en attente pour un relecteur |
Ne rien laisser dormir |
S |
⚪ Planifié |
— · écart affiché dans le portail d'administration |
M [Hypothèse] |
#10. Épopée E07 — Espace de travail projet
Intention. Offrir une surface unique où le projet se pilote de bout en bout, avec un lien profond partageable et un cloisonnement par capacité.
Nuance à ne jamais omettre en communication. L'espace de travail compte 11 vues canoniques, verrouillées par un test unitaire. Le portail client compte 27 routes utilisateur et 15 destinations dans son rail de navigation.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-07-01 |
E07 Espace de travail |
Registre des 11 vues canoniques |
Donnée pure, sans dépendance d'interface, partagée par la coquille, la palette et le routeur |
Une seule table de vérité |
M |
🟢 Livré |
frontend/client-portal/src/lib/workspace/views.ts |
M [Hypothèse] |
| F-07-02 |
E07 Espace de travail |
Lien profond partageable |
La vue active et l'objet ouvert vivent dans la chaîne de requête |
Partager un écran exact à un collègue |
M |
🟢 Livré |
?view=<vue>&item=<objet> — view-state.ts |
M [Hypothèse] |
| F-07-03 |
E07 Espace de travail |
Mémoire du dernier écran par projet |
Stockage local par projet, utilisé seulement au premier atterrissage |
Reprendre où l'on s'était arrêté |
S |
🟢 Livré |
Clé kyspectra.client-portal.workspace.view.<projet> |
S [Hypothèse] |
| F-07-04 |
E07 Espace de travail |
Cloisonnement des vues par capacité |
Chaque vue déclare la capacité qui l'ouvre |
Un lecteur ne voit pas ce qu'il ne peut pas faire |
M |
🟢 Livré |
views.ts — champ capability |
M [Hypothèse] |
| F-07-05 |
E07 Espace de travail |
Neutralisation d'une valeur d'URL invalide |
Toute vue inconnue retombe sur la vue par défaut |
Aucun écran blanc sur lien corrompu |
M |
🟢 Livré |
coerceView — vue par défaut spec |
S [Hypothèse] |
| F-07-06 |
E07 Espace de travail |
Vue réservée aux projets de test |
Une seule vue porte une restriction de nature de projet |
Ne pas polluer un projet de production |
S |
🟢 Livré |
views.ts — projectKind === "test_only" sur la vue test |
S [Hypothèse] |
| F-07-07 |
E07 Espace de travail |
Palette de commandes |
Accès clavier à toutes les destinations et vues |
Navigation sans souris |
S |
🟢 Livré |
ALL_NAV — nav.tsx |
M [Hypothèse] |
| F-07-08 |
E07 Espace de travail |
Rail de navigation à trois sections et un pied |
Espace de travail, Opérer, Compte, plus notifications et paramètres |
Structure mentale stable |
M |
🟢 Livré |
nav.tsx — NAV_SECTIONS et NAV_FOOTER |
M [Hypothèse] |
| F-07-09 |
E07 Espace de travail |
Fil d'Ariane contextuel |
Chemin lisible depuis la racine jusqu'à l'objet |
Ne jamais se perdre |
S |
🟢 Livré |
nav.crumbs — 20 libellés |
S [Hypothèse] |
| F-07-10 |
E07 Espace de travail |
Export statique et réécriture des routes dynamiques |
Site statique servi par sentinelle réécrite, identifiant lu côté client |
Coût d'exploitation nul |
M |
🟢 Livré |
dynamic-route.ts — sentinelle __id__ |
M [Hypothèse] |
| F-07-11 |
E07 Espace de travail |
Politique de sécurité de contenu stricte |
Origines de connexion limitées, intégration dans un cadre interdite |
Réduction de la surface d'attaque du navigateur |
M |
🟢 Livré |
public/_headers — frame-ancestors 'none' |
S [Hypothèse] |
| F-07-12 |
E07 Espace de travail |
Page de retours et feuille de route par projet |
Idées, votes et statut, à l'intérieur du projet |
Boucler avec les utilisateurs |
S |
🟢 Livré |
/projects/[projectId]/feedback |
M [Hypothèse] |
| F-07-13 |
E07 Espace de travail |
Application mobile native |
Application installable sur iOS et Android |
Consultation hors navigateur |
W |
⚪ Planifié |
— · aucun code mobile dans le dépôt |
XL [Hypothèse] |
#11. Épopée E08 — Orchestration agentique et AgentOps
Intention. Faire travailler des agents sous contrainte explicite, et rendre leur travail observable.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-08-01 |
E08 AgentOps |
Orchestrateur de graphes d'états |
Enchaînement d'agents par graphe, avec reprise |
Des tâches longues fiables |
M |
🟢 Livré |
ai-orchestrator port 4106 — /api/v1/ai |
L [Hypothèse] |
| F-08-02 |
E08 AgentOps |
Cœur agentique |
Boucle d'agent, registre local, intervention humaine dans la boucle |
Le moteur commun de tous les agents |
M |
🟢 Livré |
agentic-core-service port 8095 |
L [Hypothèse] |
| F-08-03 |
E08 AgentOps |
Neuf services d'agents spécialisés |
Analyste, rédacteur, relecteur, extracteur, calculateur, conseiller, mémoire, conversation, cœur |
Spécialisation plutôt qu'agent unique |
S |
🟢 Livré |
services/ — 9 services |
XL [Hypothèse] |
| F-08-04 |
E08 AgentOps |
Trousse de développement d'agents |
Agent de base, orchestrateur, clients de modèle et d'outils, budget de jetons |
Écrire un agent sans repartir de zéro |
S |
🟢 Livré |
packages/agent-sdk |
L [Hypothèse] |
| F-08-05 |
E08 AgentOps |
Compétences génériques réutilisables |
Résumé, extraction, traduction, questions-réponses |
Capitaliser sur des briques éprouvées |
S |
🟢 Livré |
packages/skills/global |
M [Hypothèse] |
| F-08-06 |
E08 AgentOps |
Passerelle de protocole de contexte |
Outils externes exposés aux agents par un protocole unique |
Ouvrir sans coder chaque intégration |
S |
🟢 Livré |
mcp-gateway port 8080 — périmètre /api/v1/mcp |
L [Hypothèse] |
| F-08-07 |
E08 AgentOps |
Mémoire et recherche augmentée |
Mémoire d'agent et recherche vectorielle |
Des agents qui n'oublient pas |
S |
🟢 Livré |
memory-rag-service port 8096 |
L [Hypothèse] |
| F-08-08 |
E08 AgentOps |
Page Opérations agents |
Suivi des exécutions au niveau du locataire |
Piloter la flotte au quotidien |
M |
🟢 Livré |
/agents — portail client |
M [Hypothèse] |
| F-08-09 |
E08 AgentOps |
Vue AgentOps de l'espace de travail |
Exécutions d'agents du projet, en direct |
Voir l'activité là où elle a lieu |
M |
🟢 Livré |
Vue agentops — capacité agentops:read |
M [Hypothèse] |
| F-08-10 |
E08 AgentOps |
Interruption d'une exécution |
Arrêt d'un travail en cours, avec confirmation et acteur consigné |
Reprendre la main immédiatement |
M |
🟢 Livré |
POST /runs/{id}/interrupt — capacité fleet:interrupt |
M [Hypothèse] |
| F-08-11 |
E08 AgentOps |
Flux d'activité par événements serveur dans le plan de contrôle |
Remplacement du sondage périodique par un flux poussé |
Fraîcheur d'affichage |
C |
🟡 En cours |
admin-portal — live.ts en sondage toutes les 10 secondes |
M [Hypothèse] |
#12. Épopée E09 — Registre central d'agents et capacités
Intention. Un agent n'existe que s'il est inscrit, et ne peut que ce qui lui a été explicitement accordé.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-09-01 |
E09 Registre |
Registre central d'agents |
Source de vérité unique : nom, nature, capacités, compétences, serveurs d'outils, jetons, santé |
Un inventaire opposable |
M |
🟢 Livré |
agent-registry-service port 4133 · destination /agents du plan de contrôle |
L [Hypothèse] |
| F-09-02 |
E09 Registre |
Synchronisation depuis l'orchestrateur |
Alimentation du registre par le plan agentique |
Pas de saisie manuelle d'inventaire |
M |
🟢 Livré |
POST /agents/central/sync |
M [Hypothèse] |
| F-09-03 |
E09 Registre |
Activation et désactivation d'un agent |
Interrupteur par agent, depuis le plan de contrôle |
Retirer un agent en un geste |
M |
🟢 Livré |
PATCH /agents/{id} — capacité agents:manage |
S [Hypothèse] |
| F-09-04 |
E09 Registre |
Catalogue unifié de capacités |
Compétences, outils et prompts dans un catalogue commun |
Une seule grammaire d'octroi |
M |
🟢 Livré |
extension-registry-service — /api/v1/catalog/capabilities |
L [Hypothèse] |
| F-09-05 |
E09 Registre |
Trois niveaux de visibilité |
Global de plateforme, locataire, utilisateur — ce dernier pour les prompts |
Partager sans imposer |
M |
🟢 Livré |
constants.py — VIS_GLOBAL, VIS_TENANT, VIS_USER |
L [Hypothèse] |
| F-09-06 |
E09 Registre |
Adoption d'une capacité globale par un locataire |
Table d'adoption, avec périmètre et activation |
L'organisation choisit ce qu'elle ouvre |
M |
🟡 En cours |
/api/v1/catalog/adoptions — drapeau REGISTRY_TIERED_SCOPES_ENABLED à false |
M [Hypothèse] |
| F-09-07 |
E09 Registre |
Refus par défaut sur les permissions d'outil |
Sans autorisation explicite, l'appel est refusé et journalisé |
Sûreté avant confort |
M |
🟢 Livré |
app_tool_permission — effet par défaut deny |
M [Hypothèse] |
| F-09-08 |
E09 Registre |
Grammaire de portée des octrois |
tenant, project:<id>, agent:<id>, avec spécificité croissante |
Accorder au bon niveau |
M |
🟢 Livré |
catalog.py — _match_enabled_binding |
M [Hypothèse] |
| F-09-09 |
E09 Registre |
Import gouverné d'une compétence externe |
Provenance, signature, recherche de secret, classement de risque, mise en revue |
Ouvrir sans importer de risque |
M |
🟢 Livré |
POST /api/v1/catalog/import — pipeline en 7 étapes |
L [Hypothèse] |
| F-09-10 |
E09 Registre |
Révocation avec propagation immédiate |
Transition d'état et désactivation des octrois dépendants |
Couper vite et partout |
M |
🟢 Livré |
POST /api/v1/extensions/{genre}/{id}/revoke |
M [Hypothèse] |
| F-09-11 |
E09 Registre |
Rôles virtuels et plafond d'autonomie |
Roster de rôles, plafond N0 à N3, plafonné par le plan commercial |
Gouverner l'IA comme du personnel |
M |
🟡 En cours |
/api/v1/virtual-roles — drapeau REGISTRY_VIRTUAL_ROLES_ENABLED à false |
L [Hypothèse] |
| F-09-12 |
E09 Registre |
Place de marché de capacités avec audience ciblée |
Curation d'audience, duplication à la volée, provenance de dérivation |
Écosystème de capacités |
S |
🟡 En cours |
Code présent et testé, non déployé, non prouvé en ligne |
L [Hypothèse] |
#13. Épopée E10 — Personnel virtuel IA
Intention. Traiter un agent comme un membre d'équipe : un rôle, une file de travail, une activité, une place dans l'organigramme.
Nuance à ne jamais omettre en communication. Seule la phase 1 est livrée : recruter, assigner, suivre la file, consulter l'activité et l'organigramme. L'autonomie déléguée, l'escalade et la chaîne d'imputabilité sont Planifiées.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-10-01 |
E10 Personnel IA |
Recrutement d'un membre depuis l'interface |
Formulaire de recrutement, rôle et équipe à la création |
Constituer une équipe en minutes |
M |
🟢 Livré |
Vue workforce — vérifié en navigateur réel sur développement et production |
M [Hypothèse] |
| F-10-02 |
E10 Personnel IA |
Assignation d'une tâche à un membre |
Fenêtre d'assignation, bouton conditionné par la capacité |
Confier un travail nommé |
M |
🟢 Livré |
AssignTaskModal — useAssignTask |
M [Hypothèse] |
| F-10-03 |
E10 Personnel IA |
File de travail par membre |
Tâches ouvertes et terminées, rafraîchissement après assignation |
Voir la charge réelle |
M |
🟢 Livré |
GET /workforce/staff |
M [Hypothèse] |
| F-10-04 |
E10 Personnel IA |
Flux d'activité du personnel |
Journal des actions par membre |
Suivre sans interrompre |
S |
🟢 Livré |
Vue workforce — flux d'activité |
M [Hypothèse] |
| F-10-05 |
E10 Personnel IA |
Organigramme des équipes |
Hiérarchie lisible des membres et des équipes |
Comprendre la structure d'un coup d'œil |
S |
🟢 Livré |
Vue workforce — organigramme |
M [Hypothèse] |
| F-10-06 |
E10 Personnel IA |
Suspension et reprise d'un membre |
Interrupteur par membre depuis le plan de contrôle |
Mettre en pause sans supprimer |
M |
🟢 Livré |
PATCH /workforce/staff/{id} — destination /workforce |
S [Hypothèse] |
| F-10-07 |
E10 Personnel IA |
Vue d'ensemble du personnel dans le plan de contrôle |
Compteurs de personnel, d'équipes et de tâches |
Pilotage d'exploitation |
S |
🟢 Livré |
GET /workforce/overview |
M [Hypothèse] |
| F-10-08 |
E10 Personnel IA |
Plafond d'autonomie par membre |
Niveau N0 à N3 affiché et respecté |
Le contrat d'autonomie est visible |
M |
🟢 Livré |
Roster de personnel — colonne autonomie |
M [Hypothèse] |
| F-10-09 |
E10 Personnel IA |
Autonomie déléguée et escalade |
Un membre délègue ou remonte selon des règles |
Organisation qui se régule |
S |
⚪ Planifié |
— · conception seule |
XL [Hypothèse] |
| F-10-10 |
E10 Personnel IA |
Registre d'imputabilité |
Chaîne de responsabilité par tâche et par décision |
Répondre à « qui a décidé quoi » |
S |
⚪ Planifié |
— · conception seule |
L [Hypothèse] |
| F-10-11 |
E10 Personnel IA |
Console de direction virtuelle |
Vue consolidée de niveau direction sur le personnel virtuel |
Pilotage de haut niveau |
C |
⚪ Planifié |
— · conception seule |
XL [Hypothèse] |
#14. Épopée E11 — Exécution de code gouvernée
Intention. Exécuter du code produit par un agent dans une enveloppe dont on connaît les limites avant de la lancer.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-11-01 |
E11 Exécution |
Exécuteur en tâches éphémères |
Espace de noms dédié, contrôle d'accès dédié, politique réseau dédiée |
Exécution isolée et jetable |
M |
🟢 Livré |
agent-runtime-service port 4119 — espace de noms d'exécution dédié |
L [Hypothèse] |
| F-11-02 |
E11 Exécution |
Moteur de politique en liste d'autorisations |
Toute action non couverte est refusée et journalisée |
Refus par défaut réel |
M |
🟢 Livré |
policy/engine.py — policy_id="deny-by-default" |
M [Hypothèse] |
| F-11-03 |
E11 Exécution |
Journalisation des décisions de politique |
Chaque évaluation écrit une ligne consultable |
Preuve de contrôle |
M |
🟢 Livré |
Table app_policy_check |
S [Hypothèse] |
| F-11-04 |
E11 Exécution |
Politiques d'exécution paramétrables |
Politique réseau devant commencer par un refus, liste de sorties autorisées, durée maximale, politique de fichiers |
Enveloppe déclarée avant l'exécution |
M |
🟢 Livré |
/policies du plan de contrôle — execution-policies |
M [Hypothèse] |
| F-11-05 |
E11 Exécution |
Garde-fous par motif d'action |
Motif, effet autoriser ou refuser, priorité, exigence d'approbation |
Régler la granularité sans code |
M |
🟢 Livré |
/policies — guardrail-policies |
M [Hypothèse] |
| F-11-06 |
E11 Exécution |
Évaluation d'une action à la volée |
Simulation d'une décision avant activation |
Tester une règle sans risque |
S |
🟢 Livré |
POST /guardrail-policies/evaluate |
S [Hypothèse] |
| F-11-07 |
E11 Exécution |
Graphe d'exécution et tiroir de détail |
Visualisation des exécutions et de leur enchaînement |
Diagnostiquer vite |
S |
🟢 Livré |
/fleet du plan de contrôle — GraphCanvas |
M [Hypothèse] |
| F-11-08 |
E11 Exécution |
Budget de jetons avec erreur explicite |
Plafond journalier et mensuel, code d'erreur dédié à l'épuisement |
Pas de dépassement silencieux |
M |
🟢 Livré |
token_budget.py — 402 |
M [Hypothèse] |
| F-11-09 |
E11 Exécution |
Liaison de capacité de session |
Octroi temporaire borné dans le temps, ou extension persistante payante |
Ouvrir juste ce qu'il faut, le temps qu'il faut |
S |
🟢 Livré |
POST /api/v1/sessions/{id}/capability-bindings |
M [Hypothèse] |
| F-11-10 |
E11 Exécution |
Agrégat d'exécutions entre locataires |
Vue consolidée pour l'exploitant de la plateforme |
Supervision globale |
S |
⚪ Planifié |
— · écart affiché dans le portail d'administration |
M [Hypothèse] |
#15. Épopée E12 — Vérification et qualité
Intention. Prouver que ce qui est fabriqué satisfait ce qui était demandé, sans jamais utiliser de donnée personnelle réelle.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-12-01 |
E12 Vérifier |
Génération de tests depuis les critères d'acceptation |
Éditeur de scénarios intégré, dérivation depuis l'exigence |
Le test naît de l'exigence |
M |
🟢 Livré |
Vue test — capacité test:read |
L [Hypothèse] |
| F-12-02 |
E12 Vérifier |
Carte de chaleur de couverture |
Couverture des critères d'acceptation par exigence |
Voir ce qui n'est pas prouvé |
M |
🟢 Livré |
Vue test de l'espace de travail |
M [Hypothèse] |
| F-12-03 |
E12 Vérifier |
Données de test synthétiques |
Génération de jeux de données sans donnée personnelle réelle |
Conformité par construction |
M |
🟢 Livré |
test-data-factory-service port 4110 |
L [Hypothèse] |
| F-12-04 |
E12 Vérifier |
Test navigateur réel |
Exécution d'un navigateur réel en tâche, contre l'application déployée |
Preuve d'usage, pas seulement d'API |
M |
🟢 Livré |
POST /api/v1/deploy/uat/browser — vérifié en développement |
L [Hypothèse] |
| F-12-05 |
E12 Vérifier |
Test de fumée par requêtes HTTP |
Vérification rapide d'une adresse déployée |
Détection immédiate d'une régression grossière |
S |
🟢 Livré |
POST /api/v1/deploy/uat/run |
S [Hypothèse] |
| F-12-06 |
E12 Vérifier |
Analyse d'une base de données en exploitation |
Index manquants ou inutilisés, tables sans clé primaire, taux de cache |
Conseil fondé sur le réel |
S |
🟢 Livré |
POST /api/v1/deploy/db/analyze — vérifié en développement et en production |
M [Hypothèse] |
| F-12-07 |
E12 Vérifier |
Recommandations de conception de base de données |
Heuristiques sur un schéma décrit |
Aider sans se connecter |
S |
🟢 Livré |
POST /api/v1/deploy/db/advise |
M [Hypothèse] |
| F-12-08 |
E12 Vérifier |
Portes de qualité et brèches de niveau de service |
Panneau de brèches, seuils par indicateur |
Décider sur la base d'un seuil |
M |
🟢 Livré |
/overview du plan de contrôle — /gates/breaches |
M [Hypothèse] |
| F-12-09 |
E12 Vérifier |
Catalogue d'indicateurs |
Liste filtrable et virtualisée des indicateurs disponibles |
Choisir ce que l'on mesure |
S |
🟢 Livré |
observability-board-service — /metrics/catalog |
M [Hypothèse] |
| F-12-10 |
E12 Vérifier |
Comparaison visuelle entre deux états |
Détection de régression d'interface |
Attraper ce qu'un test fonctionnel ne voit pas |
S |
🟢 Livré |
Drapeau VISUAL_COMPARE_ENABLED à true |
M [Hypothèse] |
| F-12-11 |
E12 Vérifier |
Automatisation robotisée de navigateur |
Scénarios pilotés sur une application tierce |
Tester une application sans interface de programmation |
C |
🟡 En cours |
Drapeau RPA_BROWSER_ENABLED à false par défaut |
L [Hypothèse] |
| F-12-12 |
E12 Vérifier |
Regroupement automatique des échecs par cause |
Classement des échecs par famille |
Réduire le bruit de diagnostic |
C |
🟡 En cours |
Drapeau TRIAGE_CLUSTERING_ENABLED à false par défaut |
M [Hypothèse] |
#16. Épopée E13 — Livraison et pipeline CI/CD
Intention. Fermer la boucle jusqu'à la production, avec un pipeline non contournable et une approbation humaine.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-13-01 |
E13 Livrer |
Pipeline en six étapes ordonnées |
Construction, test, analyse, porte, déploiement, surveillance |
Aucune étape sautée |
M |
🟢 Livré |
deploy-service port 4121 — six étapes, ordre vérifié |
L [Hypothèse] |
| F-13-02 |
E13 Livrer |
Refus d'avancement hors ordre |
Erreur typée si une étape antérieure n'est pas franchie |
Le pipeline est une règle, pas un usage |
M |
🟢 Livré |
409 gate/out-of-order |
S [Hypothèse] |
| F-13-03 |
E13 Livrer |
Interdiction de marquer le déploiement à la main |
L'étape de déploiement ne se valide que par son point d'accès dédié |
Pas de raccourci humain |
M |
🟢 Livré |
409 deploy/via-deploy-endpoint |
S [Hypothèse] |
| F-13-04 |
E13 Livrer |
Analyse de sécurité en trois dimensions |
Analyse statique, dépendances, secrets ; un outil absent produit une erreur nommée |
Jamais de vert fabriqué |
M |
🟢 Livré |
Étape scan — 501 nommant les analyseurs manquants |
M [Hypothèse] |
| F-13-05 |
E13 Livrer |
Simulation avant exécution |
Cible résolue, portes non franchies, approbation, obstacles listés, aucune écriture |
Savoir avant d'agir |
M |
🟢 Livré |
POST …/deploy-runs/{id}/plan |
M [Hypothèse] |
| F-13-06 |
E13 Livrer |
Approbation humaine avec séparation des devoirs |
L'approbateur doit différer du demandeur |
Contrôle interne opposable |
M |
🟢 Livré |
409 deploy/approval-self — drapeau DEPLOY_REQUIRE_APPROVAL |
M [Hypothèse] |
| F-13-07 |
E13 Livrer |
Déploiement réel réinterrogé |
Application puis relecture de l'état ; vivant seulement si toutes les répliques convergent |
Pas de succès déclaratif |
M |
🟢 Livré |
Étape deploy — relecture d'état |
M [Hypothèse] |
| F-13-08 |
E13 Livrer |
Retour arrière tracé |
Nouvelle ligne portant le lien vers le déploiement annulé |
Revenir en arrière sans perdre l'histoire |
M |
🟢 Livré |
POST …/deployments/{id}/rollback |
M [Hypothèse] |
| F-13-09 |
E13 Livrer |
Construction et publication d'image sans démon |
Construction en tâche, secret de registre éphémère |
Construire sans privilège permanent |
M |
🟢 Livré |
POST /api/v1/deploy/images/build-push — vérifié en développement |
L [Hypothèse] |
| F-13-10 |
E13 Livrer |
Vérification du lien au registre |
Poignée de main réelle avec le registre d'images |
Détecter une mauvaise clé avant la construction |
S |
🟢 Livré |
POST /api/v1/deploy/registries/verify |
M [Hypothèse] |
| F-13-11 |
E13 Livrer |
Génération de pipeline pour quatre fournisseurs |
Fichier de pipeline produit, puis commité dans le dépôt |
Adopter sans réécrire |
M |
🟢 Livré |
POST …/cicd/generate et …/cicd/setup — commit réel vérifié |
M [Hypothèse] |
| F-13-12 |
E13 Livrer |
Vue Livraison de l'espace de travail |
Pipeline du projet, export vers deux outils de suivi externes |
Le suivi externe reste possible |
S |
🟢 Livré |
Vue delivery de l'espace de travail |
M [Hypothèse] |
| F-13-13 |
E13 Livrer |
Session d'accès administrateur à certificat court |
Certificat signé, renvoyé une seule fois, jamais persisté |
Accès exceptionnel tracé |
S |
🟢 Livré |
POST /api/v1/deploy/bastion-sessions |
M [Hypothèse] |
| F-13-14 |
E13 Livrer |
Déclencheurs d'intégration continue externes |
Réaction à un événement de la chaîne du client |
Intégration bidirectionnelle |
S |
⚪ Planifié |
— |
L [Hypothèse] |
#17. Épopée E14 — Mise en ligne du produit client
Intention. Servir le produit du client sur un sous-domaine, avec chiffrement du transport, à partir de la chaîne complète.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-14-01 |
E14 Mise en ligne |
Mise en ligne sur sous-domaine avec certificat |
Espace de noms, charge de travail, service, entrée, certificat automatique |
La boucle est fermée |
M |
🟢 Livré |
POST /api/v1/deploy/go-live/{projet} — vérifié en production |
L [Hypothèse] |
| F-14-02 |
E14 Mise en ligne |
Interrupteur maître de mise en ligne |
Sans lui, réponse explicite de non-implémentation |
Pas de déploiement accidentel |
M |
🟢 Livré |
Drapeau GOLIVE_ENABLED à false par défaut |
S [Hypothèse] |
| F-14-03 |
E14 Mise en ligne |
Interrupteur maître d'exécution réelle |
Sans lui, aucune exécution n'est simulée |
Honnêteté d'ingénierie |
M |
🟢 Livré |
Drapeau DEPLOY_LIVE à false par défaut |
S [Hypothèse] |
| F-14-04 |
E14 Mise en ligne |
Publication d'un front statique vers un réseau de diffusion |
Tâche exécutant l'outil de publication, adresse publique renvoyée |
Front en ligne en une commande |
S |
🟢 Livré |
POST /api/v1/deploy/deploy/cloudflare-pages — vérifié en développement |
M [Hypothèse] |
| F-14-05 |
E14 Mise en ligne |
Publication d'un front vers un stockage objet |
Téléversement réel et adresse signée |
Alternative sans réseau de diffusion |
S |
🟢 Livré |
POST …/targets/publish-s3 |
M [Hypothèse] |
| F-14-06 |
E14 Mise en ligne |
Publication d'archive d'artefact |
Archive construite, servie, adresse signée |
Livrable téléchargeable |
C |
🟢 Livré |
POST …/artifacts/publish-zip |
S [Hypothèse] |
| F-14-07 |
E14 Mise en ligne |
Déploiement par ligne de commande de fournisseur d'infonuagique |
Exécution d'un outil en ligne de commande dans une tâche, avec les identifiants déposés |
Couvrir tous les fournisseurs par un mécanisme unique |
S |
🟢 Livré |
POST …/deploy/cloud-cli — vérifié sur un fournisseur |
M [Hypothèse] |
| F-14-08 |
E14 Mise en ligne |
Coffre de secrets par projet |
Dépôt réel d'une valeur, relue indépendamment, jamais renvoyée |
Aucun secret dans la réponse |
M |
🟢 Livré |
POST …/credentials/deposit — vérifié en développement et en production |
M [Hypothèse] |
| F-14-09 |
E14 Mise en ligne |
Pilotes natifs pour trois plateformes de conteneurs gérés |
Intégration dédiée par fournisseur |
Confort d'exploitation |
S |
⚪ Planifié |
— · réponse explicite de non-implémentation |
XL [Hypothèse] |
| F-14-10 |
E14 Mise en ligne |
Échange de jetons pour trois registres d'infonuagique |
Obtention d'un jeton court par fournisseur |
Publier vers le registre du client |
S |
⚪ Planifié |
— |
L [Hypothèse] |
| F-14-11 |
E14 Mise en ligne |
Provisionnement automatique d'un fournisseur d'identité |
Création d'un espace d'identité et d'un client pour le produit livré |
Le produit livré a son propre accès |
M |
🔴 Bloqué |
POST …/idp/apply — refus d'autorisation vérifiés empiriquement sur le serveur d'identité |
M [Hypothèse] |
#18. Épopée E15 — Plan de contrôle d'administration
Intention. Donner à l'exploitant de la plateforme un poste de pilotage unique, cloisonné par capacité.
Nuance à ne jamais omettre en communication. Le portail d'administration compte exactement 16 destinations, verrouillées par un test unitaire, et croise 3 rôles de plateforme avec 16 capacités.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-15-01 |
E15 Plan de contrôle |
État système |
Santé de neuf services, indicateurs de projet, distribution par sévérité, brèches de seuil |
Un écran pour savoir si tout va bien |
M |
🟢 Livré |
/overview — admin-portal |
M [Hypothèse] |
| F-15-02 |
E15 Plan de contrôle |
Flotte d'agents |
Compteurs par statut, graphe d'exécution, tiroir de détail, interruption |
Piloter l'activité agentique |
M |
🟢 Livré |
/fleet |
M [Hypothèse] |
| F-15-03 |
E15 Plan de contrôle |
Locataires |
Sélection, création avec identifiant court et plan, registre d'organisations |
Ouvrir un client en quelques champs |
M |
🟢 Livré |
/tenants — POST /admin/tenants |
M [Hypothèse] |
| F-15-04 |
E15 Plan de contrôle |
Utilisateurs et contrôle d'accès |
Cycle de vie complet, attribution de rôles, permissions effectives, dérogations |
Gérer les accès sans base annexe |
M |
🟢 Livré |
/users — capacités users:manage et rbac:edit |
L [Hypothèse] |
| F-15-05 |
E15 Plan de contrôle |
Gouvernance et séparation des devoirs |
Chargement des revues, approbation ou rejet, blocage de l'auto-approbation |
Contrôle interne exécutable |
M |
🟢 Livré |
/governance — POST /extensions/{genre}/{id}/review |
M [Hypothèse] |
| F-15-06 |
E15 Plan de contrôle |
Budgets et fenêtres de quota |
Création et modification de budgets, jauges de consommation |
Maîtrise du coût |
M |
🟢 Livré |
/budgets — capacité budgets:manage |
M [Hypothèse] |
| F-15-07 |
E15 Plan de contrôle |
Audit et conformité |
Recherche, vérification de la chaîne, rapport de conformité, export local |
Répondre à un auditeur |
M |
🟢 Livré |
/audit — capacité audit:export |
M [Hypothèse] |
| F-15-08 |
E15 Plan de contrôle |
Drapeaux de fonctionnalité |
Création avec clé contrôlée, portée, déploiement progressif de 0 à 100 % |
Livrer sans redéployer |
M |
🟢 Livré |
/flags — platform-config-service port 4112 |
M [Hypothèse] |
| F-15-09 |
E15 Plan de contrôle |
Modèles et adaptateurs |
Configurations de modèles et d'assistants, chemin de coffre, valeur par défaut |
Changer de modèle sans livraison |
M |
🟢 Livré |
/models — capacité models:manage |
M [Hypothèse] |
| F-15-10 |
E15 Plan de contrôle |
Garde-fous et politiques d'exécution |
Deux familles de politiques, plus un évaluateur à la volée |
Régler la sécurité d'exécution |
M |
🟢 Livré |
/policies — capacité policies:manage |
M [Hypothèse] |
| F-15-11 |
E15 Plan de contrôle |
Registre à trois onglets |
Compétences, outils, prompts ; rédaction, import de graine curée, révocation |
Un seul écran pour le catalogue |
M |
🟢 Livré |
/registry — capacité registry:manage |
L [Hypothèse] |
| F-15-12 |
E15 Plan de contrôle |
Agents IA |
Registre central lisible, détail par agent, activation |
Inventaire opposable |
M |
🟢 Livré |
/agents — capacité agents:manage |
M [Hypothèse] |
| F-15-13 |
E15 Plan de contrôle |
Personnel IA |
Compteurs, roster, équipes, suspension et reprise |
Exploitation du personnel virtuel |
S |
🟢 Livré |
/workforce — agentic-core-service |
M [Hypothèse] |
| F-15-14 |
E15 Plan de contrôle |
Rôles IA |
Bundle résolu, liaison de capacités, plafond d'autonomie, découverte en ligne |
Composer un rôle sans code |
S |
🟡 En cours |
/roles — dépend du drapeau de rôles virtuels |
M [Hypothèse] |
| F-15-15 |
E15 Plan de contrôle |
Module de démonstration |
Statut, provisionnement, réinitialisation, suppression du locataire de démonstration |
Démonstration reproductible |
S |
🟡 En cours |
/demo — drapeau DEMO_MODULE_ENABLED à false par défaut |
M [Hypothèse] |
| F-15-16 |
E15 Plan de contrôle |
Configuration |
Identité agissante, rôles de plateforme, adresses de service |
Diagnostic d'exploitation |
S |
🟢 Livré |
/config — capacité config:read |
S [Hypothèse] |
#19. Épopée E16 — Identité, RBAC et multi-locataire
Intention. Une seule chaîne d'autorisation, du navigateur jusqu'à la ligne de base de données, et aucune fuite entre clients.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-16-01 |
E16 Identité |
Authentification par code d'autorisation avec vérificateur |
Clients publics sans secret dans le navigateur |
Standard d'authentification moderne |
M |
🟢 Livré |
Clients publics, méthode de vérification S256 |
M [Hypothèse] |
| F-16-02 |
E16 Identité |
Vérification de jeton par la passerelle |
Clés publiques mises en cache, rafraîchies, servies même périmées en cas de panne |
Résilience de l'authentification |
M |
🟢 Livré |
api-gateway — cache de clés, cinq tentatives |
M [Hypothèse] |
| F-16-03 |
E16 Identité |
Cinq rôles hiérarchiques |
Lecteur, rédacteur, publieur, administrateur, propriétaire ; un rang supérieur satisfait un rang inférieur |
Modèle simple et prévisible |
M |
🟢 Livré |
shared/auth/rbac.py — hiérarchie de rôles |
M [Hypothèse] |
| F-16-04 |
E16 Identité |
Résolution du locataire à trois niveaux |
En-tête dédié, puis revendication du jeton, puis paramètre de requête |
Prévisible et testable |
M |
🟢 Livré |
shared/middleware/tenant.py |
S [Hypothèse] |
| F-16-05 |
E16 Identité |
Masquage d'existence entre locataires |
Un identifiant en désaccord avec le jeton produit une absence, pas un refus |
Minimisation de la divulgation |
M |
🟢 Livré |
Réponse 404 au lieu de 403 |
S [Hypothèse] |
| F-16-06 |
E16 Identité |
Isolation au niveau des lignes en base |
Politique de sécurité forcée par locataire sur les tables applicatives |
Défense en profondeur |
M |
🟢 Livré |
Politiques *_tenant_iso forcées |
L [Hypothèse] |
| F-16-07 |
E16 Identité |
Moteur de permissions en cascade |
Défaut de rôle, puis dérogation la plus spécifique, sinon refus |
Réglage fin sans exception codée |
M |
🟢 Livré |
services/permission_engine.py |
L [Hypothèse] |
| F-16-08 |
E16 Identité |
Journal des évaluations de permission |
Chaque décision est écrite |
Expliquer un refus |
S |
🟢 Livré |
Table app_permission_audit_log |
S [Hypothèse] |
| F-16-09 |
E16 Identité |
Cloisonnement d'interface par capacité |
Bouton conditionné avant même l'appel serveur, serveur toujours autoritatif |
Confort sans faux sentiment de sécurité |
M |
🟢 Livré |
GatedButton — frontend/admin-portal |
M [Hypothèse] |
| F-16-10 |
E16 Identité |
Invitations avec durée de vie |
Jeton d'invitation résolu publiquement, acceptation créant l'utilisateur et l'adhésion |
Ouvrir une équipe sans administration lourde |
M |
🟢 Livré |
POST /api/v1/users/invite — durée de sept jours |
M [Hypothèse] |
| F-16-11 |
E16 Identité |
Second facteur et gestion des sessions |
Activation, codes de secours, révocation de session |
Sécurité du compte |
S |
🟢 Livré |
/security/2fa/* et /security/sessions |
M [Hypothèse] |
| F-16-12 |
E16 Identité |
Mode strict d'authentification imposé par manifeste |
Fixer explicitement le mode par environnement |
Fermer la posture par défaut |
M |
🟡 En cours |
Mode dev-headers par défaut du code, à surcharger |
S [Hypothèse] |
Intention. Rendre la trace opposable, pas seulement disponible.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-17-01 |
E17 Audit |
Journal d'audit à chaîne de hachage |
Chaque événement scelle le précédent |
Altération détectable |
M |
🟢 Livré |
audit-compliance-service port 4113 — /audit/events |
L [Hypothèse] |
| F-17-02 |
E17 Audit |
Vérification de l'intégrité de la chaîne |
Recalcul complet à la demande |
Preuve, pas promesse |
M |
🟢 Livré |
GET /audit/verify-chain |
M [Hypothèse] |
| F-17-03 |
E17 Audit |
Recherche multicritère |
Par acteur, action, ressource, texte libre |
Retrouver un événement en enquête |
M |
🟢 Livré |
/audit du plan de contrôle |
M [Hypothèse] |
| F-17-04 |
E17 Audit |
Rapport de conformité sur période |
Génération et export local |
Livrable d'audit daté |
M |
🟢 Livré |
POST /compliance/reports de genre loi25 |
M [Hypothèse] |
| F-17-05 |
E17 Audit |
Journal des appels d'outils |
Trace paginée, empreintes seulement |
Traçabilité sans exposition de contenu |
M |
🟢 Livré |
GET /api/v1/audit/tool-calls |
M [Hypothèse] |
| F-17-06 |
E17 Audit |
Export du journal d'appels en deux formats |
Sortie tabulaire et sortie imprimable fidèles |
Transmettre à un tiers |
S |
🟢 Livré |
GET …/audit/tool-calls/export |
S [Hypothèse] |
| F-17-07 |
E17 Audit |
Registre de consentement en ajout seul |
Preuve de consentement horodatée |
Exigence réglementaire |
M |
🟢 Livré |
Table app_consent_records |
M [Hypothèse] |
| F-17-08 |
E17 Audit |
Demandes d'accès et d'export de données personnelles |
Traitement des demandes de personnes concernées |
Exigence réglementaire |
M |
🟢 Livré |
Tables app_dsar_requests et app_data_export_jobs |
M [Hypothèse] |
| F-17-09 |
E17 Audit |
Rattachement d'une juridiction à un utilisateur |
Adhésion multi-juridiction, propagée en en-tête |
Règles locales appliquées |
S |
🟢 Livré |
/api/v1/users/me/jurisdictions |
M [Hypothèse] |
| F-17-10 |
E17 Audit |
Émission d'audit systématique par intergiciel |
Chaque service émet ses événements sans code dédié |
Couverture homogène |
M |
🟢 Livré |
AuditEmitMiddleware dans les services de vague 2 |
M [Hypothèse] |
#21. Épopée E18 — Commercialisation, budgets et quotas
Intention. Vendre l'usage sans jamais inventer un montant.
Nuance à ne jamais omettre en communication. Le nettoyage du catalogue de plans est un préalable bloquant : trois jeux de données de démarrage incompatibles coexistent dans le dépôt, dont un sur un schéma périmé.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-18-01 |
E18 Commercial |
Catalogue de plans lisible publiquement |
Plans affichés sur les pages d'inscription et de tarification |
Parcours d'achat sans authentification |
M |
🟢 Livré |
GET /api/v1/billing/plans — table app_plans |
M [Hypothèse] |
| F-18-02 |
E18 Commercial |
Devise unique |
Dollar canadien, seule devise présente dans le code |
Pas de conversion inventée |
M |
🟢 Livré |
Colonne currency avec valeur par défaut CAD |
S [Hypothèse] |
| F-18-03 |
E18 Commercial |
Nettoyage du catalogue de plans |
Un seul jeu de données de démarrage, vocabulaire générique |
Préalable bloquant au lancement |
M |
🟡 En cours |
Trois jeux de données incompatibles constatés |
M [Hypothèse] |
| F-18-04 |
E18 Commercial |
Abonnement, changement de plan, résiliation |
Cycle de vie complet, avec calcul au prorata |
Autonomie du client |
M |
🟢 Livré |
POST /billing/subscription/change-plan et …/cancel |
L [Hypothèse] |
| F-18-05 |
E18 Commercial |
Essai sans carte |
Quatorze jours, rappels à sept, trois et un jour, rétrogradation à l'échéance |
Essai sans friction |
S |
🟢 Livré |
Profils de facturation — mode sans paiement |
M [Hypothèse] |
| F-18-06 |
E18 Commercial |
Traitement des événements du prestataire de paiement |
Signature vérifiée et idempotence |
Facturation fiable |
M |
🟢 Livré |
POST /billing/webhooks/stripe — journal d'événements |
M [Hypothèse] |
| F-18-07 |
E18 Commercial |
Droits d'usage par plan |
Dix drapeaux et six quotas résolus par plan |
Le plan devient exécutable |
M |
🟡 En cours |
Drapeau REGISTRY_VIRTUAL_ROLES_ENABLED à false par défaut |
L [Hypothèse] |
| F-18-08 |
E18 Commercial |
Plafonnement de l'autonomie par le plan |
Niveau effectif égal au minimum entre rôle et plan ; repli vers le bas en cas d'incertitude |
Gouvernance liée au contrat |
M |
🟡 En cours |
cap_autonomy — repli sur N1 |
M [Hypothèse] |
| F-18-09 |
E18 Commercial |
Budgets par périmètre |
Limite, seuil d'avertissement, seuil critique |
Maîtrise du coût par équipe |
M |
🟢 Livré |
billing-usage-service port 4115 — /budgets |
M [Hypothèse] |
| F-18-10 |
E18 Commercial |
Fenêtres de quota par modèle |
Consommation, pourcentage utilisé, date de réinitialisation |
Anticiper la coupure |
M |
🟢 Livré |
/quota-windows |
M [Hypothèse] |
| F-18-11 |
E18 Commercial |
Reçu honnête sans service de facturation |
Marqueur explicite de non-comptabilisation, jamais de montant inventé |
Honnêteté d'ingénierie |
M |
🟢 Livré |
shared/billing/credit_guard.py |
S [Hypothèse] |
| F-18-12 |
E18 Commercial |
Sauvegarde d'une nouvelle configuration de facturation |
Écriture chiffrée au repos |
Sécurité des clés de paiement |
M |
🔴 Bloqué |
Clé de chiffrement à provisionner depuis le coffre vers le cluster |
S [Hypothèse] |
| F-18-13 |
E18 Commercial |
Compteurs d'usage réels sur la page d'usage |
Remplacement des compteurs figés par des mesures |
Ne rien afficher de factice |
M |
🟡 En cours |
GET /billing/usage — compteurs codés en dur constatés |
M [Hypothèse] |
#22. Épopée E19 — Retours utilisateurs et feuille de route publique
Intention. Faire remonter la voix de l'utilisateur jusqu'à l'exigence, sans passer par une boîte de courriel.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-19-01 |
E19 Retours |
Boîte de réception des retours par projet |
Idées reçues, filtrées, triées |
Un seul entonnoir |
M |
🟢 Livré |
feedback-service port 4130 — /projects/[projectId]/feedback |
M [Hypothèse] |
| F-19-02 |
E19 Retours |
Vote sur une idée |
Signal de priorité par les utilisateurs |
Prioriser sur des faits |
S |
🟢 Livré |
Vue de retours — action de vote |
S [Hypothèse] |
| F-19-03 |
E19 Retours |
Commentaire et réponse publique |
Fil attaché à l'idée |
Boucler avec l'auteur |
S |
🟢 Livré |
Vue de retours — commentaire et réponse |
S [Hypothèse] |
| F-19-04 |
E19 Retours |
Changement de statut d'une idée |
Cycle de vie de l'idée jusqu'à la livraison |
Transparence de traitement |
S |
🟢 Livré |
Vue de retours — statut |
S [Hypothèse] |
| F-19-05 |
E19 Retours |
Tableau public de retours |
Page accessible sans authentification |
Collecter au-delà des utilisateurs connectés |
S |
🟢 Livré |
/public/feedback |
M [Hypothèse] |
| F-19-06 |
E19 Retours |
Feuille de route et journal des changements publics |
Onglets publics de suivi |
Montrer l'avancement |
S |
🟢 Livré |
Onglets publics du tableau de retours |
M [Hypothèse] |
| F-19-07 |
E19 Retours |
Exemption d'authentification sur les routes publiques |
Le garde d'authentification laisse passer le préfixe public |
Ne pas rediriger un visiteur anonyme |
M |
🟢 Livré |
Garde d'authentification du portail client |
S [Hypothèse] |
| F-19-08 |
E19 Retours |
Widget de collecte embarquable |
Paquet autonome intégrable dans l'application du client |
Collecter dans le produit livré |
S |
🟢 Livré |
frontend/packages/feedback-widget |
M [Hypothèse] |
| F-19-09 |
E19 Retours |
Promotion d'une idée en exigence |
Création d'un objet de spécification depuis une idée |
Fermer la boucle jusqu'à la spécification |
S |
⚪ Planifié |
— |
M [Hypothèse] |
#23. Épopée E20 — Bilingue, accessibilité et expérience de portail
Intention. Le français est la langue par défaut du produit, pas une traduction tardive.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-20-01 |
E20 Expérience |
Français par défaut dans les deux portails |
Locale par défaut définie au niveau de la configuration d'internationalisation |
Produit québécois de naissance |
M |
🟢 Livré |
src/i18n/config.ts des deux portails |
M [Hypothèse] |
| F-20-02 |
E20 Expérience |
Parité stricte des clés de traduction |
Même nombre de clés en français et en anglais |
Aucune bascule qui casse l'écran |
M |
🟢 Livré |
admin-portal — 841 clés strictement identiques |
M [Hypothèse] |
| F-20-03 |
E20 Expérience |
Bascule de langue sans rechargement |
Changement de locale côté client |
Confort d'usage |
S |
🟢 Livré |
locale-provider.tsx |
S [Hypothèse] |
| F-20-04 |
E20 Expérience |
Thème clair, sombre et système |
Trois états, script de thème sans clignotement |
Confort et accessibilité |
S |
🟢 Livré |
Script de thème bloquant du portail client |
S [Hypothèse] |
| F-20-05 |
E20 Expérience |
Système de conception partagé |
Jetons de couleur, typographie, espacements, élévations, durées |
Cohérence entre surfaces |
M |
🟢 Livré |
frontend/packages/design-system |
L [Hypothèse] |
| F-20-06 |
E20 Expérience |
Rail repliable et mémorisé |
Préférence conservée entre sessions |
Adapter à l'écran |
C |
🟢 Livré |
Clé de préférence de rail |
S [Hypothèse] |
| F-20-07 |
E20 Expérience |
Notifications avec compteur non lu |
Libellé énonçant le nombre de messages non lus |
Accessibilité au lecteur d'écran |
S |
🟢 Livré |
Clé nav.notificationsWithCount |
S [Hypothèse] |
| F-20-08 |
E20 Expérience |
Clé de traduction manquante pour la destination Personnel IA |
Libellé absent en français et en anglais dans le plan de contrôle |
Correctif d'interface |
M |
🟡 En cours |
Clé nav.workforce absente des deux fichiers de messages |
S [Hypothèse] |
| F-20-09 |
E20 Expérience |
Libellé unique pour la vue de personnel virtuel |
Deux libellés français concurrents désignent le même écran |
Cohérence de vocabulaire |
S |
🟡 En cours |
Écart constaté entre le sélecteur de vue et le titre de la vue |
S [Hypothèse] |
| F-20-10 |
E20 Expérience |
Alignement du nom d'application sur la marque publique |
L'interface affiche encore le nom de code interne |
Préalable de marque au jour J |
M |
🟡 En cours |
Clé de nom d'application du portail client |
S [Hypothèse] |
#24. Épopée E21 — Documentation publique et prise en main
Intention. Publier une documentation qui décrit le produit réel, avec ses statuts.
| ID |
Épopée |
Fonctionnalité |
Description |
Valeur |
MoSCoW |
Statut réel |
Preuve (route/service) |
Effort [Hypothèse] |
| F-21-01 |
E21 Documentation |
Portail de documentation publique |
Surface web dédiée, distincte des deux portails applicatifs |
Point d'entrée public unique |
M |
🟡 En cours |
frontend/docs-portal — destiné à kyspectradoc.kyrieva.com |
L [Hypothèse] |
| F-21-02 |
E21 Documentation |
Domaine public tranché |
Zone détenue et vérifiée dans le compte de l'éditeur |
Publication sans surprise de zone |
M |
🟢 Livré |
kyspectradoc.kyrieva.com — zone kyrieva.com active |
S [Hypothèse] |
| F-21-03 |
E21 Documentation |
Adresse technique de repli |
Adresse du projet de pages statiques |
Continuité en cas d'incident de zone |
S |
🟢 Livré |
Projet kyspectra-docs-prod |
S [Hypothèse] |
| F-21-04 |
E21 Documentation |
Documentation bilingue |
Français et anglais, sans traduction au rabais |
Cohérent avec le produit |
M |
🟡 En cours |
Chantier du programme de lancement |
L [Hypothèse] |
| F-21-05 |
E21 Documentation |
Statuts affichés sur chaque capacité documentée |
Livré, En cours, Planifié, Bloqué |
Aucune promesse implicite |
M |
🟡 En cours |
Convention de ce dossier |
S [Hypothèse] |
| F-21-06 |
E21 Documentation |
Parcours de prise en main guidé |
Accompagnement pas à pas dans le portail |
Réduire le délai de première valeur |
S |
🟢 Livré |
portal-experience-service — /api/v1/onboarding |
M [Hypothèse] |
| F-21-07 |
E21 Documentation |
Écrans d'accueil et vues sauvegardées |
Page d'accueil configurable, filtres mémorisés |
Adapter le portail au métier |
S |
🟢 Livré |
/api/v1/home et /saved-views |
M [Hypothèse] |
| F-21-08 |
E21 Documentation |
Journal des changements du produit |
Publication des évolutions par version |
Confiance dans le rythme |
S |
🟡 En cours |
Onglet de journal des changements du tableau public |
M [Hypothèse] |
| F-21-09 |
E21 Documentation |
Fichiers de logo de la marque |
Production des fichiers d'identité visuelle |
Préalable de marque au jour J |
M |
🟡 En cours |
Aucun fichier de logo dans le dépôt à ce jour |
S [Hypothèse] |
#25. Carte des dépendances entre épopées
La lecture se fait de gauche à droite : une flèche pleine signifie « ne peut pas fonctionner sans », une flèche pointillée signifie « gagne fortement en valeur avec ».