@atlashub/smartstack-cli 4.17.1 → 4.19.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 (167) hide show
  1. package/package.json +1 -1
  2. package/templates/agents/ba-reader.md +86 -80
  3. package/templates/agents/ba-writer.md +321 -413
  4. package/templates/agents/docs-context-reader.md +3 -3
  5. package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -0
  6. package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -0
  7. package/templates/skills/apex/SKILL.md +29 -16
  8. package/templates/skills/apex/_shared.md +62 -9
  9. package/templates/skills/apex/references/analysis-methods.md +8 -6
  10. package/templates/skills/apex/references/challenge-questions.md +5 -5
  11. package/templates/skills/apex/references/core-seed-data.md +68 -45
  12. package/templates/skills/apex/references/frontend-route-wiring-app-tsx.md +26 -21
  13. package/templates/skills/apex/references/parallel-execution.md +156 -0
  14. package/templates/skills/apex/references/person-extension-pattern.md +12 -12
  15. package/templates/skills/apex/references/post-checks.md +1748 -1726
  16. package/templates/skills/apex/references/smartstack-api.md +63 -57
  17. package/templates/skills/apex/references/smartstack-frontend-compliance.md +594 -0
  18. package/templates/skills/apex/references/smartstack-frontend.md +1246 -1842
  19. package/templates/skills/apex/references/smartstack-layers.md +98 -145
  20. package/templates/skills/apex/steps/step-00-init.md +30 -6
  21. package/templates/skills/apex/steps/step-01-analyze.md +27 -23
  22. package/templates/skills/apex/steps/step-02-plan.md +12 -12
  23. package/templates/skills/apex/steps/step-03-execute.md +198 -143
  24. package/templates/skills/apex/steps/step-04-examine.md +24 -93
  25. package/templates/skills/apex/steps/step-05-deep-review.md +16 -16
  26. package/templates/skills/apex/steps/step-06-resolve.md +9 -9
  27. package/templates/skills/apex/steps/step-07-tests.md +3 -1
  28. package/templates/skills/apex/steps/step-08-run-tests.md +1 -1
  29. package/templates/skills/business-analyse/SKILL.md +182 -301
  30. package/templates/skills/business-analyse/_shared.md +119 -336
  31. package/templates/skills/business-analyse/html/ba-interactive.html +703 -82
  32. package/templates/skills/business-analyse/html/build-html.js +41 -3
  33. package/templates/skills/business-analyse/html/src/partials/cadrage-context.html +34 -0
  34. package/templates/skills/business-analyse/html/src/partials/cadrage-risks.html +48 -0
  35. package/templates/skills/business-analyse/html/src/partials/cadrage-scope.html +49 -0
  36. package/templates/skills/business-analyse/html/src/partials/cadrage-stakeholders.html +55 -0
  37. package/templates/skills/business-analyse/html/src/partials/cadrage-success.html +34 -0
  38. package/templates/skills/business-analyse/html/src/partials/consol-datamodel.html +8 -0
  39. package/templates/skills/business-analyse/html/src/partials/consol-flows.html +29 -0
  40. package/templates/skills/business-analyse/html/src/partials/consol-interactions.html +8 -0
  41. package/templates/skills/business-analyse/html/src/partials/consol-permissions.html +8 -0
  42. package/templates/skills/business-analyse/html/src/partials/decomp-dependencies.html +38 -0
  43. package/templates/skills/business-analyse/html/src/partials/decomp-modules.html +51 -0
  44. package/templates/skills/business-analyse/html/src/partials/handoff-summary.html +24 -0
  45. package/templates/skills/business-analyse/html/src/partials/module-spec-container.html +4 -0
  46. package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +17 -1
  47. package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +31 -5
  48. package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +100 -63
  49. package/templates/skills/business-analyse/html/src/scripts/06-render-mockups.js +372 -0
  50. package/templates/skills/business-analyse/html/src/scripts/10-comments.js +41 -13
  51. package/templates/skills/business-analyse/html/src/styles/09-mockups-html.css +136 -0
  52. package/templates/skills/business-analyse/patterns/suggestion-catalog.md +7 -5
  53. package/templates/skills/business-analyse/questionnaire/02-stakeholders-scope.md +142 -0
  54. package/templates/skills/business-analyse/questionnaire/03-data-ui.md +94 -0
  55. package/templates/skills/business-analyse/questionnaire/04-risks-metrics.md +150 -0
  56. package/templates/skills/business-analyse/questionnaire/05-cross-module.md +69 -0
  57. package/templates/skills/business-analyse/questionnaire.md +23 -280
  58. package/templates/skills/business-analyse/react/application-viewer.md +2 -2
  59. package/templates/skills/business-analyse/react/components.md +4 -4
  60. package/templates/skills/business-analyse/react/i18n-template.md +1 -1
  61. package/templates/skills/business-analyse/react/schema.md +14 -14
  62. package/templates/skills/business-analyse/references/acceptance-criteria.md +25 -25
  63. package/templates/skills/business-analyse/references/analysis-semantic-checks.md +3 -3
  64. package/templates/skills/business-analyse/references/compilation-structure-cards.md +1 -1
  65. package/templates/skills/business-analyse/references/consolidation-structural-checks.md +7 -7
  66. package/templates/skills/business-analyse/references/deploy-data-build.md +14 -12
  67. package/templates/skills/business-analyse/references/deploy-modes.md +10 -10
  68. package/templates/skills/business-analyse/references/detection-strategies.md +6 -6
  69. package/templates/skills/business-analyse/references/html-data-mapping.md +15 -15
  70. package/templates/skills/business-analyse/references/naming-conventions.md +4 -4
  71. package/templates/skills/business-analyse/references/review-data-mapping.md +29 -29
  72. package/templates/skills/business-analyse/references/robustness-checks.md +36 -33
  73. package/templates/skills/business-analyse/references/spec-auto-inference.md +2 -2
  74. package/templates/skills/business-analyse/references/ui-dashboard-spec.md +1 -1
  75. package/templates/skills/business-analyse/references/ui-resource-cards.md +1 -1
  76. package/templates/skills/business-analyse/references/validation-checklist.md +9 -6
  77. package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +2 -2
  78. package/templates/skills/business-analyse/schemas/application-schema.json +8 -8
  79. package/templates/skills/business-analyse/schemas/feature-schema.json +3 -3
  80. package/templates/skills/business-analyse/schemas/index-schema.json +47 -0
  81. package/templates/skills/business-analyse/schemas/project-schema.json +6 -6
  82. package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +1 -1
  83. package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +5 -3
  84. package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +4 -4
  85. package/templates/skills/business-analyse/schemas/sections/specification-schema.json +1 -1
  86. package/templates/skills/business-analyse/schemas/shared/common-defs.json +4 -3
  87. package/templates/skills/business-analyse/steps/step-00-init.md +93 -134
  88. package/templates/skills/business-analyse/steps/step-01-cadrage.md +136 -172
  89. package/templates/skills/business-analyse/steps/step-02-structure.md +175 -0
  90. package/templates/skills/business-analyse/steps/step-03-specify.md +198 -0
  91. package/templates/skills/business-analyse/steps/step-04-consolidate.md +478 -0
  92. package/templates/skills/business-analyse/steps/step-05-deploy.md +220 -0
  93. package/templates/skills/business-analyse/steps/step-06-review.md +51 -69
  94. package/templates/skills/business-analyse/templates/tpl-frd.md +1 -1
  95. package/templates/skills/business-analyse/templates/tpl-handoff.md +20 -17
  96. package/templates/skills/business-analyse/templates/tpl-launch-displays.md +2 -2
  97. package/templates/skills/business-analyse/templates-react.md +2 -2
  98. package/templates/skills/derive-prd/SKILL.md +92 -0
  99. package/templates/skills/derive-prd/references/acceptance-criteria.md +169 -0
  100. package/templates/skills/derive-prd/references/entity-domain-mapping.md +115 -0
  101. package/templates/skills/{business-analyse → derive-prd}/references/handoff-file-templates.md +131 -120
  102. package/templates/skills/{business-analyse → derive-prd}/references/handoff-mappings.md +95 -95
  103. package/templates/skills/{business-analyse → derive-prd}/references/handoff-seeddata-generation.md +312 -312
  104. package/templates/skills/{business-analyse → derive-prd}/references/prd-generation.md +262 -258
  105. package/templates/skills/derive-prd/references/readiness-scoring.md +104 -0
  106. package/templates/skills/derive-prd/schemas/handoff-schema.json +95 -0
  107. package/templates/skills/derive-prd/steps/step-00-validate.md +130 -0
  108. package/templates/skills/derive-prd/steps/step-01-transform.md +206 -0
  109. package/templates/skills/derive-prd/steps/step-02-export.md +181 -0
  110. package/templates/skills/{business-analyse → derive-prd}/templates/tpl-progress.md +172 -172
  111. package/templates/skills/ralph-loop/SKILL.md +10 -4
  112. package/templates/skills/ralph-loop/references/category-completeness.md +20 -4
  113. package/templates/skills/ralph-loop/references/compact-loop.md +80 -48
  114. package/templates/skills/ralph-loop/references/init-resume-recovery.md +4 -2
  115. package/templates/skills/ralph-loop/references/parallel-execution.md +27 -27
  116. package/templates/skills/ralph-loop/steps/step-00-init.md +19 -9
  117. package/templates/skills/ralph-loop/steps/step-01-task.md +12 -4
  118. package/templates/skills/ralph-loop/steps/step-02-execute.md +9 -4
  119. package/templates/skills/ralph-loop/steps/step-03-commit.md +1 -1
  120. package/templates/skills/ralph-loop/steps/step-04-check.md +5 -21
  121. package/templates/skills/ralph-loop/steps/step-05-report.md +6 -1
  122. package/templates/skills/apex/references/agent-teams-protocol.md +0 -203
  123. package/templates/skills/business-analyse/_architecture.md +0 -124
  124. package/templates/skills/business-analyse/_elicitation.md +0 -206
  125. package/templates/skills/business-analyse/_module-loop.md +0 -115
  126. package/templates/skills/business-analyse/_suggestions.md +0 -34
  127. package/templates/skills/business-analyse/questionnaire/00-application.md +0 -160
  128. package/templates/skills/business-analyse/questionnaire/00b-project.md +0 -85
  129. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +0 -189
  130. package/templates/skills/business-analyse/questionnaire/03-scope.md +0 -164
  131. package/templates/skills/business-analyse/questionnaire/04-data.md +0 -88
  132. package/templates/skills/business-analyse/questionnaire/05-integrations.md +0 -58
  133. package/templates/skills/business-analyse/questionnaire/06-security.md +0 -68
  134. package/templates/skills/business-analyse/questionnaire/07-ui.md +0 -76
  135. package/templates/skills/business-analyse/questionnaire/08-performance.md +0 -42
  136. package/templates/skills/business-analyse/questionnaire/09-constraints.md +0 -45
  137. package/templates/skills/business-analyse/questionnaire/10-documentation.md +0 -43
  138. package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +0 -59
  139. package/templates/skills/business-analyse/questionnaire/12-migration.md +0 -58
  140. package/templates/skills/business-analyse/questionnaire/13-cross-module.md +0 -69
  141. package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +0 -135
  142. package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +0 -136
  143. package/templates/skills/business-analyse/references/agent-module-prompt.md +0 -362
  144. package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +0 -557
  145. package/templates/skills/business-analyse/references/cache-warming-strategy.md +0 -566
  146. package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +0 -41
  147. package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +0 -74
  148. package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +0 -115
  149. package/templates/skills/business-analyse/references/cadrage-shared-modules.md +0 -68
  150. package/templates/skills/business-analyse/references/cadrage-structure-cards.md +0 -85
  151. package/templates/skills/business-analyse/references/team-orchestration.md +0 -1022
  152. package/templates/skills/business-analyse/references/validate-incremental-html.md +0 -121
  153. package/templates/skills/business-analyse/steps/step-01b-applications.md +0 -419
  154. package/templates/skills/business-analyse/steps/step-02-decomposition.md +0 -387
  155. package/templates/skills/business-analyse/steps/step-03a-data.md +0 -16
  156. package/templates/skills/business-analyse/steps/step-03a1-setup.md +0 -506
  157. package/templates/skills/business-analyse/steps/step-03a2-analysis.md +0 -301
  158. package/templates/skills/business-analyse/steps/step-03b-ui.md +0 -425
  159. package/templates/skills/business-analyse/steps/step-03c-compile.md +0 -611
  160. package/templates/skills/business-analyse/steps/step-03d-validate.md +0 -783
  161. package/templates/skills/business-analyse/steps/step-04-consolidation.md +0 -17
  162. package/templates/skills/business-analyse/steps/step-04a-collect.md +0 -415
  163. package/templates/skills/business-analyse/steps/step-04b-analyze.md +0 -163
  164. package/templates/skills/business-analyse/steps/step-04c-decide.md +0 -186
  165. package/templates/skills/business-analyse/steps/step-05a-handoff.md +0 -840
  166. package/templates/skills/business-analyse/steps/step-05b-deploy.md +0 -522
  167. package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +0 -703
