@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,506 +1,506 @@
1
- ---
2
- name: step-03a1-setup
3
- description: Module setup, sections walkthrough, questionnaires, and cross-module references
4
- model: opus
5
- next_step: steps/step-03a2-analysis.md
6
- ---
7
-
8
- > **Context files:** `_shared.md` | `_elicitation.md` | `_architecture.md` | `_module-loop.md`
9
- > **Reference (5-bis):** `references/entity-architecture-decision.md` — Entity scoring, domain coherence, section patterns
10
-
11
- # Step 3a1: Setup - Module Initialization
12
-
13
- ## MANDATORY EXECUTION RULES
14
-
15
- - ALWAYS use ULTRATHINK mode
16
- - This step is EXECUTED ONCE PER MODULE in topological dependency order
17
- - ALWAYS check workflow state to determine current module
18
- - ALWAYS reference completed modules when specifying current one
19
- - **MANDATORY:** Generate and validate an ASCII/SVG mockup for EVERY section (not optional)
20
- - ALL questions via AskUserQuestion tool
21
- - ALL communication in `{language}`
22
- - NEVER skip per-module validation
23
- - **ID NAMING RULE (MANDATORY, NO EXCEPTION):**
24
- All IDs MUST include a module prefix to guarantee application-wide uniqueness.
25
- The prefix is derived from the module code initials (2-4 chars):
26
- UserManagement → UM | VehicleManagement → VM | PartsInventory → PI
27
- RepairManagement → RM | MaintenanceSchedule → MS | DataSync → DS
28
- Notifications → NT | Dashboard → DB | Orders → OR | Customers → CU
29
-
30
- Patterns:
31
- UC-{PREFIX}-{NNN} → UC-RM-001, UC-PI-003
32
- BR-{CAT}-{PREFIX}-{NNN} → BR-VAL-RM-001, BR-CALC-PI-002
33
- FR-{PREFIX}-{NNN} → FR-RM-001
34
- OBJ-{PREFIX}-{NNN} → OBJ-RM-001
35
- AC-{PREFIX}-{NNN} → AC-RM-001
36
- RISK-{PREFIX}-{NNN} → RISK-RM-001
37
-
38
- NEVER use bare IDs (UC-001, BR-VAL-001) in multi-module mode.
39
- - **SCHEMA CONFORMITY RULE:**
40
- ALL data MUST fit within the defined feature-schema.json structure.
41
- NEVER create custom top-level fields (KPIDefinitions, ChartConfigurations, etc.)
42
- Dashboard modules MUST use specification.dashboards[] (it exists in the schema).
43
- If truly needed, use specification.extensions: {} (additionalProperties: true).
44
-
45
- ## MODE DETECTION
46
-
47
- **Check your execution context before proceeding:**
48
-
49
- **IF you are running as a TEAM AGENT** (you received a module-specifier prompt from `references/agent-module-prompt.md`):
50
- → You are in **AUTONOMOUS mode** (Propose & Review)
51
- → Do NOT use `AskUserQuestion` — you PROPOSE, the team lead handles user interaction
52
- → Replace ALL `AskUserQuestion` calls with **ULTRATHINK autonomous decisions**
53
- → Use the decomposition data + completed module summaries to make informed choices
54
- → After completing all steps (03a1 → 03a2 → 03b → 03c → 03d): send `PROPOSAL_READY` to team lead
55
- → See `references/agent-module-prompt.md` for autonomous decision rules
56
- → See `references/team-orchestration.md` § 3 for communication protocol
57
-
58
- **IF you are running in the MAIN CONVERSATION** (classic inline mode):
59
- → Normal interactive mode — use `AskUserQuestion` as documented below
60
- → No `SendMessage` calls needed
61
-
62
- **How to detect:** If your prompt contains `PROPOSE & REVIEW` or `team-lead` as recipient, you are a team agent.
63
-
64
- ---
65
-
66
- ## YOUR TASK
67
-
68
- Specify one module's data model and business logic: walk through sections, define entities, business rules, and validate with client before proceeding to UI specification.
69
-
70
- ---
71
-
72
- ## EXECUTION SEQUENCE
73
-
74
- ### 1. Determine Current Module
75
-
76
- ```
77
- ba-reader.readApplicationContext({feature_id})
78
- → Read metadata.workflow: moduleOrder, currentModuleIndex, completedModules
79
- → currentModule = moduleOrder[currentModuleIndex]
80
- → Display: "═══ Module {currentModuleIndex + 1}/{moduleOrder.length}: {currentModule} ═══"
81
- ```
82
-
83
- IF module already specified (status = "specified" in master):
84
- Increment currentModuleIndex, re-check
85
- IF all modules specified → Load step-04a-collect.md, STOP
86
-
87
- ### 1b. Cache Warming for Module Loop (FIRST MODULE ONLY)
88
-
89
- > **Performance Optimization:** Pre-load module specification references to reduce redundant reads across all modules.
90
- > This step runs ONLY for the FIRST module (currentModuleIndex = 0), not repeated for subsequent modules.
91
-
92
- ```
93
- IF currentModuleIndex === 0:
94
- // Pre-load module specification references (Bucket 3)
95
- const moduleRefs = [
96
- "~/.claude/skills/business-analyse/references/spec-auto-inference.md",
97
- "~/.claude/skills/business-analyse/references/ui-resource-cards.md",
98
- "~/.claude/skills/business-analyse/references/ui-dashboard-spec.md",
99
- "~/.claude/skills/business-analyse/references/cadrage-pre-analysis.md"
100
- ];
101
-
102
- for (const file of moduleRefs) {
103
- read(file); // Pre-load into cache
104
- }
105
-
106
- Display: "✓ Cache warmed: module specification references (23KB, 4 files)"
107
- Display: " Expected token savings: 75% reduction in reference reads across module loop"
108
- Display: " Retention: until step-04 (after all modules specified)"
109
- ELSE:
110
- // Subsequent modules use cached references (no re-load)
111
- Display: "✓ Using cached module references (from first module)"
112
- ```
113
-
114
- **Rationale:**
115
-
116
- - Module specification references are read 2-3× PER MODULE (5 modules = 10-15 reads without caching)
117
- - Pre-loading once at start of module loop eliminates 75% of redundant reads
118
- - Token savings: ~10,000 tokens for a 5-module application
119
- - Cache retained until step-04 (when consolidation starts, references no longer needed)
120
-
121
- See [references/cache-warming-strategy.md](../references/cache-warming-strategy.md) § Bucket 3 for details.
122
-
123
- ### 2. Initialize Module Feature.json
124
-
125
- ```
126
- // Create or load module-level feature.json
127
- ba-writer.create({
128
- scope: "module",
129
- applicationRef: {feature_id},
130
- moduleCode: {currentModule.code},
131
- path: "docs/{app}/{module_code}/business-analyse/v1.0/feature.json"
132
- })
133
-
134
- // Inherit application roles from master
135
- ba-reader.readApplicationContext({feature_id})
136
- → Copy cadrage.applicationRoles → module.applicationContext.applicationRoles
137
- ```
138
-
139
- // Update module status in master: "pending" → "in-progress"
140
- ba-writer.updateModuleStatus({feature_id}, {currentModule.code}, "in-progress")
141
-
142
- ### 2-ter. Derive Module Discovery Section (MANDATORY)
143
-
144
- > **The module feature.json MUST have a `discovery` section.** In multi-module mode, derive it from the parent application's `cadrage`. In single-module mode, it should already exist from step-01.
145
-
146
- ```
147
- ba-reader.readApplicationContext({feature_id})
148
- → Read cadrage: problem, asIs, toBe, trigger, stakeholders, risks, acceptanceCriteria
149
-
150
- // Filter to this module's scope
151
- moduleScope = cadrage.coverageMatrix.filter(cm => cm.module === currentModule.code)
152
- moduleStakeholders = cadrage.stakeholders.filter(s => s.tasks relevant to this module)
153
- moduleRisks = cadrage.risks.filter(r => r related to this module)
154
-
155
- ba-writer.enrichSection({
156
- featureId: {module_feature_id},
157
- section: "discovery",
158
- data: {
159
- problem: cadrage.problem,
160
- asIs: cadrage.asIs,
161
- toBe: cadrage.toBe,
162
- trigger: cadrage.trigger,
163
- stakeholders: moduleStakeholders,
164
- scope: {
165
- mustHave: moduleScope.filter(s => s.category === "mustHave").map(s => s.item),
166
- shouldHave: moduleScope.filter(s => s.category === "shouldHave").map(s => s.item),
167
- couldHave: moduleScope.filter(s => s.category === "couldHave").map(s => s.item),
168
- outOfScope: []
169
- },
170
- risks: moduleRisks,
171
- acceptanceCriteria: cadrage.acceptanceCriteria.filter(ac => relevant to module),
172
- codebaseContext: cadrage.codebaseContext
173
- }
174
- })
175
- ```
176
-
177
- > **STRUCTURE CARD: discovery** — Same format as cadrage but module-scoped.
178
- > Fields: `problem`, `asIs`, `toBe`, `trigger`, `stakeholders[]`, `scope{}`, `risks[]`, `acceptanceCriteria[]`, `codebaseContext`, `openQuestions[]`
179
-
180
- ### 2-bis. Coverage Verification (MANDATORY)
181
-
182
- > **Before specifying any module, verify that the coverageMatrix from cadrage covers this module.**
183
-
184
- ```
185
- ba-reader.readApplicationContext({feature_id})
186
- → Read cadrage.coverageMatrix[]
187
- → Filter entries where module = {currentModule.code}
188
- → Group by category: mustHave, shouldHave, couldHave
189
- ```
190
-
191
- Display to client:
192
- ```
193
- Module {currentModule}: Coverage from original brief
194
-
195
- | # | Requirement | Category |
196
- |---|-------------|----------|
197
- | 1 | {item} | {category} |
198
- | ... | ... | ... |
199
-
200
- Total: {N} requirements mapped to this module
201
- - Must-have: {count}
202
- - Should-have: {count}
203
- - Could-have: {count}
204
- ```
205
-
206
- **VALIDATION:** If mustHave count = 0 AND module is in must priority:
207
- → WARNING: "Module {currentModule} is must-priority but has no must-have requirements in coverageMatrix. Verify cadrage coverage."
208
-
209
- **POST-SPECIFICATION CHECK (at end of module, before advancing):**
210
- For EACH mustHave item in coverageMatrix for this module:
211
- → Verify at least 1 UC exists that covers this requirement
212
- → If uncovered: BLOCK and ask client to either add a UC or reclassify the requirement
213
-
214
- ### 3. Section Walkthrough with Client
215
-
216
- > **This is the key interactive phase aligned with the 4-level SmartStack hierarchy.**
217
- > Level 2 = Module, Level 3 = Section, Level 4 = Resource
218
-
219
- #### 3a. Identify Module Sections
220
-
221
- For each module, propose standard sections based on module type:
222
-
223
- > **RULE:** Sections = functional zones only. `list` is ALWAYS present (default).
224
- > `create`/`edit` = separate pages with own URL routes (`/create` and `/:id/edit`). `detail` = tabbed page from list click.
225
-
226
- | Module Type | Sections (functional zones) | Detail page tabs (from list click) |
227
- |-------------|---------------------------|-----------------------------------|
228
- | data-centric | list | Infos, {relations} |
229
- | workflow | list, approve | Infos, {relations}, Historique |
230
- | integration | list | Infos, Config, Logs, Sync |
231
- | reporting | dashboard | — |
232
- | full-module | list, dashboard, approve | Infos, {relations}, Historique |
233
-
234
- **Section `list` is automatic and ALWAYS included.** Ask ONLY about additional functional sections:
235
-
236
- Ask via AskUserQuestion:
237
-
238
- ```
239
- question: "{language == 'fr'
240
- ? 'Le module {currentModule} aura une page liste (avec création et détail par onglets). Quelles sections fonctionnelles supplémentaires souhaitez-vous ?'
241
- : 'Module {currentModule} will have a list page (with create and tabbed detail). Which additional functional sections do you want?'}"
242
- header: "Sections"
243
- multiSelect: true
244
- options:
245
- - label: "Dashboard"
246
- description: "{language == 'fr' ? 'Tableau de bord avec KPIs, graphiques et métriques clés' : 'Dashboard with KPIs, charts and key metrics'}"
247
- - label: "Validation/Approbation"
248
- description: "{language == 'fr' ? 'File d\'approbation avec workflow de changement de statut' : 'Approval queue with status change workflow'}"
249
- - label: "Import en masse"
250
- description: "{language == 'fr' ? 'Import CSV/Excel avec mapping et validation' : 'CSV/Excel import with mapping and validation'}"
251
- - label: "{language == 'fr' ? 'Aucune (liste seule)' : 'None (list only)'}"
252
- description: "{language == 'fr' ? 'Le module n\'a besoin que de la page liste avec détail' : 'Module only needs the list page with detail'}"
253
- ```
254
-
255
- #### 3a-depth. Determine Specification Depth
256
-
257
- > **Based on module complexity and type, determine how deeply to specify sections and resources.**
258
- > **This avoids over-specifying simple modules and under-specifying complex ones.**
259
-
260
- Read from application master:
261
- ```
262
- ba-reader.readApplicationContext({feature_id})
263
- → module = modules.find(m => m.code === currentModule)
264
- → complexity = module.estimatedComplexity // simple | medium | complex
265
- → featureType = module.featureType // data-centric | workflow | integration | reporting | full-module
266
- ```
267
-
268
- **Depth decision matrix:**
269
-
270
- | Complexity | featureType | Depth | Behavior |
271
- |---|---|---|---|
272
- | simple | data-centric | **convention** | Auto-generate sections + resources from entities. Quick client validation. |
273
- | simple | reporting | **convention** | Standard dashboard template. Quick validation. |
274
- | simple | * | **convention** | Standard sections for featureType. Quick validation. |
275
- | medium | data-centric | **override** | Auto-generate then ask client which sections to customize. |
276
- | medium | workflow | **full** | State machine required → always full. |
277
- | medium | * | **override** | Auto-generate then ask client to customize. |
278
- | complex | * | **full** | Full specification: state machine, typed columns, conditional actions. |
279
- | * | workflow | **full** | Always full for workflow modules (state machine is mandatory). |
280
-
281
- Display to client:
282
- ```
283
- "Module {currentModule}: complexité {complexity}, type {featureType} → profondeur: {depth}"
284
- ```
285
-
286
- **IF depth = convention:**
287
- - Execute 3a-infer (auto-inference) → generates sections + resources
288
- - Execute 3b (wireframes) for each section
289
- - Skip 3a-bis detailed walkthrough → present auto-generated spec for quick validation
290
- - Ask client: "La spécification auto-générée convient-elle, ou souhaitez-vous personnaliser certaines sections ?"
291
- - If client says OK → proceed to step 4 (questionnaires)
292
- - If client wants changes → switch to **override** for specified sections
293
-
294
- **IF depth = override:**
295
- - Execute 3a-infer (auto-inference) → generates base sections + resources
296
- - Ask client: "Quelles sections souhaitez-vous personnaliser ?"
297
- - For selected sections → execute full 3a-bis + 3b + 3b-ter
298
- - For other sections → keep auto-generated spec
299
-
300
- **IF depth = full:**
301
- - Execute standard flow: 3a-bis → 3b → 3b-bis → 3b-ter → 3c → 3d (as currently defined below)
302
- - PLUS: 3a-state (state machine definition) for entities with status fields
303
-
304
- #### 3a-infer. Auto-Infer Resources from Entities (Convention/Override)
305
-
306
- > **For convention and override depths, auto-generate resource details from entity definitions.**
307
- > **The goal: produce a complete spec without manual input, that the client only validates.**
308
-
309
- **Prerequisites:** Entity attributes must be defined (from step 6) OR anticipated from decomposition.
310
-
311
- See [references/spec-auto-inference.md](../references/spec-auto-inference.md) for complete inference rules:
312
- - Entity attribute → SmartTable column mapping (9 type rules)
313
- - Entity attribute → SmartForm field mapping (8 type rules)
314
- - Auto-generated sections per featureType (5 types)
315
- - Component generation rules (list section, create/edit form pages with own routes, detail page with tabs, dashboard section)
316
- - Status/lifecycle enhancement rules
317
-
318
- Write auto-generated sections to `specification.sections[]` via ba-writer.enrichSection()
319
-
320
- ### 4. Conditional Questionnaires
321
-
322
- Based on module type, load questionnaires per-module:
323
-
324
- | Condition | Category | Questionnaire |
325
- |-----------|----------|---------------|
326
- | Always | 04 | `questionnaire/04-data.md` |
327
- | Has UI sections | 07 | `questionnaire/07-ui.md` |
328
- | Has lifecycle | 11 | `questionnaire/11-data-lifecycle.md` |
329
- | Has migration needs | 12 | `questionnaire/12-migration.md` |
330
- | References other modules | 13 | `questionnaire/13-cross-module.md` |
331
- | Documentation needed | 10 | `questionnaire/10-documentation.md` |
332
-
333
- Ask via AskUserQuestion, 1-2 batches per category.
334
-
335
- #### Store Documentation Requirements
336
-
337
- If questionnaire 10 was loaded, persist answers in feature.json:
338
-
339
- ```
340
- ba-writer.enrichSection({
341
- featureId: {feature_id},
342
- section: "documentation",
343
- data: {
344
- userDocRequired: {Q10.1 answer == "Yes"},
345
- techDocRequired: {Q10.2 answer == "Yes"},
346
- status: "pending"
347
- }
348
- })
349
- ```
350
-
351
- This data will be consumed by `/application` step-08 to auto-generate in-app documentation.
352
-
353
- ### 5. Cross-Module References
354
-
355
- > Reference completed modules to help define current one.
356
-
357
- ```
358
- completedModules = ba-reader.getCompletedModulesSummary({feature_id})
359
- → Returns max 100 lines summary: entity names, key BRs, permissions
360
-
361
- Display: "Modules déjà spécifiés : {completedModules.map(m => m.code).join(', ')}"
362
- ```
363
-
364
- For each completed module's entities, ask:
365
-
366
- ```
367
- question: "Le module {currentModule} référence-t-il des entités de {completedModule} ?"
368
- header: "Références"
369
- multiSelect: true
370
- options:
371
- - label: "{Entity1} (FK)"
372
- description: "Référence directe via clé étrangère"
373
- - label: "{Entity2} (Lookup)"
374
- description: "Table de référence / lookup"
375
- - label: "Aucune"
376
- description: "Pas de référence à {completedModule}"
377
- ```
378
-
379
- #### 5-bis. Unresolved Entity Dependencies (New Module Detection)
380
-
381
- > **When an entity reference is detected that does NOT belong to any completed or planned module, apply the SAME intelligent Entity Sourcing Pattern as step-01-cadrage (section 4d-bis).**
382
- > **Reference:** Load [references/entity-architecture-decision.md](../references/entity-architecture-decision.md) for scoring grid, decision tree, and section patterns.
383
-
384
- For each entity referenced by {currentModule} that is NOT covered by any existing/planned module:
385
-
386
- ##### A. ULTRATHINK: Silent Analysis (NO output to client)
387
-
388
- > **Same intelligence as cadrage 4d-bis. Score the entity, assess domain coherence, recommend.**
389
-
390
- ```
391
- ULTRATHINK — Entity Architecture Analysis for {entity_name} (discovered during specification of {currentModule}):
392
-
393
- 1. DOMAIN COHERENCE
394
- - Application domain: {app_description}
395
- - Entity fit: CORE | SUPPORT | PERIPHERAL
396
- - Justification: {1 sentence}
397
-
398
- 2. ENTITY SCORING (5 criteria, 0-3 each — from scoring grid in reference)
399
- - Lifecycle: {score}/3
400
- - Actors: {score}/3
401
- - Relations: {score}/3
402
- - Volume: {score}/3
403
- - Autonomy: {score}/3
404
- - TOTAL: {total}/15 → {classification}
405
-
406
- 3. PRE-CLASSIFICATION CHECK (from entity patterns in reference, section 10 of suggestion-catalog)
407
- - Match? → {yes: which pattern | no: use scoring}
408
-
409
- 4. RECOMMENDATION
410
- - Option: {in_this_module | new_module | external_system | config_list}
411
- - Confidence: HIGH | MEDIUM | LOW
412
- - Reasoning: {1-2 sentences}
413
-
414
- 5. IF recommendation = new_module → PRE-BUILD ARCHITECTURE
415
- - Module code: {PascalCase}
416
- - Section `list` + detail page tabs
417
- - Additional sections (ONLY functional zones)
418
- - Impact on dependency graph
419
- ```
420
-
421
- ##### B. Present Analysis & Recommendation
422
-
423
- **BEFORE AskUserQuestion, display as markdown:**
424
-
425
- ```
426
- ### {language == "fr" ? "Analyse" : "Analysis"} : {entity_plural}
427
-
428
- {language == "fr"
429
- ? "Pendant la spécification de **{currentModule}**, j'ai détecté une référence aux **{entity_plural}** qui ne font partie d'aucun module existant."
430
- : "During specification of **{currentModule}**, I detected a reference to **{entity_plural}** not covered by any existing module."}
431
-
432
- {language == "fr" ? "**Mon analyse :**" : "**My analysis:**"}
433
- - {language == "fr" ? "Cohérence domaine" : "Domain coherence"} : **{CORE|SUPPORT|PERIPHERAL}** — {justification}
434
- - {language == "fr" ? "Score de complexité" : "Complexity score"} : **{score}/15** ({classification})
435
- - **{language == "fr" ? "Recommandation" : "Recommendation"}** : **{recommended_option}** — {reasoning}
436
- ```
437
-
438
- **IF recommendation = new_module AND confidence >= MEDIUM, ALSO display the architecture proposal** (same format as cadrage 4d-bis Phase 2: Application/Module table + Sections table + Detail tabs table + Impact).
439
-
440
- ##### C. Ask with Recommended Option First
441
-
442
- ```
443
- question: "{language == 'fr'
444
- ? 'Comment souhaitez-vous gérer les {entity_plural} ?'
445
- : 'How do you want to manage {entity_plural}?'}"
446
- header: "{entity_name}"
447
- options:
448
- (ORDER: recommended option FIRST with "(Recommandé)"/"(Recommended)", then remaining 3)
449
-
450
- IF recommendation = new_module:
451
- - label: "{language == 'fr' ? 'Nouveau module dédié (Recommandé)' : 'New dedicated module (Recommended)'}"
452
- description: "{language == 'fr'
453
- ? 'Module {ModuleCode} avec page liste, détail par onglets, permissions dédiées'
454
- : '{ModuleCode} module with list page, tabbed detail, dedicated permissions'}"
455
- - label: "{language == 'fr' ? 'Dans ce module' : 'In this module'}"
456
- description: "{language == 'fr'
457
- ? 'Onglet dans la page détail de {currentModule}'
458
- : 'Tab in {currentModule} detail page'}"
459
- - label: "{language == 'fr' ? 'Système externe' : 'External system'}"
460
- description: "..."
461
- - label: "{language == 'fr' ? 'Liste de référence' : 'Reference list'}"
462
- description: "..."
463
-
464
- IF recommendation = config_list:
465
- - label: "{language == 'fr' ? 'Liste de référence (Recommandé)' : 'Reference list (Recommended)'}"
466
- description: "{language == 'fr'
467
- ? 'Table de lookup configurable par l\'admin'
468
- : 'Admin-configurable lookup table'}"
469
- - (3 remaining options in logical order)
470
-
471
- IF recommendation = in_this_module:
472
- - label: "{language == 'fr' ? 'Dans ce module (Recommandé)' : 'In this module (Recommended)'}"
473
- description: "{language == 'fr'
474
- ? 'Onglet dans la page détail de {currentModule}'
475
- : 'Tab in {currentModule} detail page'}"
476
- - (3 remaining options)
477
-
478
- IF confidence = LOW:
479
- (all 4 options in neutral order, NO "(Recommandé)" tag)
480
- ```
481
-
482
- ##### D. Process Answer
483
-
484
- | Choice | Action |
485
- |--------|--------|
486
- | **Dans ce module** | Entity becomes a sub-entity of {currentModule}. Add as a **tab in the detail page**. Add to this module's `analysis.entities[]`. |
487
- | **Nouveau module dédié** | Add new module to master `modules[]` via ba-writer with proposed architecture (sections, detail tabs, dependencies). The `list` section is ALWAYS the main section. Additional sections ONLY for functional zones. |
488
- | **Système externe** | Flag for integration. Add to `coverageMatrix` as integration. |
489
- | **Liste de référence** | Lookup table, admin-managed. No module, no section. |
490
-
491
- **IF "Nouveau module dédié" is selected:**
492
- 1. Add new module to master `modules[]` via ba-writer (status: "pending", sortOrder: after current module)
493
- 2. Update dependency graph: current module depends on the new module
494
- 3. **Display:**
495
- ```
496
- "{language == 'fr'
497
- ? '⚠ Nouveau module {ModuleCode} ajouté au graphe de dépendances. Il sera spécifié après {currentModule}.'
498
- : '⚠ New module {ModuleCode} added to dependency graph. It will be specified after {currentModule}.'}"
499
- ```
500
- 4. Update `metadata.workflow.moduleOrder` to include the new module (inserted after its dependents)
501
-
502
- ---
503
-
504
- ## NEXT STEP
505
-
506
- Load: `./step-03a2-analysis.md`
1
+ ---
2
+ name: step-03a1-setup
3
+ description: Module setup, sections walkthrough, questionnaires, and cross-module references
4
+ model: opus
5
+ next_step: steps/step-03a2-analysis.md
6
+ ---
7
+
8
+ > **Context files:** `_shared.md` | `_elicitation.md` | `_architecture.md` | `_module-loop.md`
9
+ > **Reference (5-bis):** `references/entity-architecture-decision.md` — Entity scoring, domain coherence, section patterns
10
+
11
+ # Step 3a1: Setup - Module Initialization
12
+
13
+ ## MANDATORY EXECUTION RULES
14
+
15
+ - ALWAYS use ULTRATHINK mode
16
+ - This step is EXECUTED ONCE PER MODULE in topological dependency order
17
+ - ALWAYS check workflow state to determine current module
18
+ - ALWAYS reference completed modules when specifying current one
19
+ - **MANDATORY:** Generate and validate an ASCII/SVG mockup for EVERY section (not optional)
20
+ - ALL questions via AskUserQuestion tool
21
+ - ALL communication in `{language}`
22
+ - NEVER skip per-module validation
23
+ - **ID NAMING RULE (MANDATORY, NO EXCEPTION):**
24
+ All IDs MUST include a module prefix to guarantee application-wide uniqueness.
25
+ The prefix is derived from the module code initials (2-4 chars):
26
+ UserManagement → UM | VehicleManagement → VM | PartsInventory → PI
27
+ RepairManagement → RM | MaintenanceSchedule → MS | DataSync → DS
28
+ Notifications → NT | Dashboard → DB | Orders → OR | Customers → CU
29
+
30
+ Patterns:
31
+ UC-{PREFIX}-{NNN} → UC-RM-001, UC-PI-003
32
+ BR-{CAT}-{PREFIX}-{NNN} → BR-VAL-RM-001, BR-CALC-PI-002
33
+ FR-{PREFIX}-{NNN} → FR-RM-001
34
+ OBJ-{PREFIX}-{NNN} → OBJ-RM-001
35
+ AC-{PREFIX}-{NNN} → AC-RM-001
36
+ RISK-{PREFIX}-{NNN} → RISK-RM-001
37
+
38
+ NEVER use bare IDs (UC-001, BR-VAL-001) in multi-module mode.
39
+ - **SCHEMA CONFORMITY RULE:**
40
+ ALL data MUST fit within the defined feature-schema.json structure.
41
+ NEVER create custom top-level fields (KPIDefinitions, ChartConfigurations, etc.)
42
+ Dashboard modules MUST use specification.dashboards[] (it exists in the schema).
43
+ If truly needed, use specification.extensions: {} (additionalProperties: true).
44
+
45
+ ## MODE DETECTION
46
+
47
+ **Check your execution context before proceeding:**
48
+
49
+ **IF you are running as a TEAM AGENT** (you received a module-specifier prompt from `references/agent-module-prompt.md`):
50
+ → You are in **AUTONOMOUS mode** (Propose & Review)
51
+ → Do NOT use `AskUserQuestion` — you PROPOSE, the team lead handles user interaction
52
+ → Replace ALL `AskUserQuestion` calls with **ULTRATHINK autonomous decisions**
53
+ → Use the decomposition data + completed module summaries to make informed choices
54
+ → After completing all steps (03a1 → 03a2 → 03b → 03c → 03d): send `PROPOSAL_READY` to team lead
55
+ → See `references/agent-module-prompt.md` for autonomous decision rules
56
+ → See `references/team-orchestration.md` § 3 for communication protocol
57
+
58
+ **IF you are running in the MAIN CONVERSATION** (classic inline mode):
59
+ → Normal interactive mode — use `AskUserQuestion` as documented below
60
+ → No `SendMessage` calls needed
61
+
62
+ **How to detect:** If your prompt contains `PROPOSE & REVIEW` or `team-lead` as recipient, you are a team agent.
63
+
64
+ ---
65
+
66
+ ## YOUR TASK
67
+
68
+ Specify one module's data model and business logic: walk through sections, define entities, business rules, and validate with client before proceeding to UI specification.
69
+
70
+ ---
71
+
72
+ ## EXECUTION SEQUENCE
73
+
74
+ ### 1. Determine Current Module
75
+
76
+ ```
77
+ ba-reader.readApplicationContext({feature_id})
78
+ → Read metadata.workflow: moduleOrder, currentModuleIndex, completedModules
79
+ → currentModule = moduleOrder[currentModuleIndex]
80
+ → Display: "═══ Module {currentModuleIndex + 1}/{moduleOrder.length}: {currentModule} ═══"
81
+ ```
82
+
83
+ IF module already specified (status = "specified" in master):
84
+ Increment currentModuleIndex, re-check
85
+ IF all modules specified → Load step-04a-collect.md, STOP
86
+
87
+ ### 1b. Cache Warming for Module Loop (FIRST MODULE ONLY)
88
+
89
+ > **Performance Optimization:** Pre-load module specification references to reduce redundant reads across all modules.
90
+ > This step runs ONLY for the FIRST module (currentModuleIndex = 0), not repeated for subsequent modules.
91
+
92
+ ```
93
+ IF currentModuleIndex === 0:
94
+ // Pre-load module specification references (Bucket 3)
95
+ const moduleRefs = [
96
+ "~/.claude/skills/business-analyse/references/spec-auto-inference.md",
97
+ "~/.claude/skills/business-analyse/references/ui-resource-cards.md",
98
+ "~/.claude/skills/business-analyse/references/ui-dashboard-spec.md",
99
+ "~/.claude/skills/business-analyse/references/cadrage-pre-analysis.md"
100
+ ];
101
+
102
+ for (const file of moduleRefs) {
103
+ read(file); // Pre-load into cache
104
+ }
105
+
106
+ Display: "✓ Cache warmed: module specification references (23KB, 4 files)"
107
+ Display: " Expected token savings: 75% reduction in reference reads across module loop"
108
+ Display: " Retention: until step-04 (after all modules specified)"
109
+ ELSE:
110
+ // Subsequent modules use cached references (no re-load)
111
+ Display: "✓ Using cached module references (from first module)"
112
+ ```
113
+
114
+ **Rationale:**
115
+
116
+ - Module specification references are read 2-3× PER MODULE (5 modules = 10-15 reads without caching)
117
+ - Pre-loading once at start of module loop eliminates 75% of redundant reads
118
+ - Token savings: ~10,000 tokens for a 5-module application
119
+ - Cache retained until step-04 (when consolidation starts, references no longer needed)
120
+
121
+ See [references/cache-warming-strategy.md](../references/cache-warming-strategy.md) § Bucket 3 for details.
122
+
123
+ ### 2. Initialize Module Feature.json
124
+
125
+ ```
126
+ // Create or load module-level feature.json
127
+ ba-writer.create({
128
+ scope: "module",
129
+ applicationRef: {feature_id},
130
+ moduleCode: {currentModule.code},
131
+ path: "docs/{app}/{module_code}/business-analyse/v1.0/feature.json"
132
+ })
133
+
134
+ // Inherit application roles from master
135
+ ba-reader.readApplicationContext({feature_id})
136
+ → Copy cadrage.applicationRoles → module.applicationContext.applicationRoles
137
+ ```
138
+
139
+ // Update module status in master: "pending" → "in-progress"
140
+ ba-writer.updateModuleStatus({feature_id}, {currentModule.code}, "in-progress")
141
+
142
+ ### 2-ter. Derive Module Discovery Section (MANDATORY)
143
+
144
+ > **The module feature.json MUST have a `discovery` section.** In multi-module mode, derive it from the parent application's `cadrage`. In single-module mode, it should already exist from step-01.
145
+
146
+ ```
147
+ ba-reader.readApplicationContext({feature_id})
148
+ → Read cadrage: problem, asIs, toBe, trigger, stakeholders, risks, acceptanceCriteria
149
+
150
+ // Filter to this module's scope
151
+ moduleScope = cadrage.coverageMatrix.filter(cm => cm.module === currentModule.code)
152
+ moduleStakeholders = cadrage.stakeholders.filter(s => s.tasks relevant to this module)
153
+ moduleRisks = cadrage.risks.filter(r => r related to this module)
154
+
155
+ ba-writer.enrichSection({
156
+ featureId: {module_feature_id},
157
+ section: "discovery",
158
+ data: {
159
+ problem: cadrage.problem,
160
+ asIs: cadrage.asIs,
161
+ toBe: cadrage.toBe,
162
+ trigger: cadrage.trigger,
163
+ stakeholders: moduleStakeholders,
164
+ scope: {
165
+ mustHave: moduleScope.filter(s => s.category === "mustHave").map(s => s.item),
166
+ shouldHave: moduleScope.filter(s => s.category === "shouldHave").map(s => s.item),
167
+ couldHave: moduleScope.filter(s => s.category === "couldHave").map(s => s.item),
168
+ outOfScope: []
169
+ },
170
+ risks: moduleRisks,
171
+ acceptanceCriteria: cadrage.acceptanceCriteria.filter(ac => relevant to module),
172
+ codebaseContext: cadrage.codebaseContext
173
+ }
174
+ })
175
+ ```
176
+
177
+ > **STRUCTURE CARD: discovery** — Same format as cadrage but module-scoped.
178
+ > Fields: `problem`, `asIs`, `toBe`, `trigger`, `stakeholders[]`, `scope{}`, `risks[]`, `acceptanceCriteria[]`, `codebaseContext`, `openQuestions[]`
179
+
180
+ ### 2-bis. Coverage Verification (MANDATORY)
181
+
182
+ > **Before specifying any module, verify that the coverageMatrix from cadrage covers this module.**
183
+
184
+ ```
185
+ ba-reader.readApplicationContext({feature_id})
186
+ → Read cadrage.coverageMatrix[]
187
+ → Filter entries where module = {currentModule.code}
188
+ → Group by category: mustHave, shouldHave, couldHave
189
+ ```
190
+
191
+ Display to client:
192
+ ```
193
+ Module {currentModule}: Coverage from original brief
194
+
195
+ | # | Requirement | Category |
196
+ |---|-------------|----------|
197
+ | 1 | {item} | {category} |
198
+ | ... | ... | ... |
199
+
200
+ Total: {N} requirements mapped to this module
201
+ - Must-have: {count}
202
+ - Should-have: {count}
203
+ - Could-have: {count}
204
+ ```
205
+
206
+ **VALIDATION:** If mustHave count = 0 AND module is in must priority:
207
+ → WARNING: "Module {currentModule} is must-priority but has no must-have requirements in coverageMatrix. Verify cadrage coverage."
208
+
209
+ **POST-SPECIFICATION CHECK (at end of module, before advancing):**
210
+ For EACH mustHave item in coverageMatrix for this module:
211
+ → Verify at least 1 UC exists that covers this requirement
212
+ → If uncovered: BLOCK and ask client to either add a UC or reclassify the requirement
213
+
214
+ ### 3. Section Walkthrough with Client
215
+
216
+ > **This is the key interactive phase aligned with the 4-level SmartStack hierarchy.**
217
+ > Level 2 = Module, Level 3 = Section, Level 4 = Resource
218
+
219
+ #### 3a. Identify Module Sections
220
+
221
+ For each module, propose standard sections based on module type:
222
+
223
+ > **RULE:** Sections = functional zones only. `list` is ALWAYS present (default).
224
+ > `create`/`edit` = separate pages with own URL routes (`/create` and `/:id/edit`). `detail` = tabbed page from list click.
225
+
226
+ | Module Type | Sections (functional zones) | Detail page tabs (from list click) |
227
+ |-------------|---------------------------|-----------------------------------|
228
+ | data-centric | list | Infos, {relations} |
229
+ | workflow | list, approve | Infos, {relations}, Historique |
230
+ | integration | list | Infos, Config, Logs, Sync |
231
+ | reporting | dashboard | — |
232
+ | full-module | list, dashboard, approve | Infos, {relations}, Historique |
233
+
234
+ **Section `list` is automatic and ALWAYS included.** Ask ONLY about additional functional sections:
235
+
236
+ Ask via AskUserQuestion:
237
+
238
+ ```
239
+ question: "{language == 'fr'
240
+ ? 'Le module {currentModule} aura une page liste (avec création et détail par onglets). Quelles sections fonctionnelles supplémentaires souhaitez-vous ?'
241
+ : 'Module {currentModule} will have a list page (with create and tabbed detail). Which additional functional sections do you want?'}"
242
+ header: "Sections"
243
+ multiSelect: true
244
+ options:
245
+ - label: "Dashboard"
246
+ description: "{language == 'fr' ? 'Tableau de bord avec KPIs, graphiques et métriques clés' : 'Dashboard with KPIs, charts and key metrics'}"
247
+ - label: "Validation/Approbation"
248
+ description: "{language == 'fr' ? 'File d\'approbation avec workflow de changement de statut' : 'Approval queue with status change workflow'}"
249
+ - label: "Import en masse"
250
+ description: "{language == 'fr' ? 'Import CSV/Excel avec mapping et validation' : 'CSV/Excel import with mapping and validation'}"
251
+ - label: "{language == 'fr' ? 'Aucune (liste seule)' : 'None (list only)'}"
252
+ description: "{language == 'fr' ? 'Le module n\'a besoin que de la page liste avec détail' : 'Module only needs the list page with detail'}"
253
+ ```
254
+
255
+ #### 3a-depth. Determine Specification Depth
256
+
257
+ > **Based on module complexity and type, determine how deeply to specify sections and resources.**
258
+ > **This avoids over-specifying simple modules and under-specifying complex ones.**
259
+
260
+ Read from application master:
261
+ ```
262
+ ba-reader.readApplicationContext({feature_id})
263
+ → module = modules.find(m => m.code === currentModule)
264
+ → complexity = module.estimatedComplexity // simple | medium | complex
265
+ → featureType = module.featureType // data-centric | workflow | integration | reporting | full-module
266
+ ```
267
+
268
+ **Depth decision matrix:**
269
+
270
+ | Complexity | featureType | Depth | Behavior |
271
+ |---|---|---|---|
272
+ | simple | data-centric | **convention** | Auto-generate sections + resources from entities. Quick client validation. |
273
+ | simple | reporting | **convention** | Standard dashboard template. Quick validation. |
274
+ | simple | * | **convention** | Standard sections for featureType. Quick validation. |
275
+ | medium | data-centric | **override** | Auto-generate then ask client which sections to customize. |
276
+ | medium | workflow | **full** | State machine required → always full. |
277
+ | medium | * | **override** | Auto-generate then ask client to customize. |
278
+ | complex | * | **full** | Full specification: state machine, typed columns, conditional actions. |
279
+ | * | workflow | **full** | Always full for workflow modules (state machine is mandatory). |
280
+
281
+ Display to client:
282
+ ```
283
+ "Module {currentModule}: complexité {complexity}, type {featureType} → profondeur: {depth}"
284
+ ```
285
+
286
+ **IF depth = convention:**
287
+ - Execute 3a-infer (auto-inference) → generates sections + resources
288
+ - Execute 3b (wireframes) for each section
289
+ - Skip 3a-bis detailed walkthrough → present auto-generated spec for quick validation
290
+ - Ask client: "La spécification auto-générée convient-elle, ou souhaitez-vous personnaliser certaines sections ?"
291
+ - If client says OK → proceed to step 4 (questionnaires)
292
+ - If client wants changes → switch to **override** for specified sections
293
+
294
+ **IF depth = override:**
295
+ - Execute 3a-infer (auto-inference) → generates base sections + resources
296
+ - Ask client: "Quelles sections souhaitez-vous personnaliser ?"
297
+ - For selected sections → execute full 3a-bis + 3b + 3b-ter
298
+ - For other sections → keep auto-generated spec
299
+
300
+ **IF depth = full:**
301
+ - Execute standard flow: 3a-bis → 3b → 3b-bis → 3b-ter → 3c → 3d (as currently defined below)
302
+ - PLUS: 3a-state (state machine definition) for entities with status fields
303
+
304
+ #### 3a-infer. Auto-Infer Resources from Entities (Convention/Override)
305
+
306
+ > **For convention and override depths, auto-generate resource details from entity definitions.**
307
+ > **The goal: produce a complete spec without manual input, that the client only validates.**
308
+
309
+ **Prerequisites:** Entity attributes must be defined (from step 6) OR anticipated from decomposition.
310
+
311
+ See [references/spec-auto-inference.md](../references/spec-auto-inference.md) for complete inference rules:
312
+ - Entity attribute → SmartTable column mapping (9 type rules)
313
+ - Entity attribute → SmartForm field mapping (8 type rules)
314
+ - Auto-generated sections per featureType (5 types)
315
+ - Component generation rules (list section, create/edit form pages with own routes, detail page with tabs, dashboard section)
316
+ - Status/lifecycle enhancement rules
317
+
318
+ Write auto-generated sections to `specification.sections[]` via ba-writer.enrichSection()
319
+
320
+ ### 4. Conditional Questionnaires
321
+
322
+ Based on module type, load questionnaires per-module:
323
+
324
+ | Condition | Category | Questionnaire |
325
+ |-----------|----------|---------------|
326
+ | Always | 04 | `questionnaire/04-data.md` |
327
+ | Has UI sections | 07 | `questionnaire/07-ui.md` |
328
+ | Has lifecycle | 11 | `questionnaire/11-data-lifecycle.md` |
329
+ | Has migration needs | 12 | `questionnaire/12-migration.md` |
330
+ | References other modules | 13 | `questionnaire/13-cross-module.md` |
331
+ | Documentation needed | 10 | `questionnaire/10-documentation.md` |
332
+
333
+ Ask via AskUserQuestion, 1-2 batches per category.
334
+
335
+ #### Store Documentation Requirements
336
+
337
+ If questionnaire 10 was loaded, persist answers in feature.json:
338
+
339
+ ```
340
+ ba-writer.enrichSection({
341
+ featureId: {feature_id},
342
+ section: "documentation",
343
+ data: {
344
+ userDocRequired: {Q10.1 answer == "Yes"},
345
+ techDocRequired: {Q10.2 answer == "Yes"},
346
+ status: "pending"
347
+ }
348
+ })
349
+ ```
350
+
351
+ This data will be consumed by `/application` step-08 to auto-generate in-app documentation.
352
+
353
+ ### 5. Cross-Module References
354
+
355
+ > Reference completed modules to help define current one.
356
+
357
+ ```
358
+ completedModules = ba-reader.getCompletedModulesSummary({feature_id})
359
+ → Returns max 100 lines summary: entity names, key BRs, permissions
360
+
361
+ Display: "Modules déjà spécifiés : {completedModules.map(m => m.code).join(', ')}"
362
+ ```
363
+
364
+ For each completed module's entities, ask:
365
+
366
+ ```
367
+ question: "Le module {currentModule} référence-t-il des entités de {completedModule} ?"
368
+ header: "Références"
369
+ multiSelect: true
370
+ options:
371
+ - label: "{Entity1} (FK)"
372
+ description: "Référence directe via clé étrangère"
373
+ - label: "{Entity2} (Lookup)"
374
+ description: "Table de référence / lookup"
375
+ - label: "Aucune"
376
+ description: "Pas de référence à {completedModule}"
377
+ ```
378
+
379
+ #### 5-bis. Unresolved Entity Dependencies (New Module Detection)
380
+
381
+ > **When an entity reference is detected that does NOT belong to any completed or planned module, apply the SAME intelligent Entity Sourcing Pattern as step-01-cadrage (section 4d-bis).**
382
+ > **Reference:** Load [references/entity-architecture-decision.md](../references/entity-architecture-decision.md) for scoring grid, decision tree, and section patterns.
383
+
384
+ For each entity referenced by {currentModule} that is NOT covered by any existing/planned module:
385
+
386
+ ##### A. ULTRATHINK: Silent Analysis (NO output to client)
387
+
388
+ > **Same intelligence as cadrage 4d-bis. Score the entity, assess domain coherence, recommend.**
389
+
390
+ ```
391
+ ULTRATHINK — Entity Architecture Analysis for {entity_name} (discovered during specification of {currentModule}):
392
+
393
+ 1. DOMAIN COHERENCE
394
+ - Application domain: {app_description}
395
+ - Entity fit: CORE | SUPPORT | PERIPHERAL
396
+ - Justification: {1 sentence}
397
+
398
+ 2. ENTITY SCORING (5 criteria, 0-3 each — from scoring grid in reference)
399
+ - Lifecycle: {score}/3
400
+ - Actors: {score}/3
401
+ - Relations: {score}/3
402
+ - Volume: {score}/3
403
+ - Autonomy: {score}/3
404
+ - TOTAL: {total}/15 → {classification}
405
+
406
+ 3. PRE-CLASSIFICATION CHECK (from entity patterns in reference, section 10 of suggestion-catalog)
407
+ - Match? → {yes: which pattern | no: use scoring}
408
+
409
+ 4. RECOMMENDATION
410
+ - Option: {in_this_module | new_module | external_system | config_list}
411
+ - Confidence: HIGH | MEDIUM | LOW
412
+ - Reasoning: {1-2 sentences}
413
+
414
+ 5. IF recommendation = new_module → PRE-BUILD ARCHITECTURE
415
+ - Module code: {PascalCase}
416
+ - Section `list` + detail page tabs
417
+ - Additional sections (ONLY functional zones)
418
+ - Impact on dependency graph
419
+ ```
420
+
421
+ ##### B. Present Analysis & Recommendation
422
+
423
+ **BEFORE AskUserQuestion, display as markdown:**
424
+
425
+ ```
426
+ ### {language == "fr" ? "Analyse" : "Analysis"} : {entity_plural}
427
+
428
+ {language == "fr"
429
+ ? "Pendant la spécification de **{currentModule}**, j'ai détecté une référence aux **{entity_plural}** qui ne font partie d'aucun module existant."
430
+ : "During specification of **{currentModule}**, I detected a reference to **{entity_plural}** not covered by any existing module."}
431
+
432
+ {language == "fr" ? "**Mon analyse :**" : "**My analysis:**"}
433
+ - {language == "fr" ? "Cohérence domaine" : "Domain coherence"} : **{CORE|SUPPORT|PERIPHERAL}** — {justification}
434
+ - {language == "fr" ? "Score de complexité" : "Complexity score"} : **{score}/15** ({classification})
435
+ - **{language == "fr" ? "Recommandation" : "Recommendation"}** : **{recommended_option}** — {reasoning}
436
+ ```
437
+
438
+ **IF recommendation = new_module AND confidence >= MEDIUM, ALSO display the architecture proposal** (same format as cadrage 4d-bis Phase 2: Application/Module table + Sections table + Detail tabs table + Impact).
439
+
440
+ ##### C. Ask with Recommended Option First
441
+
442
+ ```
443
+ question: "{language == 'fr'
444
+ ? 'Comment souhaitez-vous gérer les {entity_plural} ?'
445
+ : 'How do you want to manage {entity_plural}?'}"
446
+ header: "{entity_name}"
447
+ options:
448
+ (ORDER: recommended option FIRST with "(Recommandé)"/"(Recommended)", then remaining 3)
449
+
450
+ IF recommendation = new_module:
451
+ - label: "{language == 'fr' ? 'Nouveau module dédié (Recommandé)' : 'New dedicated module (Recommended)'}"
452
+ description: "{language == 'fr'
453
+ ? 'Module {ModuleCode} avec page liste, détail par onglets, permissions dédiées'
454
+ : '{ModuleCode} module with list page, tabbed detail, dedicated permissions'}"
455
+ - label: "{language == 'fr' ? 'Dans ce module' : 'In this module'}"
456
+ description: "{language == 'fr'
457
+ ? 'Onglet dans la page détail de {currentModule}'
458
+ : 'Tab in {currentModule} detail page'}"
459
+ - label: "{language == 'fr' ? 'Système externe' : 'External system'}"
460
+ description: "..."
461
+ - label: "{language == 'fr' ? 'Liste de référence' : 'Reference list'}"
462
+ description: "..."
463
+
464
+ IF recommendation = config_list:
465
+ - label: "{language == 'fr' ? 'Liste de référence (Recommandé)' : 'Reference list (Recommended)'}"
466
+ description: "{language == 'fr'
467
+ ? 'Table de lookup configurable par l\'admin'
468
+ : 'Admin-configurable lookup table'}"
469
+ - (3 remaining options in logical order)
470
+
471
+ IF recommendation = in_this_module:
472
+ - label: "{language == 'fr' ? 'Dans ce module (Recommandé)' : 'In this module (Recommended)'}"
473
+ description: "{language == 'fr'
474
+ ? 'Onglet dans la page détail de {currentModule}'
475
+ : 'Tab in {currentModule} detail page'}"
476
+ - (3 remaining options)
477
+
478
+ IF confidence = LOW:
479
+ (all 4 options in neutral order, NO "(Recommandé)" tag)
480
+ ```
481
+
482
+ ##### D. Process Answer
483
+
484
+ | Choice | Action |
485
+ |--------|--------|
486
+ | **Dans ce module** | Entity becomes a sub-entity of {currentModule}. Add as a **tab in the detail page**. Add to this module's `analysis.entities[]`. |
487
+ | **Nouveau module dédié** | Add new module to master `modules[]` via ba-writer with proposed architecture (sections, detail tabs, dependencies). The `list` section is ALWAYS the main section. Additional sections ONLY for functional zones. |
488
+ | **Système externe** | Flag for integration. Add to `coverageMatrix` as integration. |
489
+ | **Liste de référence** | Lookup table, admin-managed. No module, no section. |
490
+
491
+ **IF "Nouveau module dédié" is selected:**
492
+ 1. Add new module to master `modules[]` via ba-writer (status: "pending", sortOrder: after current module)
493
+ 2. Update dependency graph: current module depends on the new module
494
+ 3. **Display:**
495
+ ```
496
+ "{language == 'fr'
497
+ ? '⚠ Nouveau module {ModuleCode} ajouté au graphe de dépendances. Il sera spécifié après {currentModule}.'
498
+ : '⚠ New module {ModuleCode} added to dependency graph. It will be specified after {currentModule}.'}"
499
+ ```
500
+ 4. Update `metadata.workflow.moduleOrder` to include the new module (inserted after its dependents)
501
+
502
+ ---
503
+
504
+ ## NEXT STEP
505
+
506
+ Load: `./step-03a2-analysis.md`