@atlashub/smartstack-cli 3.33.0 → 3.35.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 (65) hide show
  1. package/.documentation/agents.html +5 -1
  2. package/.documentation/apex.html +644 -0
  3. package/.documentation/business-analyse.html +81 -1
  4. package/.documentation/cli-commands.html +5 -1
  5. package/.documentation/commands.html +5 -1
  6. package/.documentation/efcore.html +5 -1
  7. package/.documentation/gitflow.html +5 -1
  8. package/.documentation/hooks.html +5 -1
  9. package/.documentation/index.html +60 -2
  10. package/.documentation/init.html +414 -1
  11. package/.documentation/installation.html +5 -1
  12. package/.documentation/ralph-loop.html +365 -216
  13. package/.documentation/test-web.html +5 -1
  14. package/dist/index.js +32 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/mcp-entry.mjs +7 -24
  17. package/dist/mcp-entry.mjs.map +1 -1
  18. package/package.json +1 -2
  19. package/templates/agents/ba-writer.md +142 -15
  20. package/templates/mcp-scaffolding/controller.cs.hbs +5 -1
  21. package/templates/skills/apex/SKILL.md +9 -3
  22. package/templates/skills/apex/_shared.md +49 -4
  23. package/templates/skills/{ralph-loop → apex}/references/core-seed-data.md +20 -11
  24. package/templates/skills/{ralph-loop → apex}/references/error-classification.md +2 -1
  25. package/templates/skills/apex/references/post-checks.md +463 -3
  26. package/templates/skills/apex/references/smartstack-api.md +76 -8
  27. package/templates/skills/apex/references/smartstack-frontend.md +74 -1
  28. package/templates/skills/apex/references/smartstack-layers.md +21 -3
  29. package/templates/skills/apex/steps/step-00-init.md +121 -1
  30. package/templates/skills/apex/steps/step-01-analyze.md +58 -0
  31. package/templates/skills/apex/steps/step-02-plan.md +36 -0
  32. package/templates/skills/apex/steps/step-03-execute.md +114 -7
  33. package/templates/skills/apex/steps/step-04-examine.md +116 -2
  34. package/templates/skills/business-analyse/SKILL.md +31 -20
  35. package/templates/skills/business-analyse/_module-loop.md +68 -9
  36. package/templates/skills/business-analyse/_shared.md +80 -21
  37. package/templates/skills/business-analyse/questionnaire/00-application.md +4 -2
  38. package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -0
  39. package/templates/skills/business-analyse/references/deploy-modes.md +69 -0
  40. package/templates/skills/business-analyse/references/team-orchestration.md +158 -7
  41. package/templates/skills/business-analyse/schemas/application-schema.json +15 -1
  42. package/templates/skills/business-analyse/schemas/project-schema.json +490 -0
  43. package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +2 -1
  44. package/templates/skills/business-analyse/steps/step-00-init.md +220 -38
  45. package/templates/skills/business-analyse/steps/step-01-cadrage.md +184 -5
  46. package/templates/skills/business-analyse/steps/step-01b-applications.md +423 -0
  47. package/templates/skills/business-analyse/steps/step-02-decomposition.md +23 -6
  48. package/templates/skills/business-analyse/steps/step-03c-compile.md +14 -2
  49. package/templates/skills/business-analyse/steps/step-03d-validate.md +32 -7
  50. package/templates/skills/business-analyse/steps/step-04a-collect.md +111 -0
  51. package/templates/skills/business-analyse/steps/step-05a-handoff.md +296 -103
  52. package/templates/skills/business-analyse/steps/step-05b-deploy.md +46 -14
  53. package/templates/skills/documentation/SKILL.md +92 -2
  54. package/templates/skills/ralph-loop/SKILL.md +14 -17
  55. package/templates/skills/ralph-loop/references/category-rules.md +63 -683
  56. package/templates/skills/ralph-loop/references/compact-loop.md +188 -428
  57. package/templates/skills/ralph-loop/references/section-splitting.md +439 -0
  58. package/templates/skills/ralph-loop/references/team-orchestration.md +13 -14
  59. package/templates/skills/ralph-loop/steps/step-01-task.md +27 -0
  60. package/templates/skills/ralph-loop/steps/step-02-execute.md +80 -691
  61. package/templates/skills/ralph-loop/steps/step-03-commit.md +38 -79
  62. package/templates/skills/ralph-loop/steps/step-04-check.md +39 -58
  63. package/templates/skills/ralph-loop/steps/step-05-report.md +31 -123
  64. package/scripts/health-check.sh +0 -168
  65. package/scripts/postinstall.js +0 -18