@@ -1,206 +0,0 @@
1
- # Business Analysis - Elicitation & Interaction (_elicitation.md)
2
-
3
- > **Loaded by:** step-01-cadrage, step-03a-data
4
- > **Purpose:** Interactive questioning techniques, AskUserQuestion formatting, ULTRATHINK mode
5
-
6
- ---
7
-
8
- ## Interactive Elicitation Protocol
9
-
10
- > **RULE: ALL questions MUST be asked interactively using `AskUserQuestion`.**
11
- > **NEVER dump a list of questions as text. ALWAYS use the tool.**
12
-
13
- ### Protocol
14
-
15
- 1. **Group questions by theme** — max 4 questions per `AskUserQuestion` call (tool limit)
16
- 2. **Propose predefined options** — for questions with predictable answers, provide 2-4 options
17
- 3. **The user can always choose "Other"** — the tool adds this automatically for free-text answers
18
- 4. **Process answers immediately** — apply ULTRATHINK + follow-ups before moving to next group
19
- 5. **Adapt next questions** — based on previous answers, skip irrelevant questions
20
-
21
- ### Batching Strategy
22
-
23
- | Category | Questions | Batches |
24
- |----------|-----------|---------|
25
- | 01-context | Q1.1-Q1.4 | 1 call |
26
- | 02-stakeholders | Q2.1-Q2.8 | 2 calls |
27
- | 03-scope | Q3.1-Q3.8 | 2 calls |
28
- | 04-data | Q4.1-Q4.8 | 2 calls |
29
- | 05-integrations | Q5.1-Q5.8 | 2 calls |
30
- | 06-security | Q6.1-Q6.8 | 2 calls |
31
- | 07-ui | Q7.1-Q7.8 | 2 calls |
32
- | 08-performance | Q8.1-Q8.4 | 1 call |
33
- | 09-constraints | Q9.1-Q9.4 | 1 call |
34
- | 10-documentation | Q10.1-Q10.4 | 1 call |
35
- | 11-data-lifecycle | Q11.1-Q11.8 | 2 calls |
36
- | 12-migration | Q12.1-Q12.8 | 2 calls |
37
- | 13-cross-module | Q13.1-Q13.8 | 2 calls |
38
-
39
- ### AskUserQuestion Format
40
-
41
- > **FORMATTING CRITICAL: `AskUserQuestion` does NOT support markdown or line breaks.**
42
- > Le champ `question` est rendu en texte brut (plain text). Il n'y a pas de retour a la ligne,
43
- > pas de gras, pas de puces. Une question simple reste lisible meme longue. Mais du contenu
44
- > structure (listes, resumes multi-points, tableaux) devient un mur de texte illisible.
45
-
46
- | Field | Rule |
47
- |-------|------|
48
- | `question` | **1 question ou 1 phrase.** Jamais de liste, resume multi-points ou contenu structure. |
49
- | `header` | 1-2 mots (max 12 chars) |
50
- | `label` (option) | Court et clair (~20 chars) |
51
- | `description` (option) | 1 phrase explicative (~60 chars) |
52
-
53
- > **Pour afficher du contenu structure** (resumes, listes, tableaux, syntheses) :
54
- > **TOUJOURS** utiliser du **texte direct** (output text) AVANT l'appel `AskUserQuestion`.
55
- > Le texte direct supporte le markdown et sera correctement formate avec titres, puces, gras, etc.
56
- >
57
- > **Exemple — Validation de synthese :**
58
- > 1. Afficher le resume structure en markdown (texte direct)
59
- > 2. Puis poser une question courte : "Cette synthese est-elle correcte ?"
60
-
61
- ```
62
- AskUserQuestion({
63
- questions: [
64
- {
65
- question: "Quel probleme metier ce module doit-il resoudre ?",
66
- header: "Probleme", // max 12 chars
67
- options: [
68
- { label: "Processus manuel", description: "Automatiser un processus existant fait manuellement" },
69
- { label: "Donnees dispersees", description: "Centraliser des donnees eparpillees dans plusieurs outils" },
70
- { label: "Manque visibilite", description: "Obtenir des indicateurs et du suivi inexistants aujourd'hui" },
71
- { label: "Conformite", description: "Repondre a une obligation reglementaire ou de securite" }
72
- ],
73
- multiSelect: false
74
- },
75
- // ... up to 4 questions per call
76
- ]
77
- })
78
- ```
79
-
80
- ### After Each Batch
81
-
82
- 1. **Evaluate answer quality** (see Answer Quality Indicators)
83
- 2. **If insufficient** -> follow-up AskUserQuestion with targeted probes from the Elicitation Guide
84
- 3. **If solution-oriented** -> reframe using Technique 1 before proceeding
85
- 4. **If sufficient/excellent** -> record and move to next batch
86
- 5. **Summarize** what was understood before moving to the next category
87
-
88
- ---
89
-
90
- ## Techniques d'elicitation
91
-
92
- > **Objectif :** Guider COMMENT questionner, pas seulement QUOI demander.
93
- > **Principe :** Chaque technique doit etre appliquee naturellement dans le flux de la conversation,
94
- > pas comme un outil supplementaire. L'analyste choisit la technique adaptee a la situation.
95
-
96
- ### Technique 1 : Reformulation du besoin
97
-
98
- Quand le client decrit une **solution** (bouton, ecran, champ, outil), reformuler en **besoin** :
99
-
100
- | Le client dit | L'analyste demande |
101
- |---------------|-------------------|
102
- | "Il me faut un menu deroulant pour les roles" | "Quel probleme rencontrez-vous aujourd'hui avec la gestion des acces ? Pourquoi certaines personnes doivent-elles avoir des acces differents ?" |
103
- | "On a besoin d'un bouton d'export" | "Que faites-vous avec les donnees une fois exportees ? Qui en a besoin et pourquoi ?" |
104
- | "Ajoutez un champ statut" | "Quel parcours suit cet element du debut a la fin ? Quels evenements declenchent un changement d'etat ?" |
105
-
106
- ### Technique 2 : Chaine des pourquoi
107
-
108
- Quand le besoin semble superficiel, enchainez jusqu'a 5 "Pourquoi ?" pour trouver la cause racine :
109
-
110
- ```
111
- Client : "On a besoin de suivre l'activite des utilisateurs"
112
- -> Pourquoi ? "Pour savoir qui a modifie quoi"
113
- -> Pourquoi ? "Parce qu'on a eu des problemes de donnees incorrectes"
114
- -> Pourquoi ? "Parce que plusieurs personnes modifient les memes fiches"
115
- -> CAUSE RACINE : Conflit d'edition simultanee -> Besoin de journal d'activite + protection des modifications
116
- ```
117
-
118
- ### Technique 3 : Extraction de scenario concret
119
-
120
- Ne jamais accepter de descriptions abstraites. Toujours demander un **scenario de vie reelle** :
121
-
122
- ```
123
- "Racontez-moi une journee type : vous arrivez au bureau, vous ouvrez l'application.
124
- Quelle est la PREMIERE chose que vous devez faire ?
125
- Puis ensuite ? Quelles informations consultez-vous ? Quelles decisions prenez-vous ?"
126
- ```
127
-
128
- ### Technique 4 : Test d'absence
129
-
130
- Valider la necessite en demandant ce qui se passe SANS :
131
-
132
- ```
133
- "Si cette fonctionnalite N'EXISTAIT PAS, que feriez-vous a la place ?
134
- Combien de temps ou d'argent le contournement actuel coute-t-il ?"
135
- ```
136
-
137
- ### Technique 5 : Verification de completude
138
-
139
- Pour chaque reponse sous forme de liste, verifier qu'il ne manque rien :
140
-
141
- | Type de reponse | Relance |
142
- |-----------------|---------|
143
- | "Il y a 3 types d'utilisateurs" | "Y a-t-il des acteurs externes ? Des auditeurs ? Des administrateurs systeme ? Des processus automatiques ?" |
144
- | "Le flux principal est A puis B puis C" | "Que se passe-t-il si l'utilisateur annule a l'etape B ? Si l'etape C echoue ? S'il veut revenir a A ?" |
145
- | "Champs obligatoires : nom et email" | "Quelles contraintes d'unicite ? Quel format ? Que se passe-t-il en cas de doublon ?" |
146
-
147
- ### Technique 6 : Projection dans le futur
148
-
149
- Demander au client de se projeter pour decouvrir des besoins non exprimes :
150
-
151
- ```
152
- "Imaginons que nous sommes 2 ans dans le futur et que l'application fonctionne parfaitement.
153
- Qu'est-ce qui a change dans votre facon de travailler ?
154
- Quels nouveaux besoins sont apparus auxquels vous ne pensez pas aujourd'hui ?"
155
- ```
156
-
157
- ### Technique 7 : Test de contradiction
158
-
159
- Quand deux reponses semblent contradictoires, les confronter pour clarifier :
160
-
161
- ```
162
- "Vous avez mentionne que [affirmation A], mais vous dites aussi que [affirmation B].
163
- Ces deux elements semblent en tension. Pouvez-vous m'aider a comprendre
164
- comment ils coexistent dans la realite ?"
165
- ```
166
-
167
- ### Technique 8 : Escalade d'impact
168
-
169
- Augmenter progressivement l'echelle pour tester les limites :
170
-
171
- ```
172
- "Aujourd'hui vous avez 50 fiches. Que se passe-t-il avec 500 ? Avec 5000 ?
173
- Est-ce que le processus reste le meme ou faudrait-il faire differemment ?"
174
- ```
175
-
176
- ### Indicateurs de qualite des reponses
177
-
178
- | Qualite | Signal | Action |
179
- |---------|--------|--------|
180
- | **Insuffisante** | Moins d'une phrase, "je ne sais pas", adjectif vague | Appliquer les techniques 1 a 8, demander un exemple concret |
181
- | **Orientee solution** | Contient des termes d'interface ou techniques (bouton, champ, base de donnees) | Appliquer la technique 1 (reformuler en besoin) |
182
- | **Suffisante** | Contient QUI, QUOI, POURQUOI et un exemple concret | Continuer, noter le niveau de confiance |
183
- | **Excellente** | Inclut les cas limites, les contraintes et des criteres mesurables | Continuer, marquer comme "Confirme" |
184
-
185
- ---
186
-
187
- ## ULTRATHINK
188
-
189
- Behavioral mode for critical phases (01, 03a):
190
-
191
- ```
192
- ULTRATHINK MODE:
193
- - Consider ALL edge cases
194
- - Challenge EVERY assumption
195
- - Anticipate UNEXPRESSED needs
196
- - Validate completeness before output
197
- - Apply Elicitation Techniques (see above)
198
-
199
- DO NOT:
200
- - Accept vague answers
201
- - Skip question categories
202
- - Assume stakeholder thought of everything
203
- - Accept solutions without understanding the problem first
204
- ```
205
-
206
- **DO NOT invoke** as a skill/tool - it is a thinking mode.
@@ -1,115 +0,0 @@
1
- # Business Analysis - Module Loop Protocol (_module-loop.md)
2
-
3
- > **Loaded by:** step-03a1-setup, step-03b-ui, step-03c-compile, step-03d-validate
4
- > **Purpose:** State management and iteration logic for multi-module specification loop + application loop (project mode)
5
-
6
- ---
7
-
8
- ## State Management (Application Mode — single app)
9
-
10
- ```json
11
- {
12
- "metadata": {
13
- "workflow": {
14
- "mode": "application",
15
- "moduleOrder": ["Customers", "Products", "Orders", "Invoices"],
16
- "currentModuleIndex": 2,
17
- "completedModules": ["Customers", "Products"],
18
- "currentModule": "Orders"
19
- }
20
- }
21
- }
22
- ```
23
-
24
- ## State Management (Project Mode — multi app)
25
-
26
- Project-level feature.json tracks the application loop:
27
-
28
- ```json
29
- {
30
- "metadata": {
31
- "workflow": {
32
- "mode": "project",
33
- "applicationOrder": ["HumanResources", "EmployeeSelfService"],
34
- "currentApplicationIndex": 0,
35
- "completedApplications": [],
36
- "currentApplication": "HumanResources"
37
- }
38
- }
39
- }
40
- ```
41
-
42
- Each application-level feature.json tracks its own module loop (same as application mode).
43
-
44
- ## Module Loop Logic (end of each step-03 iteration)
45
-
46
- ```
47
- 1. Mark current module as "validated" in application-level feature.json
48
- 2. Add to completedModules[]
49
- 3. IF currentModuleIndex + 1 < moduleOrder.length:
50
- currentModuleIndex++
51
- currentModule = moduleOrder[currentModuleIndex]
52
- Write application-level feature.json
53
- Display: "Module {name} complete. Next: {next_name} ({N}/{total})"
54
- RE-LOAD: steps/step-03a1-setup.md
55
- 4. ELSE (all modules for current application specified):
56
- IF workflow.mode === "project":
57
- → Execute APPLICATION LOOP LOGIC (below)
58
- ELSE:
59
- application.status = "specified"
60
- Load: steps/step-04a-collect.md
61
- ```
62
-
63
- ## Application Loop Logic (project mode only)
64
-
65
- > Only applicable when `workflow.mode === "project"` in the project-level feature.json.
66
-
67
- ```
68
- 1. Mark current application as "specified" in project feature.json
69
- ba-writer.updateApplicationStatus(projectId, currentApp, "specified")
70
- 2. Add to completedApplications[]
71
- ba-writer.advanceApplicationLoop(projectId)
72
- 3. IF currentApplicationIndex + 1 < applicationOrder.length:
73
- Display: "═══ Application {currentApp} complete ({N}/{total}). Next: {nextApp} ═══"
74
- Load: steps/step-02-decomposition.md (for next application's module decomposition)
75
- 4. ELSE (all applications specified):
76
- Display: "═══ All applications specified! Proceeding to cross-application consolidation... ═══"
77
- project.status = "specified"
78
- Load: steps/step-04a-collect.md (with cross-application consolidation)
79
- ```
80
-
81
- ## Context Management During Loop
82
-
83
- To prevent context explosion as modules accumulate:
84
- - **Current module:** Load full module feature.json
85
- - **Completed modules:** Only load compact summary via `ba-reader.getCompletedModulesSummary()` (max 100 lines)
86
- - **Master feature.json:** Only read workflow state + application roles
87
- - **In project mode — completed applications:** Only load compact summary via `ba-reader.getCompletedApplicationsSummary()` (max 50 lines per app)
88
-
89
- ## Resume After Interruption
90
-
91
- ### Application Mode (single app)
92
- ```
93
- 1. ba-reader.findApplicationFeature() -> locate application-level feature.json
94
- 2. Read metadata.workflow.currentModuleIndex
95
- 3. IF currentModule has a feature.json with status != "validated":
96
- Resume step-03a1-setup for that module
97
- 4. ELSE:
98
- Start step-03a1-setup for next module
99
- ```
100
-
101
- ### Project Mode (multi app)
102
- ```
103
- 1. ba-reader.findProjectFeature() -> locate project-level feature.json
104
- 2. Read metadata.workflow.currentApplicationIndex
105
- 3. Locate current application's feature.json
106
- 4. Read application's metadata.workflow.currentModuleIndex
107
- 5. IF currentModule has a feature.json with status != "validated":
108
- Resume step-03a1-setup for that module in that application
109
- 6. ELSE IF application has unspecified modules:
110
- Start step-03a1-setup for next module in current application
111
- 7. ELSE IF more applications remain:
112
- Start step-02-decomposition for next application
113
- 8. ELSE:
114
- All done → Resume step-04a-collect
115
- ```
@@ -1,34 +0,0 @@
1
- # Business Analysis - Suggestions & Context7 (_suggestions.md)
2
-
3
- > **Loaded by:** step-01-cadrage, step-04-consolidation
4
- > **Purpose:** Proactive suggestion patterns and Context7 library references
5
-
6
- ---
7
-
8
- ## Proactive Suggestions
9
-
10
- After scope definition in step-01, the skill suggests complementary modules/sections:
11
-
12
- 1. Analyze feature type and scope from questionnaire answers
13
- 2. Load `patterns/suggestion-catalog.md`
14
- 3. Match against catalog patterns
15
- 4. Present suggestions via AskUserQuestion (accept/reject per suggestion)
16
- 5. Store in feature.json.suggestions[]
17
-
18
- Accepted suggestions become candidates for future /business-analyse runs.
19
-
20
- ---
21
-
22
- ## Context7 (Step 04)
23
-
24
- ```
25
- Prompt pattern:
26
- "use context7 with /facebook/react and /i18next/react-i18next
27
- to generate {component} following SmartStack patterns"
28
- ```
29
-
30
- Libraries:
31
- - `/facebook/react` - React 19 patterns
32
- - `/i18next/react-i18next` - Internationalization
33
- - `/remix-run/react-router` - React Router v7
34
- - `/lucide-icons/lucide-react` - Icons
@@ -1,160 +0,0 @@
1
- # Categorie 0 : Identite de l'application
2
-
3
- > **Charge par :** step-01-cadrage.md (mode application uniquement) ou step-01b-applications.md (mode project)
4
- > **Quand :** Toujours charge quand le mode est "application" (multi-module) ou "project" (multi-application)
5
- > **Objectif :** Definir le cadre global de l'application avant d'entrer dans les details
6
- >
7
- > **Mode projet :** Si `workflow.mode === "project"`, certaines questions ont deja ete repondues au niveau projet (probleme, stakeholders, vision). Se concentrer sur l'identite specifique a cette application : nom, contexte, prefixe, roles specialises. Ne PAS re-demander les stakeholders et le probleme global.
8
-
9
- ---
10
-
11
- ## 0.1 L'application en quelques mots
12
-
13
- > **But :** Comprendre rapidement de quoi il s'agit.
14
-
15
- | # | Question | Type de reponse |
16
- |---|----------|-----------------|
17
- | Q0.1 | Quel nom donneriez-vous a cette application ? Un nom court et parlant qui la resumerait en un mot. | Nom de l'application |
18
- | Q0.2 | En 2 a 3 phrases, quel est l'objectif principal de cette application ? A qui s'adresse-t-elle et quel probleme resout-elle ? | Description courte |
19
-
20
- **Reformulation guidee pour Q0.1 :**
21
- ```
22
- question: "Quel nom donneriez-vous a cette application ?"
23
- header: "Application"
24
- options:
25
- - label: "Gestion des ventes"
26
- description: "Suivi des clients, commandes, devis et facturation"
27
- - label: "Gestion des operations"
28
- description: "Pilotage de la logistique, des stocks et de la production"
29
- - label: "Ressources humaines"
30
- description: "Gestion du personnel, des conges et des formations"
31
- - label: "Gestion financiere"
32
- description: "Comptabilite, budget, tresorerie et rapports financiers"
33
- ```
34
-
35
- ---
36
-
37
- ## 0.2 Les grands domaines fonctionnels
38
-
39
- > **But :** Identifier les grandes familles de fonctionnalites avant de les detailler.
40
-
41
- | # | Question | Type de reponse |
42
- |---|----------|-----------------|
43
- | Q0.3 | Quels sont les grands domaines fonctionnels de cette application ? Par exemple : gestion des clients, suivi des commandes, facturation, tableau de bord... | Liste de domaines avec description courte |
44
- | Q0.4 | Parmi ces domaines, lesquels sont indispensables pour un premier lancement ? Les autres suivront dans les versions suivantes. | Liste des domaines prioritaires |
45
-
46
- **Reformulation guidee pour Q0.3 :**
47
- ```
48
- question: "Quels sont les grands domaines fonctionnels de cette application ?"
49
- header: "Domaines"
50
- options:
51
- - label: "2 a 3 domaines"
52
- description: "Application ciblee sur quelques fonctions essentielles"
53
- - label: "4 a 6 domaines"
54
- description: "Application standard couvrant les principaux besoins"
55
- - label: "7 a 10 domaines"
56
- description: "Application complete couvrant un large perimetre"
57
- - label: "Plus de 10 domaines"
58
- description: "Application d'entreprise tres complete"
59
- ```
60
-
61
- ---
62
-
63
- ## 0.3 Les profils utilisateurs de l'application
64
-
65
- > **But :** Definir les grands types d'acces a l'echelle de toute l'application.
66
-
67
- | # | Question | Type de reponse |
68
- |---|----------|-----------------|
69
- | Q0.5 | Quels sont les grands profils d'utilisateurs de cette application ? Pensez en termes de "ce qu'ils font" et pas de titres de postes. | Liste de profils |
70
- | Q0.6 | Certains profils n'ont-ils acces qu'a certains domaines ? Ou tout le monde voit tout ? | Regles de restriction par domaine |
71
-
72
- **Reformulation guidee pour Q0.5 :**
73
- ```
74
- question: "Quels profils d'utilisateurs voyez-vous pour cette application ?"
75
- header: "Profils"
76
- options:
77
- - label: "4 profils standards"
78
- description: "Administrateur (tout gerer), Responsable (superviser), Contributeur (travailler), Lecteur (consulter)"
79
- - label: "Adapter les noms"
80
- description: "Garder 4 niveaux d'acces mais avec des noms qui correspondent a votre organisation"
81
- - label: "Plus de profils"
82
- description: "Besoin de profils supplementaires comme Approbateur, Auditeur, Support..."
83
- - label: "Moins de profils"
84
- description: "Seulement 2 a 3 niveaux suffisent pour cette application"
85
- ```
86
-
87
- ---
88
-
89
- ## 0.4 Les processus qui traversent les domaines
90
-
91
- > **But :** Identifier les flux de bout en bout qui impliquent plusieurs domaines.
92
-
93
- | # | Question | Type de reponse |
94
- |---|----------|-----------------|
95
- | Q0.7 | Y a-t-il des processus metier qui traversent plusieurs domaines ? Par exemple : une commande qui va de la vente a la livraison puis a la facturation ? | Description des processus transversaux |
96
- | Q0.8 | Quand un nouvel utilisateur rejoint l'equipe, quel profil d'acces recoit-il par defaut ? | Profil par defaut |
97
-
98
- **Reformulation guidee pour Q0.7 :**
99
- ```
100
- question: "Y a-t-il des processus metier qui traversent plusieurs domaines ?"
101
- header: "Processus"
102
- options:
103
- - label: "Oui, plusieurs processus"
104
- description: "Des enchainements impliquent 2 domaines ou plus (commande puis facturation puis livraison)"
105
- - label: "Oui, un processus principal"
106
- description: "Un grand flux traverse l'ensemble de l'application"
107
- - label: "Non, domaines independants"
108
- description: "Chaque domaine fonctionne de maniere autonome"
109
- - label: "A definir plus tard"
110
- description: "Les interactions seront identifiees au fil de l'analyse"
111
- ```
112
-
113
- ---
114
-
115
- ## Guide d'elicitation approfondi
116
-
117
- ### Techniques de relance
118
-
119
- | Question | Si la reponse est vague ou insuffisante | Relance recommandee |
120
- |----------|----------------------------------------|---------------------|
121
- | Q0.2 (objectif) | Description trop vague ("gerer les choses") | "Pouvez-vous completer la phrase : 'Grace a cette application, les utilisateurs pourront...' ?" |
122
- | Q0.3 (domaines) | "On a besoin de tout" | "Si vous ne pouviez garder que 3 domaines pour le premier lancement, lesquels choisiriez-vous ?" |
123
- | Q0.4 (priorites) | Tout est prioritaire | "Quel domaine apporte le plus de valeur immediatement ? Lequel peut fonctionner sans les autres ?" |
124
- | Q0.5 (profils) | Confusion entre titres de poste et profils | "Oublions les titres. Parmi vos utilisateurs : qui fait la saisie au quotidien ? Qui valide ? Qui consulte ? Qui administre ?" |
125
- | Q0.7 (processus transversaux) | "Pas de lien entre domaines" | "Quand une information est creee dans un domaine, un autre domaine en a-t-il besoin ? Par exemple, une vente declenche-t-elle une facture ?" |
126
-
127
- ### Signaux d'alerte a detecter
128
-
129
- | Signal du client | Probleme sous-jacent | Action de l'analyste |
130
- |------------------|---------------------|----------------------|
131
- | Plus de 10 domaines pour une premiere version | **Ambition trop large** | Suggerer une approche par phases : domaines fondamentaux d'abord, extensions ensuite |
132
- | "Tout est prioritaire" | **Pas de hierarchisation** | "Si vous aviez un budget pour 3 domaines seulement, lesquels choisiriez-vous en premier ?" |
133
- | Confusion entre role organisationnel et acces | **Roles mal definis** | Separer : "le poste dans l'entreprise" (directeur, comptable) et "ce qu'il fait dans l'application" (consulter, modifier, administrer) |
134
- | Un seul domaine qui fait tout | **Vision monolithique** | "Pourrait-on decouper ce domaine en sous-domaines independants ? Certains utilisateurs n'auraient-ils besoin que d'une partie ?" |
135
-
136
- ---
137
-
138
- ## Mapping vers le cadrage
139
-
140
- | Reponse | Alimente |
141
- |---------|----------|
142
- | Q0.1, Q0.2 | `metadata.application`, `cadrage.problem` |
143
- | Q0.3, Q0.4 | `modules[]` dans le fichier principal |
144
- | Q0.5, Q0.6 | `cadrage.applicationRoles[]` |
145
- | Q0.7 | `consolidation.e2eFlows[]` (rempli a l'etape 04) |
146
- | Q0.8 | `cadrage.applicationRoles[].isDefault` |
147
-
148
- ---
149
-
150
- ## Strategie de questionnement
151
-
152
- ### Ordre des questions en 2 lots
153
-
154
- **Lot 1 (Q0.1, Q0.2, Q0.3, Q0.4) : L'application et ses domaines**
155
- - Definir l'identite et le perimetre global
156
- - Hierarchiser les domaines pour le premier lancement
157
-
158
- **Lot 2 (Q0.5, Q0.6, Q0.7, Q0.8) : Les profils et les processus**
159
- - Etablir les grands profils d'acces
160
- - Identifier les flux transversaux
@@ -1,85 +0,0 @@
1
- # Questionnaire Category 00b: Project-Level Questions
2
-
3
- > **Loaded by:** step-01-cadrage (when multi-application mode detected)
4
- > **Condition:** Only loaded when user confirms "Multiple applications"
5
- > **Purpose:** Gather project-level information that spans all applications
6
-
7
- ---
8
-
9
- ## Questions
10
-
11
- ### Q0b.1: Project Name
12
- ```
13
- question: "{language == 'fr' ? 'Quel nom souhaitez-vous donner au projet global ?' : 'What name would you like for the overall project?'}"
14
- header: "Projet"
15
- options:
16
- - label: "{suggested_project_name}"
17
- description: "{language == 'fr' ? 'Nom suggéré basé sur votre description' : 'Suggested name based on your description'}"
18
- - label: "{language == 'fr' ? 'Personnaliser' : 'Customize'}"
19
- description: "{language == 'fr' ? 'Choisir un autre nom' : 'Choose another name'}"
20
- ```
21
-
22
- ### Q0b.2: Deployment Model
23
- ```
24
- question: "{language == 'fr' ? 'Comment ces applications seront-elles déployées ?' : 'How will these applications be deployed?'}"
25
- header: "Déploiement"
26
- options:
27
- - label: "{language == 'fr' ? 'Ensemble' : 'Together'}"
28
- description: "{language == 'fr' ? 'Toutes les applications sont déployées en même temps' : 'All applications deployed at the same time'}"
29
- - label: "{language == 'fr' ? 'Par phases' : 'Phased'}"
30
- description: "{language == 'fr' ? 'Chaque application est livrée séparément, par priorité' : 'Each application delivered separately, by priority'}"
31
- ```
32
-
33
- ### Q0b.3: Cross-Application Data Flows
34
- ```
35
- question: "{language == 'fr' ? 'Existe-t-il des flux de données entre les applications identifiées ?' : 'Are there data flows between the identified applications?'}"
36
- header: "Flux"
37
- options:
38
- - label: "{language == 'fr' ? 'Oui, plusieurs' : 'Yes, several'}"
39
- description: "{language == 'fr' ? 'Des données sont partagées entre applications (ex: employés RH utilisés par le self-service)' : 'Data is shared between applications (e.g., HR employees used by self-service)'}"
40
- - label: "{language == 'fr' ? 'Quelques liens' : 'A few links'}"
41
- description: "{language == 'fr' ? 'Peu de dépendances entre applications' : 'Few dependencies between applications'}"
42
- - label: "{language == 'fr' ? 'Indépendantes' : 'Independent'}"
43
- description: "{language == 'fr' ? 'Les applications sont autonomes, pas de données partagées' : 'Applications are autonomous, no shared data'}"
44
- ```
45
-
46
- ### Q0b.4: Global vs Per-Application Roles
47
- ```
48
- question: "{language == 'fr' ? 'Les rôles utilisateur sont-ils partagés entre applications ?' : 'Are user roles shared across applications?'}"
49
- header: "Rôles"
50
- options:
51
- - label: "{language == 'fr' ? 'Rôles globaux' : 'Global roles'}"
52
- description: "{language == 'fr' ? 'Les mêmes rôles (admin, manager...) s'appliquent à toutes les applications' : 'Same roles (admin, manager...) apply to all applications'}"
53
- - label: "{language == 'fr' ? 'Rôles spécifiques' : 'Specific roles'}"
54
- description: "{language == 'fr' ? 'Chaque application a ses propres rôles (ex: RH Admin vs Employee)' : 'Each application has its own roles (e.g., HR Admin vs Employee)'}"
55
- - label: "{language == 'fr' ? 'Mixte' : 'Mixed'}"
56
- description: "{language == 'fr' ? 'Certains rôles sont globaux, d'autres spécifiques à une application' : 'Some roles are global, others are application-specific'}"
57
- ```
58
-
59
- ### Q0b.5: Shared Infrastructure
60
- ```
61
- question: "{language == 'fr' ? 'Quelles infrastructures partagées doivent être prises en compte ?' : 'What shared infrastructure needs to be considered?'}"
62
- header: "Infra"
63
- multiSelect: true
64
- options:
65
- - label: "SSO / Auth"
66
- description: "{language == 'fr' ? 'Authentification unique entre applications' : 'Single sign-on between applications'}"
67
- - label: "Notifications"
68
- description: "{language == 'fr' ? 'Service de notification partagé (email, in-app)' : 'Shared notification service (email, in-app)'}"
69
- - label: "{language == 'fr' ? 'Base de données partagée' : 'Shared database'}"
70
- description: "{language == 'fr' ? 'Toutes les applications partagent la même base de données' : 'All applications share the same database'}"
71
- - label: "{language == 'fr' ? 'Aucune' : 'None'}"
72
- description: "{language == 'fr' ? 'Chaque application est autonome' : 'Each application is autonomous'}"
73
- ```
74
-
75
- ---
76
-
77
- ## Mapping to Project Feature.json
78
-
79
- | Question | Target Field |
80
- |----------|-------------|
81
- | Q0b.1 | `metadata.projectName` |
82
- | Q0b.2 | `cadrage.deploymentModel` |
83
- | Q0b.3 | Informs `applicationDependencyGraph.edges[]` |
84
- | Q0b.4 | Informs `cadrage.globalRoles[]` vs per-app `applications[].applicationRoles[]` |
85
- | Q0b.5 | `cadrage.sharedInfrastructure[]` |