@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.
Files changed (73) hide show
  1. package/package.json +2 -2
  2. package/templates/skills/ba-generate-html/SKILL.md +60 -0
  3. package/templates/skills/{business-analyse → ba-generate-html}/html/ba-interactive.html +3 -3
  4. package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-risks.html +1 -1
  5. package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/02-navigation.js +1 -1
  6. package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/07-render-handoff.js +1 -1
  7. package/templates/skills/{business-analyse → ba-generate-html}/html/src/template.html +1 -1
  8. package/templates/skills/{business-analyse/references/deploy-data-build.md → ba-generate-html/references/data-build.md} +2 -2
  9. package/templates/skills/{business-analyse/references/html-data-mapping.md → ba-generate-html/references/data-mapping.md} +2 -2
  10. package/templates/skills/{business-analyse/references/deploy-modes.md → ba-generate-html/references/output-modes.md} +1 -1
  11. package/templates/skills/ba-generate-html/steps/step-01-collect.md +113 -0
  12. package/templates/skills/ba-generate-html/steps/step-02-build-data.md +237 -0
  13. package/templates/skills/ba-generate-html/steps/step-03-render.md +75 -0
  14. package/templates/skills/ba-generate-html/steps/step-04-verify.md +83 -0
  15. package/templates/skills/ba-review/SKILL.md +45 -0
  16. package/templates/skills/{business-analyse → ba-review}/references/review-data-mapping.md +2 -2
  17. package/templates/skills/{business-analyse/steps/step-06-review.md → ba-review/steps/step-01-apply.md} +7 -18
  18. package/templates/skills/business-analyse/SKILL.md +24 -59
  19. package/templates/skills/business-analyse/_shared.md +9 -14
  20. package/templates/skills/business-analyse/questionnaire/01-context.md +11 -157
  21. package/templates/skills/business-analyse/questionnaire/02-stakeholders-scope.md +9 -50
  22. package/templates/skills/business-analyse/questionnaire/03-data-ui.md +1 -3
  23. package/templates/skills/business-analyse/questionnaire/04-risks-metrics.md +4 -148
  24. package/templates/skills/business-analyse/questionnaire/05-cross-module.md +5 -5
  25. package/templates/skills/business-analyse/questionnaire.md +7 -8
  26. package/templates/skills/business-analyse/react/components.md +1 -1
  27. package/templates/skills/business-analyse/react/schema.md +1 -1
  28. package/templates/skills/business-analyse/references/acceptance-criteria.md +2 -7
  29. package/templates/skills/business-analyse/references/detection-strategies.md +3 -3
  30. package/templates/skills/business-analyse/references/naming-conventions.md +2 -2
  31. package/templates/skills/business-analyse/references/robustness-checks.md +2 -121
  32. package/templates/skills/business-analyse/references/validation-checklist.md +3 -4
  33. package/templates/skills/business-analyse/schemas/feature-schema.json +1 -1
  34. package/templates/skills/business-analyse/steps/step-00-init.md +6 -9
  35. package/templates/skills/business-analyse/steps/step-01-cadrage.md +9 -49
  36. package/templates/skills/business-analyse/steps/step-04-consolidate.md +13 -6
  37. package/templates/skills/business-analyse/templates/tpl-handoff.md +1 -1
  38. package/templates/skills/business-analyse/templates/tpl-launch-displays.md +1 -1
  39. package/templates/skills/documentation/SKILL.md +7 -0
  40. package/templates/skills/business-analyse/steps/step-05-deploy.md +0 -220
  41. /package/templates/skills/{business-analyse → ba-generate-html}/html/build-html.js +0 -0
  42. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-context.html +0 -0
  43. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-scope.html +0 -0
  44. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-stakeholders.html +0 -0
  45. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/cadrage-success.html +0 -0
  46. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/consol-datamodel.html +0 -0
  47. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/consol-flows.html +0 -0
  48. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/consol-interactions.html +0 -0
  49. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/consol-permissions.html +0 -0
  50. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/decomp-dependencies.html +0 -0
  51. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/decomp-modules.html +0 -0
  52. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/handoff-summary.html +0 -0
  53. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/partials/module-spec-container.html +0 -0
  54. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/01-data-init.js +0 -0
  55. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/03-render-cadrage.js +0 -0
  56. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/04-render-modules.js +0 -0
  57. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/05-render-specs.js +0 -0
  58. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/06-render-consolidation.js +0 -0
  59. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/06-render-mockups.js +0 -0
  60. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/08-editing.js +0 -0
  61. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/09-export.js +0 -0
  62. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/10-comments.js +0 -0
  63. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/scripts/11-review-panel.js +0 -0
  64. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/01-variables.css +0 -0
  65. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/02-layout.css +0 -0
  66. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/03-navigation.css +0 -0
  67. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/04-cards.css +0 -0
  68. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/05-modules.css +0 -0
  69. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/06-wireframes.css +0 -0
  70. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/07-comments.css +0 -0
  71. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/08-review-panel.css +0 -0
  72. /package/templates/skills/{business-analyse → ba-generate-html}/html/src/styles/09-mockups-html.css +0 -0
  73. /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 → load ba-review.json, skip to step-06-review.md
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
- Resume at `step-06-review.md`
501
- Display: "Handoff complete — proceeding to review..."
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
- Resume at `step-05-deploy.md`
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
- Select the most relevant questions from Q1.1-Q1.12.
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
- Ask in 1-2 batches via AskUserQuestion (max 4 questions per batch).
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
- **Mandatory minimum:** Q2.1 (users), Q2.5 (tasks per profile), Q2.9 (access levels).
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:** Q3.2 (must-have), Q3.4 (exclusions), Q3.5 (main journey).
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. Risks & Success Criteria (ALWAYS — from `questionnaire/04-risks-metrics.md`)
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 — Q3.4 exclusions}]
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: steps/step-05-deploy.md
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. Loading step-05-deploy."
38
- Load: steps/step-05-deploy.md
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
- → Proceeding to step-05-deploy.md
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 STEP
480
+ ## NEXT STEPS
477
481
 
478
- Load: `./step-05-deploy.md`
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
  # Template Development Handoff
2
2
 
3
- > **Usage:** Template for step-05-deploy.md
3
+ > **Usage:** Template for /derive-prd
4
4
  > **Data source:** index.json (sections: metadata, analysis, specification, handoff)
5
5
 
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  # Skill Launch Display Templates (templates/tpl-launch-displays.md)
2
2
 
3
- > **Used by:** step-05-deploy (Completion Summary)
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`