@@ -27176,7 +27176,6 @@ async function validateControllerRoutes(structure, _config, result) {
27176
27176
  const navRouteMatch = content.match(/\[NavRoute\s*\(\s*"([^"]+)"(?:\s*,\s*Suffix\s*=\s*"([^"]+)")?\s*\)\]/);
27177
27177
  if (navRouteMatch) {
27178
27178
  const routePath = navRouteMatch[1];
27179
- const suffix = navRouteMatch[2];
27180
27179
  const parts = routePath.split(".");
27181
27180
  if (parts.length < 2) {
27182
27181
  result.warnings.push({
@@ -27197,26 +27196,14 @@ async function validateControllerRoutes(structure, _config, result) {
27197
27196
  suggestion: 'NavRoute paths must be lowercase (e.g., "platform.administration.users")'
27198
27197
  });
27199
27198
  }
27200
- const expectedRoute = `api/${routePath.replace(/\./g, "/")}${suffix ? `/${suffix}` : ""}`;
27201
27199
  const routeAttrMatch = content.match(/\[Route\s*\(\s*"([^"]+)"\s*\)\]/);
27202
27200
  if (routeAttrMatch) {
27203
- const actualRoute = routeAttrMatch[1];
27204
- if (actualRoute !== expectedRoute) {
27205
- result.errors.push({
27206
- type: "error",
27207
- category: "controllers",
27208
- message: `Controller "${fileName}" has [Route("${actualRoute}")] that doesn't match NavRoute "${routePath}". Expected [Route("${expectedRoute}")]`,
27209
- file: path8.relative(structure.root, file),
27210
- suggestion: `Change [Route] to [Route("${expectedRoute}")] to match the NavRoute convention`
27211
- });
27212
- }
27213
- } else {
27214
- result.warnings.push({
27215
- type: "warning",
27201
+ result.errors.push({
27202
+ type: "error",
27216
27203
  category: "controllers",
27217
- message: `Controller "${fileName}" has [NavRoute] but no explicit [Route] attribute`,
27204
+ message: `Controller "${fileName}" has BOTH [Route("${routeAttrMatch[1]}")] and [NavRoute("${routePath}")]. Only [NavRoute] should be used.`,
27218
27205
  file: path8.relative(structure.root, file),
27219
- suggestion: `Add [Route("${expectedRoute}")] for deterministic routing`
27206
+ suggestion: `Remove [Route("${routeAttrMatch[1]}")] \u2014 [NavRoute("${routePath}")] resolves the route dynamically from the database at startup`
27220
27207
  });
27221
27208
  }
27222
27209
  }
@@ -57631,7 +57618,6 @@ async function discoverNavRoutes(structure, scope, warnings) {
57631
57618
  permissions.push(match2[1]);
57632
57619
  }
57633
57620
  const fullNavRoute = suffix ? `${navRoute}.${suffix}` : navRoute;
57634
- const expectedRoute = `api/${navRouteToUrlPath(navRoute)}${suffix ? `/${toKebabCase(suffix)}` : ""}`;
57635
57621
  routes.push({
57636
57622
  navRoute: fullNavRoute,
57637
57623
  apiPath: `/api/${navRouteToUrlPath(navRoute)}${suffix ? `/${toKebabCase(suffix)}` : ""}`,
@@ -57642,12 +57628,9 @@ async function discoverNavRoutes(structure, scope, warnings) {
57642
57628
  });
57643
57629
  const routeAttrMatch = content.match(/\[Route\s*\(\s*"([^"]+)"\s*\)\]/);
57644
57630
  if (routeAttrMatch && warnings) {
57645
- const actualRoute = routeAttrMatch[1];
57646
- if (actualRoute !== expectedRoute && actualRoute !== "api/[controller]") {
57647
- warnings.push(
57648
- `WARNING: ${controllerName}Controller has [Route("${actualRoute}")] that doesn't match NavRoute "${navRoute}". Expected [Route("${expectedRoute}")]`
57649
- );
57650
- }
57631
+ warnings.push(
57632
+ `WARNING: ${controllerName}Controller has [Route("${routeAttrMatch[1]}")] alongside [NavRoute]. Remove [Route] \u2014 NavRoute resolves routes dynamically from the database.`
57633
+ );
57651
57634
  }
57652
57635
  }
57653
57636
  } catch {