@atlashub/smartstack-cli 2.9.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/.documentation/agents.html +1 -371
  2. package/.documentation/business-analyse.html +81 -17
  3. package/.documentation/cli-commands.html +1 -1
  4. package/.documentation/commands.html +1 -1
  5. package/.documentation/efcore.html +1 -1
  6. package/.documentation/gitflow.html +1 -1
  7. package/.documentation/hooks.html +27 -66
  8. package/.documentation/index.html +166 -166
  9. package/.documentation/init.html +6 -7
  10. package/.documentation/installation.html +1 -1
  11. package/.documentation/ralph-loop.html +1 -9
  12. package/.documentation/test-web.html +15 -39
  13. package/dist/index.js +23 -16
  14. package/dist/index.js.map +1 -1
  15. package/dist/mcp-entry.mjs +1302 -223
  16. package/dist/mcp-entry.mjs.map +1 -1
  17. package/package.json +1 -1
  18. package/templates/agents/efcore/db-deploy.md +1 -1
  19. package/templates/agents/efcore/migration.md +26 -10
  20. package/templates/agents/efcore/rebase-snapshot.md +24 -7
  21. package/templates/agents/efcore/squash.md +73 -57
  22. package/templates/agents/gitflow/commit.md +138 -18
  23. package/templates/agents/gitflow/exec.md +1 -1
  24. package/templates/agents/gitflow/finish.md +79 -62
  25. package/templates/agents/gitflow/init-clone.md +186 -0
  26. package/templates/agents/gitflow/init-detect.md +137 -0
  27. package/templates/agents/gitflow/init-validate.md +210 -0
  28. package/templates/agents/gitflow/init.md +231 -74
  29. package/templates/agents/gitflow/merge.md +115 -33
  30. package/templates/agents/gitflow/pr.md +151 -46
  31. package/templates/agents/gitflow/start.md +76 -33
  32. package/templates/agents/gitflow/status.md +41 -71
  33. package/templates/hooks/appsettings-guard.sh +76 -0
  34. package/templates/hooks/ef-migration-check.md +1 -1
  35. package/templates/hooks/hooks.json +9 -0
  36. package/templates/project/appsettings.json.template +8 -2
  37. package/templates/project/test-frontend/msw/handlers.ts +58 -0
  38. package/templates/project/test-frontend/msw/server.ts +25 -0
  39. package/templates/project/test-frontend/setup.ts +16 -0
  40. package/templates/project/test-frontend/test-utils.tsx +59 -0
  41. package/templates/project/test-frontend/vitest.config.ts +31 -0
  42. package/templates/skills/_resources/config-safety.md +61 -0
  43. package/templates/skills/_resources/formatting-guide.md +2 -2
  44. package/templates/skills/application/SKILL.md +12 -3
  45. package/templates/skills/application/steps/step-04-backend.md +21 -0
  46. package/templates/skills/application/steps/step-07-tests.md +259 -120
  47. package/templates/skills/business-analyse/SKILL.md +57 -28
  48. package/templates/skills/business-analyse/_shared.md +70 -39
  49. package/templates/skills/business-analyse/html/ba-interactive.html +2596 -0
  50. package/templates/skills/business-analyse/questionnaire/00-application.md +123 -131
  51. package/templates/skills/business-analyse/questionnaire/01-context.md +173 -24
  52. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +170 -50
  53. package/templates/skills/business-analyse/questionnaire/03-scope.md +154 -48
  54. package/templates/skills/business-analyse/questionnaire/10-documentation.md +1 -1
  55. package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -0
  56. package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -0
  57. package/templates/skills/business-analyse/questionnaire.md +55 -46
  58. package/templates/skills/business-analyse/steps/step-00-init.md +24 -2
  59. package/templates/skills/business-analyse/steps/step-01-cadrage.md +31 -20
  60. package/templates/skills/business-analyse/steps/step-03-specify.md +58 -0
  61. package/templates/skills/business-analyse/steps/step-05-handoff.md +301 -1
  62. package/templates/skills/business-analyse/steps/step-06-extract.md +518 -0
  63. package/templates/skills/check-version/SKILL.md +1 -1
  64. package/templates/skills/efcore/steps/db/step-deploy.md +22 -3
  65. package/templates/skills/efcore/steps/db/step-reset.md +27 -4
  66. package/templates/skills/efcore/steps/db/step-seed.md +46 -2
  67. package/templates/skills/efcore/steps/db/step-status.md +14 -0
  68. package/templates/skills/efcore/steps/migration/step-01-check.md +31 -5
  69. package/templates/skills/efcore/steps/migration/step-02-create.md +20 -4
  70. package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +60 -0
  71. package/templates/skills/efcore/steps/shared/step-00-init.md +47 -8
  72. package/templates/skills/efcore/steps/squash/step-03-create.md +27 -5
  73. package/templates/skills/gitflow/SKILL.md +91 -29
  74. package/templates/skills/gitflow/_shared.md +144 -2
  75. package/templates/skills/gitflow/phases/status.md +11 -1
  76. package/templates/skills/gitflow/steps/step-commit.md +1 -1
  77. package/templates/skills/gitflow/steps/step-init.md +202 -39
  78. package/templates/skills/gitflow/steps/step-pr.md +17 -5
  79. package/templates/skills/gitflow/templates/config.json +10 -1
  80. package/templates/skills/ralph-loop/SKILL.md +22 -15
  81. package/templates/skills/ralph-loop/steps/step-01-task.md +89 -4
  82. package/templates/skills/ralph-loop/steps/step-02-execute.md +408 -23
  83. package/templates/skills/ralph-loop/steps/step-03-commit.md +84 -2
  84. package/templates/skills/ralph-loop/steps/step-04-check.md +235 -6
  85. package/templates/skills/ralph-loop/steps/step-05-report.md +115 -0
  86. package/templates/skills/validate-feature/SKILL.md +83 -0
  87. package/templates/skills/validate-feature/steps/step-01-compile.md +38 -0
  88. package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -0
  89. package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -0
  90. package/templates/skills/validate-feature/steps/step-04-api-smoke.md +157 -0
