@atlashub/smartstack-cli 4.19.0 → 4.21.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 +2 -2
- package/templates/skills/ba-generate-html/SKILL.md +60 -0
- package/templates/skills/{business-analyse → ba-generate-html}/html/ba-interactive.html +3 -3
- package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-risks.html +1 -1
- package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/02-navigation.js +1 -1
- package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/07-render-handoff.js +1 -1
- package/templates/skills/{business-analyse → ba-generate-html}/html/src/template.html +1 -1
- package/templates/skills/{business-analyse/references/deploy-data-build.md → ba-generate-html/references/data-build.md} +2 -2
- package/templates/skills/{business-analyse/references/html-data-mapping.md → ba-generate-html/references/data-mapping.md} +2 -2
- package/templates/skills/{business-analyse/references/deploy-modes.md → ba-generate-html/references/output-modes.md} +1 -1
- package/templates/skills/ba-generate-html/steps/step-01-collect.md +113 -0
- package/templates/skills/ba-generate-html/steps/step-02-build-data.md +237 -0
- package/templates/skills/ba-generate-html/steps/step-03-render.md +75 -0
- package/templates/skills/ba-generate-html/steps/step-04-verify.md +83 -0
- package/templates/skills/ba-review/SKILL.md +45 -0
- package/templates/skills/{business-analyse → ba-review}/references/review-data-mapping.md +2 -2
- package/templates/skills/{business-analyse/steps/step-06-review.md → ba-review/steps/step-01-apply.md} +7 -18
- package/templates/skills/business-analyse/SKILL.md +24 -59
- package/templates/skills/business-analyse/_shared.md +9 -14
- package/templates/skills/business-analyse/questionnaire/01-context.md +11 -157
- package/templates/skills/business-analyse/questionnaire/02-stakeholders-scope.md +9 -50
- package/templates/skills/business-analyse/questionnaire/03-data-ui.md +1 -3
- package/templates/skills/business-analyse/questionnaire/04-risks-metrics.md +4 -148
- package/templates/skills/business-analyse/questionnaire/05-cross-module.md +5 -5
- package/templates/skills/business-analyse/questionnaire.md +7 -8
- 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 +2 -7
- package/templates/skills/business-analyse/references/detection-strategies.md +3 -3
- package/templates/skills/business-analyse/references/naming-conventions.md +2 -2
- package/templates/skills/business-analyse/references/robustness-checks.md +2 -121
- package/templates/skills/business-analyse/references/validation-checklist.md +3 -4
- package/templates/skills/business-analyse/schemas/feature-schema.json +1 -1
- package/templates/skills/business-analyse/steps/step-00-init.md +6 -9
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +9 -49
- package/templates/skills/business-analyse/steps/step-04-consolidate.md +13 -6
- package/templates/skills/business-analyse/templates/tpl-handoff.md +1 -1
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +1 -1
- package/templates/skills/documentation/SKILL.md +7 -0
- package/templates/skills/business-analyse/steps/step-05-deploy.md +0 -220
- /package/templates/skills/{business-analyse → ba-generate-html}/html/build-html.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-context.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-scope.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-stakeholders.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-success.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/consol-datamodel.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/consol-flows.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/consol-interactions.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/consol-permissions.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/decomp-dependencies.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/decomp-modules.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/handoff-summary.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/module-spec-container.html +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/01-data-init.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/03-render-cadrage.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/04-render-modules.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/05-render-specs.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/06-render-consolidation.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/06-render-mockups.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/08-editing.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/09-export.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/10-comments.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/11-review-panel.js +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/01-variables.css +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/02-layout.css +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/03-navigation.css +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/04-cards.css +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/05-modules.css +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/06-wireframes.css +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/07-comments.css +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/08-review-panel.css +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/09-mockups-html.css +0 -0
- /package/templates/skills/{business-analyse → ba-generate-html}/references/wireframe-svg-style-guide.md +0 -0
|
@@ -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 →
|
|
104
|
+
1. IF review mode → inform user to use `/ba-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
|
|
|
@@ -496,13 +496,9 @@ If initialization was interrupted:
|
|
|
496
496
|
|
|
497
497
|
**Status-based resume routing (check in this order):**
|
|
498
498
|
|
|
499
|
-
- If status = `"handed-off"`:
|
|
500
|
-
→
|
|
501
|
-
→
|
|
502
|
-
|
|
503
|
-
- If status = `"consolidated"`:
|
|
504
|
-
→ Resume directly at `step-05-deploy.md`
|
|
505
|
-
→ Display: "Resuming from consolidation — proceeding to deployment..."
|
|
499
|
+
- If status = `"handed-off"` or `"consolidated"`:
|
|
500
|
+
→ Display: "BA workflow complete. Use /ba-generate-html to generate HTML, /ba-review for corrections."
|
|
501
|
+
→ STOP
|
|
506
502
|
|
|
507
503
|
- If status = `"specified"` AND `metadata.workflow.allModulesSpecified === true`:
|
|
508
504
|
→ Resume at `step-04-consolidate.md`
|
|
@@ -531,4 +527,5 @@ If a project-level index.json is found (scope = "project"):
|
|
|
531
527
|
→ All applications specified → Resume at `step-04-consolidate.md`
|
|
532
528
|
|
|
533
529
|
- If status = `"consolidated"`:
|
|
534
|
-
→
|
|
530
|
+
→ Display: "BA workflow complete. Use /ba-generate-html to generate HTML."
|
|
531
|
+
→ STOP
|
|
@@ -209,13 +209,11 @@ options:
|
|
|
209
209
|
#### 4a. Business Context (ALWAYS — from `questionnaire/01-context.md`)
|
|
210
210
|
|
|
211
211
|
> Load the full questionnaire reference for elicitation guides and alert signals.
|
|
212
|
+
> The questionnaire contains 3 targeted questions: Q1.1 (business process), Q1.4 (friction points), Q1.8 (vision).
|
|
212
213
|
|
|
213
|
-
|
|
214
|
-
**Mandatory minimum:** Q1.1 (problem), Q1.4 (current tools), Q1.8 (vision), Q1.11 (trigger).
|
|
214
|
+
Ask all 3 questions in 1 batch via AskUserQuestion.
|
|
215
215
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
Apply ULTRATHINK after each batch:
|
|
216
|
+
Apply ULTRATHINK after the batch:
|
|
219
217
|
- If answer is vague → probe deeper using the elicitation guide from 01-context.md
|
|
220
218
|
- If answer is solution-oriented → apply Technique 1 (reformulate as need)
|
|
221
219
|
- If answer is superficial → apply Technique 2 (chain of whys)
|
|
@@ -223,7 +221,9 @@ Apply ULTRATHINK after each batch:
|
|
|
223
221
|
|
|
224
222
|
#### 4b. Stakeholders (ALWAYS — from `questionnaire/02-stakeholders-scope.md`)
|
|
225
223
|
|
|
226
|
-
|
|
224
|
+
> The questionnaire contains 10 targeted questions covering profiles, tasks, access levels, scope, and user journey.
|
|
225
|
+
|
|
226
|
+
**Mandatory minimum:** Q2.1 (users), Q2.5 (tasks per profile), Q2.9-Q2.11 (access levels).
|
|
227
227
|
|
|
228
228
|
Ask in 1-2 batches. After each batch:
|
|
229
229
|
- If only 1 user type mentioned → probe: "Who else interacts? Managers? Admins? External users?"
|
|
@@ -232,7 +232,7 @@ Ask in 1-2 batches. After each batch:
|
|
|
232
232
|
|
|
233
233
|
#### 4c. Functional Scope (ALWAYS — from `questionnaire/02-stakeholders-scope.md`)
|
|
234
234
|
|
|
235
|
-
**Mandatory minimum:**
|
|
235
|
+
**Mandatory minimum:** Q2.13 (must-have), Q2.15 (exclusions), Q2.16 (main journey).
|
|
236
236
|
|
|
237
237
|
Ask in 1-2 batches. After each batch:
|
|
238
238
|
- If everything is "must-have" → **BLOCKING**: apply MoSCoW prioritization question
|
|
@@ -441,15 +441,7 @@ options:
|
|
|
441
441
|
|
|
442
442
|
> **CRITICAL:** The intelligence of this step is in the ULTRATHINK analysis. The AI must REASON about domain coherence, score the entity, and recommend — not just present 4 neutral options. The client can always override the recommendation, but they should benefit from expert architectural guidance.
|
|
443
443
|
|
|
444
|
-
#### 4e.
|
|
445
|
-
|
|
446
|
-
Select the most pertinent questions:
|
|
447
|
-
- **04-risks-metrics.md:** Risk identification, assumptions validation
|
|
448
|
-
- **04-risks-metrics.md:** Success definition, measurable objectives
|
|
449
|
-
|
|
450
|
-
Ask in 1 batch via AskUserQuestion.
|
|
451
|
-
|
|
452
|
-
#### 4f. Conditional Deep-Dives
|
|
444
|
+
#### 4e. Conditional Deep-Dives
|
|
453
445
|
|
|
454
446
|
Based on brief analysis, load additional materials if relevant:
|
|
455
447
|
|
|
@@ -460,33 +452,6 @@ Based on brief analysis, load additional materials if relevant:
|
|
|
460
452
|
| Performance requirements | Additional probing on non-functional needs |
|
|
461
453
|
| Technical constraints | Additional probing on platform constraints |
|
|
462
454
|
|
|
463
|
-
#### 4g. Documentation Needs (ALWAYS — from `questionnaire/03-data-ui.md`)
|
|
464
|
-
|
|
465
|
-
> **Every application requires documentation decisions made upfront, not as an afterthought.**
|
|
466
|
-
> Load relevant documentation section from questionnaire/03-data-ui.md
|
|
467
|
-
|
|
468
|
-
Ask in 1 batch via AskUserQuestion (max 3 questions):
|
|
469
|
-
- Will users need documentation (guide, FAQ, in-app tooltips)?
|
|
470
|
-
- Is technical documentation required (API docs, ERD, developer guide)?
|
|
471
|
-
- Who is responsible for maintaining documentation after delivery?
|
|
472
|
-
|
|
473
|
-
After the batch:
|
|
474
|
-
- If "Non" to both → probe: "Pas même les docs API ou un guide d'accueil pour les nouveaux utilisateurs ?"
|
|
475
|
-
- If "Oui" without detail → ask format: "Tooltips intégrés ? Guide PDF ? Wiki ? Portail dédié ?"
|
|
476
|
-
- If "La doc se fera après" → challenge: "La documentation est planifiée maintenant et générée par `/documentation` après `/ralph-loop`. Quel niveau souhaitez-vous ?"
|
|
477
|
-
|
|
478
|
-
**Store in `cadrage.documentation`:**
|
|
479
|
-
```json
|
|
480
|
-
{
|
|
481
|
-
"userDocumentation": { "needed": true, "format": "tooltips|guide|wiki|pdf|portal", "audience": "..." },
|
|
482
|
-
"technicalDocumentation": { "needed": true, "format": "swagger|erd|developer-guide", "generated": true },
|
|
483
|
-
"owner": "who maintains it",
|
|
484
|
-
"skill": "/documentation — runs after /ralph-loop"
|
|
485
|
-
}
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
This feeds directly into handoff step-05 category `documentation` in `filesToCreate`.
|
|
489
|
-
|
|
490
455
|
---
|
|
491
456
|
|
|
492
457
|
## PHASE 4: ANTICIPATION (Suggest Unexpressed Needs)
|
|
@@ -677,20 +642,16 @@ ba-writer.enrichSection({
|
|
|
677
642
|
problem: {from Phase 3, section 4a — Q1.1 answer or refined problem},
|
|
678
643
|
asIs: {from Phase 3, section 4a — Q1.4 answer},
|
|
679
644
|
toBe: {from Phase 3, section 4a — Q1.8 answer},
|
|
680
|
-
trigger: {from Phase 3, section 4a — Q1.11 answer},
|
|
681
645
|
stakeholders: [{from Phase 3, section 4b}],
|
|
682
646
|
globalScope: {
|
|
683
647
|
mustHave: [{from Phase 3, section 4c + Phase 4 accepted suggestions}],
|
|
684
648
|
shouldHave: [{from coverage matrix}],
|
|
685
649
|
couldHave: [{from coverage matrix}],
|
|
686
|
-
outOfScope: [{from Phase 3, section 4c —
|
|
650
|
+
outOfScope: [{from Phase 3, section 4c — Q2.15 exclusions}]
|
|
687
651
|
},
|
|
688
652
|
applicationRoles: [{from Phase 5, section 6}],
|
|
689
653
|
errorFlows: [{from Phase 3, section 4c}],
|
|
690
|
-
risks: [{from Phase 3, section 4e}],
|
|
691
|
-
acceptanceCriteria: [{from Phase 3, section 4e}],
|
|
692
654
|
coverageMatrix: [{from Phase 5, section 7 — with anticipatedSections and anticipatedResources}],
|
|
693
|
-
documentation: {from Phase 3, section 4g},
|
|
694
655
|
codebaseContext: "{string summary of codebase findings}"
|
|
695
656
|
}
|
|
696
657
|
})
|
|
@@ -708,7 +669,6 @@ ba-writer.updateStatus({feature_id}, "framed")
|
|
|
708
669
|
| Stakeholders | {count} |
|
|
709
670
|
| Must-have scope items | {count} |
|
|
710
671
|
| Application roles | {count} |
|
|
711
|
-
| Risks identified | {count} |
|
|
712
672
|
| Suggestions accepted | {count} |
|
|
713
673
|
| Anticipated sections | {total across all modules} |
|
|
714
674
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: step-04-consolidate
|
|
3
3
|
description: Cross-module validation - data model, permissions, E2E flows, approval
|
|
4
4
|
model: opus
|
|
5
|
-
next_step:
|
|
5
|
+
next_step: none
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
> **Context files:** `_shared.md`
|
|
@@ -34,8 +34,8 @@ ba-reader.readApplicationContext({feature_id})
|
|
|
34
34
|
→ cadrage.applicationRoles, modules[], dependencyGraph
|
|
35
35
|
|
|
36
36
|
IF status already "consolidated":
|
|
37
|
-
Display: "Consolidation already completed.
|
|
38
|
-
|
|
37
|
+
Display: "Consolidation already completed. BA workflow finished."
|
|
38
|
+
Display: "Next: invoke /ba-generate-html then /ba-review for client cycle."
|
|
39
39
|
STOP
|
|
40
40
|
```
|
|
41
41
|
|
|
@@ -443,7 +443,11 @@ Display final summary:
|
|
|
443
443
|
✓ All validations passed
|
|
444
444
|
✓ Client approval obtained
|
|
445
445
|
✓ Status: consolidated
|
|
446
|
-
|
|
446
|
+
|
|
447
|
+
BA workflow complete. Next steps:
|
|
448
|
+
→ Invoke /ba-generate-html to generate the interactive HTML
|
|
449
|
+
→ Invoke /ba-review to apply client corrections
|
|
450
|
+
→ Invoke /derive-prd → /ralph-loop for implementation
|
|
447
451
|
```
|
|
448
452
|
|
|
449
453
|
---
|
|
@@ -473,6 +477,9 @@ Display final summary:
|
|
|
473
477
|
|
|
474
478
|
---
|
|
475
479
|
|
|
476
|
-
## NEXT
|
|
480
|
+
## NEXT STEPS
|
|
477
481
|
|
|
478
|
-
|
|
482
|
+
BA workflow ends here. After consolidation:
|
|
483
|
+
1. Invoke `/ba-generate-html` to generate the interactive HTML document
|
|
484
|
+
2. Invoke `/ba-review` to apply client corrections (if needed)
|
|
485
|
+
3. Invoke `/derive-prd` then `/ralph-loop` for implementation
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Skill Launch Display Templates (templates/tpl-launch-displays.md)
|
|
2
2
|
|
|
3
|
-
> **Used by:**
|
|
3
|
+
> **Used by:** /ba-generate-html (Completion Summary)
|
|
4
4
|
> **Purpose:** User-facing display templates for BA completion
|
|
5
5
|
> **Note:** No emojis - uses text markers per Claude Code conventions
|
|
6
6
|
|
|
@@ -22,10 +22,17 @@ Works in synergy with the `/documentation module` command.
|
|
|
22
22
|
<quick_start>
|
|
23
23
|
## WHEN THIS SKILL ACTIVATES
|
|
24
24
|
|
|
25
|
+
### PREREQUISITE — ONLY post-implementation
|
|
26
|
+
This skill requires the feature page to already exist (generated by /ralph-loop).
|
|
27
|
+
It reads real TSX pages, controllers, and entities. Without them, nothing to document.
|
|
28
|
+
|
|
29
|
+
→ For reviewing/editing the analysis BEFORE implementation: use ba-interactive.html (/business-analyse step-05)
|
|
30
|
+
|
|
25
31
|
Claude automatically invokes this skill when it detects:
|
|
26
32
|
|
|
27
33
|
| Trigger | Example |
|
|
28
34
|
|---------|---------|
|
|
35
|
+
| ❌ NEVER during BA | Before /ralph-loop — feature page does not exist yet |
|
|
29
36
|
| Explicit request | "Document the SLA module" |
|
|
30
37
|
| Documentation mention | "We should create the doc for..." |
|
|
31
38
|
| After implementation | "The feature is done, generate the doc" |
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: step-05-deploy
|
|
3
|
-
description: Deploy interactive HTML document from analysis data
|
|
4
|
-
model: sonnet
|
|
5
|
-
next_step: steps/step-06-review.md
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
> **Context files:** `_shared.md` | `references/html-data-mapping.md`
|
|
9
|
-
|
|
10
|
-
# Step 5: Deploy - Interactive HTML Document
|
|
11
|
-
|
|
12
|
-
## MANDATORY EXECUTION RULES
|
|
13
|
-
|
|
14
|
-
- **ALWAYS** verify PRD exists before proceeding (`.ralph/prd-{module}.json`)
|
|
15
|
-
- **ALWAYS** pre-populate HTML with FEATURE_DATA + EMBEDDED_ARTIFACTS (no empty templates)
|
|
16
|
-
- **FEATURE_DATA.moduleSpecs** must have ONE entry per module (empty = BROKEN)
|
|
17
|
-
- **FEATURE_DATA.cadrage.scope** uses HTML keys (vital/important/optional/excluded)
|
|
18
|
-
- **ALWAYS** deploy SINGLE interactive HTML (multi-app or single-app per config)
|
|
19
|
-
|
|
20
|
-
## YOUR TASK
|
|
21
|
-
|
|
22
|
-
Deploy the single interactive HTML document pre-populated with all analysis data across all modules and applications. PRD and handoff data must already exist (generated by `/derive-prd`).
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## EXECUTION SEQUENCE
|
|
27
|
-
|
|
28
|
-
### 1. Verify PRD Exists
|
|
29
|
-
|
|
30
|
-
For each module, verify PRD file exists:
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
FOR each module in modules:
|
|
34
|
-
prdPath = ".ralph/prd-{moduleCode}.json"
|
|
35
|
-
IF NOT exists(prdPath):
|
|
36
|
-
BLOCKING ERROR: "PRD not found: {prdPath} — Run /derive-prd first"
|
|
37
|
-
STOP
|
|
38
|
-
IF fileSize(prdPath) < 100:
|
|
39
|
-
BLOCKING ERROR: "PRD file too small: {prdPath} — Run /derive-prd to regenerate"
|
|
40
|
-
STOP
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Verify consolidation status:
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
IF workflow.mode === "project":
|
|
47
|
-
projectFeature = ba-reader.findProjectFeature()
|
|
48
|
-
FOR each app in projectFeature.applications:
|
|
49
|
-
appFeature = ba-reader.findFeature(app.featureJsonPath)
|
|
50
|
-
IF appFeature.status !== "consolidated":
|
|
51
|
-
BLOCKING ERROR: "Application {app.code} not consolidated"
|
|
52
|
-
ELSE:
|
|
53
|
-
feature = ba-reader.findFeature({feature_id})
|
|
54
|
-
IF feature.status !== "consolidated":
|
|
55
|
-
BLOCKING ERROR: "Feature status: {feature.status}, expected consolidated"
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Display:
|
|
59
|
-
```
|
|
60
|
-
PRD verified: {module_count} modules
|
|
61
|
-
.ralph/prd-{module1}.json ({size} bytes)
|
|
62
|
-
.ralph/prd-{module2}.json ({size} bytes)
|
|
63
|
-
→ Proceeding to HTML generation...
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
### 2. Build FEATURE_DATA Object
|
|
69
|
-
|
|
70
|
-
Read from index.json (master module JSON files):
|
|
71
|
-
|
|
72
|
-
For EACH module:
|
|
73
|
-
- Read complete index.json for each module
|
|
74
|
-
- Map to FEATURE_DATA structure per `references/html-data-mapping.md`
|
|
75
|
-
|
|
76
|
-
**FEATURE_DATA structure:**
|
|
77
|
-
- metadata (analysisMode="interactive", workflowMode, versions, timestamps)
|
|
78
|
-
- cadrage (scope using HTML keys: vital/important/optional/excluded; objectives, constraints, assumptions)
|
|
79
|
-
- modules[] (all modules with all fields from index.json)
|
|
80
|
-
- moduleSpecs{} (one entry PER module with analysis, specification sections from index.json)
|
|
81
|
-
- consolidation (cross-module interactions)
|
|
82
|
-
- handoff (complexity, filesToCreate summary, totalFiles, totalTasks)
|
|
83
|
-
|
|
84
|
-
**Critical requirements:**
|
|
85
|
-
- moduleSpecs MUST have ONE entry per module (empty = BUG)
|
|
86
|
-
- cadrage.scope converts: mustHave->vital, shouldHave->important, couldHave->optional, outOfScope->excluded
|
|
87
|
-
- metadata.analysisMode from master.metadata.analysisMode (always "interactive")
|
|
88
|
-
- PROJECT MODE: include applications[], consolidation.crossApplicationInteractions
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
### 3. Build EMBEDDED_ARTIFACTS Object
|
|
93
|
-
|
|
94
|
-
Collect from FEATURE_DATA:
|
|
95
|
-
- **wireframes**: Per-module ASCII + SVG (if generated) — fields: format, content, svgContent
|
|
96
|
-
- **e2eFlows**: E2E diagrams from consolidated.e2eFlows
|
|
97
|
-
- **dependencyGraph**: From dependencyGraph section
|
|
98
|
-
|
|
99
|
-
**Field name mapping (CRITICAL):**
|
|
100
|
-
- wireframes use: `format`, `content`, `svgContent` (NOT mockupFormat/mockup)
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
### 4. Generate SVG Wireframes (Parallel, Optional)
|
|
105
|
-
|
|
106
|
-
> **After EMBEDDED_ARTIFACTS built but BEFORE HTML write.**
|
|
107
|
-
> This step is NEVER blocking — ASCII-only wireframes acceptable.
|
|
108
|
-
> **Reference:** Read `references/wireframe-svg-style-guide.md` for full agent prompt template
|
|
109
|
-
|
|
110
|
-
1. Collect all wireframes where `mockup` exists and `svgContent` is null
|
|
111
|
-
2. Spawn parallel Task(sonnet) agents — ONE per wireframe
|
|
112
|
-
3. Validate results: strip markdown fences, verify SVG syntax
|
|
113
|
-
4. Inject valid SVGs into `EMBEDDED_ARTIFACTS.wireframes[moduleCode][index].svgContent`
|
|
114
|
-
5. Display: "SVG wireframe generation: {successCount}/{total} generated, {failCount} fallback (ASCII)"
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
### 5. Replace Placeholders & Write HTML
|
|
119
|
-
|
|
120
|
-
1. Read HTML template from skill: `html/ba-interactive.html`
|
|
121
|
-
2. Serialize FEATURE_DATA and EMBEDDED_ARTIFACTS as JSON (2-space indent)
|
|
122
|
-
3. Replace 8 placeholders:
|
|
123
|
-
- `{{FEATURE_DATA}}` — Full FEATURE_DATA JSON object
|
|
124
|
-
- `{{EMBEDDED_ARTIFACTS}}` — Wireframes, E2E, dependency graph
|
|
125
|
-
- `{{APPLICATION_NAME}}` — From master.metadata.application
|
|
126
|
-
- Others per template
|
|
127
|
-
|
|
128
|
-
4. **Output path:**
|
|
129
|
-
- Multi-app (project mode): `docs/business-analyse/v{version}/ba-interactive.html`
|
|
130
|
-
- Single-app: `docs/{app}/business-analyse/v{version}/ba-interactive.html`
|
|
131
|
-
|
|
132
|
-
5. Write to file
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
### 6. Verify Deployment
|
|
137
|
-
|
|
138
|
-
**POST-CHECK (BLOCKING):**
|
|
139
|
-
|
|
140
|
-
1. **File size > 100KB** (indicates pre-populated)
|
|
141
|
-
```
|
|
142
|
-
if [ $(stat --format=%s ba-interactive.html) -lt 100000 ]; then
|
|
143
|
-
BLOCKING_ERROR("ba-interactive.html not pre-populated")
|
|
144
|
-
fi
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
2. **moduleSpecs present in HTML** (must be serialized)
|
|
148
|
-
```
|
|
149
|
-
if ! grep -q '"moduleSpecs"' ba-interactive.html; then
|
|
150
|
-
BLOCKING_ERROR("moduleSpecs not found — FEATURE_DATA not serialized")
|
|
151
|
-
fi
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
3. **cadrage.scope uses HTML keys** (vital/important/optional/excluded)
|
|
155
|
-
```
|
|
156
|
-
if grep -q '"mustHave"' ba-interactive.html; then
|
|
157
|
-
BLOCKING_ERROR("cadrage.scope still has JSON keys")
|
|
158
|
-
fi
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
4. **Wireframe field names correct** (format/content, NOT mockupFormat/mockup)
|
|
162
|
-
```
|
|
163
|
-
if grep -q '"mockupFormat"' ba-interactive.html; then
|
|
164
|
-
BLOCKING_ERROR("Wireframes use 'mockupFormat' — must be 'format'")
|
|
165
|
-
fi
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
5. **All modules have specs AND wireframes**
|
|
169
|
-
```
|
|
170
|
-
FOR each module in FEATURE_DATA.modules:
|
|
171
|
-
IF FEATURE_DATA.moduleSpecs[module.code] undefined:
|
|
172
|
-
BLOCKING_ERROR("Module not in moduleSpecs")
|
|
173
|
-
IF EMBEDDED_ARTIFACTS.wireframes[module.code] undefined:
|
|
174
|
-
BLOCKING_ERROR("Module not in wireframes")
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
### 7. Display Completion Summary
|
|
180
|
-
|
|
181
|
-
```
|
|
182
|
-
══════════════════════════════════════════════════════════════
|
|
183
|
-
[OK] HTML DEPLOY COMPLETE — {application_name}
|
|
184
|
-
══════════════════════════════════════════════════════════════
|
|
185
|
-
|
|
186
|
-
Modules: {count} ({names})
|
|
187
|
-
|
|
188
|
-
[DIR] Artifact generated:
|
|
189
|
-
ba-interactive.html — Interactive document
|
|
190
|
-
Path: {output_path}
|
|
191
|
-
Pre-populated: {module_count} modules, {total_uc} use cases,
|
|
192
|
-
{total_br} business rules, {total_wireframes} wireframes
|
|
193
|
-
|
|
194
|
-
[NEXT] Review & Validation:
|
|
195
|
-
1. Open ba-interactive.html in browser
|
|
196
|
-
2. Review all modules, use cases, business rules
|
|
197
|
-
3. Validate wireframes and permissions
|
|
198
|
-
4. If OK: /derive-prd then /ralph-loop to begin development
|
|
199
|
-
5. If changes needed: /business-analyse to iterate
|
|
200
|
-
|
|
201
|
-
══════════════════════════════════════════════════════════════
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## SELF-VERIFICATION (BEFORE COMPLETION)
|
|
207
|
-
|
|
208
|
-
1. `ba-interactive.html` exists and >100KB
|
|
209
|
-
2. FEATURE_DATA.moduleSpecs has entries for ALL modules
|
|
210
|
-
3. cadrage.scope uses HTML keys (vital/important/optional/excluded)
|
|
211
|
-
4. Wireframes use format/content fields (not mockupFormat/mockup)
|
|
212
|
-
5. POST-CHECK verification all passed
|
|
213
|
-
|
|
214
|
-
**IF any check fails -> generate missing artifact before completing.**
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
## NEXT STEP
|
|
219
|
-
|
|
220
|
-
Load: `steps/step-06-review.md`
|
|
File without changes
|
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-scope.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/consol-flows.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/01-data-init.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/05-render-specs.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/08-editing.js
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/09-export.js
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/10-comments.js
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/11-review-panel.js
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/01-variables.css
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/02-layout.css
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/03-navigation.css
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/04-cards.css
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/05-modules.css
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/06-wireframes.css
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/07-comments.css
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/08-review-panel.css
RENAMED
|
File without changes
|
/package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/09-mockups-html.css
RENAMED
|
File without changes
|
|
File without changes
|