@atlashub/smartstack-cli 4.17.1 → 4.18.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 (34) hide show
  1. package/package.json +1 -1
  2. package/templates/agents/ba-reader.md +9 -9
  3. package/templates/agents/ba-writer.md +13 -8
  4. package/templates/skills/business-analyse/SKILL.md +4 -4
  5. package/templates/skills/business-analyse/_rules.md +142 -0
  6. package/templates/skills/business-analyse/questionnaire/10-documentation.md +22 -7
  7. package/templates/skills/business-analyse/references/acceptance-criteria.md +4 -4
  8. package/templates/skills/business-analyse/references/agent-module-prompt.md +13 -9
  9. package/templates/skills/business-analyse/references/consolidation-structural-checks.md +2 -2
  10. package/templates/skills/business-analyse/references/deploy-data-build.md +3 -2
  11. package/templates/skills/business-analyse/references/prd-generation.md +15 -10
  12. package/templates/skills/business-analyse/references/robustness-checks.md +12 -9
  13. package/templates/skills/business-analyse/references/team-orchestration.md +77 -6
  14. package/templates/skills/business-analyse/references/validation-checklist.md +7 -4
  15. package/templates/skills/business-analyse/schemas/shared/common-defs.json +2 -1
  16. package/templates/skills/business-analyse/steps/step-00-init.md +31 -63
  17. package/templates/skills/business-analyse/steps/step-01-cadrage.md +97 -7
  18. package/templates/skills/business-analyse/steps/step-03a1-setup.md +3 -23
  19. package/templates/skills/business-analyse/steps/step-03a2-analysis.md +2 -3
  20. package/templates/skills/business-analyse/steps/step-03b-ui.md +2 -22
  21. package/templates/skills/business-analyse/steps/step-03c-compile.md +44 -139
  22. package/templates/skills/business-analyse/steps/step-03d-validate.md +198 -290
  23. package/templates/skills/business-analyse/steps/step-05a-handoff.md +117 -20
  24. package/templates/skills/ralph-loop/SKILL.md +8 -3
  25. package/templates/skills/ralph-loop/references/category-completeness.md +20 -4
  26. package/templates/skills/ralph-loop/references/compact-loop.md +80 -48
  27. package/templates/skills/ralph-loop/references/init-resume-recovery.md +3 -1
  28. package/templates/skills/ralph-loop/references/parallel-execution.md +27 -27
  29. package/templates/skills/ralph-loop/steps/step-00-init.md +19 -9
  30. package/templates/skills/ralph-loop/steps/step-01-task.md +10 -2
  31. package/templates/skills/ralph-loop/steps/step-02-execute.md +9 -4
  32. package/templates/skills/ralph-loop/steps/step-03-commit.md +1 -1
  33. package/templates/skills/ralph-loop/steps/step-04-check.md +5 -21
  34. package/templates/skills/ralph-loop/steps/step-05-report.md +6 -1
@@ -47,9 +47,12 @@ fi
47
47
 
48
48
  ### 1.7. Category Completeness Check (RUNS EVERY ITERATION)
49
49
 
50
- See `references/category-completeness.md` for detailed implementation.
50
+ > **Implementation:** See `references/category-completeness.md` for the full `checkCategoryCompleteness()` function and artifact verification logic.
51
+ > Do NOT duplicate the implementation here — load and execute the reference.
51
52
 
52
53
  ```javascript
54
+ // Load references/category-completeness.md — execute checkCategoryCompleteness() as defined there
55
+ // (includes guardrail injection AND artifact verification)
53
56
  const { missing, guardrailsNeeded } = checkCategoryCompleteness(prd);
54
57
 
55
58
  if (guardrailsNeeded.length > 0) {
@@ -57,26 +60,7 @@ if (guardrailsNeeded.length > 0) {
57
60
  writeJSON('.ralph/prd.json', prd);
58
61
  console.log(`PRD updated: +${guardrailsNeeded.length} guardrails, ${prd.tasks.filter(t => t.status === 'pending').length} pending tasks`);
59
62
  }
60
-
61
- // Artifact verification (check if completed tasks have files)
62
- const completedCats = new Set(prd.tasks.filter(t => t.status === 'completed').map(t => t.category));
63
- const artifactChecks = {
64
- 'frontend': () => glob.sync('**/src/pages/**/*.tsx').length > 0,
65
- 'test': () => glob.sync('tests/**/*Tests.cs').length > 0,
66
- 'api': () => glob.sync('src/*/Controllers/**/*Controller.cs').length > 0
67
- };
68
- for (const [cat, check] of Object.entries(artifactChecks)) {
69
- if (completedCats.has(cat) && !check()) {
70
- console.warn(`ARTIFACT MISSING: ${cat} tasks marked completed but no files found — resetting to pending`);
71
- prd.tasks.filter(t => t.category === cat && t.status === 'completed')
72
- .forEach(t => {
73
- t.status = 'pending';
74
- t.error = 'Artifacts missing — re-execute';
75
- t.completed_at = null;
76
- });
77
- writeJSON('.ralph/prd.json', prd);
78
- }
79
- }
63
+ // Artifact verification is handled inside checkCategoryCompleteness() — see reference file.
80
64
  ```
81
65
 
82
66
  ## 2. Check Iteration Limit
@@ -131,13 +131,18 @@ Write to `.ralph/reports/{feature-slug}.md`:
131
131
 
132
132
  ```javascript
133
133
  // Clean up section-split temporary files
134
- if (prd._sectionSplit?.enabled) {
134
+ // GUARD: only delete if the overall PRD status is 'completed'.
135
+ // If status is 'partial' or 'failed', keep temporary PRD files so the user
136
+ // can resume with `-r` — deleting them here would make recovery impossible.
137
+ if (prd._sectionSplit?.enabled && prd.status === 'completed') {
135
138
  for (const phase of prd._sectionSplit.phases) {
136
139
  if (fileExists(phase.prdFile) && phase.prdFile !== '.ralph/prd.json') {
137
140
  deleteFile(phase.prdFile);
138
141
  }
139
142
  }
140
143
  delete prd._sectionSplit;
144
+ } else if (prd._sectionSplit?.enabled && prd.status !== 'completed') {
145
+ console.log(`Section-split temp files preserved (status: ${prd.status}) — use /ralph-loop -r to resume`);
141
146
  }
142
147
 
143
148
  prd.updated_at = new Date().toISOString();