@@ -0,0 +1,136 @@
1
+ # Categorie 15 : Criteres de reussite
2
+
3
+ > **Usage :** Definir comment mesurer le succes du projet de maniere objective
4
+ > **Quand charger :** TOUJOURS (noyau, charge dans le cadrage)
5
+ > **Objectif :** Etablir des criteres observables et mesurables pour evaluer le resultat
6
+
7
+ ---
8
+
9
+ ## 15.1 La definition du succes
10
+
11
+ > **But :** Determiner concretement ce qui fera dire "ce projet est un succes".
12
+
13
+ | # | Question | Type de reponse |
14
+ |---|----------|-----------------|
15
+ | Q15.1 | Quand le systeme sera en place, comment saurez-vous que le projet est un succes ? Quel changement concret observerez-vous ? | Description du succes observable |
16
+ | Q15.2 | Si vous deviez convaincre votre direction que le projet a reussi, quels chiffres ou faits leur presenteriez-vous ? | Metriques de succes |
17
+ | Q15.3 | Au bout de combien de temps apres le lancement pourrez-vous juger si ca fonctionne ? 1 semaine ? 1 mois ? 3 mois ? | Delai d'evaluation |
18
+
19
+ **Reformulation guidee pour Q15.1 :**
20
+ ```
21
+ question: "Comment saurez-vous que le projet est un succes ?"
22
+ header: "Succes"
23
+ options:
24
+ - label: "Gain de temps mesurable"
25
+ description: "Un processus qui prenait X heures ne prend plus que Y minutes"
26
+ - label: "Reduction des erreurs"
27
+ description: "Le nombre d'erreurs ou de corrections a diminue de maniere significative"
28
+ - label: "Meilleure satisfaction"
29
+ description: "Les utilisateurs expriment clairement que leur quotidien s'est ameliore"
30
+ - label: "Indicateurs en hausse"
31
+ description: "Des chiffres cles (chiffre d'affaires, productivite, qualite) se sont ameliores"
32
+ ```
33
+
34
+ ---
35
+
36
+ ## 15.2 Les objectifs mesurables
37
+
38
+ > **But :** Transformer les attentes en objectifs chiffres et verifiables.
39
+
40
+ | # | Question | Type de reponse |
41
+ |---|----------|-----------------|
42
+ | Q15.4 | Pour chaque amelioration attendue, pouvez-vous donner un objectif chiffre ? Par exemple : "reduire le temps de traitement de 2 heures a 30 minutes" | Objectifs quantifies |
43
+ | Q15.5 | Quels indicateurs suivez-vous deja aujourd'hui qui pourraient servir de reference ? | Indicateurs existants |
44
+ | Q15.6 | Y a-t-il des indicateurs que vous ne suivez pas aujourd'hui mais que vous aimeriez pouvoir mesurer grace au nouveau systeme ? | Nouveaux indicateurs souhaites |
45
+
46
+ **Reformulation guidee pour Q15.4 :**
47
+ ```
48
+ question: "Pouvez-vous chiffrer les ameliorations attendues ?"
49
+ header: "Objectifs"
50
+ options:
51
+ - label: "Temps divise par 2 ou plus"
52
+ description: "Le processus actuel prend trop de temps, l'objectif est de le reduire d'au moins 50%"
53
+ - label: "Erreurs reduites a moins de 5%"
54
+ description: "Le taux d'erreur actuel est trop eleve, l'objectif est de le ramener sous les 5%"
55
+ - label: "100% de tracabilite"
56
+ description: "Aujourd'hui des informations se perdent, l'objectif est de tout tracer"
57
+ - label: "Difficile a chiffrer"
58
+ description: "L'amelioration est qualitative et difficile a mesurer numeriquement"
59
+ ```
60
+
61
+ ---
62
+
63
+ ## 15.3 Les criteres d'acceptation
64
+
65
+ > **But :** Definir les conditions minimales pour que le systeme soit considere comme livre.
66
+
67
+ | # | Question | Type de reponse |
68
+ |---|----------|-----------------|
69
+ | Q15.7 | Quelles sont les conditions minimales pour que vous acceptiez de mettre le systeme en service ? | Liste de conditions obligatoires |
70
+ | Q15.8 | Qui decide officiellement que le systeme est pret a etre utilise ? Quel est le processus de validation finale ? | Processus de validation |
71
+
72
+ **Reformulation guidee pour Q15.7 :**
73
+ ```
74
+ question: "Quelles conditions minimales pour mettre le systeme en service ?"
75
+ header: "Acceptation"
76
+ multiSelect: true
77
+ options:
78
+ - label: "Toutes les fonctionnalites vitales presentes"
79
+ description: "Les fonctionnalites classees indispensables fonctionnent correctement"
80
+ - label: "Donnees migrees et verifiees"
81
+ description: "Les donnees existantes ont ete transferees et validees dans le nouveau systeme"
82
+ - label: "Utilisateurs formes"
83
+ description: "Les utilisateurs principaux ont ete formes et savent utiliser le systeme"
84
+ - label: "Tests valides"
85
+ description: "Les tests de fonctionnement ont ete realises et les resultats sont satisfaisants"
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Guide d'elicitation approfondi
91
+
92
+ ### Techniques de relance par question
93
+
94
+ | Question | Si la reponse est vague ou insuffisante | Relance recommandee |
95
+ |----------|----------------------------------------|---------------------|
96
+ | Q15.1 (succes) | "Que tout fonctionne bien" | "Concretement, imaginons que je visite votre bureau 3 mois apres le lancement. Qu'est-ce que je verrais de different par rapport a aujourd'hui ? Qu'est-ce que les gens feraient differemment ?" |
97
+ | Q15.2 (chiffres) | "Je ne sais pas quels chiffres" | "Pensez a votre patron : qu'est-ce qui le convaincrait ? Nombre de dossiers traites par jour ? Temps de reponse aux clients ? Taux d'erreur ? Satisfaction des equipes ?" |
98
+ | Q15.3 (delai) | "Tout de suite" | "Certains benefices apparaissent immediatement (gain de temps) et d'autres prennent du temps (adoption, qualite des donnees). Quel delai est realiste pour chaque benefice ?" |
99
+ | Q15.4 (objectifs chiffres) | "Difficile a chiffrer" | "Meme approximativement : le processus prend combien de temps aujourd'hui ? Quel serait un temps acceptable ? Combien d'erreurs par mois avez-vous aujourd'hui ?" |
100
+ | Q15.5 (indicateurs existants) | "On ne mesure rien" | "Comment evaluez-vous si la journee s'est bien passee ? Quels signaux vous disent que ca va bien ou mal ?" |
101
+ | Q15.7 (conditions minimales) | "Il faut que tout soit parfait" | "Si vous deviez lancer avec seulement 80% des fonctionnalites, lesquelles seraient dans ces 80% ?" |
102
+
103
+ ### Signaux d'alerte a detecter
104
+
105
+ | Signal du client | Probleme sous-jacent | Action de l'analyste |
106
+ |------------------|---------------------|----------------------|
107
+ | Aucun critere mesurable | **Succes non defini** | Proposer des metriques standards : temps de traitement, taux d'erreur, taux d'adoption, satisfaction utilisateur |
108
+ | "Ca doit etre parfait" | **Attentes irrealistes** | "La perfection est un objectif, mais quel est le niveau minimum acceptable pour un premier lancement ?" |
109
+ | Indicateurs contradictoires | **Objectifs mal alignes** | "Ces deux objectifs semblent en tension. Lequel est prioritaire si vous devez choisir ?" |
110
+ | Pas de processus de validation | **Pas de gouvernance** | "Qui signe l'acceptation ? Un email suffit ou faut-il un proces-verbal formel ?" |
111
+ | Succes mesure uniquement par la technique | **Oubli de l'humain** | "Au-dela du fonctionnement technique, comment mesurez-vous la satisfaction des utilisateurs ?" |
112
+
113
+ ---
114
+
115
+ ## Mapping vers le cadrage
116
+
117
+ | Reponse | Alimente |
118
+ |---------|----------|
119
+ | Q15.1, Q15.2, Q15.3 | `cadrage.acceptanceCriteria[]` |
120
+ | Q15.4, Q15.5, Q15.6 | `cadrage.acceptanceCriteria[]` + `cadrage.toBe` (enrichissement) |
121
+ | Q15.7, Q15.8 | `cadrage.acceptanceCriteria[]` (conditions de livraison) |
122
+
123
+ ---
124
+
125
+ ## Strategie de questionnement
126
+
127
+ ### Ordre des questions en 2 lots
128
+
129
+ **Lot 1 (Q15.1, Q15.2, Q15.3, Q15.4) : Definir le succes**
130
+ - Commencer par la vision qualitative du succes
131
+ - Puis quantifier avec des metriques et des delais
132
+
133
+ **Lot 2 (Q15.5, Q15.6, Q15.7, Q15.8) : Mesurer et valider**
134
+ - Identifier les indicateurs de reference existants
135
+ - Definir les conditions minimales de livraison
136
+ - Clarifier le processus de validation finale
@@ -258,66 +258,75 @@
258
258
 
259
259
  ---
260
260
 
261
- ## Conditional Categories (loaded only if relevant)
261
+ ## Categories conditionnelles (chargees selon le contexte)
262
262
 
263
- ### Category 11: Data Lifecycle (questionnaire/11-data-lifecycle.md)
264
- > Loaded if: entities have retention/archival/GDPR requirements
263
+ ### Categorie 11 : Cycle de vie des donnees (questionnaire/11-data-lifecycle.md)
264
+ > Charge si : les entites ont des exigences de retention, d'archivage ou de conformite
265
265
 
266
- ### Category 12: Migration (questionnaire/12-migration.md)
267
- > Loaded if: data migration from existing system needed
266
+ ### Categorie 12 : Migration (questionnaire/12-migration.md)
267
+ > Charge si : migration de donnees depuis un systeme existant
268
268
 
269
- ### Category 13: Cross-Module Impact (questionnaire/13-cross-module.md)
270
- > Loaded if: feature interacts with existing modules
269
+ ### Categorie 13 : Impact inter-modules (questionnaire/13-cross-module.md)
270
+ > Charge si : la fonctionnalite interagit avec des modules existants
271
+
272
+ ### Categorie 14 : Risques et hypotheses (questionnaire/14-risk-assumptions.md)
273
+ > Charge : TOUJOURS (noyau, integre au cadrage)
274
+
275
+ ### Categorie 15 : Criteres de reussite (questionnaire/15-success-metrics.md)
276
+ > Charge : TOUJOURS (noyau, integre au cadrage)
271
277
 
272
278
  ---
273
279
 
274
- ## Questionnaire Usage
280
+ ## Utilisation des questionnaires
275
281
 
276
- ### Phase Mapping
282
+ ### Correspondance avec les phases
277
283
 
278
- | Phase | Categories Used |
279
- |-------|----------------|
280
- | step-01-cadrage | 00 (if app mode), 01, 02, 03, + conditionals (05, 06, 08, 09, 10) |
281
- | step-03-specify (per module) | 04, 07, 11, 12, 13 (loaded per module) |
284
+ | Phase | Categories utilisees |
285
+ |-------|---------------------|
286
+ | step-01-cadrage | 00 (si mode application), 01, 02, 03, 14, 15 + conditionnelles (05, 06, 08, 09, 10) |
287
+ | step-03-specify (par module) | 04, 07, 11, 12, 13 (chargees par module) |
282
288
 
283
- ### Cadrage Phase
289
+ ### Phase de cadrage
284
290
 
285
- 1. **Start:** Begin with Category 0 (if application mode), then Category 1 (Business Context)
286
- 2. **Adapt:** Skip questions not relevant to the context
287
- 3. **Deepen:** Ask follow-up questions on vague answers
288
- 4. **Challenge:** Don't accept "we'll see later" on Must-Have
289
- 5. **Batch:** Present 3-4 questions per interaction (AskUserQuestion)
291
+ 1. **Debut :** Commencer par la categorie 0 (si mode application), puis la categorie 1 (Contexte metier)
292
+ 2. **Adapter :** Sauter les questions non pertinentes selon le contexte
293
+ 3. **Approfondir :** Poser des questions de relance sur les reponses vagues
294
+ 4. **Challenger :** Ne pas accepter "on verra plus tard" sur les fonctionnalites indispensables
295
+ 5. **Par lots :** Presenter 3 a 4 questions par interaction (AskUserQuestion)
296
+ 6. **Risques et succes :** TOUJOURS poser les categories 14 et 15 en fin de cadrage
290
297
 
291
- ### Follow-up Questions
298
+ ### Questions de relance
292
299
 
293
- For each vague answer, use:
294
- - "Can you give a concrete example?"
295
- - "How do you measure that today?"
296
- - "What happens if this rule is not respected?"
297
- - "Who is impacted by this decision?"
300
+ Pour chaque reponse vague, utiliser :
301
+ - "Pouvez-vous me donner un exemple concret ?"
302
+ - "Comment mesurez-vous cela aujourd'hui ?"
303
+ - "Que se passe-t-il si cette regle n'est pas respectee ?"
304
+ - "Qui est impacte par cette decision ?"
298
305
 
299
- ### Dev-Relevance Filter
306
+ ### Filtre de pertinence
300
307
 
301
- Each question kept passes this test:
302
- > "Does the answer change something in the generated code?"
303
- > Yes -> Keep | No -> Remove
308
+ Chaque question conservee passe ce test :
309
+ > "La reponse change-t-elle quelque chose dans le systeme a construire ?"
310
+ > Oui Conserver | Non Supprimer
304
311
 
305
312
  ---
306
313
 
307
- ## Summary
308
-
309
- | Category | Questions | Phase | Focus |
310
- |----------|-----------|-------|-------|
311
- | 0. Application Identity | 8 | step-01 (app mode) | Application name, modules, roles |
312
- | 1. Business Context | 4 | step-01 | Problem + AS-IS/TO-BE |
313
- | 2. Stakeholders | 8 | step-01 | Roles + needs |
314
- | 3. Functional Scope | 8 | step-01 | Priority levels + flows |
315
- | 4. Data | 8 | step-03 (per module) | Entities + rules |
316
- | 5. Integrations | 8 | step-01 (conditional) | Systems + flows |
317
- | 6. Security | 8 | step-01 (conditional) | Permissions + restrictions |
318
- | 7. UI | 8 | step-03 (per module) | Screens + experience |
319
- | 8. Performance | 4 | step-01 (conditional) | Response time + tests |
320
- | 9. Constraints | 4 | step-01 (conditional) | Tech stack + deps |
321
- | 10. Documentation | 4 | step-01 (conditional) | User + tech docs |
322
- | **Total Core** | **72** | | |
323
- | 11-13 (conditional) | ~24 | step-03 (per module) | Lifecycle, migration, cross-module |
314
+ ## Synthese
315
+
316
+ | Categorie | Questions | Phase | Focus |
317
+ |-----------|-----------|-------|-------|
318
+ | 0. Identite de l'application | 8 | step-01 (mode application) | Nom, domaines, profils |
319
+ | 1. Contexte metier | 12 | step-01 | Probleme, situation actuelle, vision, declencheur |
320
+ | 2. Parties prenantes | 14 | step-01 | Utilisateurs, taches, acces, changement |
321
+ | 3. Perimetre fonctionnel | 12 | step-01 | Priorites, parcours, besoins transversaux |
322
+ | 4. Donnees | 8 | step-03 (par module) | Entites et regles |
323
+ | 5. Integrations | 8 | step-01 (conditionnel) | Systemes et flux |
324
+ | 6. Securite et acces | 8 | step-01 (conditionnel) | Permissions et restrictions |
325
+ | 7. Interface utilisateur | 8 | step-03 (par module) | Ecrans et experience |
326
+ | 8. Performance et qualite | 4 | step-01 (conditionnel) | Temps de reponse et tests |
327
+ | 9. Contraintes | 4 | step-01 (conditionnel) | Technologies et dependances |
328
+ | 10. Documentation | 4 | step-01 (conditionnel) | Guides et formation |
329
+ | 14. Risques et hypotheses | 8 | step-01 | Risques, hypotheses, lecons du passe |
330
+ | 15. Criteres de reussite | 8 | step-01 | Indicateurs de succes, conditions d'acceptation |
331
+ | **Total noyau** | **~86** | | |
332
+ | 11-13 (conditionnel) | ~24 | step-03 (par module) | Cycle de vie, migration, impact inter-modules |
@@ -36,6 +36,7 @@ context: business
36
36
  question_mode: false
37
37
  refactor_mode: false
38
38
  micro_mode: false
39
+ extract_mode: false
39
40
  interactive_mode: false
40
41
  application_mode: false # Multi-module application analysis
41
42
  ```
