@atlashub/smartstack-cli 4.41.0 → 4.43.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 (142) hide show
  1. package/.documentation/apex.html +2 -2
  2. package/.documentation/business-analyse.html +26 -27
  3. package/.documentation/commands.html +6 -6
  4. package/dist/index.js +24 -13
  5. package/dist/index.js.map +1 -1
  6. package/package.json +2 -2
  7. package/templates/agents/ba-reader.md +2 -2
  8. package/templates/agents/ba-writer.md +44 -9
  9. package/templates/hooks/stop-hook.sh +6 -6
  10. package/templates/ralph/README.md +1 -1
  11. package/templates/scripts/setup-ralph-loop.sh +2 -2
  12. package/templates/skills/_resources/context-digest-template.md +1 -1
  13. package/templates/skills/_shared.md +13 -13
  14. package/templates/skills/apex/SKILL.md +14 -7
  15. package/templates/skills/apex/_shared.md +1 -1
  16. package/templates/skills/apex/references/challenge-questions.md +46 -13
  17. package/templates/skills/apex/references/core-seed-data.md +4 -4
  18. package/templates/skills/apex/references/error-classification.md +3 -3
  19. package/templates/skills/apex/references/smartstack-api.md +1 -1
  20. package/templates/skills/apex/references/smartstack-layers.md +1 -1
  21. package/templates/skills/apex/steps/step-00-init.md +46 -8
  22. package/templates/skills/apex/steps/step-01-analyze.md +1 -1
  23. package/templates/skills/apex/steps/step-02-plan.md +1 -1
  24. package/templates/skills/apex/steps/step-03-execute.md +1 -1
  25. package/templates/skills/business-analyse/SKILL.md +83 -22
  26. package/templates/skills/business-analyse/_shared.md +12 -9
  27. package/templates/skills/business-analyse/questionnaire/02-stakeholders-scope.md +24 -9
  28. package/templates/skills/business-analyse/questionnaire/03-data-ui.md +33 -0
  29. package/templates/skills/business-analyse/questionnaire/04-risks-metrics.md +1 -1
  30. package/templates/skills/business-analyse/react/components.md +1 -22
  31. package/templates/skills/business-analyse/react/schema.md +1 -1
  32. package/templates/skills/business-analyse/references/acceptance-criteria.md +3 -3
  33. package/templates/skills/business-analyse/references/consolidation-structural-checks.md +1 -1
  34. package/templates/skills/business-analyse/references/detection-strategies.md +2 -2
  35. package/templates/skills/business-analyse/references/entity-architecture-decision.md +1 -1
  36. package/templates/skills/business-analyse/references/naming-conventions.md +6 -6
  37. package/templates/skills/business-analyse/references/robustness-checks.md +4 -4
  38. package/templates/skills/business-analyse/references/spec-auto-inference.md +2 -2
  39. package/templates/skills/business-analyse/references/validation-checklist.md +3 -3
  40. package/templates/skills/business-analyse/schemas/feature-schema.json +1 -1
  41. package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +2 -2
  42. package/templates/skills/business-analyse/schemas/sections/specification-schema.json +3 -2
  43. package/templates/skills/business-analyse/steps/step-00-init.md +15 -5
  44. package/templates/skills/business-analyse/steps/step-01-cadrage.md +15 -6
  45. package/templates/skills/business-analyse/steps/step-02-structure.md +17 -1
  46. package/templates/skills/business-analyse/steps/step-03-specify.md +136 -26
  47. package/templates/skills/business-analyse/steps/step-04-consolidate.md +44 -8
  48. package/templates/skills/business-analyse/templates/tpl-handoff.md +5 -5
  49. package/templates/skills/business-analyse/templates/tpl-launch-displays.md +4 -4
  50. package/templates/skills/business-analyse/templates-frd.md +4 -4
  51. package/templates/skills/{ba-design-ui → business-analyse-design}/SKILL.md +9 -9
  52. package/templates/skills/{ba-design-ui → business-analyse-design}/steps/step-01-screens.md +9 -0
  53. package/templates/skills/{ba-design-ui → business-analyse-design}/steps/step-03-navigation.md +9 -2
  54. package/templates/skills/business-analyse-develop/SKILL.md +248 -0
  55. package/templates/skills/{ralph-loop → business-analyse-develop}/references/category-completeness.md +1 -1
  56. package/templates/skills/{ralph-loop → business-analyse-develop}/references/init-resume-recovery.md +8 -8
  57. package/templates/skills/{ralph-loop → business-analyse-develop}/references/multi-module-queue.md +1 -1
  58. package/templates/skills/business-analyse-develop/references/quality-gates.md +70 -0
  59. package/templates/skills/{ralph-loop → business-analyse-develop}/references/task-transform-legacy.md +1 -1
  60. package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-00-init.md +20 -4
  61. package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-01-task.md +3 -2
  62. package/templates/skills/business-analyse-develop/steps/step-01-v4-execute.md +131 -0
  63. package/templates/skills/business-analyse-develop/steps/step-02-v4-verify.md +156 -0
  64. package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-04-check.md +1 -1
  65. package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-05-report.md +1 -1
  66. package/templates/skills/{derive-prd → business-analyse-handoff}/SKILL.md +7 -7
  67. package/templates/skills/{derive-prd → business-analyse-handoff}/references/acceptance-criteria.md +5 -5
  68. package/templates/skills/{derive-prd → business-analyse-handoff}/references/handoff-file-templates.md +1 -1
  69. package/templates/skills/{derive-prd → business-analyse-handoff}/references/handoff-mappings.md +1 -1
  70. package/templates/skills/{derive-prd → business-analyse-handoff}/references/handoff-seeddata-generation.md +2 -2
  71. package/templates/skills/{derive-prd → business-analyse-handoff}/references/prd-generation.md +14 -14
  72. package/templates/skills/{derive-prd → business-analyse-handoff}/schemas/handoff-schema.json +2 -2
  73. package/templates/skills/{derive-prd → business-analyse-handoff}/steps/step-00-validate.md +7 -7
  74. package/templates/skills/{derive-prd → business-analyse-handoff}/steps/step-01-transform.md +50 -11
  75. package/templates/skills/{derive-prd → business-analyse-handoff}/steps/step-02-export.md +36 -16
  76. package/templates/skills/{ba-generate-html → business-analyse-html}/SKILL.md +4 -4
  77. package/templates/skills/{ba-generate-html → business-analyse-html}/html/ba-interactive.html +714 -286
  78. package/templates/skills/{ba-generate-html → business-analyse-html}/html/build-html.js +25 -3
  79. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/01-data-init.js +54 -0
  80. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/02-navigation.js +102 -12
  81. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/03-render-cadrage.js +8 -7
  82. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/04-render-modules.js +7 -7
  83. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/05-render-specs.js +188 -85
  84. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/06-render-consolidation.js +15 -14
  85. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/06-render-mockups.js +19 -19
  86. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/07-render-handoff.js +24 -4
  87. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/08-editing.js +6 -2
  88. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/09-export.js +27 -57
  89. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/10-comments.js +67 -45
  90. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/11-review-panel.js +15 -13
  91. package/templates/skills/business-analyse-html/html/src/styles/02-layout.css +216 -0
  92. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/05-modules.css +36 -0
  93. package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/template.html +22 -12
  94. package/templates/skills/{ba-generate-html → business-analyse-html}/references/data-build.md +1 -1
  95. package/templates/skills/{ba-generate-html → business-analyse-html}/references/data-mapping.md +5 -1
  96. package/templates/skills/{ba-generate-html → business-analyse-html}/references/output-modes.md +7 -7
  97. package/templates/skills/{ba-generate-html → business-analyse-html}/steps/step-01-collect.md +25 -1
  98. package/templates/skills/{ba-generate-html → business-analyse-html}/steps/step-02-build-data.md +33 -5
  99. package/templates/skills/{ba-generate-html → business-analyse-html}/steps/step-03-render.md +2 -2
  100. package/templates/skills/{ba-generate-html → business-analyse-html}/steps/step-04-verify.md +2 -2
  101. package/templates/skills/{ba-review → business-analyse-review}/SKILL.md +11 -10
  102. package/templates/skills/{ba-review → business-analyse-review}/references/review-data-mapping.md +2 -2
  103. package/templates/skills/business-analyse-review/steps/step-00-init.md +107 -0
  104. package/templates/skills/{ba-review → business-analyse-review}/steps/step-01-apply.md +19 -11
  105. package/templates/skills/business-analyse-status/SKILL.md +118 -0
  106. package/templates/skills/documentation/SKILL.md +2 -2
  107. package/templates/skills/sketch/SKILL.md +172 -0
  108. package/templates/skills/sketch/references/domain-heuristics.md +116 -0
  109. package/templates/skills/ba-generate-html/html/src/styles/02-layout.css +0 -101
  110. package/templates/skills/ralph-loop/SKILL.md +0 -240
  111. /package/templates/skills/{ba-design-ui → business-analyse-design}/steps/step-02-wireframes.md +0 -0
  112. /package/templates/skills/{ralph-loop → business-analyse-develop}/references/category-rules.md +0 -0
  113. /package/templates/skills/{ralph-loop → business-analyse-develop}/references/compact-loop.md +0 -0
  114. /package/templates/skills/{ralph-loop → business-analyse-develop}/references/module-transition.md +0 -0
  115. /package/templates/skills/{ralph-loop → business-analyse-develop}/references/parallel-execution.md +0 -0
  116. /package/templates/skills/{ralph-loop → business-analyse-develop}/references/section-splitting.md +0 -0
  117. /package/templates/skills/{ralph-loop → business-analyse-develop}/references/team-orchestration.md +0 -0
  118. /package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-02-execute.md +0 -0
  119. /package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-03-commit.md +0 -0
  120. /package/templates/skills/{derive-prd → business-analyse-handoff}/references/entity-domain-mapping.md +0 -0
  121. /package/templates/skills/{derive-prd → business-analyse-handoff}/references/readiness-scoring.md +0 -0
  122. /package/templates/skills/{derive-prd → business-analyse-handoff}/templates/tpl-progress.md +0 -0
  123. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/cadrage-context.html +0 -0
  124. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/cadrage-scope.html +0 -0
  125. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/cadrage-stakeholders.html +0 -0
  126. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/cadrage-success.html +0 -0
  127. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/consol-datamodel.html +0 -0
  128. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/consol-flows.html +0 -0
  129. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/consol-interactions.html +0 -0
  130. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/consol-permissions.html +0 -0
  131. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/decomp-dependencies.html +0 -0
  132. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/decomp-modules.html +0 -0
  133. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/handoff-summary.html +0 -0
  134. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/module-spec-container.html +0 -0
  135. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/01-variables.css +0 -0
  136. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/03-navigation.css +0 -0
  137. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/04-cards.css +0 -0
  138. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/06-wireframes.css +0 -0
  139. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/07-comments.css +0 -0
  140. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/08-review-panel.css +0 -0
  141. /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/09-mockups-html.css +0 -0
  142. /package/templates/skills/{ba-generate-html → business-analyse-html}/references/wireframe-svg-style-guide.md +0 -0
