@atlashub/smartstack-cli 3.37.0 → 3.39.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 (228) hide show
  1. package/dist/index.js +16 -24
  2. package/dist/index.js.map +1 -1
  3. package/dist/mcp-entry.mjs +235 -265
  4. package/dist/mcp-entry.mjs.map +1 -1
  5. package/package.json +1 -1
  6. package/scripts/extract-api-endpoints.ts +5 -5
  7. package/scripts/generate-doc-with-mock-ui.ts +10 -17
  8. package/templates/agents/ba-reader.md +9 -9
  9. package/templates/agents/ba-writer.md +12 -15
  10. package/templates/agents/code-reviewer.md +1 -1
  11. package/templates/agents/docs-context-reader.md +1 -1
  12. package/templates/agents/efcore/scan.md +3 -1
  13. package/templates/agents/gitflow/commit.md +74 -0
  14. package/templates/agents/gitflow/finish.md +5 -2
  15. package/templates/agents/gitflow/init-clone.md +3 -3
  16. package/templates/agents/gitflow/init-validate.md +3 -2
  17. package/templates/agents/gitflow/merge.md +5 -4
  18. package/templates/agents/gitflow/pr.md +5 -4
  19. package/templates/agents/gitflow/start.md +37 -5
  20. package/templates/hooks/hooks.json +11 -0
  21. package/templates/hooks/wsl-dotnet-cleanup.sh +24 -0
  22. package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +20 -20
  23. package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +16 -24
  24. package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +2 -2
  25. package/templates/skills/_resources/mcp-validate-documentation-spec.md +3 -3
  26. package/templates/skills/_shared.md +15 -17
  27. package/templates/skills/ai-prompt/SKILL.md +1 -1
  28. package/templates/skills/ai-prompt/steps/step-00-init.md +47 -0
  29. package/templates/skills/apex/SKILL.md +3 -4
  30. package/templates/skills/apex/_shared.md +10 -20
  31. package/templates/skills/apex/references/analysis-methods.md +141 -0
  32. package/templates/skills/apex/references/challenge-questions.md +1 -21
  33. package/templates/skills/apex/references/core-seed-data.md +35 -58
  34. package/templates/skills/apex/references/examine-build-validation.md +82 -0
  35. package/templates/skills/apex/references/execution-frontend-gates.md +177 -0
  36. package/templates/skills/apex/references/execution-frontend-patterns.md +105 -0
  37. package/templates/skills/apex/references/execution-layer1-rules.md +96 -0
  38. package/templates/skills/apex/references/initialization-challenge-flow.md +110 -0
  39. package/templates/skills/apex/references/planning-layer-mapping.md +151 -0
  40. package/templates/skills/apex/references/post-checks.md +145 -40
  41. package/templates/skills/apex/references/smartstack-api.md +35 -51
  42. package/templates/skills/apex/references/smartstack-frontend.md +18 -18
  43. package/templates/skills/apex/references/smartstack-layers.md +38 -62
  44. package/templates/skills/apex/steps/step-00-init.md +14 -26
  45. package/templates/skills/apex/steps/step-01-analyze.md +10 -143
  46. package/templates/skills/apex/steps/step-02-plan.md +10 -92
  47. package/templates/skills/apex/steps/step-03-execute.md +45 -252
  48. package/templates/skills/apex/steps/step-04-examine.md +14 -78
  49. package/templates/skills/apex/steps/step-05-deep-review.md +2 -2
  50. package/templates/skills/apex/steps/step-08-run-tests.md +1 -0
  51. package/templates/skills/application/SKILL.md +241 -242
  52. package/templates/skills/application/references/backend-controller-hierarchy.md +16 -16
  53. package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -0
  54. package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -0
  55. package/templates/skills/application/references/backend-verification.md +1 -1
  56. package/templates/skills/application/references/frontend-i18n-and-output.md +67 -0
  57. package/templates/skills/application/references/frontend-route-naming.md +117 -0
  58. package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -0
  59. package/templates/skills/application/references/frontend-verification.md +12 -12
  60. package/templates/skills/application/references/init-parameter-detection.md +121 -0
  61. package/templates/skills/application/references/migration-checklist-troubleshooting.md +100 -0
  62. package/templates/skills/application/references/nav-fallback-procedure.md +199 -200
  63. package/templates/skills/application/references/provider-template.md +2 -6
  64. package/templates/skills/application/references/roles-client-project-handling.md +55 -0
  65. package/templates/skills/application/references/roles-fallback-procedure.md +149 -0
  66. package/templates/skills/application/references/test-coverage-requirements.md +213 -0
  67. package/templates/skills/application/references/test-frontend.md +3 -3
  68. package/templates/skills/application/steps/step-00-init.md +130 -260
  69. package/templates/skills/application/steps/step-01-navigation.md +170 -170
  70. package/templates/skills/application/steps/step-02-permissions.md +196 -196
  71. package/templates/skills/application/steps/step-03-roles.md +182 -339
  72. package/templates/skills/application/steps/step-03b-provider.md +133 -134
  73. package/templates/skills/application/steps/step-04-backend.md +174 -265
  74. package/templates/skills/application/steps/step-05-frontend.md +18 -144
  75. package/templates/skills/application/steps/step-06-migration.md +12 -60
  76. package/templates/skills/application/steps/step-07-tests.md +9 -76
  77. package/templates/skills/application/templates-backend.md +29 -27
  78. package/templates/skills/application/templates-frontend.md +49 -49
  79. package/templates/skills/application/templates-seed.md +57 -131
  80. package/templates/skills/business-analyse/SKILL.md +27 -30
  81. package/templates/skills/business-analyse/_architecture.md +6 -6
  82. package/templates/skills/business-analyse/_shared.md +60 -88
  83. package/templates/skills/business-analyse/questionnaire/04-data.md +3 -3
  84. package/templates/skills/business-analyse/questionnaire/06-security.md +1 -1
  85. package/templates/skills/business-analyse/questionnaire/13-cross-module.md +1 -1
  86. package/templates/skills/business-analyse/react/application-viewer.md +12 -12
  87. package/templates/skills/business-analyse/react/components.md +8 -12
  88. package/templates/skills/business-analyse/react/schema.md +836 -836
  89. package/templates/skills/business-analyse/references/agent-module-prompt.md +2 -3
  90. package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -0
  91. package/templates/skills/business-analyse/references/cache-warming-strategy.md +2 -2
  92. package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -0
  93. package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -0
  94. package/templates/skills/business-analyse/references/cadrage-shared-modules.md +69 -0
  95. package/templates/skills/business-analyse/references/cadrage-structure-cards.md +1 -1
  96. package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -0
  97. package/templates/skills/business-analyse/references/consolidation-structural-checks.md +2 -2
  98. package/templates/skills/business-analyse/references/deploy-modes.md +5 -5
  99. package/templates/skills/business-analyse/references/detection-strategies.md +7 -7
  100. package/templates/skills/business-analyse/references/handoff-file-templates.md +14 -22
  101. package/templates/skills/business-analyse/references/handoff-mappings.md +4 -4
  102. package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -0
  103. package/templates/skills/business-analyse/references/init-schema-deployment.md +3 -3
  104. package/templates/skills/business-analyse/references/naming-conventions.md +22 -24
  105. package/templates/skills/business-analyse/references/prd-generation.md +2 -2
  106. package/templates/skills/business-analyse/references/review-data-mapping.md +2 -2
  107. package/templates/skills/business-analyse/references/robustness-checks.md +1 -1
  108. package/templates/skills/business-analyse/references/spec-auto-inference.md +3 -3
  109. package/templates/skills/business-analyse/references/team-orchestration.md +49 -6
  110. package/templates/skills/business-analyse/references/ui-dashboard-spec.md +1 -1
  111. package/templates/skills/business-analyse/references/ui-resource-cards.md +18 -18
  112. package/templates/skills/business-analyse/references/validate-incremental-html.md +2 -2
  113. package/templates/skills/business-analyse/references/validation-checklist.md +2 -2
  114. package/templates/skills/business-analyse/schemas/application-schema.json +4 -5
  115. package/templates/skills/business-analyse/schemas/project-schema.json +1 -6
  116. package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +2 -3
  117. package/templates/skills/business-analyse/schemas/sections/specification-schema.json +4 -4
  118. package/templates/skills/business-analyse/steps/step-00-init.md +8 -17
  119. package/templates/skills/business-analyse/steps/step-01-cadrage.md +35 -198
  120. package/templates/skills/business-analyse/steps/step-01b-applications.md +16 -20
  121. package/templates/skills/business-analyse/steps/step-02-decomposition.md +1 -1
  122. package/templates/skills/business-analyse/steps/step-03a1-setup.md +4 -4
  123. package/templates/skills/business-analyse/steps/step-03a2-analysis.md +1 -1
  124. package/templates/skills/business-analyse/steps/step-03b-ui.md +4 -4
  125. package/templates/skills/business-analyse/steps/step-03c-compile.md +66 -140
  126. package/templates/skills/business-analyse/steps/step-03d-validate.md +2 -2
  127. package/templates/skills/business-analyse/steps/step-04a-collect.md +2 -2
  128. package/templates/skills/business-analyse/steps/step-04b-analyze.md +42 -160
  129. package/templates/skills/business-analyse/steps/step-04c-decide.md +1 -1
  130. package/templates/skills/business-analyse/steps/step-05a-handoff.md +74 -104
  131. package/templates/skills/business-analyse/steps/step-05b-deploy.md +13 -11
  132. package/templates/skills/business-analyse/steps/step-06-review.md +3 -3
  133. package/templates/skills/business-analyse/templates/tpl-frd.md +13 -13
  134. package/templates/skills/business-analyse/templates/tpl-handoff.md +12 -12
  135. package/templates/skills/business-analyse/templates/tpl-progress.md +1 -1
  136. package/templates/skills/business-analyse/templates-frd.md +25 -25
  137. package/templates/skills/business-analyse/templates-react.md +15 -21
  138. package/templates/skills/controller/SKILL.md +1 -1
  139. package/templates/skills/controller/postman-templates.md +1 -1
  140. package/templates/skills/controller/references/controller-code-templates.md +2 -2
  141. package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -0
  142. package/templates/skills/controller/references/permission-sync-templates.md +13 -16
  143. package/templates/skills/controller/steps/step-00-init.md +11 -11
  144. package/templates/skills/controller/steps/step-03-generate.md +64 -103
  145. package/templates/skills/controller/templates.md +67 -71
  146. package/templates/skills/debug/SKILL.md +13 -218
  147. package/templates/skills/debug/steps/step-00-init.md +57 -0
  148. package/templates/skills/debug/steps/step-01-analyze.md +219 -0
  149. package/templates/skills/debug/steps/step-02-resolve.md +85 -0
  150. package/templates/skills/documentation/SKILL.md +49 -345
  151. package/templates/skills/documentation/data-schema.md +11 -8
  152. package/templates/skills/documentation/steps/step-00-init.md +70 -0
  153. package/templates/skills/documentation/steps/step-01-scan.md +113 -0
  154. package/templates/skills/documentation/steps/step-02-generate.md +231 -0
  155. package/templates/skills/documentation/steps/step-03-validate.md +238 -0
  156. package/templates/skills/documentation/templates.md +480 -322
  157. package/templates/skills/efcore/SKILL.md +1 -1
  158. package/templates/skills/efcore/references/both-contexts.md +32 -0
  159. package/templates/skills/efcore/references/database-operations.md +67 -0
  160. package/templates/skills/efcore/references/destructive-operations.md +38 -0
  161. package/templates/skills/efcore/references/reset-operations.md +81 -0
  162. package/templates/skills/efcore/references/seed-methods.md +86 -0
  163. package/templates/skills/efcore/references/shared-init-functions.md +250 -0
  164. package/templates/skills/efcore/references/sql-objects-injection.md +61 -0
  165. package/templates/skills/efcore/references/troubleshooting.md +81 -0
  166. package/templates/skills/efcore/steps/db/step-deploy.md +1 -32
  167. package/templates/skills/efcore/steps/db/step-reset.md +7 -103
  168. package/templates/skills/efcore/steps/db/step-seed.md +10 -132
  169. package/templates/skills/efcore/steps/db/step-status.md +5 -44
  170. package/templates/skills/efcore/steps/migration/step-02-create.md +1 -14
  171. package/templates/skills/efcore/steps/migration/step-03-validate.md +8 -62
  172. package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +1 -57
  173. package/templates/skills/efcore/steps/shared/step-00-init.md +11 -254
  174. package/templates/skills/efcore/steps/squash/step-03-create.md +1 -58
  175. package/templates/skills/feature-full/SKILL.md +1 -1
  176. package/templates/skills/feature-full/steps/step-00-init.md +57 -0
  177. package/templates/skills/feature-full/steps/step-01-implementation.md +1 -1
  178. package/templates/skills/gitflow/SKILL.md +28 -5
  179. package/templates/skills/gitflow/_shared.md +109 -12
  180. package/templates/skills/gitflow/phases/abort.md +4 -0
  181. package/templates/skills/gitflow/phases/cleanup.md +4 -0
  182. package/templates/skills/gitflow/references/commit-message-generation.md +58 -0
  183. package/templates/skills/gitflow/references/commit-migration-validation.md +49 -0
  184. package/templates/skills/gitflow/references/finish-cleanup.md +55 -0
  185. package/templates/skills/gitflow/references/finish-version-bumping.md +45 -0
  186. package/templates/skills/gitflow/references/init-environment-detection.md +41 -0
  187. package/templates/skills/gitflow/references/init-questions.md +185 -0
  188. package/templates/skills/gitflow/references/init-structure-creation.md +75 -0
  189. package/templates/skills/gitflow/references/init-version-detection.md +21 -0
  190. package/templates/skills/gitflow/references/init-workspace-detection.md +43 -0
  191. package/templates/skills/gitflow/references/merge-ci-status.md +36 -0
  192. package/templates/skills/gitflow/references/merge-execution.md +62 -0
  193. package/templates/skills/gitflow/references/merge-pr-context.md +76 -0
  194. package/templates/skills/gitflow/references/pr-build-checks.md +60 -0
  195. package/templates/skills/gitflow/references/pr-generation.md +58 -0
  196. package/templates/skills/gitflow/references/start-branch-normalization.md +28 -0
  197. package/templates/skills/gitflow/references/start-worktree-creation.md +50 -0
  198. package/templates/skills/gitflow/references/sync-push-verify.md +44 -0
  199. package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -0
  200. package/templates/skills/gitflow/steps/step-commit.md +12 -91
  201. package/templates/skills/gitflow/steps/step-finish.md +15 -159
  202. package/templates/skills/gitflow/steps/step-init.md +24 -326
  203. package/templates/skills/gitflow/steps/step-merge.md +17 -176
  204. package/templates/skills/gitflow/steps/step-pr.md +10 -116
  205. package/templates/skills/gitflow/steps/step-start.md +16 -109
  206. package/templates/skills/gitflow/steps/step-sync.md +6 -69
  207. package/templates/skills/ralph-loop/SKILL.md +6 -0
  208. package/templates/skills/ralph-loop/references/category-completeness.md +185 -0
  209. package/templates/skills/ralph-loop/references/compact-loop.md +1 -1
  210. package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -0
  211. package/templates/skills/ralph-loop/references/module-transition.md +151 -0
  212. package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -0
  213. package/templates/skills/ralph-loop/references/parallel-execution.md +246 -0
  214. package/templates/skills/ralph-loop/references/task-transform-legacy.md +6 -9
  215. package/templates/skills/ralph-loop/references/team-orchestration.md +45 -3
  216. package/templates/skills/ralph-loop/steps/step-00-init.md +36 -109
  217. package/templates/skills/ralph-loop/steps/step-01-task.md +15 -163
  218. package/templates/skills/ralph-loop/steps/step-02-execute.md +8 -154
  219. package/templates/skills/ralph-loop/steps/step-04-check.md +20 -73
  220. package/templates/skills/review-code/references/owasp-api-top10.md +5 -5
  221. package/templates/skills/review-code/references/smartstack-conventions.md +568 -568
  222. package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -0
  223. package/templates/skills/validate-feature/references/db-validation-checks.md +180 -0
  224. package/templates/skills/validate-feature/steps/step-01-compile.md +1 -3
  225. package/templates/skills/validate-feature/steps/step-04-api-smoke.md +34 -145
  226. package/templates/skills/validate-feature/steps/step-05-db-validation.md +74 -260
  227. package/templates/skills/workflow/SKILL.md +1 -1
  228. package/templates/skills/workflow/steps/step-00-init.md +57 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: step-00-init
