@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,356 +1,356 @@
1
- ---
2
- name: step-07-tests
3
- description: Generate backend tests with real integration testing and security coverage
4
- prev_step: steps/step-06-migration.md
5
- next_step: steps/step-08-documentation.md
6
- ---
7
-
8
- # Step 7: Test Generation & Verification
9
-
10
- ## MANDATORY EXECUTION RULES
11
-
12
- - ALWAYS use MCP `scaffold_tests` for test generation
13
- - ALWAYS generate test infrastructure FIRST (once per project)
14
- - ALWAYS generate at least 3 test categories: controller, service, entity
15
- - ALWAYS follow naming convention: `{Method}_When{Condition}_Should{Result}`
16
- - ALWAYS pass `testTypes: ['unit', 'integration']` for controller tests
17
- - ALWAYS pass `testTypes: ['integration']` for repository tests
18
- - **ALL tests MUST compile AND pass** - this step is BLOCKING
19
- - YOU ARE AN ORCHESTRATOR calling MCP, not a generator
20
-
21
- ## YOUR TASK
22
-
23
- Use MCP tools to generate test files covering:
24
- 1. **Test infrastructure** (WebApplicationFactory, IntegrationTestBase, TestAuthHandler)
25
- 2. Controller integration tests (REAL API endpoints with real DB)
26
- 3. Service unit tests (business logic)
27
- 4. Entity unit tests (domain rules)
28
- 5. Validator unit tests (input validation)
29
- 6. Repository integration tests (data access)
30
- 7. Security tests (OWASP coverage)
31
-
32
- ---
33
-
34
- ## AVAILABLE STATE
35
-
36
- From previous steps:
37
-
38
- | Variable | Description |
39
- |----------|-------------|
40
- | `{entity_name}` | PascalCase entity name |
41
- | `{entity_code}` | kebab-case code |
42
- | `{full_path}` | Complete navigation path (navRoute) |
43
- | `{namespace}` | .NET namespace |
44
- | `{api_route}` | API endpoint path |
45
-
46
- ---
47
-
48
- ## PRE-REQUISITES
49
-
50
- See [references/test-prerequisites.md](../references/test-prerequisites.md) for the complete setup:
51
- 1. Verify test project exists (create xunit project if missing)
52
- 2. Install required NuGet packages (xunit, FluentAssertions, Moq, Mvc.Testing, EF Sqlite, etc.)
53
- 3. Add project references (API, Application, Domain, Infrastructure)
54
- 4. Ensure Program.cs is accessible for WebApplicationFactory (BLOCKING)
55
-
56
- ---
57
-
58
- ## EXECUTION SEQUENCE
59
-
60
- ### 0. Generate Test Infrastructure (ONCE PER PROJECT)
61
-
62
- Check if `Tests/Integration/SmartStackTestFactory.cs` exists. If NOT:
63
-
64
- ```
65
- Tool: mcp__smartstack__scaffold_tests
66
- Args:
67
- target: "infrastructure"
68
- name: "{SolutionName}"
69
- ```
70
-
71
- This generates:
72
- - `Tests/Integration/SmartStackTestFactory.cs` - WebApplicationFactory with SQLite
73
- - `Tests/Integration/IntegrationTestBase.cs` - Base class for integration tests
74
- - `Tests/Integration/TestAuthHandler.cs` - Fake auth handler (bypasses JWT)
75
- - `Tests/Integration/TestDataSeeder.cs` - Minimal test data seeder
76
-
77
- **Review** `TestDataSeeder.cs` and add project-specific seeding logic if needed (tenant creation, base permissions, etc.).
78
-
79
- ### 1. Generate Controller Tests
80
-
81
- ```
82
- Tool: mcp__smartstack__scaffold_tests
83
- Args:
84
- target: "controller"
85
- name: "{entity_name}"
86
- testTypes: ["unit", "integration"]
87
- options:
88
- namespace: "{namespace}"
89
- navRoute: "{full_path}"
90
- includeAuthorization: true
91
- isSystemEntity: false
92
- ```
93
-
94
- This generates:
95
- - `Tests/Integration/Controllers/{EntityName}ControllerTests.cs` (mock-based, validates controller routing)
96
- - `Tests/Integration/Controllers/{EntityName}ControllerIntegrationTests.cs` (REAL tests with actual DB)
97
-
98
- **REAL Integration Test Coverage:**
99
- - GET all -> 200 with list
100
- - GET by ID -> 200 when exists, 404 when not
101
- - POST -> 201/200 when valid, persist to DB, read back to verify
102
- - POST -> 400 when invalid data
103
- - POST -> 409 when duplicate code
104
- - PUT -> 200 when valid, persist changes, read back to verify
105
- - PUT -> 404 when not exists
106
- - DELETE -> 204 when exists
107
- - DELETE -> 404 when not exists
108
- - Tenant isolation -> create in tenant A, invisible in tenant B (REAL DB)
109
- - Authorization -> 401 when not authenticated
110
-
111
- ### 2. Generate Service Tests
112
-
113
- ```
114
- Tool: mcp__smartstack__scaffold_tests
115
- Args:
116
- target: "service"
117
- name: "{entity_name}"
118
- testTypes: ["unit"]
119
- options:
120
- namespace: "{namespace}"
121
- includeSoftDelete: true
122
- isSystemEntity: false
123
- ```
124
-
125
- This generates:
126
- - `Tests/Unit/Services/{EntityName}ServiceTests.cs`
127
-
128
- ### 3. Generate Entity Tests
129
-
130
- ```
131
- Tool: mcp__smartstack__scaffold_tests
132
- Args:
133
- target: "entity"
134
- name: "{entity_name}"
135
- testTypes: ["unit"]
136
- options:
137
- namespace: "{namespace}"
138
- includeSoftDelete: true
139
- includeAudit: true
140
- isSystemEntity: false
141
- ```
142
-
143
- This generates:
144
- - `Tests/Unit/Domain/{EntityName}Tests.cs`
145
-
146
- ### 4. Generate Validator Tests
147
-
148
- ```
149
- Tool: mcp__smartstack__scaffold_tests
150
- Args:
151
- target: "validator"
152
- name: "{entity_name}"
153
- testTypes: ["unit"]
154
- options:
155
- namespace: "{namespace}"
156
- ```
157
-
158
- This generates:
159
- - `Tests/Unit/Validators/{EntityName}ValidatorTests.cs`
160
-
161
- ### 5. Generate Repository Tests
162
-
163
- ```
164
- Tool: mcp__smartstack__scaffold_tests
165
- Args:
166
- target: "repository"
167
- name: "{entity_name}"
168
- testTypes: ["integration"]
169
- options:
170
- namespace: "{namespace}"
171
- includeSoftDelete: true
172
- isSystemEntity: false
173
- ```
174
-
175
- This generates:
176
- - `Tests/Integration/Repositories/{EntityName}RepositoryTests.cs`
177
-
178
- ### 6. Generate Security Tests
179
-
180
- ```
181
- Tool: mcp__smartstack__scaffold_tests
182
- Args:
183
- target: "controller"
184
- name: "{entity_name}"
185
- testTypes: ["security"]
186
- options:
187
- namespace: "{namespace}"
188
- isSystemEntity: false
189
- ```
190
-
191
- This generates:
192
- - `Tests/Security/{EntityName}SecurityTests.cs`
193
-
194
- ---
195
-
196
- ## POST-GENERATION VERIFICATION (MANDATORY)
197
-
198
- See [references/test-coverage-requirements.md](../references/test-coverage-requirements.md) for:
199
- - **Naming Convention Check** (BLOCKING) — `{Method}_When{Condition}_Should{Result}` pattern
200
- - **Test Structure Check** (BLOCKING) — Arrange-Act-Assert format
201
- - **Dependencies Check** (BLOCKING) — FluentAssertions, Moq, xunit
202
- - **Coverage Check** — Minimum tests per category (CRUD + auth + tenant + persistence + security)
203
- - **Build Check** (BLOCKING) — `dotnet build` must succeed
204
- - **Test Run** (BLOCKING) — `dotnet test` must pass 100%
205
- - **Real Integration Test Coverage** — DB persistence verification
206
- - **Security Test Categories** — OWASP coverage
207
-
208
- ---
209
-
210
- ## FRONTEND TESTS (React Components)
211
-
212
- See [references/test-frontend.md](../references/test-frontend.md) for the complete frontend test setup:
213
-
214
- ### 7-8. Infrastructure & Test Generation
215
- - Check Vitest + Testing Library + MSW configuration
216
- - Install packages if missing (`vitest`, `@testing-library/react`, `msw`, etc.)
217
- - Copy infrastructure templates (vitest.config.ts, setup.ts, test-utils.tsx, MSW handlers)
218
- - Generate tests via `mcp__smartstack__scaffold_frontend_tests` (Page, ListView, DetailPage, Hooks, API)
219
-
220
- ### 9. Run Frontend Tests (BLOCKING)
221
-
222
- ```bash
223
- cd {WebProjectPath}
224
- npx vitest run --reporter=default
225
- ```
226
-
227
- **ALL frontend tests MUST pass.** Fix failures before proceeding.
228
-
229
- ---
230
-
231
- ## PRESENT OUTPUT TO USER
232
-
233
- ```markdown
234
- ## Test Suite Generated
235
-
236
- ### Test Files
237
-
238
- | File | Category | Tests |
239
- |------|----------|-------|
240
- | `Tests/Integration/SmartStackTestFactory.cs` | Infrastructure | - |
241
- | `Tests/Integration/IntegrationTestBase.cs` | Infrastructure | - |
242
- | `Tests/Integration/TestAuthHandler.cs` | Infrastructure | - |
243
- | `Tests/Integration/TestDataSeeder.cs` | Infrastructure | - |
244
- | `Tests/Integration/Controllers/{EntityName}ControllerTests.cs` | Controller (mock) | ~12 |
245
- | `Tests/Integration/Controllers/{EntityName}ControllerIntegrationTests.cs` | Controller (REAL) | ~12 |
246
- | `Tests/Unit/Services/{EntityName}ServiceTests.cs` | Service | ~10 |
247
- | `Tests/Unit/Domain/{EntityName}Tests.cs` | Entity | ~8 |
248
- | `Tests/Unit/Validators/{EntityName}ValidatorTests.cs` | Validator | ~12 |
249
- | `Tests/Integration/Repositories/{EntityName}RepositoryTests.cs` | Repository | ~12 |
250
- | `Tests/Security/{EntityName}SecurityTests.cs` | Security | ~15 |
251
-
252
- ### Test Categories
253
-
254
- | Category | Coverage |
255
- |----------|----------|
256
- | CRUD Operations | All endpoints tested with REAL database |
257
- | Data Persistence | POST then GET to verify data in DB |
258
- | Authentication | 401 for unauthenticated |
259
- | Authorization | 403 for insufficient permissions |
260
- | Tenant Isolation | Cross-tenant access blocked (REAL) |
261
- | Input Validation | XSS, SQL injection, path traversal |
262
- | Error Handling | ProblemDetails format |
263
-
264
- ### Frontend Tests
265
-
266
- | File | Category | Tests |
267
- |------|----------|-------|
268
- | `src/pages/.../__tests__/{EntityName}Page.test.tsx` | Page | ~5 |
269
- | `src/pages/.../__tests__/{EntityName}ListView.test.tsx` | List | ~8 |
270
- | `src/pages/.../__tests__/{EntityName}DetailPage.test.tsx` | Detail | ~5 |
271
- | `src/hooks/__tests__/use{EntityName}Preferences.test.ts` | Hooks | ~6 |
272
- | `src/services/api/__tests__/{entityName}Api.test.ts` | API Client | ~5 |
273
-
274
- ### Test Execution Result
275
- - Backend Build: PASS
276
- - Backend Tests: PASS ({backend_test_count} tests)
277
- - Frontend Tests: PASS ({frontend_test_count} tests)
278
- ```
279
-
280
- ---
281
-
282
- ## SUCCESS METRICS
283
-
284
- ### Backend
285
- - Test project exists in solution
286
- - Test infrastructure generated (SmartStackTestFactory, IntegrationTestBase, TestAuthHandler)
287
- - All 7 test categories generated (infrastructure + 6 test types)
288
- - Naming convention `{Method}_When{Condition}_Should{Result}` respected
289
- - Arrange-Act-Assert structure in all tests
290
- - FluentAssertions used (not Assert.Equal)
291
- - Moq used for mocking (only in mock-based tests)
292
- - **Test project builds successfully**
293
- - **ALL backend tests pass** (BLOCKING)
294
- - Minimum test count met per category
295
- - Real integration tests verify actual DB persistence
296
-
297
- ### Frontend
298
- - Vitest + Testing Library + MSW infrastructure deployed
299
- - Test files generated for all scaffolded components (page, list, detail, hooks, api)
300
- - MSW handlers mock API endpoints correctly
301
- - **ALL frontend tests pass** (BLOCKING)
302
-
303
- ## FAILURE MODES
304
-
305
- ### Backend
306
- - Test project doesn't exist -> Create it first
307
- - Missing NuGet packages -> Install them
308
- - Program.cs not accessible -> Add `public partial class Program { }`
309
- - Build failures -> Fix compilation errors
310
- - **Test failures -> Fix the code or tests before proceeding**
311
- - Wrong naming convention -> Rename tests
312
- - Missing test categories -> Generate missing ones
313
-
314
- ### Frontend
315
- - Vitest not configured -> Deploy infrastructure templates
316
- - Missing npm packages -> Run `npm install -D vitest @testing-library/react ...`
317
- - MSW handlers missing -> Check `src/test/msw/handlers.ts`
318
- - Import errors -> Check path aliases in `vitest.config.ts`
319
- - **Test failures -> Fix the components or tests before proceeding**
320
-
321
- ---
322
-
323
- ## CODE REVIEW (RECOMMENDED)
324
-
325
- After all tests pass, run a code quality audit on the generated feature:
326
-
327
- ```
328
- Tool: mcp__smartstack__review_code
329
- Args:
330
- scope: "{entity_name}"
331
- focus: ["security", "architecture", "clean-code", "performance"]
332
- ```
333
-
334
- This reviews:
335
- - **Security (OWASP)**: SQL injection, XSS, CSRF, auth bypass, tenant isolation
336
- - **Architecture**: Layer violations, DI patterns, SOLID principles
337
- - **Clean Code**: Naming, complexity, duplication, dead code
338
- - **Performance**: N+1 queries, missing indexes, unnecessary allocations
339
-
340
- IF critical issues found: Fix them before proceeding. Non-critical findings can be noted for future improvement.
341
-
342
- ---
343
-
344
- ## END OF WORKFLOW
345
-
346
- This step concludes the test generation. The user now has:
347
- - Full navigation structure (step 01)
348
- - RBAC permissions (step 02)
349
- - Role mappings (step 03)
350
- - Client seed provider (step 03b, if applicable)
351
- - Backend CRUD API (step 04)
352
- - Frontend components + i18n + routes (step 05)
353
- - Database migration (step 06)
354
- - **Complete backend test suite with REAL integration tests (step 07)**
355
- - **Complete frontend test suite with Vitest + Testing Library + MSW (step 07)**
356
- - All backend and frontend tests compile and pass
1
+ ---
2
+ name: step-07-tests
3
+ description: Generate backend tests with real integration testing and security coverage
4
+ prev_step: steps/step-06-migration.md
5
+ next_step: steps/step-08-documentation.md
6
+ ---
7
+
8
+ # Step 7: Test Generation & Verification
9
+
10
+ ## MANDATORY EXECUTION RULES
11
+
12
+ - ALWAYS use MCP `scaffold_tests` for test generation
13
+ - ALWAYS generate test infrastructure FIRST (once per project)
14
+ - ALWAYS generate at least 3 test categories: controller, service, entity
15
+ - ALWAYS follow naming convention: `{Method}_When{Condition}_Should{Result}`
16
+ - ALWAYS pass `testTypes: ['unit', 'integration']` for controller tests
17
+ - ALWAYS pass `testTypes: ['integration']` for repository tests
18
+ - **ALL tests MUST compile AND pass** - this step is BLOCKING
19
+ - YOU ARE AN ORCHESTRATOR calling MCP, not a generator
20
+
21
+ ## YOUR TASK
22
+
23
+ Use MCP tools to generate test files covering:
24
+ 1. **Test infrastructure** (WebApplicationFactory, IntegrationTestBase, TestAuthHandler)
25
+ 2. Controller integration tests (REAL API endpoints with real DB)
26
+ 3. Service unit tests (business logic)
27
+ 4. Entity unit tests (domain rules)
28
+ 5. Validator unit tests (input validation)
29
+ 6. Repository integration tests (data access)
30
+ 7. Security tests (OWASP coverage)
31
+
32
+ ---
33
+
34
+ ## AVAILABLE STATE
35
+
36
+ From previous steps:
37
+
38
+ | Variable | Description |
39
+ |----------|-------------|
40
+ | `{entity_name}` | PascalCase entity name |
41
+ | `{entity_code}` | kebab-case code |
42
+ | `{full_path}` | Complete navigation path (navRoute) |
43
+ | `{namespace}` | .NET namespace |
44
+ | `{api_route}` | API endpoint path |
45
+
46
+ ---
47
+
48
+ ## PRE-REQUISITES
49
+
50
+ See [references/test-prerequisites.md](../references/test-prerequisites.md) for the complete setup:
51
+ 1. Verify test project exists (create xunit project if missing)
52
+ 2. Install required NuGet packages (xunit, FluentAssertions, Moq, Mvc.Testing, EF Sqlite, etc.)
53
+ 3. Add project references (API, Application, Domain, Infrastructure)
54
+ 4. Ensure Program.cs is accessible for WebApplicationFactory (BLOCKING)
55
+
56
+ ---
57
+
58
+ ## EXECUTION SEQUENCE
59
+
60
+ ### 0. Generate Test Infrastructure (ONCE PER PROJECT)
61
+
62
+ Check if `Tests/Integration/SmartStackTestFactory.cs` exists. If NOT:
63
+
64
+ ```
65
+ Tool: mcp__smartstack__scaffold_tests
66
+ Args:
67
+ target: "infrastructure"
68
+ name: "{SolutionName}"
69
+ ```
70
+
71
+ This generates:
72
+ - `Tests/Integration/SmartStackTestFactory.cs` - WebApplicationFactory with SQLite
73
+ - `Tests/Integration/IntegrationTestBase.cs` - Base class for integration tests
74
+ - `Tests/Integration/TestAuthHandler.cs` - Fake auth handler (bypasses JWT)
75
+ - `Tests/Integration/TestDataSeeder.cs` - Minimal test data seeder
76
+
77
+ **Review** `TestDataSeeder.cs` and add project-specific seeding logic if needed (tenant creation, base permissions, etc.).
78
+
79
+ ### 1. Generate Controller Tests
80
+
81
+ ```
82
+ Tool: mcp__smartstack__scaffold_tests
83
+ Args:
84
+ target: "controller"
85
+ name: "{entity_name}"
86
+ testTypes: ["unit", "integration"]
87
+ options:
88
+ namespace: "{namespace}"
89
+ navRoute: "{full_path}"
90
+ includeAuthorization: true
91
+ isSystemEntity: false
92
+ ```
93
+
94
+ This generates:
95
+ - `Tests/Integration/Controllers/{EntityName}ControllerTests.cs` (mock-based, validates controller routing)
96
+ - `Tests/Integration/Controllers/{EntityName}ControllerIntegrationTests.cs` (REAL tests with actual DB)
97
+
98
+ **REAL Integration Test Coverage:**
99
+ - GET all -> 200 with list
100
+ - GET by ID -> 200 when exists, 404 when not
101
+ - POST -> 201/200 when valid, persist to DB, read back to verify
102
+ - POST -> 400 when invalid data
103
+ - POST -> 409 when duplicate code
104
+ - PUT -> 200 when valid, persist changes, read back to verify
105
+ - PUT -> 404 when not exists
106
+ - DELETE -> 204 when exists
107
+ - DELETE -> 404 when not exists
108
+ - Tenant isolation -> create in tenant A, invisible in tenant B (REAL DB)
109
+ - Authorization -> 401 when not authenticated
110
+
111
+ ### 2. Generate Service Tests
112
+
113
+ ```
114
+ Tool: mcp__smartstack__scaffold_tests
115
+ Args:
116
+ target: "service"
117
+ name: "{entity_name}"
118
+ testTypes: ["unit"]
119
+ options:
120
+ namespace: "{namespace}"
121
+ includeSoftDelete: true
122
+ isSystemEntity: false
123
+ ```
124
+
125
+ This generates:
126
+ - `Tests/Unit/Services/{EntityName}ServiceTests.cs`
127
+
128
+ ### 3. Generate Entity Tests
129
+
130
+ ```
131
+ Tool: mcp__smartstack__scaffold_tests
132
+ Args:
133
+ target: "entity"
134
+ name: "{entity_name}"
135
+ testTypes: ["unit"]
136
+ options:
137
+ namespace: "{namespace}"
138
+ includeSoftDelete: true
139
+ includeAudit: true
140
+ isSystemEntity: false
141
+ ```
142
+
143
+ This generates:
144
+ - `Tests/Unit/Domain/{EntityName}Tests.cs`
145
+
146
+ ### 4. Generate Validator Tests
147
+
148
+ ```
149
+ Tool: mcp__smartstack__scaffold_tests
150
+ Args:
151
+ target: "validator"
152
+ name: "{entity_name}"
153
+ testTypes: ["unit"]
154
+ options:
155
+ namespace: "{namespace}"
156
+ ```
157
+
158
+ This generates:
159
+ - `Tests/Unit/Validators/{EntityName}ValidatorTests.cs`
160
+
161
+ ### 5. Generate Repository Tests
162
+
163
+ ```
164
+ Tool: mcp__smartstack__scaffold_tests
165
+ Args:
166
+ target: "repository"
167
+ name: "{entity_name}"
168
+ testTypes: ["integration"]
169
+ options:
170
+ namespace: "{namespace}"
171
+ includeSoftDelete: true
172
+ isSystemEntity: false
173
+ ```
174
+
175
+ This generates:
176
+ - `Tests/Integration/Repositories/{EntityName}RepositoryTests.cs`
177
+
178
+ ### 6. Generate Security Tests
179
+
180
+ ```
181
+ Tool: mcp__smartstack__scaffold_tests
182
+ Args:
183
+ target: "controller"
184
+ name: "{entity_name}"
185
+ testTypes: ["security"]
186
+ options:
187
+ namespace: "{namespace}"
188
+ isSystemEntity: false
189
+ ```
190
+
191
+ This generates:
192
+ - `Tests/Security/{EntityName}SecurityTests.cs`
193
+
194
+ ---
195
+
196
+ ## POST-GENERATION VERIFICATION (MANDATORY)
197
+
198
+ See [references/test-coverage-requirements.md](../references/test-coverage-requirements.md) for:
199
+ - **Naming Convention Check** (BLOCKING) — `{Method}_When{Condition}_Should{Result}` pattern
200
+ - **Test Structure Check** (BLOCKING) — Arrange-Act-Assert format
201
+ - **Dependencies Check** (BLOCKING) — FluentAssertions, Moq, xunit
202
+ - **Coverage Check** — Minimum tests per category (CRUD + auth + tenant + persistence + security)
203
+ - **Build Check** (BLOCKING) — `dotnet build` must succeed
204
+ - **Test Run** (BLOCKING) — `dotnet test` must pass 100%
205
+ - **Real Integration Test Coverage** — DB persistence verification
206
+ - **Security Test Categories** — OWASP coverage
207
+
208
+ ---
209
+
210
+ ## FRONTEND TESTS (React Components)
211
+
212
+ See [references/test-frontend.md](../references/test-frontend.md) for the complete frontend test setup:
213
+
214
+ ### 7-8. Infrastructure & Test Generation
215
+ - Check Vitest + Testing Library + MSW configuration
216
+ - Install packages if missing (`vitest`, `@testing-library/react`, `msw`, etc.)
217
+ - Copy infrastructure templates (vitest.config.ts, setup.ts, test-utils.tsx, MSW handlers)
218
+ - Generate tests via `mcp__smartstack__scaffold_frontend_tests` (Page, ListView, DetailPage, Hooks, API)
219
+
220
+ ### 9. Run Frontend Tests (BLOCKING)
221
+
222
+ ```bash
223
+ cd {WebProjectPath}
224
+ npx vitest run --reporter=default
225
+ ```
226
+
227
+ **ALL frontend tests MUST pass.** Fix failures before proceeding.
228
+
229
+ ---
230
+
231
+ ## PRESENT OUTPUT TO USER
232
+
233
+ ```markdown
234
+ ## Test Suite Generated
235
+
236
+ ### Test Files
237
+
238
+ | File | Category | Tests |
239
+ |------|----------|-------|
240
+ | `Tests/Integration/SmartStackTestFactory.cs` | Infrastructure | - |
241
+ | `Tests/Integration/IntegrationTestBase.cs` | Infrastructure | - |
242
+ | `Tests/Integration/TestAuthHandler.cs` | Infrastructure | - |
243
+ | `Tests/Integration/TestDataSeeder.cs` | Infrastructure | - |
244
+ | `Tests/Integration/Controllers/{EntityName}ControllerTests.cs` | Controller (mock) | ~12 |
245
+ | `Tests/Integration/Controllers/{EntityName}ControllerIntegrationTests.cs` | Controller (REAL) | ~12 |
246
+ | `Tests/Unit/Services/{EntityName}ServiceTests.cs` | Service | ~10 |
247
+ | `Tests/Unit/Domain/{EntityName}Tests.cs` | Entity | ~8 |
248
+ | `Tests/Unit/Validators/{EntityName}ValidatorTests.cs` | Validator | ~12 |
249
+ | `Tests/Integration/Repositories/{EntityName}RepositoryTests.cs` | Repository | ~12 |
250
+ | `Tests/Security/{EntityName}SecurityTests.cs` | Security | ~15 |
251
+
252
+ ### Test Categories
253
+
254
+ | Category | Coverage |
255
+ |----------|----------|
256
+ | CRUD Operations | All endpoints tested with REAL database |
257
+ | Data Persistence | POST then GET to verify data in DB |
258
+ | Authentication | 401 for unauthenticated |
259
+ | Authorization | 403 for insufficient permissions |
260
+ | Tenant Isolation | Cross-tenant access blocked (REAL) |
261
+ | Input Validation | XSS, SQL injection, path traversal |
262
+ | Error Handling | ProblemDetails format |
263
+
264
+ ### Frontend Tests
265
+
266
+ | File | Category | Tests |
267
+ |------|----------|-------|
268
+ | `src/pages/.../__tests__/{EntityName}Page.test.tsx` | Page | ~5 |
269
+ | `src/pages/.../__tests__/{EntityName}ListView.test.tsx` | List | ~8 |
270
+ | `src/pages/.../__tests__/{EntityName}DetailPage.test.tsx` | Detail | ~5 |
271
+ | `src/hooks/__tests__/use{EntityName}Preferences.test.ts` | Hooks | ~6 |
272
+ | `src/services/api/__tests__/{entityName}Api.test.ts` | API Client | ~5 |
273
+
274
+ ### Test Execution Result
275
+ - Backend Build: PASS
276
+ - Backend Tests: PASS ({backend_test_count} tests)
277
+ - Frontend Tests: PASS ({frontend_test_count} tests)
278
+ ```
279
+
280
+ ---
281
+
282
+ ## SUCCESS METRICS
283
+
284
+ ### Backend
285
+ - Test project exists in solution
286
+ - Test infrastructure generated (SmartStackTestFactory, IntegrationTestBase, TestAuthHandler)
287
+ - All 7 test categories generated (infrastructure + 6 test types)
288
+ - Naming convention `{Method}_When{Condition}_Should{Result}` respected
289
+ - Arrange-Act-Assert structure in all tests
290
+ - FluentAssertions used (not Assert.Equal)
291
+ - Moq used for mocking (only in mock-based tests)
292
+ - **Test project builds successfully**
293
+ - **ALL backend tests pass** (BLOCKING)
294
+ - Minimum test count met per category
295
+ - Real integration tests verify actual DB persistence
296
+
297
+ ### Frontend
298
+ - Vitest + Testing Library + MSW infrastructure deployed
299
+ - Test files generated for all scaffolded components (page, list, detail, hooks, api)
300
+ - MSW handlers mock API endpoints correctly
301
+ - **ALL frontend tests pass** (BLOCKING)
302
+
303
+ ## FAILURE MODES
304
+
305
+ ### Backend
306
+ - Test project doesn't exist -> Create it first
307
+ - Missing NuGet packages -> Install them
308
+ - Program.cs not accessible -> Add `public partial class Program { }`
309
+ - Build failures -> Fix compilation errors
310
+ - **Test failures -> Fix the code or tests before proceeding**
311
+ - Wrong naming convention -> Rename tests
312
+ - Missing test categories -> Generate missing ones
313
+
314
+ ### Frontend
315
+ - Vitest not configured -> Deploy infrastructure templates
316
+ - Missing npm packages -> Run `npm install -D vitest @testing-library/react ...`
317
+ - MSW handlers missing -> Check `src/test/msw/handlers.ts`
318
+ - Import errors -> Check path aliases in `vitest.config.ts`
319
+ - **Test failures -> Fix the components or tests before proceeding**
320
+
321
+ ---
322
+
323
+ ## CODE REVIEW (RECOMMENDED)
324
+
325
+ After all tests pass, run a code quality audit on the generated feature:
326
+
327
+ ```
328
+ Tool: mcp__smartstack__review_code
329
+ Args:
330
+ scope: "{entity_name}"
331
+ focus: ["security", "architecture", "clean-code", "performance"]
332
+ ```
333
+
334
+ This reviews:
335
+ - **Security (OWASP)**: SQL injection, XSS, CSRF, auth bypass, tenant isolation
336
+ - **Architecture**: Layer violations, DI patterns, SOLID principles
337
+ - **Clean Code**: Naming, complexity, duplication, dead code
338
+ - **Performance**: N+1 queries, missing indexes, unnecessary allocations
339
+
340
+ IF critical issues found: Fix them before proceeding. Non-critical findings can be noted for future improvement.
341
+
342
+ ---
343
+
344
+ ## END OF WORKFLOW
345
+
346
+ This step concludes the test generation. The user now has:
347
+ - Full navigation structure (step 01)
348
+ - RBAC permissions (step 02)
349
+ - Role mappings (step 03)
350
+ - Client seed provider (step 03b, if applicable)
351
+ - Backend CRUD API (step 04)
352
+ - Frontend components + i18n + routes (step 05)
353
+ - Database migration (step 06)
354
+ - **Complete backend test suite with REAL integration tests (step 07)**
355
+ - **Complete frontend test suite with Vitest + Testing Library + MSW (step 07)**
356
+ - All backend and frontend tests compile and pass