@atlashub/smartstack-cli 4.40.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 +15 -7
- package/templates/skills/apex/_shared.md +1 -1
- package/templates/skills/apex/references/analysis-methods.md +24 -0
- 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 +48 -8
- package/templates/skills/apex/steps/step-01-analyze.md +42 -2
- package/templates/skills/apex/steps/step-02-plan.md +3 -1
- package/templates/skills/apex/steps/step-03-execute.md +3 -1
- package/templates/skills/apex/steps/step-03a-layer0-domain.md +2 -0
- package/templates/skills/apex/steps/step-03b-layer1-seed.md +111 -3
- package/templates/skills/apex/steps/step-03c-layer2-backend.md +2 -0
- package/templates/skills/apex/steps/step-03d-layer3-frontend.md +2 -0
- package/templates/skills/apex/steps/step-03e-layer4-devdata.md +2 -0
- package/templates/skills/apex/steps/step-04-examine.md +18 -0
- 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
|
@@ -35,6 +35,35 @@
|
|
|
35
35
|
| Q3.12 | Informations clés par écran ? Quelles colonnes dans la liste, quels champs dans le formulaire ? | Par écran |
|
|
36
36
|
| Q3.13 | Actions possibles par écran ? (créer, éditer, supprimer, valider, exporter, changer statut) | Par écran |
|
|
37
37
|
|
|
38
|
+
## 3.5 Volumétrie et performance
|
|
39
|
+
|
|
40
|
+
| # | Question | Type de réponse |
|
|
41
|
+
|---|----------|-----------------|
|
|
42
|
+
| Q3.17 | Combien de [entité] prévoyez-vous ? (par mois et total à 2 ans) | Estimation chiffrée |
|
|
43
|
+
| Q3.18 | Y a-t-il des pics d'utilisation ? (fin de mois, clôture annuelle) | Description des pics |
|
|
44
|
+
|
|
45
|
+
- Relance si vague : "Moins de 100 ? Entre 100-10 000 ? Plus de 10 000 ?"
|
|
46
|
+
- Mapping → `entities.json` : champ `estimatedVolume` (`monthly`, `total2y`)
|
|
47
|
+
|
|
48
|
+
## 3.6 Recherche et filtres
|
|
49
|
+
|
|
50
|
+
| # | Question | Type de réponse |
|
|
51
|
+
|---|----------|-----------------|
|
|
52
|
+
| Q3.19 | Par quels critères cherchez-vous un [entité] ? (nom, date, statut, code...) | Liste de critères |
|
|
53
|
+
| Q3.20 | Quels filtres rapides sont indispensables dans la liste ? | Liste de filtres |
|
|
54
|
+
|
|
55
|
+
- Relance : "Triez-vous souvent par date ? Filtrez-vous par statut ?"
|
|
56
|
+
- Mapping → `entities.json` : champs `searchableFields[]` et `defaultFilters[]`
|
|
57
|
+
|
|
58
|
+
## 3.7 Notifications et alertes
|
|
59
|
+
|
|
60
|
+
| # | Question | Type de réponse |
|
|
61
|
+
|---|----------|-----------------|
|
|
62
|
+
| Q3.21 | Quels événements doivent déclencher une notification ? (création, approbation, deadline...) | Liste d'événements |
|
|
63
|
+
| Q3.22 | Qui doit être notifié ? Par quel canal ? (in-app, email) | Cible + canal |
|
|
64
|
+
|
|
65
|
+
- Mapping → `rules.json` : règles de catégorie `notification`
|
|
66
|
+
|
|
38
67
|
## 3.4 Tableaux de bord
|
|
39
68
|
|
|
40
69
|
| # | Question | Type de réponse |
|
|
@@ -58,6 +87,7 @@
|
|
|
58
87
|
| Q3.11 (écrans) | "Un écran de liste" | "Avec pages dédiées pour création et édition ? Détail en page avec onglets ?" |
|
|
59
88
|
| Q3.13 (actions) | "CRUD classique" | "Actions métier spécifiques ? (valider, dupliquer, archiver, changer statut, assigner)" |
|
|
60
89
|
| Q3.14 (dashboards) | "Juste des chiffres" | "Les tendances ne seraient-elles pas plus lisibles en graphique ?" |
|
|
90
|
+
| Q3.17 (volume) | "Je ne sais pas" | "Commençons petit : combien d'employés dans l'entreprise ? Combien de factures par mois environ ?" |
|
|
61
91
|
|
|
62
92
|
### Anti-patterns à détecter
|
|
63
93
|
|
|
@@ -90,3 +120,6 @@
|
|
|
90
120
|
| Q3.7-Q3.9 | `rules.json` (règles métier de validation et sécurité) |
|
|
91
121
|
| Q3.10-Q3.13 | `screens.json` (sections, resources, colonnes, actions) |
|
|
92
122
|
| Q3.14-Q3.16 | `screens.json` (sections dashboard, KPI resources) |
|
|
123
|
+
| Q3.17-Q3.18 | `entities.json` (estimatedVolume) |
|
|
124
|
+
| Q3.19-Q3.20 | `entities.json` (searchableFields, defaultFilters) |
|
|
125
|
+
| Q3.21-Q3.22 | `rules.json` (règles category: notification) |
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
> **NOT USED** — Les risques projet, hypotheses, lecons du passe, metriques de succes et conditions de livraison
|
|
4
4
|
> ne sont pas du scope de la BA en vibe coding.
|
|
5
5
|
>
|
|
6
|
-
> La documentation technique est generee automatiquement par `/documentation` apres `/
|
|
6
|
+
> La documentation technique est generee automatiquement par `/documentation` apres `/business-analyse-develop`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# React Components - Business Analyse Viewer
|
|
2
2
|
|
|
3
3
|
> **Usage:** React component that renders index.json directly
|
|
4
|
-
> **Loaded in:** /
|
|
4
|
+
> **Loaded in:** /business-analyse-html
|
|
5
5
|
> **Data source (module):** `docs/{app}/{module}/business-analyse/v{X.Y}/index.json`
|
|
6
6
|
> **Data source (application):** `docs/{app}/business-analyse/v{X.Y}/index.json`
|
|
7
7
|
> **Related:** `react/application-viewer.md` for application-level view
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# TypeScript Schema - Feature JSON Types
|
|
2
2
|
|
|
3
3
|
> **Usage:** TypeScript interfaces aligned with index.json and application-schema.json
|
|
4
|
-
> **Loaded in:** /
|
|
4
|
+
> **Loaded in:** /business-analyse-html (for web app rendering)
|
|
5
5
|
> **Source (module):** `docs/{app}/{module}/business-analyse/v{X.Y}/index.json`
|
|
6
6
|
> **Source (application):** `docs/{app}/business-analyse/v{X.Y}/index.json`
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Module Acceptance Criteria (Shared Reference)
|
|
2
2
|
|
|
3
|
-
> **Loaded by:** step-03-specify (post-check),
|
|
3
|
+
> **Loaded by:** step-03-specify (post-check), business-analyse-develop step-01-task (input validation)
|
|
4
4
|
> **Purpose:** Define measurable, bash-verifiable acceptance criteria that a module MUST pass before being marked "specified".
|
|
5
5
|
> **Key principle:** These checks read the REAL JSON files on disk — NOT in-memory data the model "thinks" it wrote.
|
|
6
6
|
|
|
@@ -137,11 +137,11 @@ console.log('PASS: All acceptance criteria met (AC-01 to AC-17)');
|
|
|
137
137
|
After writing module JSON files, run the bash script above.
|
|
138
138
|
IF FAIL → re-execute section 11 write with corrected data → re-run until PASS.
|
|
139
139
|
|
|
140
|
-
### 2.
|
|
140
|
+
### 2. business-analyse-develop step-01-task.md (input validation)
|
|
141
141
|
|
|
142
142
|
At PRD load time, run the bash script on each module index.json.
|
|
143
143
|
IF FAIL → BLOCKING: "Module {name} does not meet acceptance criteria — run /business-analyse to fix".
|
|
144
|
-
This prevents
|
|
144
|
+
This prevents business-analyse-develop from generating code from incomplete specifications.
|
|
145
145
|
|
|
146
146
|
---
|
|
147
147
|
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
| `specification.wireframes[]` | YES | Must have >=1 wireframe with `layout` object |
|
|
21
21
|
| `specification.lifeCycles[]` | IF entities have status | States must be objects (NOT strings) |
|
|
22
22
|
| `specification.seedDataCore` | YES | Must have 9 arrays: navigationApplications, applicationRoles, navigationModules, navigationSections, navigationResources, navigationTranslations, permissions, rolePermissions, permissionConstants |
|
|
23
|
-
| `specification.seedDataBusiness` | NO (WARNING) | Business seed data is generated during implementation (
|
|
23
|
+
| `specification.seedDataBusiness` | NO (WARNING) | Business seed data is generated during implementation (business-analyse-develop), not during BA. If present, validates format. |
|
|
24
24
|
| `specification.gherkinScenarios` | YES | Must be `[{feature, scenarios[]}]` (array of objects, NOT single object or flat array) |
|
|
25
25
|
| `specification.navigation` | YES | Must have entries[] |
|
|
26
26
|
| `specification.i18nKeys[]` | YES | Must have >=1 key with fr, en, it, de |
|
|
@@ -73,7 +73,7 @@ function detectReviewMode(feature_description) {
|
|
|
73
73
|
| Condition | Action |
|
|
74
74
|
|-----------|--------|
|
|
75
75
|
| `{feature_description}` starts with `-review` | Activate review mode detection |
|
|
76
|
-
| ba-review.json found | Redirect user to `/
|
|
76
|
+
| ba-review.json found | Redirect user to `/business-analyse-review` skill |
|
|
77
77
|
| ba-review.json NOT found | Display error with fix instructions, STOP |
|
|
78
78
|
| No applications exist | Display error, STOP |
|
|
79
79
|
|
|
@@ -416,7 +416,7 @@ interface DetectionResult {
|
|
|
416
416
|
**Test Case 4: Review Mode**
|
|
417
417
|
- Input: `"-review"`
|
|
418
418
|
- Existing: `HumanResources` with ba-review.json present
|
|
419
|
-
- Expected: Redirect user to `/
|
|
419
|
+
- Expected: Redirect user to `/business-analyse-review` skill
|
|
420
420
|
|
|
421
421
|
**Test Case 5: Review Mode - File Missing**
|
|
422
422
|
- Input: `"-review"`
|
|
@@ -135,7 +135,7 @@ L'entite {E} est-elle CORE pour cette application ?
|
|
|
135
135
|
|
|
136
136
|
## 4. Section Pattern for Modules
|
|
137
137
|
|
|
138
|
-
> **REGLE FONDAMENTALE : Les sections representent des
|
|
138
|
+
> **REGLE FONDAMENTALE : Les sections representent des sections fonctionnelles, PAS des operations CRUD.**
|
|
139
139
|
|
|
140
140
|
### Le pattern de navigation SmartStack
|
|
141
141
|
|
|
@@ -71,11 +71,11 @@ Route = ToKebabCase($"/{appCode}/{moduleCode}")
|
|
|
71
71
|
- `Projects` → `projects` (single word, no change)
|
|
72
72
|
- `AI` → `ai` (acronym lowercase)
|
|
73
73
|
|
|
74
|
-
**Implementation:** See `templates/skills/
|
|
74
|
+
**Implementation:** See `templates/skills/business-analyse-develop/references/core-seed-data.md` line 162
|
|
75
75
|
|
|
76
76
|
### JavaScript (BA Handoff Generation)
|
|
77
77
|
|
|
78
|
-
**Location:** Used in /
|
|
78
|
+
**Location:** Used in /business-analyse-html when building seedDataCore
|
|
79
79
|
|
|
80
80
|
**Usage:**
|
|
81
81
|
```javascript
|
|
@@ -113,7 +113,7 @@ function toKebabCase(str: string): string {
|
|
|
113
113
|
|
|
114
114
|
## Validation
|
|
115
115
|
|
|
116
|
-
### During Generation (
|
|
116
|
+
### During Generation (business-analyse-develop)
|
|
117
117
|
|
|
118
118
|
POST-CHECK after NavigationSeedData generation:
|
|
119
119
|
|
|
@@ -237,7 +237,7 @@ src/API/Controllers/HumanResources/TimeManagementController.cs
|
|
|
237
237
|
|
|
238
238
|
## References
|
|
239
239
|
|
|
240
|
-
- **Template:** `templates/skills/
|
|
240
|
+
- **Template:** `templates/skills/business-analyse-develop/references/core-seed-data.md`
|
|
241
241
|
- **Validation:** `src/mcp/tools/validate-frontend-routes.ts`
|
|
242
|
-
- **POST-CHECK:** `templates/skills/
|
|
243
|
-
- **Handoff:** `/
|
|
242
|
+
- **POST-CHECK:** `templates/skills/business-analyse-develop/steps/step-02-execute.md` (section 5)
|
|
243
|
+
- **Handoff:** `/business-analyse-handoff` skill (handoff section)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
## Overview
|
|
7
7
|
|
|
8
|
-
This document consolidates all robustness checks implemented across the business-analyse workflow. Each check serves to catch issues early, before they cause
|
|
8
|
+
This document consolidates all robustness checks implemented across the business-analyse workflow. Each check serves to catch issues early, before they cause business-analyse-develop failures or runtime errors.
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -151,7 +151,7 @@ DO NOT PROCEED TO CONSOLIDATION UNTIL ALL CHECKS PASS
|
|
|
151
151
|
|
|
152
152
|
### Purpose
|
|
153
153
|
|
|
154
|
-
Verifies ALL cross-module entity references are resolvable. Prevents FK constraint violations and runtime errors during
|
|
154
|
+
Verifies ALL cross-module entity references are resolvable. Prevents FK constraint violations and runtime errors during business-analyse-develop code generation.
|
|
155
155
|
|
|
156
156
|
### Process
|
|
157
157
|
|
|
@@ -264,7 +264,7 @@ DEVELOPMENT CANNOT PROCEED WITH CIRCULAR DEPENDENCIES
|
|
|
264
264
|
|
|
265
265
|
---
|
|
266
266
|
|
|
267
|
-
> **Note:** Ralph Readiness Validation (PRD files, handoff completeness, etc.) is handled by the `/
|
|
267
|
+
> **Note:** Ralph Readiness Validation (PRD files, handoff completeness, etc.) is handled by the `/business-analyse-handoff` skill.
|
|
268
268
|
|
|
269
269
|
---
|
|
270
270
|
|
|
@@ -416,7 +416,7 @@ WHERE: Return to step-03-specify.md for TimeTracking module
|
|
|
416
416
|
|
|
417
417
|
**Success:**
|
|
418
418
|
- Application marked as "consolidated"
|
|
419
|
-
- Ready for `/
|
|
419
|
+
- Ready for `/business-analyse-html` and `/business-analyse-handoff`
|
|
420
420
|
|
|
421
421
|
---
|
|
422
422
|
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
|
|
33
33
|
## Auto-Generated UI Components by featureType
|
|
34
34
|
|
|
35
|
-
> **RULE:** Sections
|
|
35
|
+
> **RULE:** Sections are functional, not CRUD-based. `create`/`edit` are separate pages with own URL routes (`/create` and `/:id/edit`). `detail` is a tabbed page reached from `list`.
|
|
36
36
|
|
|
37
|
-
| featureType | Sections (functional
|
|
37
|
+
| featureType | Sections (functional) | permissionMode | List page includes | Form pages | Detail page tabs |
|
|
38
38
|
|---|---|---|---|---|---|
|
|
39
39
|
| data-centric | list | `crud` | grid, filters, create button | `/create` page, `/:id/edit` page | Infos, {relations} |
|
|
40
40
|
| data-centric | (detail — implicit) | `inherit` | — | — | — |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> **Authoritative minimums:** See `_shared.md` for the single source of truth on all minimum thresholds.
|
|
4
4
|
> **CRITICAL:** This checklist MUST be FULLY COMPLETED before marking module status = "specified".
|
|
5
|
-
> **Rationale:** Prevents incomplete modules from reaching handoff, reduces
|
|
5
|
+
> **Rationale:** Prevents incomplete modules from reaching handoff, reduces business-analyse-develop failures.
|
|
6
6
|
|
|
7
7
|
## Checklist Structure
|
|
8
8
|
|
|
@@ -232,8 +232,8 @@ const checklist = {
|
|
|
232
232
|
seedDataBusiness: {
|
|
233
233
|
check: "Business seed data template defined (if applicable — generated during implementation, not BA)",
|
|
234
234
|
status: specification.seedDataBusiness !== undefined ? "PASS" : "WARN",
|
|
235
|
-
blocking: false, // WARNING only — business seed data is generated during
|
|
236
|
-
details: "Business seed data (reference types, categories, statuses) is generated during implementation (
|
|
235
|
+
blocking: false, // WARNING only — business seed data is generated during business-analyse-develop implementation, not during BA phase
|
|
236
|
+
details: "Business seed data (reference types, categories, statuses) is generated during implementation (business-analyse-develop). " +
|
|
237
237
|
"BA phase ensures seedDataCore is complete (navigation, permissions). seedDataBusiness is optional at this stage."
|
|
238
238
|
},
|
|
239
239
|
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
|
|
46
|
-
"$comment": "Sub-schema loading guide per BA step: step-00-init → metadata-schema.json | step-01-cadrage → discovery-schema.json (module) OR application-schema.json (master) | step-02-structure → application-schema.json (modules[], dependencyGraph) | step-03-specify → analysis-schema.json + specification-schema.json | step-04-consolidate → validation-schema.json + application-schema.json (consolidation). HTML generation → /
|
|
46
|
+
"$comment": "Sub-schema loading guide per BA step: step-00-init → metadata-schema.json | step-01-cadrage → discovery-schema.json (module) OR application-schema.json (master) | step-02-structure → application-schema.json (modules[], dependencyGraph) | step-03-specify → analysis-schema.json + specification-schema.json | step-04-consolidate → validation-schema.json + application-schema.json (consolidation). HTML generation → /business-analyse-html skill. Review corrections → /business-analyse-review skill. Handoff → /business-analyse-handoff skill",
|
|
47
47
|
|
|
48
48
|
"$defs": {
|
|
49
49
|
"stepStatus": { "$ref": "shared/common-defs.json#/$defs/stepStatus" },
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "handoff-schema.json",
|
|
4
4
|
"title": "SmartStack BA - Handoff",
|
|
5
|
-
"description": "Module-level handoff: file mapping (8 categories), BR-to-code mapping, API endpoint summary. Used by /
|
|
5
|
+
"description": "Module-level handoff: file mapping (8 categories), BR-to-code mapping, API endpoint summary. Used by /business-analyse-handoff skill.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|
|
8
8
|
"complexity": { "type": "string", "enum": ["simple", "medium", "complex"] },
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
},
|
|
62
62
|
"ralphPrd": {
|
|
63
63
|
"type": "object",
|
|
64
|
-
"description": "Embedded Ralph Loop task breakdown (also exported to .ralph/prd.json by ss
|
|
64
|
+
"description": "Embedded Ralph Loop task breakdown (also exported to .ralph/prd.json by ss business-analyse-handoff)",
|
|
65
65
|
"properties": {
|
|
66
66
|
"tasks": {
|
|
67
67
|
"type": "array",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"id": { "type": "string", "pattern": "^UC-[A-Z]{2,4}-\\d{3}$", "description": "Module-prefixed UC ID (e.g., UC-RM-001)" },
|
|
27
27
|
"name": { "type": "string" },
|
|
28
28
|
"primaryActor": { "type": "string" },
|
|
29
|
+
"sectionCode": { "type": "string", "description": "Code of the anticipatedSection this UC belongs to (e.g., list, detail, dashboard). Must match a code in anticipatedSections[]." },
|
|
29
30
|
"permission": { "type": "string", "description": "Module-level: {app}.{module}.{action} or section-level: {app}.{module}.{section}.{action}" },
|
|
30
31
|
"preconditions": { "type": "array", "items": { "type": "string" } },
|
|
31
32
|
"postconditions": { "type": "array", "items": { "type": "string" } },
|
|
@@ -214,7 +215,7 @@
|
|
|
214
215
|
},
|
|
215
216
|
"layout": {
|
|
216
217
|
"type": "object",
|
|
217
|
-
"description": "Structural layout for deterministic consumption by
|
|
218
|
+
"description": "Structural layout for deterministic consumption by business-analyse-develop. Source of truth for code generation.",
|
|
218
219
|
"properties": {
|
|
219
220
|
"type": { "type": "string", "enum": ["page", "dialog", "panel"] },
|
|
220
221
|
"regions": {
|
|
@@ -509,7 +510,7 @@
|
|
|
509
510
|
},
|
|
510
511
|
"sections": {
|
|
511
512
|
"type": "array",
|
|
512
|
-
"description": "Level 4 (Section) decomposition. Each section = 1 React page. MANDATORY for
|
|
513
|
+
"description": "Level 4 (Section) decomposition. Each section = 1 React page. MANDATORY for business-analyse-develop consumption.",
|
|
513
514
|
"items": {
|
|
514
515
|
"type": "object",
|
|
515
516
|
"required": ["code", "labels", "route", "permission", "wireframe", "useCases", "resources"],
|
|
@@ -101,7 +101,7 @@ Execute workflow detection algorithm:
|
|
|
101
101
|
- Continue to application name determination.
|
|
102
102
|
|
|
103
103
|
**Key decision points:**
|
|
104
|
-
1. IF review mode → inform user to use `/
|
|
104
|
+
1. IF review mode → inform user to use `/business-analyse-review` skill instead
|
|
105
105
|
2. IF no existing apps → workflow_type = "new"
|
|
106
106
|
3. IF existing apps → analyze similarity → prompt user
|
|
107
107
|
|
|
@@ -418,7 +418,7 @@ This guard catches any accidental creation of module-only files at the wrong sco
|
|
|
418
418
|
|
|
419
419
|
## Step 10: Update Config
|
|
420
420
|
|
|
421
|
-
|
|
421
|
+
Write ALL context variables to `.business-analyse/config.json`. This file is the **single source of truth** for session state — downstream steps MUST re-read it instead of assuming LLM memory.
|
|
422
422
|
|
|
423
423
|
```json
|
|
424
424
|
{
|
|
@@ -427,12 +427,22 @@ Update `.business-analyse/config.json` with new feature information.
|
|
|
427
427
|
"version": "{version}",
|
|
428
428
|
"docsDir": "{docs_dir}",
|
|
429
429
|
"workflowType": "{workflow_type}",
|
|
430
|
-
"
|
|
430
|
+
"workflowMode": "{workflow_mode}",
|
|
431
|
+
"application": "{application_name}",
|
|
432
|
+
"applicationCode": "{applicationCode}",
|
|
433
|
+
"projectId": "{project_id}",
|
|
434
|
+
"language": "{language}",
|
|
435
|
+
"analysisMode": "interactive",
|
|
436
|
+
"mcpAvailable": true,
|
|
437
|
+
"candidateApplications": "{candidate_applications}",
|
|
438
|
+
"sharedModulesExtracted": "{shared_modules_extracted}"
|
|
431
439
|
},
|
|
432
440
|
"lastInitialized": "{ISO timestamp}"
|
|
433
441
|
}
|
|
434
442
|
```
|
|
435
443
|
|
|
444
|
+
> **CRITICAL:** Every downstream step (01-04) MUST start by reading this file to recover variables. Do NOT rely on LLM memory for `docs_dir`, `feature_id`, `applicationCode`, or `workflow_mode`.
|
|
445
|
+
|
|
436
446
|
## Step 11: Display Summary
|
|
437
447
|
|
|
438
448
|
```
|
|
@@ -505,7 +515,7 @@ If initialization was interrupted:
|
|
|
505
515
|
**Status-based resume routing (check in this order):**
|
|
506
516
|
|
|
507
517
|
- If status = `"handed-off"` or `"consolidated"`:
|
|
508
|
-
→ Display: "BA workflow complete. Use /
|
|
518
|
+
→ Display: "BA workflow complete. Use /business-analyse-html to generate HTML, /business-analyse-review for corrections."
|
|
509
519
|
→ STOP
|
|
510
520
|
|
|
511
521
|
- If status = `"specified"` AND `metadata.workflow.allModulesSpecified === true`:
|
|
@@ -535,5 +545,5 @@ If a project-level index.json is found (scope = "project"):
|
|
|
535
545
|
→ All applications specified → Resume at `step-04-consolidate.md`
|
|
536
546
|
|
|
537
547
|
- If status = `"consolidated"`:
|
|
538
|
-
→ Display: "BA workflow complete. Use /
|
|
548
|
+
→ Display: "BA workflow complete. Use /business-analyse-html to generate HTML."
|
|
539
549
|
→ STOP
|
|
@@ -21,6 +21,15 @@ next_step: steps/step-02-structure.md
|
|
|
21
21
|
- **NEVER skip the reformulation phase** — it is the foundation of good analysis
|
|
22
22
|
- **NEVER auto-infer cadrage data without client validation** — every key decision is confirmed
|
|
23
23
|
|
|
24
|
+
## CONTEXT RECOVERY
|
|
25
|
+
|
|
26
|
+
Re-read session variables from `.business-analyse/config.json` (do NOT rely on LLM memory):
|
|
27
|
+
```javascript
|
|
28
|
+
const config = readJSON('.business-analyse/config.json').currentFeature;
|
|
29
|
+
const { id: feature_id, docsDir: docs_dir, application: application_name,
|
|
30
|
+
applicationCode, workflowMode: workflow_mode, language, version } = config;
|
|
31
|
+
```
|
|
32
|
+
|
|
24
33
|
## YOUR TASK
|
|
25
34
|
|
|
26
35
|
Frame the analysis scope at the **application level** through an interactive conversation with the client: understand the problem, stakeholders, scope, and define application-level roles. The analysis phase is ALWAYS interactive — the AI listens, reformulates, challenges, and validates with the user.
|
|
@@ -127,9 +136,9 @@ Analyze `{feature_description}` silently:
|
|
|
127
136
|
4. **Prepare challenge questions** — specific to this brief, not generic
|
|
128
137
|
5. **Pre-identify anticipated sections and resources** per detected module
|
|
129
138
|
|
|
130
|
-
Store in `{pre_analysis}`
|
|
139
|
+
Store in `{pre_analysis}` — Write pre_analysis to cadrage.json as a `_preAnalysis` field (transient — removed on cadrage completion). This ensures the data survives context compaction:
|
|
131
140
|
```yaml
|
|
132
|
-
|
|
141
|
+
_preAnalysis:
|
|
133
142
|
problem_type: "new_tool|replace|automate|centralize"
|
|
134
143
|
detected_modules: [{name, description, detected_sections}]
|
|
135
144
|
shadow_zones: [{topic, why_it_matters, challenge_question}]
|
|
@@ -310,7 +319,7 @@ ULTRATHINK — Entity Architecture Analysis for {entity_name}:
|
|
|
310
319
|
- Module code: {PascalCase}
|
|
311
320
|
- Section `list`: {main entity grid + create action + navigation to detail}
|
|
312
321
|
- Detail page tabs: [{tab_name: content}] (accessible by clicking a row in list)
|
|
313
|
-
- Additional sections: [{code: justification}] (ONLY functional
|
|
322
|
+
- Additional sections: [{code: justification}] (ONLY functional sections: dashboard, approve, import, rapport...)
|
|
314
323
|
- Dependencies: [{which modules reference/are referenced by this entity}]
|
|
315
324
|
- Topological position: layer {N} (foundation if no dependencies)
|
|
316
325
|
```
|
|
@@ -430,7 +439,7 @@ options:
|
|
|
430
439
|
| Choice | Action |
|
|
431
440
|
|--------|--------|
|
|
432
441
|
| **Géré dans l'app** | Entity becomes a sub-entity of the parent module. Add as a **tab in the detail page** of the referencing module. Note in coverageMatrix with `parentModule` field. |
|
|
433
|
-
| **Nouveau module dédié** | **Add new module to `{pre_analysis}.detected_modules[]`** with the proposed architecture (sections, detail tabs, dependencies). Add to `coverageMatrix` as inScope. The `list` section is ALWAYS the main section. Additional sections ONLY for distinct functional
|
|
442
|
+
| **Nouveau module dédié** | **Add new module to `{pre_analysis}.detected_modules[]`** with the proposed architecture (sections, detail tabs, dependencies). Add to `coverageMatrix` as inScope. The `list` section is ALWAYS the main section. Additional sections ONLY for distinct functional sections (dashboard, approve, import...). `create` and `edit` are ACTIONS within `list` and detail pages, NEVER standalone sections. |
|
|
434
443
|
| **Système externe** | Flag for integration specification. Add to `coverageMatrix` as integration. Load questionnaire materials on integrations if not already covered. |
|
|
435
444
|
| **Liste simple en config** | Entity becomes a lookup/reference table (no dedicated module, no section). Note in coverageMatrix as config data. |
|
|
436
445
|
|
|
@@ -583,7 +592,7 @@ BEFORE transitioning to step-02:
|
|
|
583
592
|
- Create an entry in `cadrage.coverageMatrix[]`
|
|
584
593
|
- Assign it to inScope or outOfScope
|
|
585
594
|
- Assign the module that will cover it (or null if cross-cutting)
|
|
586
|
-
- List anticipated sections (Level 4) — ONLY functional
|
|
595
|
+
- List anticipated sections (Level 4) — ONLY functional sections
|
|
587
596
|
- List anticipated resources (Level 5) for each section
|
|
588
597
|
- List detail page tabs — for entities accessible via click from `list`
|
|
589
598
|
|
|
@@ -11,6 +11,15 @@ next_step: steps/step-03-specify.md
|
|
|
11
11
|
|
|
12
12
|
Identify the complete hierarchy **Application > Module > Section > Resource** from the cadrage data, then CHALLENGE each element to ensure nothing is missing or superfluous.
|
|
13
13
|
|
|
14
|
+
## Context Recovery
|
|
15
|
+
|
|
16
|
+
Re-read session variables from `.business-analyse/config.json`:
|
|
17
|
+
```javascript
|
|
18
|
+
const config = readJSON('.business-analyse/config.json').currentFeature;
|
|
19
|
+
const { id: feature_id, docsDir: docs_dir, application: application_name,
|
|
20
|
+
applicationCode, workflowMode: workflow_mode, language } = config;
|
|
21
|
+
```
|
|
22
|
+
|
|
14
23
|
## Prerequisites
|
|
15
24
|
|
|
16
25
|
- Step 01 (cadrage) completed
|
|
@@ -83,7 +92,7 @@ For each section:
|
|
|
83
92
|
| sectionType | permissionMode | When to use | Examples |
|
|
84
93
|
|---|---|---|---|
|
|
85
94
|
| `primary` | `crud` | Main entry point of the module, visible in menu | list |
|
|
86
|
-
| `functional` | `crud` or `custom` | Independent functional
|
|
95
|
+
| `functional` | `crud` or `custom` | Independent functional section with own access control | approve, import, planning |
|
|
87
96
|
| `view` | `inherit` | Subordinate view reached from a primary section | detail, edit |
|
|
88
97
|
| `embedded` | `read-only` | Widget or tab embedded in another section | dashboard (when embedded in module) |
|
|
89
98
|
|
|
@@ -182,6 +191,13 @@ Write via ba-writer:
|
|
|
182
191
|
}
|
|
183
192
|
```
|
|
184
193
|
|
|
194
|
+
## Status Update
|
|
195
|
+
|
|
196
|
+
After writing the structure, update the application status:
|
|
197
|
+
```javascript
|
|
198
|
+
ba-writer.updateStatus({feature_id}, "decomposed")
|
|
199
|
+
```
|
|
200
|
+
|
|
185
201
|
## Transition
|
|
186
202
|
|
|
187
203
|
→ Step 03 (specify) — Sequential module specification
|