3
- description: Parse flags, detect context, verify MCP, define hierarchy (5 levels), challenge the need
3
+ description: Parse flags, detect application, verify MCP, define hierarchy (4 levels), challenge the need
4
4
  model: sonnet
5
5
  next_step: steps/step-01-analyze.md
6
6
  ---
@@ -62,7 +62,6 @@ IF delegate_mode:
62
62
  Read prd.json from {delegate_prd_path}
63
63
 
64
64
  Extract context:
65
- {context_code} = prd.project.context (e.g., "business")
66
65
  {app_name} = prd.project.application (e.g., "HumanResources")
67
66
  {module_code} = prd.project.module (e.g., "EmployeeManagement")
68
67
  {prd_path} = {delegate_prd_path}
@@ -89,13 +88,13 @@ IF delegate_mode:
89
88
  {has_dependencies} = prd.tasks.some(t => t.dependencies.length > 0) ? "references" : "none"
90
89
  {key_properties} = [] (extracted during step-01 from feature.json if available)
91
90
 
92
- SKIP sections 2 (detect context), 4 (hierarchy), 5 (challenge questions)
91
+ SKIP sections 2 (detect application), 4 (hierarchy), 5 (challenge questions)
93
92
  Jump to section 3 (MCP verify) → then section 6 (determine needs, already set) → section 9 (summary)
