@atlashub/smartstack-cli 4.18.0 → 4.20.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/package.json +1 -1
- package/templates/agents/ba-reader.md +86 -80
- package/templates/agents/ba-writer.md +318 -415
- package/templates/agents/docs-context-reader.md +3 -3
- package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -0
- package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -0
- package/templates/skills/apex/SKILL.md +29 -16
- package/templates/skills/apex/_shared.md +62 -9
- package/templates/skills/apex/references/analysis-methods.md +8 -6
- package/templates/skills/apex/references/challenge-questions.md +5 -5
- package/templates/skills/apex/references/core-seed-data.md +68 -45
- package/templates/skills/apex/references/frontend-route-wiring-app-tsx.md +26 -21
- package/templates/skills/apex/references/parallel-execution.md +156 -0
- package/templates/skills/apex/references/person-extension-pattern.md +12 -12
- package/templates/skills/apex/references/post-checks.md +1748 -1726
- package/templates/skills/apex/references/smartstack-api.md +63 -57
- package/templates/skills/apex/references/smartstack-frontend-compliance.md +594 -0
- package/templates/skills/apex/references/smartstack-frontend.md +1246 -1842
- package/templates/skills/apex/references/smartstack-layers.md +98 -145
- package/templates/skills/apex/steps/step-00-init.md +30 -6
- package/templates/skills/apex/steps/step-01-analyze.md +27 -23
- package/templates/skills/apex/steps/step-02-plan.md +12 -12
- package/templates/skills/apex/steps/step-03-execute.md +198 -143
- package/templates/skills/apex/steps/step-04-examine.md +24 -93
- package/templates/skills/apex/steps/step-05-deep-review.md +16 -16
- package/templates/skills/apex/steps/step-06-resolve.md +9 -9
- package/templates/skills/apex/steps/step-07-tests.md +3 -1
- package/templates/skills/apex/steps/step-08-run-tests.md +1 -1
- package/templates/skills/business-analyse/SKILL.md +182 -301
- package/templates/skills/business-analyse/_shared.md +119 -336
- package/templates/skills/business-analyse/html/ba-interactive.html +706 -85
- package/templates/skills/business-analyse/html/build-html.js +41 -3
- package/templates/skills/business-analyse/html/src/partials/cadrage-context.html +34 -0
- package/templates/skills/business-analyse/html/src/partials/cadrage-risks.html +48 -0
- package/templates/skills/business-analyse/html/src/partials/cadrage-scope.html +49 -0
- package/templates/skills/business-analyse/html/src/partials/cadrage-stakeholders.html +55 -0
- package/templates/skills/business-analyse/html/src/partials/cadrage-success.html +34 -0
- package/templates/skills/business-analyse/html/src/partials/consol-datamodel.html +8 -0
- package/templates/skills/business-analyse/html/src/partials/consol-flows.html +29 -0
- package/templates/skills/business-analyse/html/src/partials/consol-interactions.html +8 -0
- package/templates/skills/business-analyse/html/src/partials/consol-permissions.html +8 -0
- package/templates/skills/business-analyse/html/src/partials/decomp-dependencies.html +38 -0
- package/templates/skills/business-analyse/html/src/partials/decomp-modules.html +51 -0
- package/templates/skills/business-analyse/html/src/partials/handoff-summary.html +24 -0
- package/templates/skills/business-analyse/html/src/partials/module-spec-container.html +4 -0
- package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +17 -1
- package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +32 -6
- package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +100 -63
- package/templates/skills/business-analyse/html/src/scripts/06-render-mockups.js +372 -0
- package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +1 -1
- package/templates/skills/business-analyse/html/src/scripts/10-comments.js +41 -13
- package/templates/skills/business-analyse/html/src/styles/09-mockups-html.css +136 -0
- package/templates/skills/business-analyse/html/src/template.html +1 -1
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +7 -5
- package/templates/skills/business-analyse/questionnaire/01-context.md +11 -157
- package/templates/skills/business-analyse/questionnaire/02-stakeholders-scope.md +101 -0
- package/templates/skills/business-analyse/questionnaire/03-data-ui.md +92 -0
- package/templates/skills/business-analyse/questionnaire/04-risks-metrics.md +6 -0
- package/templates/skills/business-analyse/questionnaire/05-cross-module.md +69 -0
- package/templates/skills/business-analyse/questionnaire.md +22 -280
- package/templates/skills/business-analyse/react/application-viewer.md +2 -2
- package/templates/skills/business-analyse/react/components.md +4 -4
- package/templates/skills/business-analyse/react/i18n-template.md +1 -1
- package/templates/skills/business-analyse/react/schema.md +14 -14
- package/templates/skills/business-analyse/references/acceptance-criteria.md +21 -21
- package/templates/skills/business-analyse/references/analysis-semantic-checks.md +3 -3
- package/templates/skills/business-analyse/references/compilation-structure-cards.md +1 -1
- package/templates/skills/business-analyse/references/consolidation-structural-checks.md +5 -5
- package/templates/skills/business-analyse/references/deploy-data-build.md +12 -11
- package/templates/skills/business-analyse/references/deploy-modes.md +10 -10
- package/templates/skills/business-analyse/references/detection-strategies.md +6 -6
- package/templates/skills/business-analyse/references/html-data-mapping.md +15 -15
- package/templates/skills/business-analyse/references/naming-conventions.md +4 -4
- package/templates/skills/business-analyse/references/review-data-mapping.md +29 -29
- package/templates/skills/business-analyse/references/robustness-checks.md +36 -36
- package/templates/skills/business-analyse/references/spec-auto-inference.md +2 -2
- package/templates/skills/business-analyse/references/ui-dashboard-spec.md +1 -1
- package/templates/skills/business-analyse/references/ui-resource-cards.md +1 -1
- package/templates/skills/business-analyse/references/validation-checklist.md +3 -3
- package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +2 -2
- package/templates/skills/business-analyse/schemas/application-schema.json +8 -8
- package/templates/skills/business-analyse/schemas/feature-schema.json +3 -3
- package/templates/skills/business-analyse/schemas/index-schema.json +47 -0
- package/templates/skills/business-analyse/schemas/project-schema.json +6 -6
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +1 -1
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +5 -3
- package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +4 -4
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +1 -1
- package/templates/skills/business-analyse/schemas/shared/common-defs.json +4 -4
- package/templates/skills/business-analyse/steps/step-00-init.md +68 -77
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +50 -216
- package/templates/skills/business-analyse/steps/step-02-structure.md +175 -0
- package/templates/skills/business-analyse/steps/step-03-specify.md +198 -0
- package/templates/skills/business-analyse/steps/step-04-consolidate.md +478 -0
- package/templates/skills/business-analyse/steps/step-05-deploy.md +220 -0
- package/templates/skills/business-analyse/steps/step-06-review.md +51 -69
- package/templates/skills/business-analyse/templates/tpl-frd.md +1 -1
- package/templates/skills/business-analyse/templates/tpl-handoff.md +20 -17
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +2 -2
- package/templates/skills/business-analyse/templates-react.md +2 -2
- package/templates/skills/derive-prd/SKILL.md +92 -0
- package/templates/skills/derive-prd/references/acceptance-criteria.md +169 -0
- package/templates/skills/derive-prd/references/entity-domain-mapping.md +115 -0
- package/templates/skills/{business-analyse → derive-prd}/references/handoff-file-templates.md +131 -120
- package/templates/skills/{business-analyse → derive-prd}/references/handoff-mappings.md +95 -95
- package/templates/skills/{business-analyse → derive-prd}/references/handoff-seeddata-generation.md +312 -312
- package/templates/skills/{business-analyse → derive-prd}/references/prd-generation.md +262 -263
- package/templates/skills/derive-prd/references/readiness-scoring.md +104 -0
- package/templates/skills/derive-prd/schemas/handoff-schema.json +95 -0
- package/templates/skills/derive-prd/steps/step-00-validate.md +130 -0
- package/templates/skills/derive-prd/steps/step-01-transform.md +206 -0
- package/templates/skills/derive-prd/steps/step-02-export.md +181 -0
- package/templates/skills/{business-analyse → derive-prd}/templates/tpl-progress.md +172 -172
- package/templates/skills/documentation/SKILL.md +7 -0
- package/templates/skills/ralph-loop/SKILL.md +2 -1
- package/templates/skills/ralph-loop/references/init-resume-recovery.md +1 -1
- package/templates/skills/ralph-loop/steps/step-01-task.md +2 -2
- package/templates/skills/apex/references/agent-teams-protocol.md +0 -203
- package/templates/skills/business-analyse/_architecture.md +0 -124
- package/templates/skills/business-analyse/_elicitation.md +0 -206
- package/templates/skills/business-analyse/_module-loop.md +0 -115
- package/templates/skills/business-analyse/_rules.md +0 -142
- package/templates/skills/business-analyse/_suggestions.md +0 -34
- package/templates/skills/business-analyse/questionnaire/00-application.md +0 -160
- package/templates/skills/business-analyse/questionnaire/00b-project.md +0 -85
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +0 -189
- package/templates/skills/business-analyse/questionnaire/03-scope.md +0 -164
- package/templates/skills/business-analyse/questionnaire/04-data.md +0 -88
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +0 -58
- package/templates/skills/business-analyse/questionnaire/06-security.md +0 -68
- package/templates/skills/business-analyse/questionnaire/07-ui.md +0 -76
- package/templates/skills/business-analyse/questionnaire/08-performance.md +0 -42
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +0 -45
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +0 -58
- package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +0 -59
- package/templates/skills/business-analyse/questionnaire/12-migration.md +0 -58
- package/templates/skills/business-analyse/questionnaire/13-cross-module.md +0 -69
- package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +0 -135
- package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +0 -136
- package/templates/skills/business-analyse/references/agent-module-prompt.md +0 -366
- package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +0 -557
- package/templates/skills/business-analyse/references/cache-warming-strategy.md +0 -566
- package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +0 -41
- package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +0 -74
- package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +0 -115
- package/templates/skills/business-analyse/references/cadrage-shared-modules.md +0 -68
- package/templates/skills/business-analyse/references/cadrage-structure-cards.md +0 -85
- package/templates/skills/business-analyse/references/team-orchestration.md +0 -1093
- package/templates/skills/business-analyse/references/validate-incremental-html.md +0 -121
- package/templates/skills/business-analyse/steps/step-01b-applications.md +0 -419
- package/templates/skills/business-analyse/steps/step-02-decomposition.md +0 -387
- package/templates/skills/business-analyse/steps/step-03a-data.md +0 -16
- package/templates/skills/business-analyse/steps/step-03a1-setup.md +0 -486
- package/templates/skills/business-analyse/steps/step-03a2-analysis.md +0 -300
- package/templates/skills/business-analyse/steps/step-03b-ui.md +0 -405
- package/templates/skills/business-analyse/steps/step-03c-compile.md +0 -516
- package/templates/skills/business-analyse/steps/step-03d-validate.md +0 -691
- package/templates/skills/business-analyse/steps/step-04-consolidation.md +0 -17
- package/templates/skills/business-analyse/steps/step-04a-collect.md +0 -415
- package/templates/skills/business-analyse/steps/step-04b-analyze.md +0 -163
- package/templates/skills/business-analyse/steps/step-04c-decide.md +0 -186
- package/templates/skills/business-analyse/steps/step-05a-handoff.md +0 -937
- package/templates/skills/business-analyse/steps/step-05b-deploy.md +0 -522
- package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +0 -703
|
@@ -1,383 +1,166 @@
|
|
|
1
|
-
# Business Analysis
|
|
2
|
-
|
|
3
|
-
> **Ref:** Core shared functions loaded by ALL BA steps.
|
|
4
|
-
>
|
|
5
|
-
> **Conditional files (loaded per-step as needed):**
|
|
6
|
-
> - `_elicitation.md` — Interactive protocol, techniques 1-8, AskUserQuestion format, ULTRATHINK
|
|
7
|
-
> - `_architecture.md` — SmartStack 5 layers, entity base classes, DB conventions, SeedData Core
|
|
8
|
-
> - `_module-loop.md` — Module iteration protocol, state management, resume logic
|
|
9
|
-
> - `_suggestions.md` — Proactive suggestions, Context7 libraries
|
|
10
|
-
|
|
11
|
-
---
|
|
1
|
+
# Business Analysis — Shared Conventions
|
|
12
2
|
|
|
13
3
|
## JSON-First Architecture
|
|
14
4
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
### Project-Level (Multi-App Master) — Only if 2+ applications
|
|
18
|
-
**Path:** `docs/business-analyse/v{X.Y}/feature.json`
|
|
19
|
-
**Schema:** `docs/business-analyse/schemas/project-schema.json`
|
|
20
|
-
**$schema:** `"../schemas/project-schema.json"`
|
|
21
|
-
|
|
22
|
-
| Step | Section enriched | Status after |
|
|
23
|
-
|------|-----------------|--------------|
|
|
24
|
-
| 00-init | metadata | draft |
|
|
25
|
-
| 01-cadrage | cadrage (global problem, stakeholders, scope, roles) | framed |
|
|
26
|
-
| 01b-applications | applications[], applicationDependencyGraph | decomposed |
|
|
27
|
-
| 02-05 | applications[].status updated per iteration | specified → handed-off |
|
|
28
|
-
|
|
29
|
-
> **Backward compatibility:** If only 1 application is identified, the project level is NOT created. The application-level feature.json remains the master (current behavior).
|
|
30
|
-
|
|
31
|
-
### Application-Level (Master)
|
|
32
|
-
**Path:** `docs/{app}/business-analyse/v{X.Y}/feature.json`
|
|
33
|
-
**Schema:** `docs/{app}/business-analyse/schemas/application-schema.json` (deployed to project by step-00)
|
|
34
|
-
**$schema:** `"../schemas/application-schema.json"` (relative in feature.json)
|
|
35
|
-
|
|
36
|
-
| Step | Section enriched | Status after |
|
|
37
|
-
|------|-----------------|--------------|
|
|
38
|
-
| 00-init (or 01b) | metadata | draft |
|
|
39
|
-
| 01-cadrage | cadrage (problem, stakeholders, scope, roles) | framed |
|
|
40
|
-
| 02-decomposition | modules, dependencyGraph | decomposed |
|
|
41
|
-
| 03-specify | modules[].status updated per iteration | specified |
|
|
42
|
-
| 04-consolidation | consolidation | consolidated |
|
|
43
|
-
| 05-handoff | (per-module handoff) | handed-off |
|
|
44
|
-
|
|
45
|
-
### Module-Level (Per Module)
|
|
46
|
-
**Path:** `docs/{app}/{module}/business-analyse/v{X.Y}/feature.json`
|
|
47
|
-
**Schema:** `docs/{app}/business-analyse/schemas/feature-schema.json` (deployed to project by step-00)
|
|
48
|
-
**$schema:** `"../../../business-analyse/schemas/feature-schema.json"` (relative in feature.json)
|
|
49
|
-
|
|
50
|
-
| Step | Section enriched | Status after |
|
|
51
|
-
|------|-----------------|--------------|
|
|
52
|
-
| 03-specify (init) | metadata, applicationContext | in-progress |
|
|
53
|
-
| 03-specify (sections) | specification.wireframes | in-progress |
|
|
54
|
-
| 03-specify (entities) | analysis.entities, analysis.businessRules | in-progress |
|
|
55
|
-
| 03-specify (spec) | specification (full) | specified |
|
|
56
|
-
| 03-specify (validate) | validation | validated |
|
|
57
|
-
|
|
58
|
-
**Agents:**
|
|
59
|
-
- **ba-writer**: Writes/updates feature.json (create, enrichSection, updateStatus, createVersion, createApplicationFeature, createProjectFeature, enrichApplicationRegistry, advanceModuleLoop, advanceApplicationLoop)
|
|
60
|
-
- **ba-reader**: Reads feature.json (findFeature, findProjectFeature, readSection, answerQuestion, getSummaryForSkill, readApplicationContext, getCompletedModulesSummary, getCompletedApplicationsSummary)
|
|
61
|
-
|
|
62
|
-
**Schemas:** Deployed to project at `docs/{app}/business-analyse/schemas/` (10 files, including project-schema.json). Source: `schemas/` in skill directory. Every feature.json includes `$schema` relative reference.
|
|
63
|
-
|
|
64
|
-
### Workflow Modes
|
|
65
|
-
|
|
66
|
-
| Mode | Trigger | Master Level | Loop |
|
|
67
|
-
|------|---------|-------------|------|
|
|
68
|
-
| `"module"` | 1 module only | Application | No loop |
|
|
69
|
-
| `"application"` | 1 app, 2+ modules | Application | Module loop |
|
|
70
|
-
| `"project"` | 2+ applications | Project | Application loop → Module loop per app |
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## 4-Level Navigation Hierarchy (SmartStack)
|
|
75
|
-
|
|
76
|
-
> **This is the structuring principle of the entire BA workflow.**
|
|
77
|
-
|
|
78
|
-
The BA aligns with the SmartStack navigation hierarchy:
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
Level 1: Application (Sales)
|
|
82
|
-
Level 2: Module (Customers)
|
|
83
|
-
Level 3: Section (list) ← sidebar nav
|
|
84
|
-
Level 4: Resource (customer-grid)
|
|
85
|
-
Level 4: Resource (customer-filters)
|
|
86
|
-
Level 3: Section (detail) [hidden] ← reached by row click, route :id
|
|
87
|
-
Level 4: Resource (customer-detail-header)
|
|
88
|
-
Level 4: Resource (customer-detail-tabs)
|
|
89
|
-
Level 4: Resource (customer-info-card)
|
|
90
|
-
Level 4: Resource (customer-orders-grid) ← relation tab
|
|
91
|
-
Level 4: Resource (customer-history) ← audit tab
|
|
92
|
-
Level 2: Module (Orders)
|
|
93
|
-
Level 3: Section (list) ← sidebar nav
|
|
94
|
-
Level 3: Section (detail) [hidden] ← reached by row click
|
|
95
|
-
Level 3: Section (approve) ← sidebar nav (workflow)
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**CRITICAL — Application identification (Level 1):**
|
|
99
|
-
The application is formally identified in step-01b (ALWAYS, even for single-app mode):
|
|
100
|
-
- Code: PascalCase (e.g., "HumanResources")
|
|
101
|
-
- Route: kebab-case (e.g., "/human-resources")
|
|
102
|
-
- Icon: Lucide icon name
|
|
103
|
-
- Sort order: position in navigation
|
|
104
|
-
This creates the `seedDataCore.navigationApplications` entry that links modules to their parent application.
|
|
105
|
-
The `seedDataCore.applicationRoles` entries are also built from `cadrage.applicationRoles`.
|
|
106
|
-
|
|
107
|
-
| BA Phase | Levels treated | What is defined |
|
|
108
|
-
|----------|---------------|-----------------|
|
|
109
|
-
| Cadrage (step-01) | Application | Problem, stakeholders, scope, application-level roles |
|
|
110
|
-
| Decomposition (step-02) | Modules | Module list, dependencies, processing order |
|
|
111
|
-
| Specification (step-03) | Module → Sections → Resources (levels 2-3-4) | Entities, BR, UC, permissions, ASCII/SVG mockups per section |
|
|
112
|
-
| Consolidation (step-04) | Cross-module | Interactions, permission coherence, E2E flows |
|
|
113
|
-
| Handoff (step-05) | All levels | Implementation mapping, prd.json |
|
|
114
|
-
|
|
115
|
-
### Route patterns
|
|
116
|
-
```
|
|
117
|
-
/{application}/{module} ← list section (= module route, NO /list suffix)
|
|
118
|
-
/{application}/{module}/:id ← detail page (= module route + /:id, NO /detail prefix)
|
|
119
|
-
/{application}/{module}/{section} ← other sidebar sections (dashboard, approve, import, etc.)
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
**Detail page routing:**
|
|
123
|
-
- The detail page uses a parameterized route with `:id`
|
|
124
|
-
- It is NOT registered as a sidebar navigation entry (`navigation: "hidden"`)
|
|
125
|
-
- It is reached by clicking a row in the `list` section (action: `navigate:detail`)
|
|
126
|
-
- The back button navigates to `/{application}/{module}`
|
|
127
|
-
- Route MUST be registered in frontend routing (App.tsx) alongside the list route
|
|
128
|
-
|
|
129
|
-
> **ROUTE SPECIAL CASES (list and detail sections):**
|
|
130
|
-
> `list` and `detail` are view modes of the module, NOT functional sub-areas.
|
|
131
|
-
> - `list` route = module route (NO `/list` suffix) — React Router index route
|
|
132
|
-
> - `detail` route = module route + `/:id` (NO `/detail/` prefix) — React Router `:id` child
|
|
133
|
-
> - FORBIDDEN in navigation seed: `/module/list`, `/module/detail/:id`
|
|
134
|
-
> - Other sections (dashboard, approve, import) add `/{section-kebab}` normally
|
|
135
|
-
|
|
136
|
-
### Standard Sections per Module
|
|
137
|
-
|
|
138
|
-
> **RULE: Sections are functional zones, NOT CRUD operations.**
|
|
139
|
-
> `create` and `edit` are SEPARATE PAGES with their own URL routes (`/create` and `/:id/edit`).
|
|
140
|
-
> `detail` is a page with tabs accessible by clicking a row in `list` (not a standalone nav section).
|
|
141
|
-
|
|
142
|
-
| Section | Purpose | Typical Components |
|
|
143
|
-
|---------|---------|-------------------|
|
|
144
|
-
| `list` | **Main page**: entity grid + create button (navigates to `/create` page) + click to detail | DataGrid, FilterBar, Pagination, CreateButton |
|
|
145
|
-
| `detail` | **Reached from list** (hidden nav, route `:id`): tabbed view of entity details + edit button (navigates to `/:id/edit` page) | BackButton, DetailHeader, StatusBadge, TabPanel, DetailCard, SmartTable (relations), Timeline (history) |
|
|
146
|
-
| `dashboard` | Module overview/KPIs (if analytics needed) | Charts, StatCards, RecentActivity |
|
|
147
|
-
| `approve` | Approval workflow queue (if validation workflow) | ApprovalPanel, StatusTimeline |
|
|
148
|
-
| `import` | Bulk data import (if volume > 100) | FileUpload, MappingTable, Preview |
|
|
149
|
-
| `rapport` | Module-specific reporting | ReportBuilder, ExportPanel |
|
|
150
|
-
| `planning` | Calendar/planning view (if time-based data) | Calendar, GanttChart, TimelineView |
|
|
151
|
-
|
|
152
|
-
**What is NEVER a section:**
|
|
153
|
-
|
|
154
|
-
| NOT a sidebar section | What it really is |
|
|
155
|
-
|---------------|-------------------|
|
|
156
|
-
| `create` | Action button in `list` page → navigates to `/create` page with form |
|
|
157
|
-
| `edit` | Action in list/detail page → navigates to `/:id/edit` page with pre-filled form |
|
|
158
|
-
| `delete` | Action with inline confirmation in `list` or detail |
|
|
159
|
-
| `search` | FilterBar component integrated in the `list` section |
|
|
160
|
-
|
|
161
|
-
> **Note on `detail`:** The detail page IS a `specification.sections[]` entry (with `navigation: "hidden"`) so it gets a wireframe, resources, and route. But it is NOT shown in the sidebar — it is reached by clicking a row in `list`. Every module with a `list` section MUST have a companion `detail` section.
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
---
|
|
5
|
+
Feature data is stored as granular JSON files, NOT markdown. Each module has an `index.json` referencing thematic files.
|
|
166
6
|
|
|
167
|
-
|
|
7
|
+
### File structure
|
|
168
8
|
|
|
169
9
|
```
|
|
170
10
|
docs/
|
|
171
|
-
business-analyse/
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
11
|
+
business-analyse/v{X.Y}/
|
|
12
|
+
index.json ← Project index (multi-app only)
|
|
13
|
+
cadrage.json ← Project-level framing
|
|
14
|
+
{app}/
|
|
15
|
+
business-analyse/v{X.Y}/
|
|
16
|
+
index.json ← Application index
|
|
17
|
+
cadrage.json ← App-level framing
|
|
18
|
+
{module}/
|
|
19
|
+
business-analyse/v{X.Y}/
|
|
20
|
+
index.json ← Module index
|
|
21
|
+
entities.json ← Entities, attributes, relations
|
|
22
|
+
rules.json ← Business rules
|
|
23
|
+
usecases.json ← Use cases
|
|
24
|
+
permissions.json ← Permissions matrix
|
|
25
|
+
screens.json ← Interface specs (sections, resources, mockups)
|
|
26
|
+
validation.json ← Validation results
|
|
27
|
+
handoff.json ← File mapping, API specs
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Index.json structure
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"metadata": {
|
|
35
|
+
"featureId": "FEAT-001",
|
|
36
|
+
"moduleCode": "Employees",
|
|
37
|
+
"applicationCode": "HumanResources",
|
|
38
|
+
"version": "1.0",
|
|
39
|
+
"status": "specified",
|
|
40
|
+
"createdAt": "...",
|
|
41
|
+
"lastModified": "..."
|
|
42
|
+
},
|
|
43
|
+
"files": {
|
|
44
|
+
"entities": { "path": "entities.json", "hash": "abc123", "lastModified": "..." },
|
|
45
|
+
"rules": { "path": "rules.json", "hash": "def456", "lastModified": "..." },
|
|
46
|
+
...
|
|
47
|
+
},
|
|
48
|
+
"summary": {
|
|
49
|
+
"entityCount": 3,
|
|
50
|
+
"ruleCount": 5,
|
|
51
|
+
"useCaseCount": 8,
|
|
52
|
+
"permissionCount": 22,
|
|
53
|
+
"screenCount": 4,
|
|
54
|
+
"dependencies": ["Absences"]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
201
57
|
```
|
|
202
58
|
|
|
203
|
-
|
|
59
|
+
### Partial loading
|
|
204
60
|
|
|
205
|
-
|
|
61
|
+
Steps load only the files they need:
|
|
62
|
+
- **ba-reader** reads `index.json` to discover files, then loads only the requested file
|
|
63
|
+
- **ba-writer** writes to specific files (e.g., `entities.json`) and updates the hash in `index.json`
|
|
206
64
|
|
|
207
|
-
|
|
208
|
-
.ralph/
|
|
209
|
-
prd.json # Task breakdown derived from handoff (for /ralph-loop)
|
|
210
|
-
progress.txt # Links back to BA feature documents
|
|
211
|
-
logs/
|
|
212
|
-
reports/
|
|
213
|
-
```
|
|
65
|
+
## Workflow Modes
|
|
214
66
|
|
|
215
|
-
|
|
67
|
+
| Mode | Trigger | Description |
|
|
68
|
+
|------|---------|-------------|
|
|
69
|
+
| `new` | No existing index.json | Full analysis from scratch |
|
|
70
|
+
| `update` | Existing index.json found | Delta analysis (add modules, update specs) |
|
|
71
|
+
| `review` | ba-review.json provided | Apply client corrections from HTML export |
|
|
216
72
|
|
|
217
|
-
|
|
73
|
+
### Workflow detection
|
|
218
74
|
|
|
219
75
|
```
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
update_config(".business-analyse/config.json", "lastFeatureId", new_id)
|
|
224
|
-
RETURN format("FEAT-%03d", new_id)
|
|
225
|
-
|
|
226
|
-
generate_project_id():
|
|
227
|
-
last_id = read_config(".business-analyse/config.json", "lastProjectId") OR 0
|
|
228
|
-
new_id = last_id + 1
|
|
229
|
-
update_config(".business-analyse/config.json", "lastProjectId", new_id)
|
|
230
|
-
RETURN format("PROJ-%03d", new_id)
|
|
76
|
+
1. Check for ba-review.json in project root → mode = "review"
|
|
77
|
+
2. Check for existing docs/**/index.json → mode = "update"
|
|
78
|
+
3. Otherwise → mode = "new"
|
|
231
79
|
```
|
|
232
80
|
|
|
233
|
-
|
|
81
|
+
## Navigation Hierarchy
|
|
234
82
|
|
|
235
|
-
|
|
83
|
+
Maps to SmartStack DB tables:
|
|
236
84
|
|
|
237
|
-
| Level |
|
|
238
|
-
|
|
239
|
-
|
|
|
240
|
-
|
|
|
85
|
+
| Level | DB Table | Example |
|
|
86
|
+
|-------|----------|---------|
|
|
87
|
+
| Application | nav_Applications | HumanResources |
|
|
88
|
+
| Module | nav_Modules | Employees |
|
|
89
|
+
| Section | nav_Sections | list, detail |
|
|
90
|
+
| Resource | nav_Resources | employees-grid, employee-form |
|
|
241
91
|
|
|
242
|
-
|
|
243
|
-
>
|
|
244
|
-
> **CRITICAL — All segments use kebab-case:** Multi-word codes MUST have hyphens. `human-resources`, NOT `humanresources`. Matches NavRoute convention. SmartStack.app ref: `support-client.my-tickets.read`
|
|
92
|
+
### Naming conventions
|
|
245
93
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
| Update | `.update` | PUT endpoints |
|
|
251
|
-
| Delete | `.delete` | DELETE endpoints |
|
|
252
|
-
| Export | `.export` | Export data |
|
|
253
|
-
| Import | `.import` | Import data |
|
|
254
|
-
| Admin | `.admin` | Administrative |
|
|
94
|
+
- **Application code**: PascalCase (e.g., `HumanResources`)
|
|
95
|
+
- **Module code**: PascalCase (e.g., `Employees`)
|
|
96
|
+
- **Section code**: kebab-case (e.g., `list`, `detail`, `dashboard`)
|
|
97
|
+
- **Resource code**: kebab-case (e.g., `employees-grid`, `employee-form`)
|
|
255
98
|
|
|
256
|
-
|
|
99
|
+
## Permission Paths
|
|
257
100
|
|
|
258
|
-
|
|
101
|
+
Format: `{ApplicationCode}.{ModuleCode}.{Action}`
|
|
259
102
|
|
|
260
|
-
|
|
261
|
-
|----------|------|------|
|
|
262
|
-
| French | `fr/docs-{app}-{module}.json` | fr |
|
|
263
|
-
| English | `en/docs-{app}-{module}.json` | en |
|
|
264
|
-
| Italian | `it/docs-{app}-{module}.json` | it |
|
|
265
|
-
| German | `de/docs-{app}-{module}.json` | de |
|
|
103
|
+
Actions: `Read`, `Create`, `Update`, `Delete`, `Export`, `Validate`
|
|
266
104
|
|
|
267
|
-
|
|
105
|
+
Example: `HumanResources.Employees.Read`
|
|
268
106
|
|
|
269
|
-
|
|
107
|
+
For section-level: `{ApplicationCode}.{ModuleCode}.{SectionCode}.{Action}`
|
|
270
108
|
|
|
271
|
-
|
|
272
|
-
|------|------|
|
|
273
|
-
| BA Feature | `docs/{app}/{module}/business-analyse/v{X.Y}/feature.json` |
|
|
274
|
-
| User Guide | `docs/{app}/{module}/user-guide/v{X.Y}/guide.json` |
|
|
275
|
-
| i18n | `web/smartstack-web/src/i18n/locales/{lang}/` |
|
|
109
|
+
## Agents
|
|
276
110
|
|
|
277
|
-
|
|
111
|
+
### ba-writer
|
|
278
112
|
|
|
279
|
-
|
|
113
|
+
Writes granular JSON files. Key operations:
|
|
114
|
+
- `create(scope, data)` — Create index.json + initial files
|
|
115
|
+
- `enrichSection(fileType, data)` — Write to specific file (entities.json, rules.json, etc.)
|
|
116
|
+
- `updateIndex(summary)` — Update index.json metadata and summary
|
|
117
|
+
- `createVersion(type)` — Create new version (major/minor)
|
|
118
|
+
- `applyReview(reviewData)` — Apply ba-review.json corrections
|
|
280
119
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
```json
|
|
284
|
-
{
|
|
285
|
-
"metadata": {
|
|
286
|
-
"featureId": "FEAT-001",
|
|
287
|
-
"status": "analysed",
|
|
288
|
-
"steps": {
|
|
289
|
-
"00-init": { "completed": "2025-02-01T10:00:00Z" },
|
|
290
|
-
"01-analyse": { "completed": "2025-02-01T11:30:00Z" },
|
|
291
|
-
"02-specify": { "inProgress": true }
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
```
|
|
120
|
+
### ba-reader
|
|
296
121
|
|
|
297
|
-
|
|
122
|
+
Reads via index.json. Key operations:
|
|
123
|
+
- `findFeature(featureId)` — Locate feature by ID
|
|
124
|
+
- `readSection(moduleCode, fileType)` — Read specific file via index
|
|
125
|
+
- `getModuleStatus()` — Status table of all modules
|
|
126
|
+
- `getCompletedModulesSummary()` — Compact summaries for context loading
|
|
127
|
+
- `getSummaryForSkill(skill)` — Context for other skills (ralph-loop, etc.)
|
|
298
128
|
|
|
299
|
-
##
|
|
129
|
+
## Status Progression
|
|
300
130
|
|
|
301
131
|
```
|
|
302
|
-
|
|
303
|
-
1. ba-reader.findFeature(feat_id) -> latest feature.json
|
|
304
|
-
2. Read feature.json.metadata.steps -> find last completed step
|
|
305
|
-
3. Load next step file
|
|
306
|
-
4. If not found: offer to create fresh feature.json
|
|
132
|
+
draft → identified → specified → validated → reviewed
|
|
307
133
|
```
|
|
308
134
|
|
|
309
|
-
|
|
135
|
+
| Status | Set by | Meaning |
|
|
136
|
+
|--------|--------|---------|
|
|
137
|
+
| draft | Step 00 | Feature created, no content |
|
|
138
|
+
| identified | Step 02 | Hierarchy identified (App > Module > Section > Resource) |
|
|
139
|
+
| specified | Step 03 | Module fully specified (entities, UCs, BRs, permissions, screens) |
|
|
140
|
+
| validated | Step 04 | Cross-module validation passed |
|
|
141
|
+
| reviewed | Step 06 | Client review applied |
|
|
310
142
|
|
|
311
|
-
##
|
|
143
|
+
## Handoff & PRD Generation
|
|
312
144
|
|
|
313
|
-
|
|
314
|
-
{STEP_NAME} - {feature_id}
|
|
315
|
-
Status: {status in feature.json}
|
|
316
|
-
Section enriched: {discovery|analysis|specification|validation|handoff}
|
|
317
|
-
feature.json: {path}
|
|
318
|
-
Next: {next step name}
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## Configuration Langue de Communication
|
|
324
|
-
|
|
325
|
-
> **Objectif :** La langue de communication avec le client est configurable.
|
|
326
|
-
> Toute interaction via `AskUserQuestion` (questions, options, reformulations, relances)
|
|
327
|
-
> doit etre dans la langue configuree.
|
|
328
|
-
|
|
329
|
-
### Configuration
|
|
330
|
-
|
|
331
|
-
Le champ `language` dans `feature.json.metadata.language` definit la langue :
|
|
332
|
-
|
|
333
|
-
| Langue | Code | Defaut |
|
|
334
|
-
|--------|------|--------|
|
|
335
|
-
| Francais | `fr` | **Oui** |
|
|
336
|
-
| English | `en` | Non |
|
|
337
|
-
| Italiano | `it` | Non |
|
|
338
|
-
| Deutsch | `de` | Non |
|
|
339
|
-
|
|
340
|
-
### Portee
|
|
341
|
-
|
|
342
|
-
| Element | Adapte a la langue ? |
|
|
343
|
-
|---------|---------------------|
|
|
344
|
-
| Questions `AskUserQuestion` (labels, descriptions, options) | **OUI** — toujours dans `{language}` |
|
|
345
|
-
| Reformulations et resumes de categorie | **OUI** — toujours dans `{language}` |
|
|
346
|
-
| Relances et follow-ups (Elicitation Guide) | **OUI** — traduire les probes a la volee |
|
|
347
|
-
| Documents generes (discovery, analysis, specification, handoff) | **OUI** — rediges dans `{language}` |
|
|
348
|
-
| Reference technique interne (patterns, architecture) | NON — reste en langue du fichier |
|
|
349
|
-
| Noms de code (entites, permissions, paths) | NON — toujours en anglais (convention plateforme) |
|
|
350
|
-
|
|
351
|
-
### Regle
|
|
145
|
+
Handoff data and PRD files are generated by the `/derive-prd` skill, not by step-05. Step-05 only deploys the interactive HTML document. The workflow is:
|
|
352
146
|
|
|
353
147
|
```
|
|
354
|
-
|
|
355
|
-
2. Adapter TOUTE communication AskUserQuestion dans {language}
|
|
356
|
-
3. Les exemples de probes/relances dans les questionnaires sont en francais
|
|
357
|
-
-> Si {language} != "fr", les traduire a la volee
|
|
358
|
-
4. Les documents generes sont rediges dans {language}
|
|
359
|
-
5. Le code, les noms d'entites et les paths restent TOUJOURS en anglais
|
|
360
|
-
6. Ne JAMAIS utiliser "SmartStack" dans les communications utilisateur
|
|
361
|
-
-> Utiliser "la plateforme", "l'application" ou "le systeme" a la place
|
|
362
|
-
-> SmartStack est le nom interne du framework, le projet client a son propre nom
|
|
148
|
+
/business-analyse (steps 00-05) → /derive-prd → /ralph-loop
|
|
363
149
|
```
|
|
364
150
|
|
|
365
|
-
|
|
151
|
+
## HTML Integration
|
|
366
152
|
|
|
367
|
-
|
|
153
|
+
Single unified HTML (`ba-interactive.html`) generated in step 05:
|
|
368
154
|
|
|
369
|
-
|
|
370
|
-
{
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
"language": "fr",
|
|
374
|
-
"standards": ["BABOK-v3", "IEEE-830"],
|
|
375
|
-
"contact": "support@atlshub.ch"
|
|
376
|
-
}
|
|
377
|
-
```
|
|
155
|
+
- **Single-app**: `docs/{app}/business-analyse/v{X.Y}/ba-interactive.html`
|
|
156
|
+
- **Multi-app**: `docs/business-analyse/v{X.Y}/ba-interactive.html`
|
|
157
|
+
|
|
158
|
+
The HTML embeds all data as `FEATURE_DATA` JavaScript object. See `references/html-data-mapping.md` for the complete mapping.
|
|
378
159
|
|
|
379
|
-
|
|
160
|
+
## Resume Protocol
|
|
380
161
|
|
|
381
|
-
|
|
162
|
+
State is tracked in `index.json` metadata:
|
|
163
|
+
- `metadata.status` — Current status
|
|
164
|
+
- `metadata.lastModified` — Last modification timestamp
|
|
382
165
|
|
|
383
|
-
|
|
166
|
+
The step system checks metadata to determine where to resume.
|