@@ -334,8 +334,8 @@
334
334
  <td colspan="1"></td>
335
335
  <td colspan="1">Init</td>
336
336
  <td colspan="1"></td>
337
- <td data-lang="fr">Parser flags, détecter contexte, vérifier MCP, définir hiérarchie 5 niveaux, challenger besoin</td>
338
- <td data-lang="en">Parse flags, detect context, verify MCP, define 5-level hierarchy, challenge need</td>
337
+ <td data-lang="fr">Parser flags, détecter contexte, vérifier MCP, définir hiérarchie 4 niveaux, challenger besoin</td>
338
+ <td data-lang="en">Parse flags, detect context, verify MCP, define 4-level hierarchy, challenge need</td>
339
339
  </tr>
340
340
  <tr style="background: #3b82f6; background: rgba(59, 130, 246, 0.1);">
341
341
  <td>01</td>
@@ -103,8 +103,8 @@
103
103
  <nav class="sidebar-toc">
104
104
  <a href="#introduction" class="sidebar-toc-link">Introduction</a>
105
105
  <a href="#architecture" class="sidebar-toc-link">
106
- <span data-lang="fr">Architecture (5-Niveaux)</span>
107
- <span data-lang="en">Architecture (5-Level Hierarchy)</span>
106
+ <span data-lang="fr">Architecture (4-Niveaux)</span>
107
+ <span data-lang="en">Architecture (4-Level Hierarchy)</span>
108
108
  </a>