94
93
  ```
95
94
 
96
95
  ---
97
96
 
98
- ## 2. Detect SmartStack Context
97
+ ## 2. Detect SmartStack Application
99
98
 
100
99
  Scan the project to identify the SmartStack hierarchy:
101
100
 
@@ -107,7 +106,6 @@ Scan the project to identify the SmartStack hierarchy:
107
106
  ```
108
107
 
109
108
  **From task description, infer:**
110
- - `{context_code}`: business (default), platform, personal
111
109
  - `{app_name}`: application name
112
110
  - `{module_code}`: target module
113
111
  - `{sections}`: sections being added/modified
@@ -116,7 +114,7 @@ Scan the project to identify the SmartStack hierarchy:
116
114
  - `{prd_path}`: `.ralph/prd-{module_code}.json` if exists
117
115
  - `{feature_path}`: `docs/business/{app}/{module}/business-analyse/*/feature.json` if exists
118
116
 
119
- If hierarchy cannot be inferred → load context detection question from `references/challenge-questions.md`.
117
+ If hierarchy cannot be inferred → load application question from `references/challenge-questions.md`.
120
118
 
121
119
  ---
122
120
 
@@ -131,24 +129,14 @@ IF failure → warn user, continue in degraded mode (manual tools only)
131
129
 
