@atlashub/smartstack-cli 3.39.0 → 3.40.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 (471) hide show
  1. package/.documentation/apex.html +644 -644
  2. package/.documentation/css/styles.css +2320 -2320
  3. package/.documentation/init.html +1377 -1377
  4. package/.documentation/js/app.js +780 -780
  5. package/.documentation/prd-json-v2.0.0.md +396 -396
  6. package/.documentation/testing-ba-e2e.md +462 -462
  7. package/config/default-config.json +95 -95
  8. package/config/mcp-defaults.json +62 -62
  9. package/config/settings.json +53 -53
  10. package/config/settings.local.example.json +16 -16
  11. package/dist/index.js.map +1 -1
  12. package/dist/mcp-entry.mjs +6 -4
  13. package/dist/mcp-entry.mjs.map +1 -1
  14. package/package.json +115 -115
  15. package/scripts/extract-api-endpoints.ts +325 -325
  16. package/scripts/extract-business-rules.ts +440 -440
  17. package/scripts/generate-doc-with-mock-ui.ts +804 -804
  18. package/scripts/health-check.sh +168 -168
  19. package/scripts/postinstall.js +18 -18
  20. package/templates/agents/action.md +37 -37
  21. package/templates/agents/ba-reader.md +378 -378
  22. package/templates/agents/ba-writer.md +861 -861
  23. package/templates/agents/code-reviewer.md +163 -163
  24. package/templates/agents/db-reader.md +149 -149
  25. package/templates/agents/docs-context-reader.md +143 -143
  26. package/templates/agents/docs-sync-checker.md +122 -122
  27. package/templates/agents/efcore/conflicts.md +84 -84
  28. package/templates/agents/efcore/db-deploy.md +74 -74
  29. package/templates/agents/efcore/db-reset.md +85 -85
  30. package/templates/agents/efcore/db-seed.md +61 -61
  31. package/templates/agents/efcore/db-status.md +86 -86
  32. package/templates/agents/efcore/migration.md +186 -186
  33. package/templates/agents/efcore/rebase-snapshot.md +108 -108
  34. package/templates/agents/efcore/scan.md +92 -92
  35. package/templates/agents/efcore/squash.md +161 -161
  36. package/templates/agents/explore-codebase.md +66 -66
  37. package/templates/agents/explore-docs.md +98 -98
  38. package/templates/agents/fix-grammar.md +50 -50
  39. package/templates/agents/gitflow/abort.md +45 -45
  40. package/templates/agents/gitflow/cleanup.md +96 -96
  41. package/templates/agents/gitflow/commit.md +236 -236
  42. package/templates/agents/gitflow/exec.md +48 -48
  43. package/templates/agents/gitflow/finish.md +146 -146
  44. package/templates/agents/gitflow/init-clone.md +199 -199
  45. package/templates/agents/gitflow/init-detect.md +137 -137
  46. package/templates/agents/gitflow/init-validate.md +225 -225
  47. package/templates/agents/gitflow/init.md +340 -340
  48. package/templates/agents/gitflow/merge.md +145 -145
  49. package/templates/agents/gitflow/plan.md +42 -42
  50. package/templates/agents/gitflow/pr.md +191 -191
  51. package/templates/agents/gitflow/review.md +49 -49
  52. package/templates/agents/gitflow/start.md +147 -147
  53. package/templates/agents/gitflow/status.md +95 -95
  54. package/templates/agents/mcp-healthcheck.md +163 -163
  55. package/templates/agents/snipper.md +37 -37
  56. package/templates/agents/websearch.md +46 -46
  57. package/templates/hooks/appsettings-guard.sh +76 -76
  58. package/templates/hooks/docs-drift-check.md +96 -96
  59. package/templates/hooks/ef-migration-check.md +139 -139
  60. package/templates/hooks/hooks.json +58 -58
  61. package/templates/hooks/mcp-check.md +64 -64
  62. package/templates/hooks/ralph-mcp-logger.sh +46 -46
  63. package/templates/hooks/ralph-session-end.sh +69 -69
  64. package/templates/hooks/stop-hook.sh +177 -177
  65. package/templates/hooks/wsl-dotnet-cleanup.sh +24 -24
  66. package/templates/mcp-scaffolding/component.tsx.hbs +318 -318
  67. package/templates/mcp-scaffolding/controller.cs.hbs +192 -192
  68. package/templates/mcp-scaffolding/entity-extension.cs.hbs +239 -239
  69. package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -116
  70. package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -133
  71. package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -126
  72. package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -261
  73. package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -53
  74. package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +436 -436
  75. package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -239
  76. package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -441
  77. package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -442
  78. package/templates/mcp-scaffolding/tests/service.test.cs.hbs +402 -402
  79. package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -428
  80. package/templates/project/DependencyInjection.Application.cs.template +25 -25
  81. package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -61
  82. package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -70
  83. package/templates/project/ExampleEntity.cs.template +116 -116
  84. package/templates/project/ExampleEntityConfiguration.cs.template +64 -64
  85. package/templates/project/ExampleService.cs.template +146 -146
  86. package/templates/project/ExtensionsDbContext.cs.template +41 -41
  87. package/templates/project/IExtensionsDbContext.cs.template +22 -22
  88. package/templates/project/Program.cs.template +47 -47
  89. package/templates/project/README.md +79 -79
  90. package/templates/project/api.ts.template +12 -12
  91. package/templates/project/appsettings.json.template +170 -170
  92. package/templates/project/claude-settings.json.template +5 -5
  93. package/templates/project/test-frontend/msw/handlers.ts +58 -58
  94. package/templates/project/test-frontend/msw/server.ts +25 -25
  95. package/templates/project/test-frontend/setup.ts +16 -16
  96. package/templates/project/test-frontend/test-utils.tsx +59 -59
  97. package/templates/project/test-frontend/vitest.config.ts +31 -31
  98. package/templates/ralph/README.md +93 -93
  99. package/templates/ralph/ralph.config.yaml +113 -113
  100. package/templates/scripts/setup-ralph-loop.sh +173 -173
  101. package/templates/skills/_resources/config-safety.md +61 -61
  102. package/templates/skills/_resources/context-digest-template.md +53 -53
  103. package/templates/skills/_resources/doc-context-cache.md +60 -60
  104. package/templates/skills/_resources/docs-manifest-schema.md +155 -155
  105. package/templates/skills/_resources/formatting-guide.md +124 -124
  106. package/templates/skills/_resources/mcp-validate-documentation-spec.md +181 -181
  107. package/templates/skills/_shared.md +228 -228
  108. package/templates/skills/admin/SKILL.md +48 -48
  109. package/templates/skills/ai-prompt/SKILL.md +107 -107
  110. package/templates/skills/ai-prompt/steps/step-00-init.md +47 -47
  111. package/templates/skills/ai-prompt/steps/step-01-implementation.md +122 -122
  112. package/templates/skills/apex/SKILL.md +168 -168
  113. package/templates/skills/apex/_shared.md +141 -141
  114. package/templates/skills/apex/references/agent-teams-protocol.md +164 -164
  115. package/templates/skills/apex/references/analysis-methods.md +141 -141
  116. package/templates/skills/apex/references/challenge-questions.md +145 -145
  117. package/templates/skills/apex/references/code-generation.md +412 -412
  118. package/templates/skills/apex/references/core-seed-data.md +1437 -1437
  119. package/templates/skills/apex/references/error-classification.md +144 -144
  120. package/templates/skills/apex/references/examine-build-validation.md +82 -82
  121. package/templates/skills/apex/references/execution-frontend-gates.md +177 -177
  122. package/templates/skills/apex/references/execution-frontend-patterns.md +105 -105
  123. package/templates/skills/apex/references/execution-layer1-rules.md +96 -96
  124. package/templates/skills/apex/references/initialization-challenge-flow.md +110 -110
  125. package/templates/skills/apex/references/planning-layer-mapping.md +151 -151
  126. package/templates/skills/apex/references/post-checks.md +1584 -1584
  127. package/templates/skills/apex/references/smartstack-api.md +1053 -1053
  128. package/templates/skills/apex/references/smartstack-frontend.md +1571 -1571
  129. package/templates/skills/apex/references/smartstack-layers.md +402 -402
  130. package/templates/skills/apex/steps/step-00-init.md +307 -307
  131. package/templates/skills/apex/steps/step-01-analyze.md +165 -165
  132. package/templates/skills/apex/steps/step-02-plan.md +144 -144
  133. package/templates/skills/apex/steps/step-03-execute.md +328 -328
  134. package/templates/skills/apex/steps/step-04-examine.md +263 -263
  135. package/templates/skills/apex/steps/step-05-deep-review.md +129 -129
  136. package/templates/skills/apex/steps/step-06-resolve.md +101 -101
  137. package/templates/skills/apex/steps/step-07-tests.md +238 -238
  138. package/templates/skills/apex/steps/step-08-run-tests.md +125 -125
  139. package/templates/skills/application/SKILL.md +4 -4
  140. package/templates/skills/application/references/application-roles-template.md +227 -227
  141. package/templates/skills/application/references/backend-controller-hierarchy.md +58 -58
  142. package/templates/skills/application/references/backend-entity-seeding.md +72 -72
  143. package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -83
  144. package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -79
  145. package/templates/skills/application/references/backend-verification.md +88 -88
  146. package/templates/skills/application/references/frontend-i18n-and-output.md +67 -67
  147. package/templates/skills/application/references/frontend-route-naming.md +117 -117
  148. package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -107
  149. package/templates/skills/application/references/frontend-verification.md +156 -156
  150. package/templates/skills/application/references/migration-checklist-troubleshooting.md +1 -1
  151. package/templates/skills/application/references/provider-template.md +177 -177
  152. package/templates/skills/application/references/roles-client-project-handling.md +55 -55
  153. package/templates/skills/application/references/roles-fallback-procedure.md +149 -149
  154. package/templates/skills/application/references/test-coverage-requirements.md +213 -213
  155. package/templates/skills/application/references/test-frontend.md +73 -73
  156. package/templates/skills/application/references/test-prerequisites.md +72 -72
  157. package/templates/skills/application/steps/step-05-frontend.md +176 -176
  158. package/templates/skills/application/steps/step-06-migration.md +193 -193
  159. package/templates/skills/application/steps/step-07-tests.md +356 -356
  160. package/templates/skills/application/steps/step-08-documentation.md +137 -137
  161. package/templates/skills/application/templates-backend.md +463 -463
  162. package/templates/skills/application/templates-frontend.md +685 -685
  163. package/templates/skills/application/templates-i18n.md +520 -520
  164. package/templates/skills/application/templates-seed.md +1096 -1096
  165. package/templates/skills/business-analyse/SKILL.md +327 -327
  166. package/templates/skills/business-analyse/_architecture.md +123 -123
  167. package/templates/skills/business-analyse/_elicitation.md +206 -206
  168. package/templates/skills/business-analyse/_module-loop.md +115 -115
  169. package/templates/skills/business-analyse/_shared.md +383 -383
  170. package/templates/skills/business-analyse/_suggestions.md +34 -34
  171. package/templates/skills/business-analyse/html/ba-interactive.html +4477 -4477
  172. package/templates/skills/business-analyse/html/build-html.js +77 -77
  173. package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +150 -150
  174. package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +227 -227
  175. package/templates/skills/business-analyse/html/src/scripts/03-render-cadrage.js +199 -199
  176. package/templates/skills/business-analyse/html/src/scripts/04-render-modules.js +205 -205
  177. package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +647 -647
  178. package/templates/skills/business-analyse/html/src/scripts/06-render-consolidation.js +195 -195
  179. package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +92 -92
  180. package/templates/skills/business-analyse/html/src/scripts/08-editing.js +135 -135
  181. package/templates/skills/business-analyse/html/src/scripts/09-export.js +168 -168
  182. package/templates/skills/business-analyse/html/src/scripts/10-comments.js +171 -171
  183. package/templates/skills/business-analyse/html/src/scripts/11-review-panel.js +166 -166
  184. package/templates/skills/business-analyse/html/src/styles/01-variables.css +38 -38
  185. package/templates/skills/business-analyse/html/src/styles/02-layout.css +101 -101
  186. package/templates/skills/business-analyse/html/src/styles/03-navigation.css +120 -120
  187. package/templates/skills/business-analyse/html/src/styles/04-cards.css +196 -196
  188. package/templates/skills/business-analyse/html/src/styles/05-modules.css +454 -454
  189. package/templates/skills/business-analyse/html/src/styles/06-wireframes.css +272 -272
  190. package/templates/skills/business-analyse/html/src/styles/07-comments.css +184 -184
  191. package/templates/skills/business-analyse/html/src/styles/08-review-panel.css +241 -241
  192. package/templates/skills/business-analyse/html/src/template.html +516 -516
  193. package/templates/skills/business-analyse/patterns/suggestion-catalog.md +546 -546
  194. package/templates/skills/business-analyse/questionnaire/00-application.md +160 -160
  195. package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -85
  196. package/templates/skills/business-analyse/questionnaire/01-context.md +185 -185
  197. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +189 -189
  198. package/templates/skills/business-analyse/questionnaire/03-scope.md +164 -164
  199. package/templates/skills/business-analyse/questionnaire/04-data.md +88 -88
  200. package/templates/skills/business-analyse/questionnaire/05-integrations.md +58 -58
  201. package/templates/skills/business-analyse/questionnaire/06-security.md +68 -68
  202. package/templates/skills/business-analyse/questionnaire/07-ui.md +76 -76
  203. package/templates/skills/business-analyse/questionnaire/08-performance.md +42 -42
  204. package/templates/skills/business-analyse/questionnaire/09-constraints.md +45 -45
  205. package/templates/skills/business-analyse/questionnaire/10-documentation.md +43 -43
  206. package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +59 -59
  207. package/templates/skills/business-analyse/questionnaire/12-migration.md +58 -58
  208. package/templates/skills/business-analyse/questionnaire/13-cross-module.md +69 -69
  209. package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -135
  210. package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -136
  211. package/templates/skills/business-analyse/questionnaire.md +337 -337
  212. package/templates/skills/business-analyse/react/application-viewer.md +242 -242
  213. package/templates/skills/business-analyse/react/components.md +551 -551
  214. package/templates/skills/business-analyse/react/i18n-template.md +306 -306
  215. package/templates/skills/business-analyse/references/acceptance-criteria.md +169 -169
  216. package/templates/skills/business-analyse/references/agent-module-prompt.md +362 -362
  217. package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +557 -557
  218. package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -190
  219. package/templates/skills/business-analyse/references/cache-warming-strategy.md +566 -566
  220. package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -41
  221. package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -74
  222. package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +115 -115
  223. package/templates/skills/business-analyse/references/cadrage-shared-modules.md +68 -69
  224. package/templates/skills/business-analyse/references/cadrage-structure-cards.md +85 -85
  225. package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -297
  226. package/templates/skills/business-analyse/references/consolidation-structural-checks.md +107 -107
  227. package/templates/skills/business-analyse/references/deploy-data-build.md +180 -180
  228. package/templates/skills/business-analyse/references/deploy-modes.md +118 -118
  229. package/templates/skills/business-analyse/references/detection-strategies.md +424 -424
  230. package/templates/skills/business-analyse/references/entity-architecture-decision.md +218 -218
  231. package/templates/skills/business-analyse/references/handoff-file-templates.md +120 -120
  232. package/templates/skills/business-analyse/references/handoff-mappings.md +81 -81
  233. package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -312
  234. package/templates/skills/business-analyse/references/html-data-mapping.md +299 -299
  235. package/templates/skills/business-analyse/references/init-schema-deployment.md +65 -65
  236. package/templates/skills/business-analyse/references/naming-conventions.md +243 -243
  237. package/templates/skills/business-analyse/references/prd-generation.md +258 -258
  238. package/templates/skills/business-analyse/references/review-data-mapping.md +363 -363
  239. package/templates/skills/business-analyse/references/robustness-checks.md +542 -542
  240. package/templates/skills/business-analyse/references/spec-auto-inference.md +111 -111
  241. package/templates/skills/business-analyse/references/team-orchestration.md +1022 -1022
  242. package/templates/skills/business-analyse/references/ui-dashboard-spec.md +85 -85
  243. package/templates/skills/business-analyse/references/ui-resource-cards.md +259 -259
  244. package/templates/skills/business-analyse/references/validate-incremental-html.md +121 -121
  245. package/templates/skills/business-analyse/references/validation-checklist.md +347 -347
  246. package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +335 -335
  247. package/templates/skills/business-analyse/schemas/application-schema.json +453 -453
  248. package/templates/skills/business-analyse/schemas/feature-schema.json +53 -53
  249. package/templates/skills/business-analyse/schemas/project-schema.json +485 -485
  250. package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +201 -201
  251. package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -82
  252. package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -80
  253. package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +70 -70
  254. package/templates/skills/business-analyse/schemas/sections/specification-schema.json +547 -547
  255. package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -93
  256. package/templates/skills/business-analyse/schemas/shared/common-defs.json +226 -226
  257. package/templates/skills/business-analyse/steps/step-00-init.md +575 -576
  258. package/templates/skills/business-analyse/steps/step-01-cadrage.md +767 -767
  259. package/templates/skills/business-analyse/steps/step-01b-applications.md +419 -419
  260. package/templates/skills/business-analyse/steps/step-02-decomposition.md +387 -387
  261. package/templates/skills/business-analyse/steps/step-03a-data.md +16 -16
  262. package/templates/skills/business-analyse/steps/step-03a1-setup.md +506 -506
  263. package/templates/skills/business-analyse/steps/step-03a2-analysis.md +252 -252
  264. package/templates/skills/business-analyse/steps/step-03b-ui.md +425 -425
  265. package/templates/skills/business-analyse/steps/step-03c-compile.md +611 -611
  266. package/templates/skills/business-analyse/steps/step-03d-validate.md +783 -783
  267. package/templates/skills/business-analyse/steps/step-04-consolidation.md +17 -17
  268. package/templates/skills/business-analyse/steps/step-04a-collect.md +415 -415
  269. package/templates/skills/business-analyse/steps/step-04b-analyze.md +163 -163
  270. package/templates/skills/business-analyse/steps/step-04c-decide.md +186 -186
  271. package/templates/skills/business-analyse/steps/step-05a-handoff.md +840 -840
  272. package/templates/skills/business-analyse/steps/step-05b-deploy.md +522 -522
  273. package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +703 -703
  274. package/templates/skills/business-analyse/steps/step-06-review.md +278 -278
  275. package/templates/skills/business-analyse/templates/tpl-frd.md +168 -168
  276. package/templates/skills/business-analyse/templates/tpl-handoff.md +186 -186
  277. package/templates/skills/business-analyse/templates/tpl-launch-displays.md +59 -59
  278. package/templates/skills/business-analyse/templates/tpl-progress.md +172 -172
  279. package/templates/skills/business-analyse/templates-frd.md +476 -476
  280. package/templates/skills/business-analyse/templates-react.md +574 -574
  281. package/templates/skills/cc-agent/SKILL.md +129 -129
  282. package/templates/skills/cc-agent/references/agent-behavior-patterns.md +95 -95
  283. package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -213
  284. package/templates/skills/cc-agent/references/permission-modes.md +102 -102
  285. package/templates/skills/cc-agent/references/tools-reference.md +144 -144
  286. package/templates/skills/cc-agent/steps/step-00-init.md +134 -134
  287. package/templates/skills/cc-agent/steps/step-01-design.md +186 -186
  288. package/templates/skills/cc-agent/steps/step-02-generate.md +131 -131
  289. package/templates/skills/cc-agent/steps/step-03-validate.md +130 -130
  290. package/templates/skills/cc-agent/templates/agent-categorized.md +67 -67
  291. package/templates/skills/cc-agent/templates/agent-standalone.md +56 -56
  292. package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -94
  293. package/templates/skills/cc-audit/SKILL.md +108 -108
  294. package/templates/skills/cc-audit/references/agent-checklist.md +91 -91
  295. package/templates/skills/cc-audit/references/hook-checklist.md +110 -110
  296. package/templates/skills/cc-audit/references/skill-checklist.md +70 -70
  297. package/templates/skills/cc-audit/steps/step-00-init.md +98 -98
  298. package/templates/skills/cc-audit/steps/step-01-scan.md +142 -142
  299. package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -158
  300. package/templates/skills/cc-audit/steps/step-03-report.md +142 -142
  301. package/templates/skills/cc-skill/SKILL.md +134 -134
  302. package/templates/skills/cc-skill/references/best-practices.md +167 -167
  303. package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -182
  304. package/templates/skills/cc-skill/references/skill-patterns.md +199 -199
  305. package/templates/skills/cc-skill/steps/step-00-init.md +119 -119
  306. package/templates/skills/cc-skill/steps/step-01-design.md +199 -199
  307. package/templates/skills/cc-skill/steps/step-02-generate.md +145 -145
  308. package/templates/skills/cc-skill/steps/step-03-steps.md +151 -151
  309. package/templates/skills/cc-skill/steps/step-04-validate.md +124 -124
  310. package/templates/skills/cc-skill/templates/skill-forked.md +85 -85
  311. package/templates/skills/cc-skill/templates/skill-progressive.md +102 -102
  312. package/templates/skills/cc-skill/templates/skill-simple.md +75 -75
  313. package/templates/skills/cc-skill/templates/step-template.md +82 -82
  314. package/templates/skills/check-version/SKILL.md +196 -196
  315. package/templates/skills/controller/SKILL.md +162 -162
  316. package/templates/skills/controller/postman-templates.md +614 -614
  317. package/templates/skills/controller/references/controller-code-templates.md +159 -159
  318. package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -209
  319. package/templates/skills/controller/references/permission-sync-templates.md +149 -149
  320. package/templates/skills/controller/steps/step-00-init.md +193 -191
  321. package/templates/skills/controller/steps/step-01-analyze.md +146 -146
  322. package/templates/skills/controller/steps/step-02-plan.md +176 -176
  323. package/templates/skills/controller/steps/step-03-generate.md +189 -189
  324. package/templates/skills/controller/steps/step-04-perms.md +80 -80
  325. package/templates/skills/controller/steps/step-05-validate.md +107 -107
  326. package/templates/skills/controller/templates.md +1555 -1555
  327. package/templates/skills/debug/SKILL.md +70 -70
  328. package/templates/skills/debug/references/team-protocol.md +232 -232
  329. package/templates/skills/debug/steps/step-00-init.md +57 -57
  330. package/templates/skills/debug/steps/step-01-analyze.md +219 -219
  331. package/templates/skills/debug/steps/step-02-resolve.md +85 -85
  332. package/templates/skills/documentation/SKILL.md +132 -132
  333. package/templates/skills/documentation/data-schema.md +227 -227
  334. package/templates/skills/documentation/steps/step-00-init.md +70 -70
  335. package/templates/skills/documentation/steps/step-01-scan.md +113 -113
  336. package/templates/skills/documentation/steps/step-02-generate.md +231 -231
  337. package/templates/skills/documentation/steps/step-03-validate.md +251 -238
  338. package/templates/skills/documentation/templates.md +662 -663
  339. package/templates/skills/efcore/SKILL.md +167 -167
  340. package/templates/skills/efcore/references/both-contexts.md +32 -32
  341. package/templates/skills/efcore/references/database-operations.md +67 -67
  342. package/templates/skills/efcore/references/destructive-operations.md +38 -38
  343. package/templates/skills/efcore/references/reset-operations.md +81 -81
  344. package/templates/skills/efcore/references/seed-methods.md +86 -86
  345. package/templates/skills/efcore/references/shared-init-functions.md +250 -250
  346. package/templates/skills/efcore/references/sql-objects-injection.md +61 -61
  347. package/templates/skills/efcore/references/troubleshooting.md +81 -81
  348. package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -227
  349. package/templates/skills/efcore/steps/db/step-deploy.md +217 -217
  350. package/templates/skills/efcore/steps/db/step-reset.md +186 -186
  351. package/templates/skills/efcore/steps/db/step-seed.md +166 -166
  352. package/templates/skills/efcore/steps/db/step-status.md +173 -173
  353. package/templates/skills/efcore/steps/migration/step-00-init.md +102 -102
  354. package/templates/skills/efcore/steps/migration/step-01-check.md +164 -164
  355. package/templates/skills/efcore/steps/migration/step-02-create.md +160 -160
  356. package/templates/skills/efcore/steps/migration/step-03-validate.md +168 -168
  357. package/templates/skills/efcore/steps/rebase-snapshot/step-00-init.md +173 -173
  358. package/templates/skills/efcore/steps/rebase-snapshot/step-01-backup.md +100 -100
  359. package/templates/skills/efcore/steps/rebase-snapshot/step-02-fetch.md +115 -115
  360. package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +112 -112
  361. package/templates/skills/efcore/steps/rebase-snapshot/step-04-validate.md +157 -157
  362. package/templates/skills/efcore/steps/shared/step-00-init.md +131 -131
  363. package/templates/skills/efcore/steps/squash/step-00-init.md +141 -141
  364. package/templates/skills/efcore/steps/squash/step-01-backup.md +120 -120
  365. package/templates/skills/efcore/steps/squash/step-02-fetch.md +168 -168
  366. package/templates/skills/efcore/steps/squash/step-03-create.md +184 -184
  367. package/templates/skills/efcore/steps/squash/step-04-validate.md +174 -174
  368. package/templates/skills/explore/SKILL.md +98 -98
  369. package/templates/skills/feature-full/SKILL.md +111 -111
  370. package/templates/skills/feature-full/steps/step-00-init.md +57 -57
  371. package/templates/skills/feature-full/steps/step-01-implementation.md +120 -120
  372. package/templates/skills/gitflow/SKILL.md +377 -377
  373. package/templates/skills/gitflow/_shared.md +620 -620
  374. package/templates/skills/gitflow/phases/abort.md +189 -189
  375. package/templates/skills/gitflow/phases/cleanup.md +234 -234
  376. package/templates/skills/gitflow/phases/status.md +192 -192
  377. package/templates/skills/gitflow/references/commit-message-generation.md +58 -58
  378. package/templates/skills/gitflow/references/commit-migration-validation.md +49 -49
  379. package/templates/skills/gitflow/references/finish-cleanup.md +55 -55
  380. package/templates/skills/gitflow/references/finish-version-bumping.md +45 -45
  381. package/templates/skills/gitflow/references/init-config-template.md +135 -135
  382. package/templates/skills/gitflow/references/init-environment-detection.md +41 -41
  383. package/templates/skills/gitflow/references/init-name-normalization.md +103 -103
  384. package/templates/skills/gitflow/references/init-questions.md +185 -185
  385. package/templates/skills/gitflow/references/init-structure-creation.md +75 -75
  386. package/templates/skills/gitflow/references/init-version-detection.md +21 -21
  387. package/templates/skills/gitflow/references/init-workspace-detection.md +43 -43
  388. package/templates/skills/gitflow/references/merge-ci-status.md +36 -36
  389. package/templates/skills/gitflow/references/merge-execution.md +62 -62
  390. package/templates/skills/gitflow/references/merge-pr-context.md +76 -76
  391. package/templates/skills/gitflow/references/plan-template.md +69 -69
  392. package/templates/skills/gitflow/references/pr-build-checks.md +60 -60
  393. package/templates/skills/gitflow/references/pr-generation.md +58 -58
  394. package/templates/skills/gitflow/references/start-branch-normalization.md +28 -28
  395. package/templates/skills/gitflow/references/start-efcore-preflight.md +70 -70
  396. package/templates/skills/gitflow/references/start-local-config.md +113 -113
  397. package/templates/skills/gitflow/references/start-worktree-creation.md +50 -50
  398. package/templates/skills/gitflow/references/sync-push-verify.md +44 -44
  399. package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -38
  400. package/templates/skills/gitflow/steps/step-commit.md +199 -199
  401. package/templates/skills/gitflow/steps/step-finish.md +147 -147
  402. package/templates/skills/gitflow/steps/step-init.md +190 -190
  403. package/templates/skills/gitflow/steps/step-merge.md +85 -85
  404. package/templates/skills/gitflow/steps/step-plan.md +151 -151
  405. package/templates/skills/gitflow/steps/step-pr.md +199 -199
  406. package/templates/skills/gitflow/steps/step-start.md +195 -195
  407. package/templates/skills/gitflow/steps/step-sync.md +161 -161
  408. package/templates/skills/gitflow/templates/config.json +72 -72
  409. package/templates/skills/mcp/SKILL.md +62 -62
  410. package/templates/skills/mcp/steps/step-01-healthcheck.md +108 -108
  411. package/templates/skills/mcp/steps/step-02-tools.md +73 -73
  412. package/templates/skills/notification/SKILL.md +173 -173
  413. package/templates/skills/quick-search/SKILL.md +99 -99
  414. package/templates/skills/ralph-loop/SKILL.md +234 -234
  415. package/templates/skills/ralph-loop/references/category-completeness.md +185 -185
  416. package/templates/skills/ralph-loop/references/category-rules.md +96 -96
  417. package/templates/skills/ralph-loop/references/compact-loop.md +300 -300
  418. package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -127
  419. package/templates/skills/ralph-loop/references/module-transition.md +151 -151
  420. package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -171
  421. package/templates/skills/ralph-loop/references/parallel-execution.md +246 -246
  422. package/templates/skills/ralph-loop/references/section-splitting.md +439 -439
  423. package/templates/skills/ralph-loop/references/task-transform-legacy.md +256 -256
  424. package/templates/skills/ralph-loop/references/team-orchestration.md +547 -547
  425. package/templates/skills/ralph-loop/steps/step-00-init.md +150 -150
  426. package/templates/skills/ralph-loop/steps/step-01-task.md +174 -174
  427. package/templates/skills/ralph-loop/steps/step-02-execute.md +177 -177
  428. package/templates/skills/ralph-loop/steps/step-03-commit.md +92 -92
  429. package/templates/skills/ralph-loop/steps/step-04-check.md +207 -207
  430. package/templates/skills/ralph-loop/steps/step-05-report.md +175 -175
  431. package/templates/skills/refactor/SKILL.md +56 -56
  432. package/templates/skills/refactor/steps/step-01-discover.md +60 -60
  433. package/templates/skills/refactor/steps/step-02-execute.md +67 -67
  434. package/templates/skills/review-code/SKILL.md +94 -94
  435. package/templates/skills/review-code/references/clean-code-principles.md +292 -292
  436. package/templates/skills/review-code/references/code-quality-metrics.md +174 -174
  437. package/templates/skills/review-code/references/feedback-patterns.md +149 -149
  438. package/templates/skills/review-code/references/owasp-api-top10.md +243 -243
  439. package/templates/skills/review-code/references/security-checklist.md +212 -212
  440. package/templates/skills/review-code/steps/step-01-smartstack.md +96 -96
  441. package/templates/skills/review-code/steps/step-02-detailed-review.md +80 -80
  442. package/templates/skills/review-code/steps/step-03-react.md +44 -44
  443. package/templates/skills/ui-components/SKILL.md +137 -137
  444. package/templates/skills/ui-components/accessibility.md +170 -170
  445. package/templates/skills/ui-components/patterns/dashboard-chart.md +327 -327
  446. package/templates/skills/ui-components/patterns/data-table.md +39 -39
  447. package/templates/skills/ui-components/patterns/entity-card.md +77 -77
  448. package/templates/skills/ui-components/patterns/grid-layout.md +91 -91
  449. package/templates/skills/ui-components/patterns/kanban.md +43 -43
  450. package/templates/skills/ui-components/responsive-guidelines.md +278 -278
  451. package/templates/skills/ui-components/style-guide.md +113 -113
  452. package/templates/skills/utils/SKILL.md +44 -44
  453. package/templates/skills/utils/subcommands/test-web-config.md +152 -152
  454. package/templates/skills/utils/subcommands/test-web.md +123 -123
  455. package/templates/skills/validate/SKILL.md +181 -181
  456. package/templates/skills/validate-feature/SKILL.md +101 -101
  457. package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
  458. package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
  459. package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
  460. package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
  461. package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
  462. package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
  463. package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
  464. package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
  465. package/templates/skills/workflow/SKILL.md +127 -127
  466. package/templates/skills/workflow/steps/step-00-init.md +57 -57
  467. package/templates/skills/workflow/steps/step-01-implementation.md +84 -84
  468. package/templates/test-web/api-health.json +38 -38
  469. package/templates/test-web/minimal.json +19 -19
  470. package/templates/test-web/npm-package.json +46 -46
  471. package/templates/test-web/seo-check.json +54 -54