@@ -52,6 +53,7 @@ application_mode: false # Multi-module application analysis
52
53
  | `-r` | `--refactor` | Refactoring mode | next arg = FEAT-ID, remaining = change description |
53
54
  | `-m` | `--micro` | Micro feature mode | none |
54
55
  | `-i` | `--interactive` | Interactive mode | none |
56
+ | `-x` | `--extract` | Extract mode: import from interactive HTML export | next arg = JSON file path |
55
57
  | `-app` | `--application` | Application mode: multi-module analysis | none |
56
58
 
57
59
  **Remaining arguments after flag removal = feature_description**
@@ -62,6 +64,8 @@ IF question_mode = true:
62
64
  use_case = "question"
63
65
  ELSE IF refactor_mode = true:
64
66
  use_case = "refactoring"
67
+ ELSE IF extract_mode = true:
68
+ use_case = "extract"
65
69
  ELSE IF micro_mode = true:
66
70
  use_case = "micro"
67
71
  ELSE:
@@ -125,6 +129,23 @@ ba -r FEAT-001 "Add support for multi-language feature names"
125
129
  ba -m "Add email notification on approval"
126
130
  ```
127
131
 
132
+ ### Extract Mode (-x)
133
+ ```
134
+ 1. Parse: extract_mode = true, json_path = first remaining arg
135
+ 2. Validate JSON file exists at {json_path}
136
+ 3. Read JSON file content
137
+ 4. Load step-06-extract.md with {json_data} = parsed content
138
+ 5. EXIT after extraction — step-06 handles everything
139
+ ```
140
+
141
+ **Example:**
142
+ ```
143
+ ba -x ./docs/business/MyApp/ba-export.json
144
+ ```
145
+
146
+ > **Note:** The JSON file is the export from the interactive HTML document (`ba-interactive.html`).
147
+ > The extract step maps ALL client data to feature.json format with zero information loss.
148
+
128
149
  ### Default Mode (New Feature)
129
150
  ```
