@atlashub/smartstack-cli 4.41.0 → 4.42.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.
- package/.documentation/apex.html +2 -2
- package/.documentation/business-analyse.html +26 -27
- package/.documentation/commands.html +6 -6
- package/dist/index.js +24 -13
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/templates/agents/ba-reader.md +2 -2
- package/templates/agents/ba-writer.md +44 -9
- package/templates/hooks/stop-hook.sh +6 -6
- package/templates/ralph/README.md +1 -1
- package/templates/scripts/setup-ralph-loop.sh +2 -2
- package/templates/skills/_resources/context-digest-template.md +1 -1
- package/templates/skills/_shared.md +13 -13
- package/templates/skills/apex/SKILL.md +14 -7
- package/templates/skills/apex/_shared.md +1 -1
- package/templates/skills/apex/references/challenge-questions.md +46 -13
- package/templates/skills/apex/references/core-seed-data.md +4 -4
- package/templates/skills/apex/references/error-classification.md +3 -3
- package/templates/skills/apex/references/smartstack-api.md +1 -1
- package/templates/skills/apex/references/smartstack-layers.md +1 -1
- package/templates/skills/apex/steps/step-00-init.md +46 -8
- package/templates/skills/apex/steps/step-01-analyze.md +1 -1
- package/templates/skills/apex/steps/step-02-plan.md +1 -1
- package/templates/skills/apex/steps/step-03-execute.md +1 -1
- package/templates/skills/business-analyse/SKILL.md +83 -22
- package/templates/skills/business-analyse/_shared.md +12 -9
- package/templates/skills/business-analyse/questionnaire/02-stakeholders-scope.md +13 -0
- package/templates/skills/business-analyse/questionnaire/03-data-ui.md +33 -0
- package/templates/skills/business-analyse/questionnaire/04-risks-metrics.md +1 -1
- package/templates/skills/business-analyse/react/components.md +1 -1
- package/templates/skills/business-analyse/react/schema.md +1 -1
- package/templates/skills/business-analyse/references/acceptance-criteria.md +3 -3
- package/templates/skills/business-analyse/references/consolidation-structural-checks.md +1 -1
- package/templates/skills/business-analyse/references/detection-strategies.md +2 -2
- package/templates/skills/business-analyse/references/entity-architecture-decision.md +1 -1
- package/templates/skills/business-analyse/references/naming-conventions.md +6 -6
- package/templates/skills/business-analyse/references/robustness-checks.md +4 -4
- package/templates/skills/business-analyse/references/spec-auto-inference.md +2 -2
- package/templates/skills/business-analyse/references/validation-checklist.md +3 -3
- package/templates/skills/business-analyse/schemas/feature-schema.json +1 -1
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +2 -2
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +3 -2
- package/templates/skills/business-analyse/steps/step-00-init.md +15 -5
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +14 -5
- package/templates/skills/business-analyse/steps/step-02-structure.md +17 -1
- package/templates/skills/business-analyse/steps/step-03-specify.md +136 -26
- package/templates/skills/business-analyse/steps/step-04-consolidate.md +44 -8
- package/templates/skills/business-analyse/templates/tpl-handoff.md +5 -5
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +4 -4
- package/templates/skills/business-analyse/templates-frd.md +4 -4
- package/templates/skills/{ba-design-ui → business-analyse-design}/SKILL.md +9 -9
- package/templates/skills/{ba-design-ui → business-analyse-design}/steps/step-01-screens.md +9 -0
- package/templates/skills/{ba-design-ui → business-analyse-design}/steps/step-03-navigation.md +9 -2
- package/templates/skills/business-analyse-develop/SKILL.md +248 -0
- package/templates/skills/{ralph-loop → business-analyse-develop}/references/category-completeness.md +1 -1
- package/templates/skills/{ralph-loop → business-analyse-develop}/references/init-resume-recovery.md +8 -8
- package/templates/skills/{ralph-loop → business-analyse-develop}/references/multi-module-queue.md +1 -1
- package/templates/skills/business-analyse-develop/references/quality-gates.md +70 -0
- package/templates/skills/{ralph-loop → business-analyse-develop}/references/task-transform-legacy.md +1 -1
- package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-00-init.md +20 -4
- package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-01-task.md +3 -2
- package/templates/skills/business-analyse-develop/steps/step-01-v4-execute.md +131 -0
- package/templates/skills/business-analyse-develop/steps/step-02-v4-verify.md +156 -0
- package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-04-check.md +1 -1
- package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-05-report.md +1 -1
- package/templates/skills/{derive-prd → business-analyse-handoff}/SKILL.md +7 -7
- package/templates/skills/{derive-prd → business-analyse-handoff}/references/acceptance-criteria.md +5 -5
- package/templates/skills/{derive-prd → business-analyse-handoff}/references/handoff-file-templates.md +1 -1
- package/templates/skills/{derive-prd → business-analyse-handoff}/references/handoff-mappings.md +1 -1
- package/templates/skills/{derive-prd → business-analyse-handoff}/references/handoff-seeddata-generation.md +2 -2
- package/templates/skills/{derive-prd → business-analyse-handoff}/references/prd-generation.md +14 -14
- package/templates/skills/{derive-prd → business-analyse-handoff}/schemas/handoff-schema.json +2 -2
- package/templates/skills/{derive-prd → business-analyse-handoff}/steps/step-00-validate.md +6 -6
- package/templates/skills/{derive-prd → business-analyse-handoff}/steps/step-01-transform.md +46 -7
- package/templates/skills/{derive-prd → business-analyse-handoff}/steps/step-02-export.md +34 -14
- package/templates/skills/{ba-generate-html → business-analyse-html}/SKILL.md +4 -4
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/ba-interactive.html +709 -277
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/build-html.js +25 -3
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/01-data-init.js +54 -0
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/02-navigation.js +97 -3
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/03-render-cadrage.js +8 -7
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/04-render-modules.js +7 -7
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/05-render-specs.js +188 -85
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/06-render-consolidation.js +15 -14
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/06-render-mockups.js +19 -19
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/07-render-handoff.js +24 -4
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/08-editing.js +6 -2
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/09-export.js +27 -57
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/10-comments.js +67 -45
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/scripts/11-review-panel.js +15 -13
- package/templates/skills/business-analyse-html/html/src/styles/02-layout.css +216 -0
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/05-modules.css +36 -0
- package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/template.html +22 -12
- package/templates/skills/{ba-generate-html → business-analyse-html}/references/data-build.md +1 -1
- package/templates/skills/{ba-generate-html → business-analyse-html}/references/data-mapping.md +5 -1
- package/templates/skills/{ba-generate-html → business-analyse-html}/references/output-modes.md +7 -7
- package/templates/skills/{ba-generate-html → business-analyse-html}/steps/step-01-collect.md +25 -1
- package/templates/skills/{ba-generate-html → business-analyse-html}/steps/step-02-build-data.md +33 -5
- package/templates/skills/{ba-generate-html → business-analyse-html}/steps/step-03-render.md +2 -2
- package/templates/skills/{ba-generate-html → business-analyse-html}/steps/step-04-verify.md +2 -2
- package/templates/skills/{ba-review → business-analyse-review}/SKILL.md +11 -10
- package/templates/skills/{ba-review → business-analyse-review}/references/review-data-mapping.md +2 -2
- package/templates/skills/business-analyse-review/steps/step-00-init.md +107 -0
- package/templates/skills/{ba-review → business-analyse-review}/steps/step-01-apply.md +19 -11
- package/templates/skills/business-analyse-status/SKILL.md +118 -0
- package/templates/skills/documentation/SKILL.md +2 -2
- package/templates/skills/sketch/SKILL.md +172 -0
- package/templates/skills/sketch/references/domain-heuristics.md +116 -0
- package/templates/skills/ba-generate-html/html/src/styles/02-layout.css +0 -101
- package/templates/skills/ralph-loop/SKILL.md +0 -240
- /package/templates/skills/{ba-design-ui → business-analyse-design}/steps/step-02-wireframes.md +0 -0
- /package/templates/skills/{ralph-loop → business-analyse-develop}/references/category-rules.md +0 -0
- /package/templates/skills/{ralph-loop → business-analyse-develop}/references/compact-loop.md +0 -0
- /package/templates/skills/{ralph-loop → business-analyse-develop}/references/module-transition.md +0 -0
- /package/templates/skills/{ralph-loop → business-analyse-develop}/references/parallel-execution.md +0 -0
- /package/templates/skills/{ralph-loop → business-analyse-develop}/references/section-splitting.md +0 -0
- /package/templates/skills/{ralph-loop → business-analyse-develop}/references/team-orchestration.md +0 -0
- /package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-02-execute.md +0 -0
- /package/templates/skills/{ralph-loop → business-analyse-develop}/steps/step-03-commit.md +0 -0
- /package/templates/skills/{derive-prd → business-analyse-handoff}/references/entity-domain-mapping.md +0 -0
- /package/templates/skills/{derive-prd → business-analyse-handoff}/references/readiness-scoring.md +0 -0
- /package/templates/skills/{derive-prd → business-analyse-handoff}/templates/tpl-progress.md +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/cadrage-context.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/cadrage-scope.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/cadrage-stakeholders.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/cadrage-success.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/consol-datamodel.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/consol-flows.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/consol-interactions.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/consol-permissions.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/decomp-dependencies.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/decomp-modules.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/handoff-summary.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/partials/module-spec-container.html +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/01-variables.css +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/03-navigation.css +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/04-cards.css +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/06-wireframes.css +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/07-comments.css +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/08-review-panel.css +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/html/src/styles/09-mockups-html.css +0 -0
- /package/templates/skills/{ba-generate-html → business-analyse-html}/references/wireframe-svg-style-guide.md +0 -0
package/.documentation/apex.html
CHANGED
|
@@ -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
|
|
338
|
-
<td data-lang="en">Parse flags, detect context, verify MCP, define
|
|
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 (
|
|
107
|
-
<span data-lang="en">Architecture (
|
|
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 (
|
|
235
|
-
<h4 data-lang="en">Hierarchical Navigation (
|
|
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>
|
|
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 (
|
|
293
|
+
<!-- ARCHITECTURE (4-LEVEL HIERARCHY) -->
|
|
295
294
|
<!-- ============================================ -->
|
|
296
295
|
<section id="architecture">
|
|
297
296
|
<h2>
|
|
298
|
-
<span data-lang="fr">Architecture (Hierarchie
|
|
299
|
-
<span data-lang="en">Architecture (
|
|
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
|
|
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
|
|
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>/
|
|
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>/
|
|
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 <json-path></code> (met a jour les fichiers JSON sources)<br>
|
|
927
|
-
3. Regenerer le HTML avec <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 <json-path></code> (updates source JSON files)<br>
|
|
933
|
-
3. Regenerate the HTML with <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
|
-
<!-- /
|
|
1002
|
-
<h3><code>/
|
|
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>/
|
|
1014
|
-
/
|
|
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>/
|
|
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>/
|
|
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>/
|
|
1103
|
-
<li data-lang="en">Regenerate HTML via <code>/
|
|
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
|
-
/
|
|
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
|
-
/
|
|
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 & Resources :
|
|
1204
|
-
<li data-lang="en">Sections & Resources:
|
|
1202
|
+
<li data-lang="fr">Sections & Resources : 4-level navigation</li>
|
|
1203
|
+
<li data-lang="en">Sections & 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> → <code>/
|
|
185
|
+
<h5><code>/ba-design-ui</code> → <code>/business-analyse-html</code> → <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 → /
|
|
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 → /
|
|
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>/
|
|
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">💡</span>
|
|
976
976
|
<div class="alert-content">
|
|
977
977
|
<p data-lang="fr">
|
|
978
|
-
<strong>Pipeline complet</strong> : /business-analyse (steps 00-04) → /ba-design-ui → /
|
|
978
|
+
<strong>Pipeline complet</strong> : /business-analyse (steps 00-04) → /ba-design-ui → /business-analyse-html → /ba-review → /derive-prd → /ralph-loop
|
|
979
979
|
</p>
|
|
980
980
|
<p data-lang="en">
|
|
981
|
-
<strong>Full pipeline</strong>: /business-analyse (steps 00-04) → /ba-design-ui → /
|
|
981
|
+
<strong>Full pipeline</strong>: /business-analyse (steps 00-04) → /ba-design-ui → /business-analyse-html → /ba-review → /derive-prd → /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
|
-
"
|
|
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("/
|
|
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", "
|
|
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('/
|
|
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("/
|
|
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
|
-
' /
|
|
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", "
|
|
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/
|
|
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/
|
|
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-
|
|
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/
|
|
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
|
|
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(
|
|
129643
|
+
program2.addCommand(businessAnalyseHandoffCommand);
|
|
129633
129644
|
program2.addCommand(tmuxCommand);
|
|
129634
129645
|
const args = process.argv.slice(2);
|
|
129635
129646
|
const commandName = args[0] || "";
|