@@ -1,328 +1,328 @@
1
- ---
2
- name: step-03-execute
3
- description: Orchestrate code creation via existing skills and MCP tools
4
- model: opus
5
- prev_step: steps/step-02-plan.md
6
- next_step: steps/step-04-examine.md
7
- ---
8
-
9
- # Step 3: Execute
10
-
11
- **CRITICAL PRINCIPLE: /apex ORCHESTRATES. It NEVER writes SmartStack code directly.**
12
- All code goes through skills (/controller, /application, /ui-components, /efcore) or MCP tools.
13
-
14
- ## LOAD CONDITIONALLY
15
-
16
- - **ALWAYS** read `references/smartstack-api.md` — BaseEntity API, entity/config/controller patterns
17
- - **ALWAYS** read `references/smartstack-frontend.md` — lazy loading, i18n, page structure, CSS variables
18
- - Read `references/smartstack-layers.md` for execution rules per layer
19
- - If NOT `{economy_mode}` AND Layer 1 has parallel work: read `references/agent-teams-protocol.md`
20
- - If `{delegate_mode}` AND seedData tasks exist: read `references/core-seed-data.md` — comprehensive seed data templates
21
- - If build failure during execution: read `references/error-classification.md` — error diagnosis categories A-F
22
-
23
- ---
24
-
25
- ## Foundation Mode Detection
26
-
27
- **IF `{foundation_mode}` == true:**
28
-
29
- This is a foundation-only execution (called by ralph-loop Phase 0). Execute ONLY:
30
- - Layer 0: Domain entities + EF configs + Migration
31
-
32
- **SKIP ALL OTHER LAYERS:**
33
- - Layer 1: Application + API + Seed Data → SKIP
34
- - Layer 2: Frontend → SKIP
35
- - Layer 3: Tests → SKIP
36
-
37
- After Layer 0 completes and builds successfully:
38
- - Commit with message: `chore(foundation): entities for {module_code}`
39
- - Jump to step-04 for POST-CHECKs (domain + infrastructure only)
40
- - End execution
41
-
42
- **IF `{foundation_mode}` == false:**
43
- Execute ALL layers normally (Layer 0 → Layer 1 → Layer 2 → Layer 3).
44
-
45
- ---
46
-
47
- ## Layer 0 — Domain + Infrastructure (sequential, agent principal)
48
-
49
- ### Domain Entities
50
-
51
- ```
52
- For each entity to create/modify:
53
- → MCP scaffold_extension (type: "entity", target: entity_name)
54
- → Verify: inherits BaseEntity, implements ITenantEntity + IAuditableEntity
55
- → Verify entity matches patterns in references/smartstack-api.md
56
- ```
57
-
58
- ### EF Core Configurations
59
-
60
- ```
61
- For each entity:
62
- → MCP scaffold_extension (type: "configuration", target: entity_name)
63
- → Verify: table name, relationships, indexes
64
- → Register DbSet in ExtensionsDbContext if new entity
65
- ```
66
-
67
- ### Migration (BLOCKING)
68
-
69
- > **CRITICAL — Migration must cover ALL entities, not just the first batch.**
70
- > Root cause (test-apex-007): Migration was created once for 3 entities, then 4 more entities
71
- > were added later without re-running migration → 4 entities had no database tables.
72
- > **RULE:** Create/update migration AFTER ALL entities and EF configs are registered in DbContext.
73
- > If entities are added incrementally, create a NEW migration for each batch.
74
-
75
- ```
76
- 1. Verify ALL entities have been added as DbSet in ExtensionsDbContext
77
- 2. Verify ALL EF configurations are registered (ApplyConfigurationsFromAssembly or individual)
78
- 3. MCP suggest_migration → get standardized name
79
- 4. dotnet ef migrations add {Name} --project src/{Infra}.csproj --startup-project src/{Api}.csproj -o Persistence/Migrations
80
- 5. dotnet ef database update (if local DB)
81
- 6. dotnet build → MUST PASS
82
- 7. Verify: dotnet ef migrations has-pending-model-changes → MUST report "No pending model changes"
83
- ```
84
-
85
- **BLOCKING:** If build fails after migration, fix EF configs before proceeding.
86
- **BLOCKING:** If `has-pending-model-changes` reports pending changes, entities are missing from the migration — create a new migration.
87
-
88
- ### Post-Layer 0 Build Gate
89
-
90
- ```bash
91
- dotnet build
92
- # Note: WSL bin\Debug cleanup handled by PostToolUse hook (wsl-dotnet-cleanup.sh)
93
- ```
94
-
95
- **MUST PASS before Layer 1. If NuGet error, run `dotnet restore` first. If file lock (MSB3021), use `--output /tmp/{project}_build`.**
96
-
97
- ---
98
-
99
- ## Layer 1 — Application + API + Seed Data
100
-
101
- > **Reference:** Load `references/execution-layer1-rules.md` for critical Layer 1 rules:
102
- > - NavRoute and permission kebab-case (POST-CHECKs 41 + 48)
103
- > - Controller route attributes (POST-CHECK 50)
104
- > - Validators DI registration (POST-CHECK 46)
105
- > - DateOnly vs string (POST-CHECK 47)
106
- > - Code generation patterns (ICodeGenerator<T> registration)
107
-
108
- ### Backend Tasks (sequential or parallel)
109
-
110
- - **Services/DTOs:** MCP scaffold_extension
111
- - **Controllers:** use /controller skill for complex, MCP scaffold_extension for simple
112
- - **IMPORTANT:** ALL GetAll endpoints MUST support `?search=` query parameter (enables EntityLookup on frontend)
113
- - **Seed data:** MCP generate_permissions, then follow smartstack-layers.md templates
114
-
115
- ### Frontend Tasks (sequential or parallel)
116
-
117
- > **Reference:** Load `references/execution-frontend-patterns.md` for complete frontend patterns:
118
- > - API client generation (MCP scaffold_api_client)
119
- > - Route scaffolding (MCP scaffold_routes)
120
- > - Page types (ListPage, DetailPage, CreatePage, EditPage)
121
- > - FK field handling (EntityLookup component)
122
- > - Form structure (ZERO modals — all full pages)
123
- > - Detail page tabs (local state only)
124
- > - Testing patterns (co-located form tests)
125
- > - Section-level routes and permissions
126
- > - Sub-resource handling
127
- > - I18n JSON structure and registration (POST-CHECK 45)
128
-
129
- ### If NOT economy_mode: Agent Teams (parallel)
130
-
131
- > **Protocol:** See `references/agent-teams-protocol.md`
132
-
133
- ```
134
- TeamCreate("apex-exec", description: "Execute Layer 1 in parallel")
135
-
136
- Spawn 2 teammates (Opus, full tools):
137
-
138
- 1. exec-backend (team_name: "apex-exec", name: "exec-backend"):
139
- "Execute these Layer 1 backend tasks for module {module_code}:
140
- {list of application + api + seed data tasks from plan}
141
-
142
- For each task:
143
- - Application services/DTOs: MCP scaffold_extension
144
- - Controllers: use /controller skill for complex, MCP scaffold_extension for simple
145
- - IMPORTANT: ALL GetAll endpoints MUST support ?search= query parameter (enables EntityLookup on frontend)
146
- - Seed data: MCP generate_permissions, then follow smartstack-layers.md templates
147
-
148
- After ALL tasks done:
149
- SendMessage(type:'message', recipient:'team-lead', content:'BACKEND_COMPLETE', summary:'Backend layer done')"
150
-
151
- 2. exec-frontend (team_name: "apex-exec", name: "exec-frontend"):
152
- "Execute these Layer 1 frontend tasks for module {module_code}:
153
- {list of frontend + i18n tasks from plan}
154
-
155
- **MANDATORY: Read references/smartstack-frontend.md FIRST** — contains all required patterns.
156
-
157
- For each task:
158
- - API client: MCP scaffold_api_client
159
- - Routes: MCP scaffold_routes (outputFormat: 'clientRoutes') → generates lazy imports + Suspense
160
- - Pages: use /ui-components skill — MUST follow smartstack-frontend.md patterns:
161
- → React.lazy() for all page imports (named export wrapping)
162
- → <Suspense fallback={<PageLoader />}> around all lazy components
163
- → Page structure: hooks → useEffect(load) → loading → error → content
164
- → CSS variables only: bg-[var(--bg-card)], text-[var(--text-primary)]
165
- → SmartTable/SmartFilter/EntityCard (NEVER raw HTML)
166
- - **FORM PAGES (CRITICAL):** Create/Edit forms are FULL PAGES with own routes:
167
- → EntityCreatePage.tsx with route /{module}/create
168
- → EntityEditPage.tsx with route /{module}/:id/edit
169
- → ZERO modals/popups/drawers/dialogs for forms
170
- → Back button with navigate(-1) on every form page
171
- → See smartstack-frontend.md section 3b for templates
172
- - **TABS ON DETAIL PAGES (CRITICAL):** Tabs MUST switch content LOCALLY:
173
- → Tab click handler: setActiveTab(tabKey) ONLY — NEVER navigate() to another page
174
- → Tab content: render inline with {activeTab === 'tabKey' && <TabContent />}
175
- → Sub-resource data: fetch via API filtered by parent ID, display in tab panel
176
- → FORBIDDEN: navigate('../leaves?employee=${id}') in tab handler
177
- → See smartstack-frontend.md section 3 'Tab Behavior Rules'
178
- - **FK FIELDS (CRITICAL):** Foreign key Guid fields (e.g., EmployeeId) MUST use EntityLookup:
179
- → NEVER render FK fields as `<input>` — users cannot type GUIDs
180
- → NEVER render FK fields as `<select>` — even with API-loaded options, `<select>` is NOT acceptable
181
- → ONLY use `<EntityLookup />` from @/components/ui/EntityLookup for searchable selection
182
- → Each FK field needs: apiEndpoint, mapOption (display name), search support on backend
183
- → FORBIDDEN: `<select value={formData.departmentId}>`, `<option value={dept.id}>`, `e.target.value` for FK fields
184
- → See smartstack-frontend.md section 6 for the full EntityLookup pattern
185
- - **FORM TESTS (MANDATORY):**
186
- → EntityCreatePage.test.tsx (co-located next to page)
187
- → EntityEditPage.test.tsx (co-located next to page)
188
- → Cover: rendering, validation, submit, pre-fill, navigation, errors
189
- → See smartstack-frontend.md section 8 for test templates
190
- - **SECTION PERMISSIONS:** After MCP generate_permissions for the module navRoute (2 segments),
191
- also call MCP generate_permissions for EACH section navRoute (3 segments: {app}.{module}.{section})
192
- - **SECTION ROUTES:** Add section child routes to the module's children array.
193
- Wire PermissionGuard for section routes with section-level permissions.
194
- - I18n: Generate 4 JSON files per module namespace (fr, en, it, de)
195
- → Follow JSON template from smartstack-frontend.md
196
- → Keys: actions, labels, errors, validation, columns, form, messages, empty
197
- → ALL t() calls MUST use namespace prefix + fallback: t('ns:key', 'Default text')
198
- - MUST use src/pages/{App}/{Module}/ hierarchy (NOT flat)
199
-
200
- After ALL tasks done:
201
- SendMessage(type:'message', recipient:'team-lead', content:'FRONTEND_COMPLETE', summary:'Frontend layer done')"
202
-
203
- Wait for both teammates to report completion.
204
-
205
- Build verification:
206
- dotnet build (backend)
207
- npm run typecheck (frontend, if applicable)
208
-
209
- shutdown_request → shutdown_response → TeamDelete("apex-exec")
210
- ```
211
-
212
- ---
213
-
214
- ## Layer 1 — Skill Delegation
215
-
216
- | Skill | When | Context to provide |
217
- |-------|------|--------------------|
218
- | /controller | Custom routes, complex auth, file upload | entity, CRUD actions, permissions, routes |
219
- | /application | Full app/module from scratch | app, module names |
220
- | /ui-components | Complex pages (tables, grids, dashboards) | entity, fields, page type |
221
- | /efcore | Complex EF configs, inheritance | relationships, indexes |
222
- | /notification | In-app or email notifications | trigger, recipients, template |
223
- | /workflow | Automated workflows | trigger, steps, conditions |
224
-
225
- ---
226
-
227
- ## Layer 2b — Documentation (after frontend pages exist)
228
-
229
- > **After frontend pages are created, generate module documentation via `/documentation` skill.**
230
-
231
- ```
232
- Invoke /documentation {module_code} --type user
233
-
234
- This generates:
235
- - src/pages/docs/business/{app}/{module}/doc-data.ts (data file)
236
- - src/pages/docs/business/{app}/{module}/index.tsx (page wrapper)
237
- - src/i18n/locales/fr/docs-{app}-{module}.json (French doc translations)
238
- - Updates App.tsx routing for doc page
239
- - Updates docs-manifest.json
240
- ```
241
-
242
- **Verify DocToggleButton presence in list/detail pages:**
243
- - Every `*ListPage.tsx` and `*DetailPage.tsx` MUST import and render `DocToggleButton` in their header
244
- - Import: `import { DocToggleButton } from '@/components/docs/DocToggleButton';`
245
- - Placement: inside the header actions area (see `smartstack-frontend.md` section 7)
246
-
247
- ---
248
-
249
- ## Layer 2 — Final Seed Data + Validation (sequential)
250
-
251
- After Layer 1 completes:
252
-
253
- ```
254
- 1. Verify seed data completeness:
255
- - NavigationModuleSeedData.cs with 4 languages
256
- - PermissionsSeedData.cs with deterministic GUIDs
257
- - RolesSeedData.cs with context-based role mapping
258
- - IClientSeedDataProvider updated
259
- - DI registration added
260
-
261
- 2. Build gate:
262
- dotnet build → MUST PASS
263
- npm run typecheck → MUST PASS (if frontend)
264
- ```
265
-
266
- ---
267
-
268
- ## FRONTEND COMPLIANCE GATE (MANDATORY before commit)
269
-
270
- > **Reference:** Load `references/execution-frontend-gates.md` for all 5 mandatory checks:
271
- > 1. CSS Variables (theme system) — POST-CHECK 13
272
- > 2. Forms as Pages (ZERO modals/drawers/slide-overs)
273
- > 3. I18n File Structure (4 languages, separate JSON files)
274
- > 4. Lazy Loading (React.lazy() — no static imports)
275
- > 5. useTranslation in Pages (all text translated)
276
-
277
- **BLOCKING:** Do NOT commit frontend changes until ALL 5 gates pass.
278
-
279
- When delegating to `/ui-components` skill, include explicit instructions:
280
- - "CSS: Use CSS variables ONLY — `bg-[var(--bg-card)]`, `text-[var(--text-primary)]`."
281
- - "Forms: Create/Edit forms are FULL PAGES with own routes (e.g., `/create`, `/:id/edit`)."
282
- - "I18n: ALL text must use `t('namespace:key', 'Fallback')`. Generate JSON files in `src/i18n/locales/`."
283
-
284
- ---
285
-
286
- ## PRD State Update (delegate mode only)
287
-
288
- > **After completing EACH layer**, update the PRD file so `/ralph-loop` can track progress.
289
-
290
- ```
291
- IF delegate_mode:
292
- After each layer completes successfully:
293
- Read {delegate_prd_path}
294
- For each task executed in this layer:
295
- task.status = 'completed' (or 'failed' if errors)
296
- task.completed_at = new Date().toISOString()
297
- task.iteration = 1 (delegate mode = single iteration)
298
- task.commit_hash = $(git rev-parse --short HEAD)
299
- task.files_changed = { created: [...files created...], modified: [...files modified...] }
300
- task.validation = "APEX_PASS" (or error details)
301
- prd.updated_at = new Date().toISOString()
302
- Write back to {delegate_prd_path}
303
- ```
304
-
305
- ---
306
-
307
- ## Commits Per Layer
308
-
309
- After each layer completes, gates pass, and builds pass:
310
-
311
- ```
312
- Layer 0: feat({module}): [domain+infra] {short description}
313
- Layer 1: feat({module}): [app+api] {short description}
314
- Layer 1: feat({module}): [frontend] {short description} # if applicable — AFTER all 5 gates pass
315
- Layer 2: feat({module}): [seed] {short description} # if applicable
316
- ```
317
-
318
- ---
319
-
320
- ## Save Output (if save_mode)
321
-
322
- Write to `{output_dir}/03-execute.md` with execution log per layer.
323
-
324
- ---
325
-
326
- ## NEXT STEP
327
-
328
- Load `steps/step-04-examine.md`
1
+ ---
2
+ name: step-03-execute
3
+ description: Orchestrate code creation via existing skills and MCP tools
4
+ model: opus
5
+ prev_step: steps/step-02-plan.md
6
+ next_step: steps/step-04-examine.md
7
+ ---
8
+
9
+ # Step 3: Execute
10
+
11
+ **CRITICAL PRINCIPLE: /apex ORCHESTRATES. It NEVER writes SmartStack code directly.**
12
+ All code goes through skills (/controller, /application, /ui-components, /efcore) or MCP tools.
13
+
14
+ ## LOAD CONDITIONALLY
15
+
16
+ - **ALWAYS** read `references/smartstack-api.md` — BaseEntity API, entity/config/controller patterns
17
+ - **ALWAYS** read `references/smartstack-frontend.md` — lazy loading, i18n, page structure, CSS variables
18
+ - Read `references/smartstack-layers.md` for execution rules per layer
19
+ - If NOT `{economy_mode}` AND Layer 1 has parallel work: read `references/agent-teams-protocol.md`
20
+ - If `{delegate_mode}` AND seedData tasks exist: read `references/core-seed-data.md` — comprehensive seed data templates
21
+ - If build failure during execution: read `references/error-classification.md` — error diagnosis categories A-F
22
+
23
+ ---
24
+
25
+ ## Foundation Mode Detection
26
+
27
+ **IF `{foundation_mode}` == true:**
28
+
29
+ This is a foundation-only execution (called by ralph-loop Phase 0). Execute ONLY:
30
+ - Layer 0: Domain entities + EF configs + Migration
31
+
32
+ **SKIP ALL OTHER LAYERS:**
33
+ - Layer 1: Application + API + Seed Data → SKIP
34
+ - Layer 2: Frontend → SKIP
35
+ - Layer 3: Tests → SKIP
36
+
37
+ After Layer 0 completes and builds successfully:
38
+ - Commit with message: `chore(foundation): entities for {module_code}`
39
+ - Jump to step-04 for POST-CHECKs (domain + infrastructure only)
40
+ - End execution
41
+
42
+ **IF `{foundation_mode}` == false:**
43
+ Execute ALL layers normally (Layer 0 → Layer 1 → Layer 2 → Layer 3).
44
+
45
+ ---
46
+
47
+ ## Layer 0 — Domain + Infrastructure (sequential, agent principal)
48
+
49
+ ### Domain Entities
50
+
51
+ ```
52
+ For each entity to create/modify:
53
+ → MCP scaffold_extension (type: "entity", target: entity_name)
54
+ → Verify: inherits BaseEntity, implements ITenantEntity + IAuditableEntity
55
+ → Verify entity matches patterns in references/smartstack-api.md
56
+ ```
57
+
58
+ ### EF Core Configurations
59
+
60
+ ```
61
+ For each entity:
62
+ → MCP scaffold_extension (type: "configuration", target: entity_name)
63
+ → Verify: table name, relationships, indexes
64
+ → Register DbSet in ExtensionsDbContext if new entity
65
+ ```
66
+
67
+ ### Migration (BLOCKING)
68
+
69
+ > **CRITICAL — Migration must cover ALL entities, not just the first batch.**
70
+ > Root cause (test-apex-007): Migration was created once for 3 entities, then 4 more entities
71
+ > were added later without re-running migration → 4 entities had no database tables.
72
+ > **RULE:** Create/update migration AFTER ALL entities and EF configs are registered in DbContext.
73
+ > If entities are added incrementally, create a NEW migration for each batch.
74
+
75
+ ```
76
+ 1. Verify ALL entities have been added as DbSet in ExtensionsDbContext
77
+ 2. Verify ALL EF configurations are registered (ApplyConfigurationsFromAssembly or individual)
78
+ 3. MCP suggest_migration → get standardized name
79
+ 4. dotnet ef migrations add {Name} --project src/{Infra}.csproj --startup-project src/{Api}.csproj -o Persistence/Migrations
80
+ 5. dotnet ef database update (if local DB)
81
+ 6. dotnet build → MUST PASS
82
+ 7. Verify: dotnet ef migrations has-pending-model-changes → MUST report "No pending model changes"
83
+ ```
84
+
85
+ **BLOCKING:** If build fails after migration, fix EF configs before proceeding.
86
+ **BLOCKING:** If `has-pending-model-changes` reports pending changes, entities are missing from the migration — create a new migration.
87
+
88
+ ### Post-Layer 0 Build Gate
89
+
90
+ ```bash
91
+ dotnet build
92
+ # Note: WSL bin\Debug cleanup handled by PostToolUse hook (wsl-dotnet-cleanup.sh)
93
+ ```
94
+
95
+ **MUST PASS before Layer 1. If NuGet error, run `dotnet restore` first. If file lock (MSB3021), use `--output /tmp/{project}_build`.**
96
+
97
+ ---
98
+
99
+ ## Layer 1 — Application + API + Seed Data
100
+
101
+ > **Reference:** Load `references/execution-layer1-rules.md` for critical Layer 1 rules:
102
+ > - NavRoute and permission kebab-case (POST-CHECKs 41 + 48)
103
+ > - Controller route attributes (POST-CHECK 50)
104
+ > - Validators DI registration (POST-CHECK 46)
105
+ > - DateOnly vs string (POST-CHECK 47)
106
+ > - Code generation patterns (ICodeGenerator<T> registration)
107
+
108
+ ### Backend Tasks (sequential or parallel)
109
+
110
+ - **Services/DTOs:** MCP scaffold_extension
111
+ - **Controllers:** use /controller skill for complex, MCP scaffold_extension for simple
112
+ - **IMPORTANT:** ALL GetAll endpoints MUST support `?search=` query parameter (enables EntityLookup on frontend)
113
+ - **Seed data:** MCP generate_permissions, then follow smartstack-layers.md templates
114
+
115
+ ### Frontend Tasks (sequential or parallel)
116
+
117
+ > **Reference:** Load `references/execution-frontend-patterns.md` for complete frontend patterns:
118
+ > - API client generation (MCP scaffold_api_client)
119
+ > - Route scaffolding (MCP scaffold_routes)
120
+ > - Page types (ListPage, DetailPage, CreatePage, EditPage)
121
+ > - FK field handling (EntityLookup component)
122
+ > - Form structure (ZERO modals — all full pages)
123
+ > - Detail page tabs (local state only)
124
+ > - Testing patterns (co-located form tests)
125
+ > - Section-level routes and permissions
126
+ > - Sub-resource handling
127
+ > - I18n JSON structure and registration (POST-CHECK 45)
128
+
129
+ ### If NOT economy_mode: Agent Teams (parallel)
130
+
131
+ > **Protocol:** See `references/agent-teams-protocol.md`
132
+
133
+ ```
134
+ TeamCreate("apex-exec", description: "Execute Layer 1 in parallel")
135
+
136
+ Spawn 2 teammates (Opus, full tools):
137
+
138
+ 1. exec-backend (team_name: "apex-exec", name: "exec-backend"):
139
+ "Execute these Layer 1 backend tasks for module {module_code}:
140
+ {list of application + api + seed data tasks from plan}
141
+
142
+ For each task:
143
+ - Application services/DTOs: MCP scaffold_extension
144
+ - Controllers: use /controller skill for complex, MCP scaffold_extension for simple
145
+ - IMPORTANT: ALL GetAll endpoints MUST support ?search= query parameter (enables EntityLookup on frontend)
146
+ - Seed data: MCP generate_permissions, then follow smartstack-layers.md templates
147
+
148
+ After ALL tasks done:
149
+ SendMessage(type:'message', recipient:'team-lead', content:'BACKEND_COMPLETE', summary:'Backend layer done')"
150
+
151
+ 2. exec-frontend (team_name: "apex-exec", name: "exec-frontend"):
152
+ "Execute these Layer 1 frontend tasks for module {module_code}:
153
+ {list of frontend + i18n tasks from plan}
154
+
155
+ **MANDATORY: Read references/smartstack-frontend.md FIRST** — contains all required patterns.
156
+
157
+ For each task:
158
+ - API client: MCP scaffold_api_client
159
+ - Routes: MCP scaffold_routes (outputFormat: 'clientRoutes') → generates lazy imports + Suspense
160
+ - Pages: use /ui-components skill — MUST follow smartstack-frontend.md patterns:
161
+ → React.lazy() for all page imports (named export wrapping)
162
+ → <Suspense fallback={<PageLoader />}> around all lazy components
163
+ → Page structure: hooks → useEffect(load) → loading → error → content
164
+ → CSS variables only: bg-[var(--bg-card)], text-[var(--text-primary)]
165
+ → SmartTable/SmartFilter/EntityCard (NEVER raw HTML)
166
+ - **FORM PAGES (CRITICAL):** Create/Edit forms are FULL PAGES with own routes:
167
+ → EntityCreatePage.tsx with route /{module}/create
168
+ → EntityEditPage.tsx with route /{module}/:id/edit
169
+ → ZERO modals/popups/drawers/dialogs for forms
170
+ → Back button with navigate(-1) on every form page
171
+ → See smartstack-frontend.md section 3b for templates
172
+ - **TABS ON DETAIL PAGES (CRITICAL):** Tabs MUST switch content LOCALLY:
173
+ → Tab click handler: setActiveTab(tabKey) ONLY — NEVER navigate() to another page
174
+ → Tab content: render inline with {activeTab === 'tabKey' && <TabContent />}
175
+ → Sub-resource data: fetch via API filtered by parent ID, display in tab panel
176
+ → FORBIDDEN: navigate('../leaves?employee=${id}') in tab handler
177
+ → See smartstack-frontend.md section 3 'Tab Behavior Rules'
178
+ - **FK FIELDS (CRITICAL):** Foreign key Guid fields (e.g., EmployeeId) MUST use EntityLookup:
179
+ → NEVER render FK fields as `<input>` — users cannot type GUIDs
180
+ → NEVER render FK fields as `<select>` — even with API-loaded options, `<select>` is NOT acceptable
181
+ → ONLY use `<EntityLookup />` from @/components/ui/EntityLookup for searchable selection
182
+ → Each FK field needs: apiEndpoint, mapOption (display name), search support on backend
183
+ → FORBIDDEN: `<select value={formData.departmentId}>`, `<option value={dept.id}>`, `e.target.value` for FK fields
184
+ → See smartstack-frontend.md section 6 for the full EntityLookup pattern
185
+ - **FORM TESTS (MANDATORY):**
186
+ → EntityCreatePage.test.tsx (co-located next to page)
187
+ → EntityEditPage.test.tsx (co-located next to page)
188
+ → Cover: rendering, validation, submit, pre-fill, navigation, errors
189
+ → See smartstack-frontend.md section 8 for test templates
190
+ - **SECTION PERMISSIONS:** After MCP generate_permissions for the module navRoute (2 segments),
191
+ also call MCP generate_permissions for EACH section navRoute (3 segments: {app}.{module}.{section})
192
+ - **SECTION ROUTES:** Add section child routes to the module's children array.
193
+ Wire PermissionGuard for section routes with section-level permissions.
194
+ - I18n: Generate 4 JSON files per module namespace (fr, en, it, de)
195
+ → Follow JSON template from smartstack-frontend.md
196
+ → Keys: actions, labels, errors, validation, columns, form, messages, empty
197
+ → ALL t() calls MUST use namespace prefix + fallback: t('ns:key', 'Default text')
198
+ - MUST use src/pages/{App}/{Module}/ hierarchy (NOT flat)
199
+
200
+ After ALL tasks done:
201
+ SendMessage(type:'message', recipient:'team-lead', content:'FRONTEND_COMPLETE', summary:'Frontend layer done')"
202
+
203
+ Wait for both teammates to report completion.
204
+
205
+ Build verification:
206
+ dotnet build (backend)
207
+ npm run typecheck (frontend, if applicable)
208
+
209
+ shutdown_request → shutdown_response → TeamDelete("apex-exec")
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Layer 1 — Skill Delegation
215
+
216
+ | Skill | When | Context to provide |
217
+ |-------|------|--------------------|
218
+ | /controller | Custom routes, complex auth, file upload | entity, CRUD actions, permissions, routes |
219
+ | /application | Full app/module from scratch | app, module names |
220
+ | /ui-components | Complex pages (tables, grids, dashboards) | entity, fields, page type |
221
+ | /efcore | Complex EF configs, inheritance | relationships, indexes |
222
+ | /notification | In-app or email notifications | trigger, recipients, template |
223
+ | /workflow | Automated workflows | trigger, steps, conditions |
224
+
225
+ ---
226
+
227
+ ## Layer 2b — Documentation (after frontend pages exist)
228
+
229
+ > **After frontend pages are created, generate module documentation via `/documentation` skill.**
230
+
231
+ ```
232
+ Invoke /documentation {module_code} --type user
233
+
234
+ This generates:
235
+ - src/pages/docs/business/{app}/{module}/doc-data.ts (data file)
236
+ - src/pages/docs/business/{app}/{module}/index.tsx (page wrapper)
237
+ - src/i18n/locales/fr/docs-{app}-{module}.json (French doc translations)
238
+ - Updates App.tsx routing for doc page
239
+ - Updates docs-manifest.json
240
+ ```
241
+
242
+ **Verify DocToggleButton presence in list/detail pages:**
243
+ - Every `*ListPage.tsx` and `*DetailPage.tsx` MUST import and render `DocToggleButton` in their header
244
+ - Import: `import { DocToggleButton } from '@/components/docs/DocToggleButton';`
245
+ - Placement: inside the header actions area (see `smartstack-frontend.md` section 7)
246
+
247
+ ---
248
+
249
+ ## Layer 2 — Final Seed Data + Validation (sequential)
250
+
251
+ After Layer 1 completes:
252
+
253
+ ```
254
+ 1. Verify seed data completeness:
255
+ - NavigationModuleSeedData.cs with 4 languages
256
+ - PermissionsSeedData.cs with deterministic GUIDs
257
+ - RolesSeedData.cs with context-based role mapping
258
+ - IClientSeedDataProvider updated
259
+ - DI registration added
260
+
261
+ 2. Build gate:
262
+ dotnet build → MUST PASS
263
+ npm run typecheck → MUST PASS (if frontend)
264
+ ```
265
+
266
+ ---
267
+
268
+ ## FRONTEND COMPLIANCE GATE (MANDATORY before commit)
269
+
270
+ > **Reference:** Load `references/execution-frontend-gates.md` for all 5 mandatory checks:
271
+ > 1. CSS Variables (theme system) — POST-CHECK 13
272
+ > 2. Forms as Pages (ZERO modals/drawers/slide-overs)
273
+ > 3. I18n File Structure (4 languages, separate JSON files)
274
+ > 4. Lazy Loading (React.lazy() — no static imports)
275
+ > 5. useTranslation in Pages (all text translated)
276
+
277
+ **BLOCKING:** Do NOT commit frontend changes until ALL 5 gates pass.
278
+
279
+ When delegating to `/ui-components` skill, include explicit instructions:
280
+ - "CSS: Use CSS variables ONLY — `bg-[var(--bg-card)]`, `text-[var(--text-primary)]`."
281
+ - "Forms: Create/Edit forms are FULL PAGES with own routes (e.g., `/create`, `/:id/edit`)."
282
+ - "I18n: ALL text must use `t('namespace:key', 'Fallback')`. Generate JSON files in `src/i18n/locales/`."
283
+
284
+ ---
285
+
286
+ ## PRD State Update (delegate mode only)
287
+
288
+ > **After completing EACH layer**, update the PRD file so `/ralph-loop` can track progress.
289
+
290
+ ```
291
+ IF delegate_mode:
292
+ After each layer completes successfully:
293
+ Read {delegate_prd_path}
294
+ For each task executed in this layer:
295
+ task.status = 'completed' (or 'failed' if errors)
296
+ task.completed_at = new Date().toISOString()
297
+ task.iteration = 1 (delegate mode = single iteration)
298
+ task.commit_hash = $(git rev-parse --short HEAD)
299
+ task.files_changed = { created: [...files created...], modified: [...files modified...] }
300
+ task.validation = "APEX_PASS" (or error details)
301
+ prd.updated_at = new Date().toISOString()
302
+ Write back to {delegate_prd_path}
303
+ ```
304
+
305
+ ---
306
+
307
+ ## Commits Per Layer
308
+
309
+ After each layer completes, gates pass, and builds pass:
310
+
311
+ ```
312
+ Layer 0: feat({module}): [domain+infra] {short description}
313
+ Layer 1: feat({module}): [app+api] {short description}
314
+ Layer 1: feat({module}): [frontend] {short description} # if applicable — AFTER all 5 gates pass
315
+ Layer 2: feat({module}): [seed] {short description} # if applicable
316
+ ```
317
+
318
+ ---
319
+
320
+ ## Save Output (if save_mode)
321
+
322
+ Write to `{output_dir}/03-execute.md` with execution log per layer.
323
+
324
+ ---
325
+
326
+ ## NEXT STEP
327
+
328
+ Load `steps/step-04-examine.md`