132
130
  ---
133
131
 
134
- ## 4. Define Navigation Hierarchy (5 Levels)
132
+ ## 4. Define Navigation Hierarchy (4 Levels)
135
133
 
136
- > **BLOCKING RULE:** SmartStack uses a 5-level navigation hierarchy:
137
- > **Context Application → Module → Section → Resource**
138
- >
139
- > **Every module MUST have at least one section.** A module without sections produces an incomplete navigation tree, broken seed data, and missing frontend routes.
140
-
141
- ### 4a. Validate Application Level
142
-
143
- Load and execute application question from `references/challenge-questions.md` section 4a.
144
-
145
- ### 4b. Validate Module Level
146
-
147
- Load and execute module question from `references/challenge-questions.md` section 4b.
148
-
149
- ### 4c. Define Sections (MANDATORY — at least one)
150
-
151
- Load and execute section questions from `references/challenge-questions.md` section 4c (includes validation and storage format).
134
+ > **Reference:** Load `references/initialization-challenge-flow.md` for detailed challenge flow:
135
+ > - 4-level hierarchy structure (Application → Module → Section → Resource)
136
+ > - Challenge questions (4a: Application, 4b: Module, 4c: Sections)
137
+ > - Validation rules (sections MUST have at least one entry)
138
+ > - Storage format for each level
139
+ > - Delegate mode skip (if -d)
152
140
 