109
109
  <a href="#quick-start" class="sidebar-toc-link">Quick Start</a>
110
110
  <a href="#use-cases" class="sidebar-toc-link">
@@ -231,14 +231,13 @@
231
231
  </li>
232
232
  </ol>
233
233
 
234
- <h4 data-lang="fr">Navigation hierarchique (5 niveaux)</h4>
235
- <h4 data-lang="en">Hierarchical Navigation (5 Levels)</h4>
234
+ <h4 data-lang="fr">Navigation hierarchique (4 niveaux)</h4>
235
+ <h4 data-lang="en">Hierarchical Navigation (4 Levels)</h4>
236
236
  <div class="code-block">
237
237
  <button class="copy-btn">Copy</button>
238
- <pre><code>Context → Application → Module → Section → Resource
238
+ <pre><code>Application → Module → Section → Resource
239
239
 
240
240
  Exemple:
241
- - Context: "ecommerce"
242
241
  - Application: "OrderManagement"
243
242
  - Module: "Checkout"
244
243
  - Section: "ShoppingCart" (page React)
@@ -291,19 +290,19 @@ Exemple:
291
290
  </section>
292
291
 
293
292
  <!-- ============================================ -->
294
- <!-- ARCHITECTURE (5-LEVEL HIERARCHY) -->
293
+ <!-- ARCHITECTURE (4-LEVEL HIERARCHY) -->
295
294
  <!-- ============================================ -->