130
151
  1. Set use_case = "new"
@@ -557,17 +578,18 @@ NEXT STEP: step-01-analyse ({use_case} mode)
557
578
 
558
579
  ## Step 13: Load Next Step
559
580
 
560
- **All modes except question (-q) and micro (-m):**
581
+ **All modes except question (-q), micro (-m), and extract (-x):**
561
582
  After showing initialization summary, proceed to `./step-01-cadrage.md`
562
583
 
563
584
  **Question mode (-q):** EXIT after ba-reader answers the question.
564
585
  **Micro mode (-m):** Load `./step-05-handoff.md` directly.
586
+ **Extract mode (-x):** Load `./step-06-extract.md` with `{json_data}` from parsed JSON file.
565
587
 
566
588
  **Pass context variables:**
567
589
  ```yaml
568
590
  feature_id: string
569
591
  feature_description: string
570
- use_case: "new" | "question" | "refactoring" | "micro" | "application"
592
+ use_case: "new" | "question" | "refactoring" | "micro" | "extract" | "application"
571
593
  application_name: string
572
594
  module_name: string
573
595
  language: string
@@ -104,35 +104,46 @@ After each batch: Apply ULTRATHINK + Elicitation Techniques.
104
104
 
105
105
  ### 4. Core Questionnaires (always)
106
106
 
107
- Load these categories in order:
107
+ Load these categories in order. Each questionnaire contains its own batching strategy and elicitation guide.
108
108
 
109
- **Category 01 - Context** (`questionnaire/01-context.md`)
110
- - Q1.1-Q1.4: Problem, AS-IS, TO-BE, trigger
111
- - 1 AskUserQuestion batch
109
+ **Categorie 01 - Contexte metier** (`questionnaire/01-context.md`)
110
+ - Q1.1-Q1.12 : Probleme, situation actuelle, vision, declencheur
111
+ - 3 lots AskUserQuestion (probleme, processus actuel, vision et urgence)
112
+ - ULTRATHINK : Identifier la douleur reelle, pas la solution imaginee
112
113
 
113
- **Category 02 - Stakeholders** (`questionnaire/02-stakeholders.md`)
114
- - Q2.1-Q2.8: Roles, tasks, frequency, pain points
115
- - 2 AskUserQuestion batches
116
- - ULTRATHINK: Map stakeholders to application roles
114
+ **Categorie 02 - Parties prenantes** (`questionnaire/02-stakeholders.md`)
115
+ - Q2.1-Q2.14 : Utilisateurs, taches, acces, conduite du changement
116
+ - 4 lots AskUserQuestion
117
+ - ULTRATHINK : Mapper les parties prenantes vers les profils d'acces
117
118
 
118
- **Category 03 - Scope** (`questionnaire/03-scope.md`)
119
- - Q3.1-Q3.8: Priority levels (Essentiel/Important/Optionnel/Hors périmètre), flows, errors
120
- - 2 AskUserQuestion batches
121
- - ULTRATHINK: Ensure scope items map to modules
119
+ **Categorie 03 - Perimetre fonctionnel** (`questionnaire/03-scope.md`)
120
+ - Q3.1-Q3.12 : Priorites (indispensable/important/optionnel/hors perimetre), parcours, besoins transversaux
121
+ - 3 lots AskUserQuestion
122
+ - ULTRATHINK : S'assurer que le perimetre couvre les besoins identifies
123
+
124
+ **Categorie 14 - Risques et hypotheses** (`questionnaire/14-risk-assumptions.md`)
125
+ - Q14.1-Q14.8 : Risques, hypotheses non verifiees, lecons du passe
126
+ - 2 lots AskUserQuestion
127
+ - TOUJOURS charge (noyau) - ne jamais sauter cette categorie
128
+
129
+ **Categorie 15 - Criteres de reussite** (`questionnaire/15-success-metrics.md`)
130
+ - Q15.1-Q15.8 : Definition du succes, objectifs mesurables, conditions d'acceptation
131
+ - 2 lots AskUserQuestion
132
+ - TOUJOURS charge (noyau) - ne jamais sauter cette categorie
122
133
 
123
134
  ### 5. Conditional Questionnaires
124
135
 
125
136
  Based on feature description analysis, load additional categories:
126
137
 
127
- | Condition | Category | Questionnaire |
128
- |-----------|----------|---------------|
129
- | Security concerns mentioned | 06 | `questionnaire/06-security.md` |
130
- | Integration with external systems | 05 | `questionnaire/05-integrations.md` |
131
- | Performance requirements | 08 | `questionnaire/08-performance.md` |
132
- | Technical constraints | 09 | `questionnaire/09-constraints.md` |
133
- | Documentation requirements | 10 | `questionnaire/10-documentation.md` |
138
+ | Condition | Categorie | Questionnaire |
139
+ |-----------|-----------|---------------|
140
+ | Securite ou conformite mentionnee | 06 | `questionnaire/06-security.md` |
141
+ | Integration avec des systemes externes | 05 | `questionnaire/05-integrations.md` |
142
+ | Exigences de performance | 08 | `questionnaire/08-performance.md` |
143
+ | Contraintes techniques | 09 | `questionnaire/09-constraints.md` |
144
+ | Besoins de documentation | 10 | `questionnaire/10-documentation.md` |
134
145
 
135
- > **Categories 04 (data), 07 (ui), 11 (data-lifecycle), 12 (migration), 13 (cross-module) are per-module and loaded in step-03.**
146
+ > **Categories 04 (donnees), 07 (interface), 11 (cycle de vie), 12 (migration), 13 (inter-modules) sont par module et chargees dans step-03.**
136
147
 
137
148
  ### 6. Application Roles Definition
138
149
 
@@ -447,6 +447,7 @@ For EACH section confirmed in 3a, build the `specification.sections[]` structure
447
447
  #### 3b. For Each Section: Generate MANDATORY ASCII Mockup
448
448
 
449
449
  > **BLOCKING RULE:** Every section MUST have a wireframe. No section proceeds to entity definition (step 6) without a validated mockup stored in `specification.uiWireframes[]`.
450
+ > **HTML INTEGRATION:** These wireframes are also rendered in the interactive HTML document (`ba-interactive.html`) deployed at handoff. The client can review and annotate mockups directly in their browser.
450
451
 
451
452
  For each confirmed section, generate an ASCII mockup and validate with client:
452
453
 
@@ -1262,6 +1263,62 @@ ba-writer.updateStatus({module_feature_id}, "specified")
1262
1263
  ba-writer.updateModuleStatus({feature_id}, {currentModule.code}, "specified")
1263
1264
  ```