153
141
  ### 4d. Resources (Optional)
154
142
 
@@ -163,8 +151,8 @@ Resources are OPTIONAL — only define if explicitly mentioned or inferred.
163
151
  Display before proceeding:
164
152
 
165
153
  ```
166
- {context_code} → {app_name} ({app_code}) → {module_code} → [{sections[].code}]
167
- Routes: /{context_code}/{app-kebab}/{module-kebab}/{section-kebab}
154
+ {app_name} ({app_code}) → {module_code} → [{sections[].code}]
155
+ Routes: /{app-kebab}/{module-kebab}/{section-kebab}
168
156
  ```
169
157
 
170
158
  ---
@@ -305,7 +293,7 @@ IF save_mode:
305
293
  ```
306
294
  APEX INIT COMPLETE — v{{SMARTSTACK_VERSION}}
307
295
  Task: {task_description}
308
- Context: {context_code} → {app_name} → {module_code} → {sections[].code}
296
+ Hierarchy: {app_name} → {module_code} → {sections[].code}
309
297
  Entities: {entities} | Complexity: {module_complexity} | Deps: {has_dependencies}
310
298
  PRD: {prd_path||none} | Feature: {feature_path||none} | Flags: {active_flags}
311
299
  MCP: {available|degraded} | Needs: migration/seed/workflow/notification = {yes|no}
@@ -141,149 +141,16 @@ Identify: NavigationModuleSeedData, PermissionsSeedData, RolesSeedData, SeedCons
141
141
 
142
142
  ---
143
143
 
144
- ## 4. FK Field Detection
145
-
146
- For each entity found (or to be created), identify FK relationships:
147
- - Properties ending in "Id" with matching navigation property
148
- - Record: `{ entity, fkProperty, targetEntity, isRequired }`
149
-
150
- **Why:** FK fields drive two critical requirements:
151
- 1. **Frontend:** Each FK field MUST use `<EntityLookup />` (NEVER `<input>`, NEVER `<select>` — even with API-loaded options)
152
- 2. **Backend:** Each target entity's GetAll MUST support `?search=` parameter + return `PaginatedResult<T>`
153
-
154
- ---
155
-
156
- ## 4a. Tenant Mode Decision
157
-
158
- For each entity found (or to be created), determine the `tenantMode`:
159
-
160
- - **`strict`** (default) — Data belongs to a specific tenant. Examples: Employee, Order, Invoice, CustomerInteraction
161
- - **`optional`** — Data can be shared across tenants OR tenant-specific. Examples: Department, Currency, JobTitle, Language
162
- - **`scoped`** — Data has explicit visibility scope controlled by workflow/feature rules. Examples: Settings, Workflow, EmailTemplate, ApprovalConfig
163
- - **`none`** — Platform-wide data (never tenant-filtered). Examples: Navigation, Permission, User, SystemConfiguration
164
-
165
- **Why:** Tenant mode drives EF query filters, seed data generation, and API access control. Must be decided before planning.
166
-
167
- **Reference:** See `references/smartstack-api.md` for TenantId handling patterns and `smartstack-layers.md` for seed data strategies per tenant mode.
168
-
169
- ---
170
-
171
- ## 4b. Code Pattern Detection
172
-
173
- For each entity found (or to be created), identify code generation needs:
174
-
175
- ```
176
- IF feature.json exists AND entity has codePattern:
177
- → Use codePattern config from feature.json (strategy, prefix, digits, etc.)
178
- → Record in analysis: entity has auto-generated code
179
-
180
- ELSE IF feature.json exists BUT entity has NO codePattern:
181
- → Record: entity needs codePattern decision in step-02
182
- → Apply heuristic default based on entity name:
183
- Invoice/Order/Receipt → timestamp-daily
184
- Ticket/Incident → timestamp-minute
185
- Contract/Policy → year-sequential
186
- Reference/Category → uuid-short
187
- Employee/Customer/Project → sequential
188
-
189
- ELSE (no feature.json):
190
- → Propose codePattern during step-02 planning based on task description
191
- ```
192
-
193
- **Why:** Code generation strategy drives CreateDto structure (Code field removed when auto-generated), service injection (ICodeGenerator<T>), and DI registration. Must be decided before planning.
194
-
195
- **Reference:** See `references/code-generation.md` for strategy table, volume-to-digits calculation, and backend patterns.
196
-
197
- ---
198
-
199
- ## 5. Gap Analysis
200
-
201
- Compare what EXISTS vs what the TASK REQUIRES:
202
-
203
- ```
204
- For each element: EXISTS+COMPLETE → "skip" | EXISTS+INCOMPLETE → "modify" | MISSING → "create"
205
- ```
206
-
207
- Cross-reference with step-00 challenge responses:
208
- - Each entity: entity, EF config, service, controller, frontend pages → exists/missing
209
- - Each section: NavigationSectionSeedData, frontend route → exists/missing
210
- - If dependencies: verify FK target entities and their `?search=` support
211
-
212
- ---
213
-
214
- ## 5b. Scope Re-Check (after exploration)
215
-
216
- > **Re-validate scope after code exploration reveals the true entity count.**
217
- > Step-00 guard uses the user's description (may undercount). Now we know the actual entities.
218
-
219
- ```
220
- IF NOT delegate_mode:
221
- actual_entities = count of entities marked "create" in gap analysis
222
- actual_sections = count of sections marked "create"
223
-
224
- IF actual_entities > 6:
225
- WARNING: "Code exploration reveals {actual_entities} entities to create.
226
- This exceeds the recommended maximum (4) for a single /apex invocation.
227
- Risk: incomplete migrations, lost conventions, missing pages.
228
- Consider: split into {ceil(actual_entities/4)} iterations of ~4 entities each."
229
-
230
- AskUserQuestion: (same options as step-00 section 5d)
231
- ```
232
-
233
- ---
234
-
235
- ## 6. Analysis Validation (User Checkpoint)
236
-
237
- > **Objective:** Present findings and validate scope with the user BEFORE planning.
238
-
239
- ### 6a. Present Findings
240
-
241
- ```
242
- ANALYSIS FINDINGS
243
- ═══════════════════════════════════════════════════════════════
244
-
245
- Entities expected / found / to create: {summary}
246
- Sections expected / found / to create: {summary}
247
- FK Relationships: {fkFields summary}
248
- Dependencies: {cross-module refs or "none"}
249
- Complexity: {module_complexity}
250
- ```
251
-
252
- ### 6b. Validate with User (if NOT auto_mode)
253
-
254
- ```yaml
255
- questions:
256
- - header: "Scope"
257
- question: "Based on the analysis above, is the scope accurate?"
258
- options:
259
- - label: "Scope is correct (Recommended)"
260
- description: "Proceed to planning with the identified elements"
261
- - label: "Add elements"
262
- description: "I need to add entities, properties, or sections"
263
- - label: "Reduce scope"
264
- description: "Remove some elements — smaller first iteration"
265
- - label: "Change approach"
266
- description: "The analysis reveals issues — let's adjust"
267
- multiSelect: false
268
- ```
269
-
270
- If "Add elements": update `{entities}`, `{sections}`, `{key_properties}`, re-run gap analysis.
271
- If "Reduce scope": update variables accordingly.
272
- If "Change approach": discuss with user, potentially restart from step-00.
273
-
274
- ---
275
-
276
- ## 7. Analysis Summary
277
-
278
- ```
279
- **APEX SmartStack - Analysis Complete**
280
- Navigation: {context_code} → {app_name} → {module_code} → {sections[].code}
281
- Entities: {entity_name → create | modify | skip}
282
- Existing: entities, configs, services, controllers, pages, seed data, tests (with paths)
283
- Required: create / modify / skip lists
284
- Profile: complexity, dependencies, FK fields, workflow, notifications
285
- ACs: AC1..ACn (inferred from PRD/feature/task/challenge)
286
- ```
144
+ ## 4-7. Analysis Methods & Validation
145
+
146
+ > **Reference:** Load `references/analysis-methods.md` for detailed analysis procedures:
147
+ > - FK field detection (frontend EntityLookup + backend search support)
148
+ > - Tenant mode decision (strict/optional/scoped/none)
149
+ > - Code pattern detection (auto-generated strategies)
150
+ > - Gap analysis (exists/missing/modify classification)
151
+ > - Scope re-check (entity count validation)
152
+ > - Analysis validation checkpoint (user confirmation)
153
+ > - Analysis summary output format
287
154
 
288
155
  ---
289
156
 
@@ -52,98 +52,16 @@ IF delegate_mode:
52
52
 
53
53
  ---
54
54
 
55
- ## 1. Map Changes to Layers
56
-
57
- For each element identified in step-01 (create or modify), assign to a SmartStack layer:
58
-
59
- | Layer | Category | Order |
60
- |-------|----------|-------|
61
- | 0 | Domain (entities, enums, exceptions) | Sequential |
62
- | 0 | Infrastructure - EF Configs | Sequential |
63
- | 0 | Infrastructure - Migration (BLOCKING) | Sequential |
64
- | 1 | Application (services, DTOs, validators) | Parallel |
65
- | 1 | API (controllers) | Parallel |
66
- | 1 | Infrastructure - Seed Data | Parallel |
67
- | 2 | Frontend (pages, components) | Parallel |
68
- | 2 | I18n (translations) | Parallel |
69
- | 3 | Tests | Sequential |
70
-
71
- **Entity Definition Template:** Each entity in the plan MUST include:
72
- ```
73
- Entity: {EntityName}
74
- - tenantMode: strict | optional | scoped | none
75
- - codePattern: auto-generated strategy (if applicable)
76
- - fkFields: [{field, targetEntity}] (if applicable)
77
- - acceptance criteria: [AC1, AC2, ...]
78
- ```
79
-
80
- The `tenantMode` decision (from step-01, section 4a) drives EF query filters, seed data approach, and API authorization. See `smartstack-layers.md` for tenant mode seed data strategies.
81
-
82
- ---
83
-
84
- ## 2. Assign Skill/MCP per File
85
-
86
- For EACH file in the plan, specify HOW it will be created/modified:
87
-
88
- ```markdown
89
- ### Layer 0 — Domain + Infrastructure (sequential)
90
-
91
- | # | File | Action | Tool |
92
- |---|------|--------|------|
93
- | 1 | Domain/Entities/.../MyEntity.cs | create | MCP scaffold_extension |
94
- | 2 | Infrastructure/.../MyEntityConfiguration.cs | create | MCP scaffold_extension |
95
- | 3 | Migration | create | MCP suggest_migration + dotnet ef |
96
-
97
- ### Layer 1 — Application + API (parallel)
98
-
99
- | # | File | Action | Tool |
100
- |---|------|--------|------|
101
- | 4 | Application/Services/.../MyService.cs | create | MCP scaffold_extension |
102
- | 5 | Application/DTOs/.../MyDto.cs | create | MCP scaffold_extension |
103
- | 6 | Api/Controllers/.../MyController.cs | create | /controller skill |
104
- | 7 | Seeding/Data/NavigationApplicationSeedData.cs | create | ref smartstack-layers.md (once per app) |
105
- | 7b | Seeding/Data/ApplicationRolesSeedData.cs | create | ref smartstack-layers.md (once per app) |
106
- | 7c | Infrastructure/Services/CodeGeneration/ | create | ref code-generation.md (ICodeGenerator<T> + DI, per entity with codePattern != manual) |
107
- | 8 | Seeding/Data/.../NavigationModuleSeedData.cs | create | ref smartstack-layers.md |
108
- | 8b | Application/Authorization/Permissions.cs | create | MCP generate_permissions → static constants |
109
- | 9 | Seeding/Data/.../PermissionsSeedData.cs | create | MCP generate_permissions |
110
- | 10 | Seeding/Data/.../RolesSeedData.cs | create | ref smartstack-layers.md |
111
-
112
- ### Layer 2 — Frontend + I18n (parallel)
113
-
114
- | # | File | Action | Tool |
115
- |---|------|--------|------|
116
- | 11 | src/pages/{Ctx}/{App}/{Mod}/ListPage.tsx | create | /ui-components skill |
117
- | 11b | src/pages/{Ctx}/{App}/{Mod}/CreatePage.tsx | create | /ui-components skill (EntityLookup for FK fields) |
118
- | 11c | src/pages/{Ctx}/{App}/{Mod}/EditPage.tsx | create | /ui-components skill (EntityLookup for FK fields) |
119
- | 11d | src/pages/{Ctx}/{App}/{Mod}/{Section}Page.tsx | create | /ui-components skill (per section in `{sections}`) |
120
- | 11e | src/pages/{Ctx}/{App}/{Mod}/{Section}DetailPage.tsx | create | /ui-components skill (per section in `{sections}`) |
121
- | 12 | src/services/api/{module}Api.ts | create | MCP scaffold_api_client |
122
- | 13 | src/routes/{module}.tsx | create | MCP scaffold_routes |
123
- | 14 | src/i18n/locales/{lang}/{module}.json | create | ref smartstack-frontend.md (4 languages: fr, en, it, de) |
124
-
125
- **FK Field Guidance:** If step-01 identified `fkFields[]`, every Create/Edit page MUST use `EntityLookup` for those fields (see `smartstack-frontend.md` section 6). The corresponding backend GetAll endpoints (Layer 1) MUST support `?search=` parameter.
126
-
127
- ### Layer 2b — Documentation (after frontend pages exist)
128
-
129
- | # | File | Action | Tool |
130
- |---|------|--------|------|
131
- | 14b | src/pages/docs/business/{app}/{module}/doc-data.ts | create | /documentation skill |
132
- | 14c | src/pages/docs/business/{app}/{module}/index.tsx | create | /documentation skill |
133
-
134
- ### Layer 3 — Tests (sequential)
135
-
136
- | # | File | Action | Tool |
137
- |---|------|--------|------|
138
- | 15 | tests/.../MyEntityTests.cs | create | MCP scaffold_tests |
139
- | 16 | tests/.../MyServiceTests.cs | create | MCP scaffold_tests |
140
- ```
141
-
142
- ---
143
-
144
- ## 3. Identify Parallelization (Agent Teams)
145
-
146
- If NOT economy_mode AND Layer 1 has both backend and frontend work:
55
+ ## 1-3. Layer Mapping, Skill Assignment, Parallelization
56
+
57
+ > **Reference:** Load `references/planning-layer-mapping.md` for detailed planning procedures:
58
+ > - Layer assignment matrix (Domain/Infrastructure/Application/API/Seed/Frontend/Tests)
59
+ > - Entity definition template (tenantMode, codePattern, fkFields, ACs)
60
+ > - Skill/MCP assignment table (per file, per layer)
61
+ > - Layer 0/1/2b/3 file lists with tools
62
+ > - FK field guidance (EntityLookup + backend ?search= parameter)
63
+ > - Parallelization strategy (Agent Teams for Layer 1 backend+frontend)
64
+ > - Delegate mode fast path (PRD task mapping to layers)
147
65
 
148
66
  ```
149
67
  Layer 0: SEQUENTIAL (agent principal)