296
295
  <section id="architecture">
297
296
  <h2>
298
- <span data-lang="fr">Architecture (Hierarchie 5-Niveaux)</span>
299
- <span data-lang="en">Architecture (5-Level Hierarchy)</span>
297
+ <span data-lang="fr">Architecture (Hierarchie 4-Niveaux)</span>
298
+ <span data-lang="en">Architecture (4-Level Hierarchy)</span>
300
299
  </h2>
301
300
 
302
301
  <p data-lang="fr">
303
- La v6.0 utilise une hierarchie 5 niveaux pour naviguer les applications multi-modules. Deux fichiers JSON (master application + per-module) garantissent la tracabilite et la coherence cross-module.
302
+ La v6.0 utilise une hierarchie 4 niveaux (Application → Module → Section → Resource) pour naviguer les applications multi-modules. Deux fichiers JSON (master application + per-module) garantissent la tracabilite et la coherence cross-module.
304
303
  </p>
305
304
  <p data-lang="en">
306
- v6.0 uses a 5-level hierarchy to navigate multi-module applications. Two JSON files (master application + per-module) ensure traceability and cross-module coherence.
305
+ v6.0 uses a 4-level hierarchy (Application → Module → Section → Resource) to navigate multi-module applications. Two JSON files (master application + per-module) ensure traceability and cross-module coherence.
307
306
  </p>
308
307
 
309
308
  <h4 data-lang="fr">Structure de repertoires</h4>
@@ -915,22 +914,22 @@ Exemple:
915
914
  <span data-lang="en">Important: Source of Truth</span>
916
915
  </strong>
917
916
  <p data-lang="fr" style="margin:0.5rem 0 0;">
918
- Le HTML interactif est un <strong>livrable genere</strong>, pas une source de donnees. La source de verite est constituee par les fichiers JSON (<code>index.json</code>, <code>cadrage.json</code>, <code>entities.json</code>, etc.). Toute modification faite directement dans le HTML sera <strong>ecrasee</strong> a la prochaine regeneration via <code>/ba-generate-html</code>.
917
+ Le HTML interactif est un <strong>livrable genere</strong>, pas une source de donnees. La source de verite est constituee par les fichiers JSON (<code>index.json</code>, <code>cadrage.json</code>, <code>entities.json</code>, etc.). Toute modification faite directement dans le HTML sera <strong>ecrasee</strong> a la prochaine regeneration via <code>/business-analyse-html</code>.
919
918
  </p>
920
919
  <p data-lang="en" style="margin:0.5rem 0 0;">
921
- The interactive HTML is a <strong>generated deliverable</strong>, not a data source. The source of truth is the JSON files (<code>index.json</code>, <code>cadrage.json</code>, <code>entities.json</code>, etc.). Any modification made directly in the HTML will be <strong>overwritten</strong> on the next regeneration via <code>/ba-generate-html</code>.
920
+ The interactive HTML is a <strong>generated deliverable</strong>, not a data source. The source of truth is the JSON files (<code>index.json</code>, <code>cadrage.json</code>, <code>entities.json</code>, etc.). Any modification made directly in the HTML will be <strong>overwritten</strong> on the next regeneration via <code>/business-analyse-html</code>.
922
921
  </p>
923
922
  <p data-lang="fr" style="margin:0.5rem 0 0;">
924
923
  <strong>Pour conserver vos modifications :</strong><br>