1264
1265
 
1266
+ ### 11-bis. Deploy Incremental Interactive HTML (MANDATORY)
1267
+
1268
+ > **After each module is specified, deploy/update the interactive HTML document with all available data.**
1269
+ > This allows the client to review completed modules while the next module is being specified.
1270
+ > The HTML is incrementally enriched: after module 1, only module 1 specs appear; after module 2, both appear; etc.
1271
+
1272
+ **Source:** `html/ba-interactive.html` (relative to skill root = `~/.claude/skills/business-analyse/html/`)
1273
+
1274
+ **Destination:** `docs/business/{app}/business-analyse/v{version}/ba-interactive.html`
1275
+
1276
+ **Steps:**
1277
+
1278
+ 1. **Read sources:**
1279
+ - Read the HTML template from skill directory
1280
+ - Read the master feature.json (application level — now updated with current module status)
1281
+ - Read EACH completed module's feature.json (including the one just specified)
1282
+
1283
+ 2. **Build FEATURE_DATA object:**
1284
+
1285
+ > **Use the EXACT SAME mapping defined in step-05-handoff.md section 9d.**
1286
+ > The mapping is identical — the only difference is that `moduleSpecs` only includes completed modules.
1287
+ > Modules not yet specified will NOT appear in `moduleSpecs` (their entry in `modules[]` will show `status: "pending"`).
1288
+
1289
+ Follow step-05 section 9d "Step 2: Build FEATURE_DATA object" for the complete mapping pseudocode:
1290
+ - `metadata`, `cadrage`, `modules[]`, `dependencies[]` → from master feature.json
1291
+ - `moduleSpecs[moduleCode]` → only for modules with status "specified" (completed so far)
1292
+ - `consolidation` → empty `{ interactions: [], e2eFlows: [] }` (not yet consolidated)
1293
+ - `handoff` → empty `{}` (not yet handed off)
1294
+
1295
+ 3. **Replace placeholders in template:**
1296
+ - Serialize the FEATURE_DATA object as JSON (2-space indentation)
1297
+ - Replace `{{FEATURE_DATA}}` with the serialized JSON
1298
+ - Replace `{{APPLICATION_NAME}}` → `{application_name}`
1299
+ - Replace `{{APPLICATION_ID}}` → `{feature_id}`
1300
+ - Replace `{{VERSION}}` → `{version}`
1301
+ - Replace `{{CREATED_AT}}` → `{ISO timestamp}`
1302
+
1303
+ 4. **Write and confirm:**
1304
+
1305
+ ```
1306
+ ✓ Interactive HTML updated (incremental):
1307
+ Path: docs/business/{app}/business-analyse/v{version}/ba-interactive.html
1308
+ Modules included: {completedModules.length}/{totalModules} specified
1309
+ - {completedModule1}: {uc_count} UCs, {br_count} BRs, {entity_count} entities
1310
+ - {completedModule2}: ...
1311
+ Remaining: {pendingModules.join(', ')} (will be added after specification)
1312
+ → Client can open in browser to review completed modules now.
1313
+ ```
1314
+
1315
+ > **WHY incremental?** The client doesn't have to wait until handoff to start reviewing.
1316
+ > While module 2 is being specified, the client can already give feedback on module 1.
1317
+ > Each incremental deployment OVERWRITES the previous HTML (latest state always).
1318
+ > The FINAL deployment at step-05 (handoff) will include consolidation and handoff data.
1319
+
1320
+ ---
1321
+
1265
1322
  ### 12. Loop Decision
1266
1323
 
1267
1324
  ```
@@ -1337,6 +1394,7 @@ Read metadata.workflow.currentModule
1337
1394
  - Client confirmed module specification
1338
1395
  - Module feature.json written
1339
1396
  - Master updated with module status
1397
+ - **Interactive HTML deployed/updated with completed module data (incremental)**
1340
1398
  - Loop advanced correctly
1341
1399
 
1342
1400
  ## FAILURE MODES