925
924
  1. Exporter le JSON depuis le HTML (bouton d'export)<br>
926
925
  2. Re-importer avec <code>/business-analyse -x &lt;json-path&gt;</code> (met a jour les fichiers JSON sources)<br>
927
- 3. Regenerer le HTML avec <code>/ba-generate-html</code>
926
+ 3. Regenerer le HTML avec <code>/business-analyse-html</code>
928
927
  </p>
929
928
  <p data-lang="en" style="margin:0.5rem 0 0;">
930
929
  <strong>To preserve your modifications:</strong><br>
931
930
  1. Export JSON from the HTML (export button)<br>
932
931
  2. Re-import with <code>/business-analyse -x &lt;json-path&gt;</code> (updates source JSON files)<br>
933
- 3. Regenerate the HTML with <code>/ba-generate-html</code>
932
+ 3. Regenerate the HTML with <code>/business-analyse-html</code>
934
933
  </p>
935
934
  </div>
936
935
 
@@ -998,8 +997,8 @@ Exemple:
998
997
  Two independent skills complement the business analysis workflow for managing the interactive HTML document.
999
998
  </p>
1000
999
 
1001
- <!-- /ba-generate-html -->
1002
- <h3><code>/ba-generate-html</code></h3>
1000
+ <!-- /business-analyse-html -->
1001
+ <h3><code>/business-analyse-html</code></h3>
1003
1002
 
1004
1003
  <p data-lang="fr">
1005
1004
  Genere (ou regenere) le document HTML interactif a partir des fichiers JSON d'analyse. Ce skill lit les sources JSON (<code>index.json</code>, <code>cadrage.json</code>, fichiers modules) et produit un fichier <code>ba-interactive.html</code> autonome.
@@ -1010,8 +1009,8 @@ Exemple:
1010
1009
 
1011
1010
  <div class="code-block">
1012
1011
  <button class="copy-btn">Copy</button>
1013
- <pre><code>/ba-generate-html FEAT-001
1014
- /ba-generate-html FEAT-001 --force</code></pre>
1012
+ <pre><code>/business-analyse-html FEAT-001
1013
+ /business-analyse-html FEAT-001 --force</code></pre>
1015
1014
  </div>
1016
1015
 
1017
1016
  <div class="table-container">
@@ -1067,10 +1066,10 @@ Exemple:
1067
1066
  <span data-lang="en">Regeneration = overwrite</span>
1068
1067
  </strong>
1069
1068
  <p data-lang="fr" style="margin:0.5rem 0 0;">
1070
- <code>/ba-generate-html</code> ecrase le HTML existant. Si vous avez fait des modifications dans le HTML interactif, exportez d'abord le JSON puis re-importez avec <code>/business-analyse -x</code> avant de regenerer.
1069
+ <code>/business-analyse-html</code> ecrase le HTML existant. Si vous avez fait des modifications dans le HTML interactif, exportez d'abord le JSON puis re-importez avec <code>/business-analyse -x</code> avant de regenerer.
1071
1070
  </p>
1072
1071
  <p data-lang="en" style="margin:0.5rem 0 0;">
1073
- <code>/ba-generate-html</code> overwrites the existing HTML. If you made modifications in the interactive HTML, first export the JSON then re-import with <code>/business-analyse -x</code> before regenerating.
1072
+ <code>/business-analyse-html</code> overwrites the existing HTML. If you made modifications in the interactive HTML, first export the JSON then re-import with <code>/business-analyse -x</code> before regenerating.
1074
1073
  </p>
1075
1074
  </div>
1076
1075
 
@@ -1099,8 +1098,8 @@ Exemple:
1099
1098
  <li data-lang="en">Create a new version</li>
1100
1099
  <li data-lang="fr">Appliquer les corrections (cadrage, modules, consolidation)</li>
1101
1100
  <li data-lang="en">Apply corrections (cadrage, modules, consolidation)</li>
1102
- <li data-lang="fr">Regenerer le HTML via <code>/ba-generate-html</code></li>
1103
- <li data-lang="en">Regenerate HTML via <code>/ba-generate-html</code></li>
1101
+ <li data-lang="fr">Regenerer le HTML via <code>/business-analyse-html</code></li>
1102
+ <li data-lang="en">Regenerate HTML via <code>/business-analyse-html</code></li>
1104
1103
  </ol>
1105
1104
 
1106
1105
  <h4><span data-lang="fr">Routage des corrections</span><span data-lang="en">Correction Routing</span></h4>
@@ -1153,7 +1152,7 @@ Exemple:
1153
1152
  /ba-review
1154
1153
 
1155
1154
  # 4. Regenerer le HTML apres modifications des JSON
1156
- /ba-generate-html FEAT-001</span><span data-lang="en"># 1. Initial analysis (generates JSON + HTML)
1155
+ /business-analyse-html FEAT-001</span><span data-lang="en"># 1. Initial analysis (generates JSON + HTML)
1157
1156
  /business-analyse My Application Description
1158
1157
 
1159
1158
  # 2. Client reviews the HTML, makes modifications, exports JSON
@@ -1165,7 +1164,7 @@ Exemple:
1165
1164
  /ba-review
1166
1165
 
1167
1166
  # 4. Regenerate HTML after JSON modifications
1168
- /ba-generate-html FEAT-001</span></code></pre>
1167
+ /business-analyse-html FEAT-001</span></code></pre>
1169
1168
  </div>
1170
1169
  </section>
1171
1170
 
@@ -1200,8 +1199,8 @@ Exemple:
1200
1199
  <ul>
1201
1200
  <li data-lang="fr">Metadata : module, version, featureType</li>
1202
1201
  <li data-lang="en">Metadata: module, version, featureType</li>
1203
- <li data-lang="fr">Sections &amp; Resources : 5-level navigation</li>
1204
- <li data-lang="en">Sections &amp; Resources: 5-level navigation</li>
1202
+ <li data-lang="fr">Sections &amp; Resources : 4-level navigation</li>
1203
+ <li data-lang="en">Sections &amp; Resources: 4-level navigation</li>
1205
1204
  <li data-lang="fr">Entities : domaine, attributs, constraints</li>
1206
1205
  <li data-lang="en">Entities: domain, attributes, constraints</li>
1207
1206
  <li data-lang="fr">Business Rules (BR-{CAT}-{PREFIX}-{NNN}) : validations metier</li>
@@ -182,7 +182,7 @@
182
182
  </li>
183
183
  <li>
184
184
  <div class="step-content">
185
- <h5><code>/ba-design-ui</code> &rarr; <code>/ba-generate-html</code> &rarr; <code>/ba-review</code></h5>
185
+ <h5><code>/ba-design-ui</code> &rarr; <code>/business-analyse-html</code> &rarr; <code>/ba-review</code></h5>
186
186
  <p data-lang="fr">Designer les ecrans, generer le livrable HTML interactif, iterer avec le client jusqu'a validation.</p>
187
187
  <p data-lang="en">Design screens, generate interactive HTML deliverable, iterate with client until validation.</p>
188
188
  </div>
@@ -571,7 +571,7 @@
571
571
  <pre><code data-lang="fr">Que voulez-vous faire ?
572
572
 
573
573
  ├─ Nouveau projet complet
574
- │ └─ /business-analyse → /ba-design-ui → /ba-generate-html
574
+ │ └─ /business-analyse → /ba-design-ui → /business-analyse-html
575
575
  │ → /ba-review → /derive-prd → /ralph-loop
576
576
 
577
577
  ├─ Ajouter une feature a un projet existant
@@ -619,7 +619,7 @@
619
619
  └─ Finaliser → /gitflow finish</code><code data-lang="en">What do you want to do?
620
620
 
621
621
  ├─ New complete project
622
- │ └─ /business-analyse → /ba-design-ui → /ba-generate-html
622
+ │ └─ /business-analyse → /ba-design-ui → /business-analyse-html
623
623
  │ → /ba-review → /derive-prd → /ralph-loop
624
624
 
625
625
  ├─ Add a feature to an existing project
@@ -944,7 +944,7 @@
944
944
  <td><a href="business-analyse.html">BA</a></td>
945
945
  </tr>
946
946
  <tr>
947
- <td><code>/ba-generate-html</code></td>
947
+ <td><code>/business-analyse-html</code></td>
948
948
  <td>
949
949
  <span data-lang="fr">Generer le document HTML interactif (mockups, ERD, permissions)</span>
950
950
  <span data-lang="en">Generate interactive HTML document (mockups, ERD, permissions)</span>
@@ -975,10 +975,10 @@
975
975
  <span class="alert-icon">&#128161;</span>
976
976
  <div class="alert-content">
977
977
  <p data-lang="fr">
978
- <strong>Pipeline complet</strong> : /business-analyse (steps 00-04) &rarr; /ba-design-ui &rarr; /ba-generate-html &rarr; /ba-review &rarr; /derive-prd &rarr; /ralph-loop
978
+ <strong>Pipeline complet</strong> : /business-analyse (steps 00-04) &rarr; /ba-design-ui &rarr; /business-analyse-html &rarr; /ba-review &rarr; /derive-prd &rarr; /ralph-loop
979
979
  </p>
980
980
  <p data-lang="en">
981
- <strong>Full pipeline</strong>: /business-analyse (steps 00-04) &rarr; /ba-design-ui &rarr; /ba-generate-html &rarr; /ba-review &rarr; /derive-prd &rarr; /ralph-loop
981
+ <strong>Full pipeline</strong>: /business-analyse (steps 00-04) &rarr; /ba-design-ui &rarr; /business-analyse-html &rarr; /ba-review &rarr; /derive-prd &rarr; /ralph-loop
982
982
  </p>
983
983
  </div>
984
984
  </div>
package/dist/index.js CHANGED
@@ -112873,7 +112873,7 @@ async function uninstallCommands(options = {}) {
112873
112873
  "quick-search.md",
112874
112874
  "review.md",
112875
112875
  "implement.md",
112876
- "ralph-loop"
112876
+ "business-analyse-develop"
112877
112877
  ];
112878
112878
  for (const item of ourDirs) {
112879
112879
  const itemPath = (0, import_path2.join)(targetDir, item);
@@ -113474,7 +113474,7 @@ var installCommand = new Command("install").alias("i").description("Install Smar
113474
113474
  ` ${source_default.cyan("/efcore migration")} - Migration management`,
113475
113475
  "",
113476
113476
  source_default.bold("Ralph Loop:"),
113477
- ` ${source_default.cyan("/ralph-loop")} - Start iterative loop`,
113477
+ ` ${source_default.cyan("/business-analyse-develop")} - Start iterative loop`,
113478
113478
  ...ralphSummary,
113479
113479
  ...pluginSummary
113480
113480
  ];
@@ -116004,7 +116004,7 @@ var updateCommand = new Command("update").description("Update commands to the la
116004
116004
  // src/commands/docs.ts
116005
116005
  var import_path5 = require("path");
116006
116006
  var import_fs2 = require("fs");
116007
- var DOCS_PAGES = ["index", "installation", "init", "commands", "cli-commands", "agents", "business-analyse", "gitflow", "efcore", "hooks", "ralph-loop", "test-web"];
116007
+ var DOCS_PAGES = ["index", "installation", "init", "commands", "cli-commands", "agents", "business-analyse", "gitflow", "efcore", "hooks", "business-analyse-develop", "test-web"];
116008
116008
  var docsCommand = new Command("docs").alias("d").description("Open SmartStack documentation in browser").argument("[page]", "Documentation page to open", "index").option("-l, --list", "List available documentation pages").action(async (page, options) => {
116009
116009
  if (options.list) {
116010
116010
  logger.header("Available Documentation Pages");
@@ -118022,7 +118022,7 @@ var initCommand = new Command("init").description("Initialize a new SmartStack p
118022
118022
  source_default.yellow("Ralph (AI Automation):"),
118023
118023
  ` 1. Check MCP servers: ${source_default.cyan("smartstack check-mcp")}`,
118024
118024
  ` 2. Verify Ralph setup: ${source_default.cyan("smartstack ralph start")}`,
118025
- ` 3. Start automation: ${source_default.cyan('/ralph-loop "Your feature"')}`,
118025
+ ` 3. Start automation: ${source_default.cyan('/business-analyse-develop "Your feature"')}`,
118026
118026
  "",
118027
118027
  source_default.bold("Documentation:"),
118028
118028
  ` SmartStack: ${source_default.cyan("https://docs.smartstack.app")}`,
@@ -126840,7 +126840,7 @@ var ralphCommand = new Command("ralph").description("Ralph Weegund automation lo
126840
126840
  console.log(` ${source_default.cyan("smartstack ralph report")} - List or view feature reports`);
126841
126841
  console.log(` ${source_default.cyan("smartstack ralph init")} - Initialize Ralph in current project`);
126842
126842
  console.log();
126843
- console.log(`After running ${source_default.cyan("ralph start")}, use ${source_default.cyan("/ralph-loop")} in Claude Code.`);
126843
+ console.log(`After running ${source_default.cyan("ralph start")}, use ${source_default.cyan("/business-analyse-develop")} in Claude Code.`);
126844
126844
  });
126845
126845
  ralphCommand.command("start").description("Verify prerequisites and prepare Ralph for use").option("--skip-mcp", "Skip MCP server verification (not recommended)").action(async (options) => {
126846
126846
  logger.header("Ralph Weegund - Pre-flight Check");
@@ -126920,7 +126920,7 @@ ralphCommand.command("start").description("Verify prerequisites and prepare Ralp
126920
126920
  "Ralph is ready!",
126921
126921
  "",
126922
126922
  "Start Ralph in Claude Code with:",
126923
- ' /ralph-loop "Your feature description"',
126923
+ ' /business-analyse-develop "Your feature description"',
126924
126924
  "",
126925
126925
  "Or use BA orchestration:",
126926
126926
  " /business-analyse:0-orchestrate"
@@ -127269,13 +127269,13 @@ var doctorCommand = new Command("doctor").description("Run diagnostics and check
127269
127269
  status: installation.gitflow.configExists ? "ok" : "info",
127270
127270
  message: installation.gitflow.configExists ? "Configured" : "Not configured"
127271
127271
  });
127272
- const ralphSkillPath = (0, import_path13.join)(installation.location, "skills", "ralph-loop", "SKILL.md");
127272
+ const ralphSkillPath = (0, import_path13.join)(installation.location, "skills", "business-analyse-develop", "SKILL.md");
127273
127273
  const ralphSkillExists = await import_fs_extra13.default.pathExists(ralphSkillPath);
127274
127274
  diagnostics.push({
127275
127275
  name: "Ralph Skill",
127276
127276
  status: ralphSkillExists ? "ok" : "warning",
127277
127277
  message: ralphSkillExists ? "Installed" : "Not installed",
127278
- details: "Global skill (~/.claude/skills/ralph-loop/)",
127278
+ details: "Global skill (~/.claude/skills/business-analyse-develop/)",
127279
127279
  fix: !ralphSkillExists ? "smartstack install" : void 0
127280
127280
  });
127281
127281
  const ralphStatus = await checkRalphInstallation();
@@ -127995,7 +127995,7 @@ mcpCommand.command("remove").description("Unregister MCP servers from CLI and VS
127995
127995
  logger.box(["MCP servers unregistered.", "", "Re-register with: ss mcp install"], "info");
127996
127996
  });
127997
127997
 
127998
- // src/commands/derive-prd.ts
127998
+ // src/commands/business-analyse-handoff.ts
127999
127999
  var import_fs_extra15 = __toESM(require_lib());
128000
128000
  var import_path16 = require("path");
128001
128001
 
@@ -128514,6 +128514,17 @@ function validateForPrdExtraction(feature) {
128514
128514
  if (!feature.handoff?.filesToCreate) {
128515
128515
  errors.push("No filesToCreate found in handoff");
128516
128516
  }
128517
+ const sections = feature.specification?.sections ?? [];
128518
+ if (sections.length > 0) {
128519
+ for (const section of sections) {
128520
+ const resources = section.resources ?? [];
128521
+ for (const resource of resources) {
128522
+ if (!resource.entity) {
128523
+ errors.push(`Section "${section.code}" resource "${resource.code}" is missing "entity" field \u2014 section-splitting will fail`);
128524
+ }
128525
+ }
128526
+ }
128527
+ }
128517
128528
  return errors;
128518
128529
  }
128519
128530
  function validatePrdCompleteness(prd, feature) {
@@ -128554,7 +128565,7 @@ function extractUnifiedPrd(moduleFeature, featureJsonPath, namespace, cliVersion
128554
128565
  seedData: prdJson.seedData,
128555
128566
  tasks,
128556
128567
  metadata: {
128557
- generatedBy: "ss-derive-prd",
128568
+ generatedBy: "ss-business-analyse-handoff",
128558
128569
  cliVersion: cliVersion ?? "unknown",
128559
128570
  moduleCode: prdJson.project.module
128560
128571
  }
@@ -128782,7 +128793,7 @@ function toKebabCase(str) {
128782
128793
  return str.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
128783
128794
  }
128784
128795
 
128785
- // src/commands/derive-prd.ts
128796
+ // src/commands/business-analyse-handoff.ts
128786
128797
  function readSmartStackNamespace() {
128787
128798
  try {
128788
128799
  const configPath = (0, import_path16.join)(process.cwd(), ".smartstack", "config.json");
@@ -128810,7 +128821,7 @@ async function findModuleFeatureFiles(masterPath) {
128810
128821
  }
128811
128822
  return paths;
128812
128823
  }
128813
- var derivePrdCommand = new Command("derive-prd").description("Extract prd.json programmatically from feature.json or flat BA files (no LLM)").option("-f, --feature <path>", "Path to a module-level feature.json").option("-a, --application <path>", "Path to a master application-level feature.json (processes all modules)").option("--ba-dir <path>", "Path to a flat-file BA module directory (contains index.json, entities.json, etc.)").option("--ba-app <path>", "Path to an app-level BA index.json (discovers all modules)").option("-o, --output <path>", "Output path for prd.json (default: .ralph/prd-{module}.json)").option("--strict", "Fail on validation warnings").action(async (options) => {
128824
+ var businessAnalyseHandoffCommand = new Command("business-analyse-handoff").description("Extract prd.json programmatically from feature.json or flat BA files (no LLM)").option("-f, --feature <path>", "Path to a module-level feature.json").option("-a, --application <path>", "Path to a master application-level feature.json (processes all modules)").option("--ba-dir <path>", "Path to a flat-file BA module directory (contains index.json, entities.json, etc.)").option("--ba-app <path>", "Path to an app-level BA index.json (discovers all modules)").option("-o, --output <path>", "Output path for prd.json (default: .ralph/prd-{module}.json)").option("--strict", "Fail on validation warnings").action(async (options) => {
128814
128825
  if (!options.feature && !options.application && !options.baDir && !options.baApp) {
128815
128826
  console.log(source_default.red("Error: Provide --feature, --application, --ba-dir, or --ba-app"));
128816
128827
  process.exit(1);
@@ -129629,7 +129640,7 @@ async function main2() {
129629
129640
  program2.addCommand(doctorCommand);
129630
129641
  program2.addCommand(adminCommand);
129631
129642
  program2.addCommand(mcpCommand);
129632
- program2.addCommand(derivePrdCommand);
129643
+ program2.addCommand(businessAnalyseHandoffCommand);
129633
129644
  program2.addCommand(tmuxCommand);
129634
129645
  const args = process.argv.slice(2);
129635
129646
  const commandName = args[0] || "";