@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
@@ -22,69 +22,6 @@ private static Guid GenerateGuid(int index)
22
22
 
23
23
  ---
24
24
 
25
- ## TEMPLATE: CONTEXT
26
-
27
- ### Navigation Entity
28
-
29
- ```csharp
30
- // In NavigationContextConfiguration.cs - HasData()
31
- new {
32
- Id = Guid.Parse("$CONTEXT_GUID"),
33
- Code = "$CODE", // e.g.: "erp"
34
- Label = "$LABEL_EN", // e.g.: "ERP"
35
- Description = "$DESC_EN", // e.g.: "Enterprise management"
36
- Icon = "$ICON", // e.g.: "Building2"
37
- IconType = IconType.Lucide,
38
- Route = "/$CODE", // e.g.: "/erp"
39
- DisplayOrder = $ORDER, // e.g.: 4
40
- IsActive = true,
41
- CreatedAt = seedDate
42
- }
43
- ```
44
-
45
- ### Translations (4 languages)
46
-
47
- ```csharp
48
- // In NavigationTranslationConfiguration.cs - GetSeedData()
49
- // Context translations
50
- translations.Add(new {
51
- Id = GenerateGuid(index++),
52
- EntityType = NavigationEntityType.Context,
53
- EntityId = $CONTEXT_GUID,
54
- LanguageCode = "fr",
55
- Label = "$LABEL_FR",
56
- Description = "$DESC_FR",
57
- CreatedAt = seedDate
58
- });
59
- translations.Add(new {
60
- Id = GenerateGuid(index++),
61
- EntityType = NavigationEntityType.Context,
62
- EntityId = $CONTEXT_GUID,
63
- LanguageCode = "en",
64
- Label = "$LABEL_EN",
65
- Description = "$DESC_EN",
66
- CreatedAt = seedDate
67
- });
68
- translations.Add(new {
69
- Id = GenerateGuid(index++),
70
- EntityType = NavigationEntityType.Context,
71
- EntityId = $CONTEXT_GUID,
72
- LanguageCode = "it",
73
- Label = "$LABEL_IT",
74
- Description = "$DESC_IT",
75
- CreatedAt = seedDate
76
- });
77
- translations.Add(new {
78
- Id = GenerateGuid(index++),
79
- EntityType = NavigationEntityType.Context,
80
- EntityId = $CONTEXT_GUID,
81
- LanguageCode = "de",
82
- Label = "$LABEL_DE",
83
- Description = "$DESC_DE",
84
- CreatedAt = seedDate
85
- });
86
- ```
87
-
88
25
  ---
89
26
 
90
27
  ## TEMPLATE: APPLICATION
@@ -95,13 +32,12 @@ translations.Add(new {
95
32
  // In NavigationApplicationConfiguration.cs - HasData()
96
33
  new {
97
34
  Id = Guid.Parse("$APP_GUID"),
98
- ContextId = Guid.Parse("$CONTEXT_GUID"),
99
35
  Code = "$CODE", // e.g.: "sales"
100
36
  Label = "$LABEL_EN", // e.g.: "Sales"
101
37
  Description = "$DESC_EN", // e.g.: "Sales management"
102
38
  Icon = "$ICON", // e.g.: "TrendingUp"
103
39
  IconType = IconType.Lucide,
104
- Route = "/$CONTEXT/$CODE", // e.g.: "/erp/sales"
40
+ Route = "/$CODE", // e.g.: "/sales"
105
41
  DisplayOrder = $ORDER,
106
42
  IsActive = true,
107
43
  CreatedAt = seedDate
@@ -166,7 +102,7 @@ new {
166
102
  Description = "$DESC_EN", // e.g.: "Product management"
167
103
  Icon = "$ICON", // e.g.: "Package"
168
104
  IconType = IconType.Lucide,
169
- Route = "/$CONTEXT/$APP/$CODE", // e.g.: "/erp/sales/products"
105
+ Route = "/$APP/$CODE", // e.g.: "/sales/products"
170
106
  DisplayOrder = $ORDER,
171
107
  IsActive = true,
172
108
  CreatedAt = seedDate
@@ -231,7 +167,7 @@ new {
231
167
  Description = "$DESC_EN", // e.g.: "Inventory management"
232
168
  Icon = "$ICON", // e.g.: "Warehouse"
233
169
  IconType = IconType.Lucide,
234
- Route = "/$CONTEXT/$APP/$MODULE/$CODE", // e.g.: "/erp/sales/products/inventory"
170
+ Route = "/$APP/$MODULE/$CODE", // e.g.: "/sales/products/inventory"
235
171
  DisplayOrder = $ORDER,
236
172
  IsActive = true,
237
173
  CreatedAt = seedDate
@@ -293,37 +229,37 @@ translations.Add(new {
293
229
  // Read
294
230
  new {
295
231
  Id = Guid.Parse("$PERM_READ_GUID"),
296
- Code = "$CONTEXT.$APP.$MODULE.read",
232
+ Code = "$APP.$MODULE.read",
297
233
  Name = "View $MODULE_LABEL",
298
234
  Description = "View $MODULE_LABEL list and details",
299
- Category = "$CONTEXT.$APP.$MODULE",
235
+ Category = "$APP.$MODULE",
300
236
  CreatedAt = seedDate
301
237
  },
302
238
  // Create
303
239
  new {
304
240
  Id = Guid.Parse("$PERM_CREATE_GUID"),
305
- Code = "$CONTEXT.$APP.$MODULE.create",
241
+ Code = "$APP.$MODULE.create",
306
242
  Name = "Create $MODULE_LABEL",
307
243
  Description = "Create new $MODULE_LABEL",
308
- Category = "$CONTEXT.$APP.$MODULE",
244
+ Category = "$APP.$MODULE",
309
245
  CreatedAt = seedDate
310
246
  },
311
247
  // Update
312
248
  new {
313
249
  Id = Guid.Parse("$PERM_UPDATE_GUID"),
314
- Code = "$CONTEXT.$APP.$MODULE.update",
250
+ Code = "$APP.$MODULE.update",
315
251
  Name = "Update $MODULE_LABEL",
316
252
  Description = "Modify existing $MODULE_LABEL",
317
- Category = "$CONTEXT.$APP.$MODULE",
253
+ Category = "$APP.$MODULE",
318
254
  CreatedAt = seedDate
319
255
  },
320
256
  // Delete
321
257
  new {
322
258
  Id = Guid.Parse("$PERM_DELETE_GUID"),
323
- Code = "$CONTEXT.$APP.$MODULE.delete",
259
+ Code = "$APP.$MODULE.delete",
324
260
  Name = "Delete $MODULE_LABEL",
325
261
  Description = "Remove $MODULE_LABEL",
326
- Category = "$CONTEXT.$APP.$MODULE",
262
+ Category = "$APP.$MODULE",
327
263
  CreatedAt = seedDate
328
264
  }
329
265
  ```
@@ -346,7 +282,7 @@ new { RoleId = Guid.Parse("...StandardUserRoleId..."), PermissionId = $PERM_READ
346
282
 
347
283
  ---
348
284
 
349
- ## TEMPLATE: SECTION PERMISSIONS SEED (Level 4)
285
+ ## TEMPLATE: SECTION PERMISSIONS SEED (Level 3)
350
286
 
351
287
  > **Usage:** When a Module has sub-pages with different permissions
352
288
 
@@ -354,7 +290,7 @@ new { RoleId = Guid.Parse("...StandardUserRoleId..."), PermissionId = $PERM_READ
354
290
 
355
291
  ```csharp
356
292
  // In PermissionConfiguration.cs - HasData()
357
- // Pattern: {context}.{application}.{module}.{section}.{action}
293
+ // Pattern: {application}.{module}.{section}.{action}
358
294
 
359
295
  // Declare SectionId (must match NavigationSectionConfiguration.cs)
360
296
  var {section}SectionId = Guid.Parse("$SECTION_GUID");
@@ -362,7 +298,7 @@ var {section}SectionId = Guid.Parse("$SECTION_GUID");
362
298
  // Wildcard Section
363
299
  new {
364
300
  Id = Guid.Parse("$PERM_SECTION_WILDCARD_GUID"),
365
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.*",
301
+ Path = "$APP.$MODULE.$SECTION.*",
366
302
  Level = PermissionLevel.Section,
367
303
  IsWildcard = true,
368
304
  SectionId = {section}SectionId,
@@ -372,7 +308,7 @@ new {
372
308
  // Read
373
309
  new {
374
310
  Id = Guid.Parse("$PERM_SECTION_READ_GUID"),
375
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.read",
311
+ Path = "$APP.$MODULE.$SECTION.read",
376
312
  Level = PermissionLevel.Section,
377
313
  Action = PermissionAction.Read,
378
314
  IsWildcard = false,
@@ -383,7 +319,7 @@ new {
383
319
  // Create
384
320
  new {
385
321
  Id = Guid.Parse("$PERM_SECTION_CREATE_GUID"),
386
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.create",
322
+ Path = "$APP.$MODULE.$SECTION.create",
387
323
  Level = PermissionLevel.Section,
388
324
  Action = PermissionAction.Create,
389
325
  IsWildcard = false,
@@ -394,7 +330,7 @@ new {
394
330
  // Update
395
331
  new {
396
332
  Id = Guid.Parse("$PERM_SECTION_UPDATE_GUID"),
397
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.update",
333
+ Path = "$APP.$MODULE.$SECTION.update",
398
334
  Level = PermissionLevel.Section,
399
335
  Action = PermissionAction.Update,
400
336
  IsWildcard = false,
@@ -405,7 +341,7 @@ new {
405
341
  // Delete
406
342
  new {
407
343
  Id = Guid.Parse("$PERM_SECTION_DELETE_GUID"),
408
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.delete",
344
+ Path = "$APP.$MODULE.$SECTION.delete",
409
345
  Level = PermissionLevel.Section,
410
346
  Action = PermissionAction.Delete,
411
347
  IsWildcard = false,
@@ -416,7 +352,7 @@ new {
416
352
  // Execute (optional)
417
353
  new {
418
354
  Id = Guid.Parse("$PERM_SECTION_EXECUTE_GUID"),
419
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.execute",
355
+ Path = "$APP.$MODULE.$SECTION.execute",
420
356
  Level = PermissionLevel.Section,
421
357
  Action = PermissionAction.Execute,
422
358
  IsWildcard = false,
@@ -428,7 +364,7 @@ new {
428
364
 
429
365
  ---
430
366
 
431
- ## TEMPLATE: RESOURCE PERMISSIONS SEED (Level 5)
367
+ ## TEMPLATE: RESOURCE PERMISSIONS SEED (Level 4)
432
368
 
433
369
  > **Usage:** Finest level - sub-resources with distinct permissions (e.g.: Prompts → Blocks)
434
370
 
@@ -436,7 +372,7 @@ new {
436
372
 
437
373
  ```csharp
438
374
  // In PermissionConfiguration.cs - HasData()
439
- // Pattern: {context}.{application}.{module}.{section}.{resource}.{action}
375
+ // Pattern: {application}.{module}.{section}.{resource}.{action}
440
376
 
441
377
  // Declare ResourceId (must match NavigationResourceConfiguration.cs)
442
378
  var {resource}ResourceId = Guid.Parse("$RESOURCE_GUID");
@@ -444,7 +380,7 @@ var {resource}ResourceId = Guid.Parse("$RESOURCE_GUID");
444
380
  // Wildcard Resource
445
381
  new {
446
382
  Id = Guid.Parse("$PERM_RESOURCE_WILDCARD_GUID"),
447
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.$RESOURCE.*",
383
+ Path = "$APP.$MODULE.$SECTION.$RESOURCE.*",
448
384
  Level = PermissionLevel.Resource,
449
385
  IsWildcard = true,
450
386
  ResourceId = {resource}ResourceId,
@@ -454,7 +390,7 @@ new {
454
390
  // Read
455
391
  new {
456
392
  Id = Guid.Parse("$PERM_RESOURCE_READ_GUID"),
457
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.$RESOURCE.read",
393
+ Path = "$APP.$MODULE.$SECTION.$RESOURCE.read",
458
394
  Level = PermissionLevel.Resource,
459
395
  Action = PermissionAction.Read,
460
396
  IsWildcard = false,
@@ -465,7 +401,7 @@ new {
465
401
  // Create
466
402
  new {
467
403
  Id = Guid.Parse("$PERM_RESOURCE_CREATE_GUID"),
468
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.$RESOURCE.create",
404
+ Path = "$APP.$MODULE.$SECTION.$RESOURCE.create",
469
405
  Level = PermissionLevel.Resource,
470
406
  Action = PermissionAction.Create,
471
407
  IsWildcard = false,
@@ -476,7 +412,7 @@ new {
476
412
  // Update
477
413
  new {
478
414
  Id = Guid.Parse("$PERM_RESOURCE_UPDATE_GUID"),
479
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.$RESOURCE.update",
415
+ Path = "$APP.$MODULE.$SECTION.$RESOURCE.update",
480
416
  Level = PermissionLevel.Resource,
481
417
  Action = PermissionAction.Update,
482
418
  IsWildcard = false,
@@ -487,7 +423,7 @@ new {
487
423
  // Delete
488
424
  new {
489
425
  Id = Guid.Parse("$PERM_RESOURCE_DELETE_GUID"),
490
- Path = "$CONTEXT.$APP.$MODULE.$SECTION.$RESOURCE.delete",
426
+ Path = "$APP.$MODULE.$SECTION.$RESOURCE.delete",
491
427
  Level = PermissionLevel.Resource,
492
428
  Action = PermissionAction.Delete,
493
429
  IsWildcard = false,
@@ -512,7 +448,7 @@ new {
512
448
  // Bulk Create
513
449
  new {
514
450
  Id = Guid.Parse("$PERM_BULK_CREATE_GUID"),
515
- Path = "$CONTEXT.$APP.$MODULE.bulk-create",
451
+ Path = "$APP.$MODULE.bulk-create",
516
452
  Level = PermissionLevel.Module,
517
453
  Action = PermissionAction.Create,
518
454
  IsWildcard = false,
@@ -523,7 +459,7 @@ new {
523
459
  // Bulk Update
524
460
  new {
525
461
  Id = Guid.Parse("$PERM_BULK_UPDATE_GUID"),
526
- Path = "$CONTEXT.$APP.$MODULE.bulk-update",
462
+ Path = "$APP.$MODULE.bulk-update",
527
463
  Level = PermissionLevel.Module,
528
464
  Action = PermissionAction.Update,
529
465
  IsWildcard = false,
@@ -534,7 +470,7 @@ new {
534
470
  // Bulk Delete
535
471
  new {
536
472
  Id = Guid.Parse("$PERM_BULK_DELETE_GUID"),
537
- Path = "$CONTEXT.$APP.$MODULE.bulk-delete",
473
+ Path = "$APP.$MODULE.bulk-delete",
538
474
  Level = PermissionLevel.Module,
539
475
  Action = PermissionAction.Delete,
540
476
  IsWildcard = false,
@@ -545,7 +481,7 @@ new {
545
481
  // Export
546
482
  new {
547
483
  Id = Guid.Parse("$PERM_EXPORT_GUID"),
548
- Path = "$CONTEXT.$APP.$MODULE.export",
484
+ Path = "$APP.$MODULE.export",
549
485
  Level = PermissionLevel.Module,
550
486
  Action = PermissionAction.Execute,
551
487
  IsWildcard = false,
@@ -556,7 +492,7 @@ new {
556
492
  // Import
557
493
  new {
558
494
  Id = Guid.Parse("$PERM_IMPORT_GUID"),
559
- Path = "$CONTEXT.$APP.$MODULE.import",
495
+ Path = "$APP.$MODULE.import",
560
496
  Level = PermissionLevel.Module,
561
497
  Action = PermissionAction.Create,
562
498
  IsWildcard = false,
@@ -568,13 +504,11 @@ new {
568
504
 
569
505
  ---
570
506
 
571
- ## COMPLETE EXAMPLE: "Products" Module in "ERP > Sales"
507
+ ## COMPLETE EXAMPLE: "Products" Module in "Sales"
572
508
 
573
509
  ### Variables
574
510
 
575
511
  ```
576
- $CONTEXT = erp
577
- $CONTEXT_GUID = e1e1e1e1-1111-1111-1111-111111111111
578
512
  $APP = sales
579
513
  $APP_GUID = e2e2e2e2-2222-2222-2222-222222222222
580
514
  $MODULE = products
@@ -596,12 +530,11 @@ $ORDER = 1
596
530
 
597
531
  ### Files to modify
598
532
 
599
- 1. `NavigationContextConfiguration.cs` - Add ERP context (if new)
600
- 2. `NavigationApplicationConfiguration.cs` - Add Sales application
601
- 3. `NavigationModuleConfiguration.cs` - Add Products module
602
- 4. `NavigationTranslationConfiguration.cs` - Add 4 translations × number of entities
603
- 5. `PermissionConfiguration.cs` - Add CRUD permissions
604
- 6. `RolePermissionConfiguration.cs` - Assign to default roles
533
+ 1. `NavigationApplicationConfiguration.cs` - Add Sales application
534
+ 2. `NavigationModuleConfiguration.cs` - Add Products module
535
+ 3. `NavigationTranslationConfiguration.cs` - Add 4 translations × number of entities
536
+ 4. `PermissionConfiguration.cs` - Add CRUD permissions
537
+ 5. `RolePermissionConfiguration.cs` - Assign to default roles
605
538
 
606
539
  ---
607
540
 
@@ -627,7 +560,7 @@ Domain entity seeds use the SeedData provider pattern below.
627
560
  ```csharp
628
561
  // Infrastructure/Persistence/Seeding/Data/{Domain}/{EntityName}SeedData.cs
629
562
 
630
- using SmartStack.Domain.{Context}.{Application}.{Module};
563
+ using SmartStack.Domain.{Application}.{Module};
631
564
 
632
565
  namespace SmartStack.Infrastructure.Persistence.Seeding.Data.{Domain};
633
566
 
@@ -854,7 +787,7 @@ InitializeSmartStackAsync()
854
787
  using Microsoft.EntityFrameworkCore;
855
788
  using SmartStack.Application.Common.Interfaces;
856
789
  using SmartStack.Domain.Navigation;
857
- using SmartStack.Domain.Platform.Administration.Roles;
790
+ using SmartStack.Domain.Administration.Roles;
858
791
 
859
792
  namespace {BaseNamespace}.Infrastructure.Persistence.Seeding;
860
793
 
@@ -877,13 +810,10 @@ public class {AppPascalName}SeedDataProvider : IClientSeedDataProvider
877
810
  }
878
811
  else
879
812
  {
880
- var parentContext = await context.NavigationContexts
881
- .FirstAsync(c => c.Code == "{context_code}", ct);
882
-
883
813
  app = NavigationApplication.Create(
884
- parentContext.Id, "{app_code}", "{app_label_en}",
814
+ "{app_code}", "{app_label_en}",
885
815
  "{app_desc_en}", "{app_icon}", IconType.Lucide,
886
- "/{context_code}/{app_code}", {display_order});
816
+ "/{app_code}", {display_order});
887
817
  context.NavigationApplications.Add(app);
888
818
  await ((DbContext)context).SaveChangesAsync(ct);
889
819
 
@@ -980,11 +910,11 @@ public class {AppPascalName}SeedDataProvider : IClientSeedDataProvider
980
910
  | ☐ Index translations continue existing sequence | |
981
911
  | ☐ Route aligned with permission path | |
982
912
  | ☐ DisplayOrder consistent | |
983
- | ☐ CRUD permissions created (Level 3 - Module) | |
984
- | ☐ Section permissions if sub-pages (Level 4) | |
913
+ | ☐ CRUD permissions created (Level 2 - Module) | |
914
+ | ☐ Section permissions if sub-pages (Level 3) | |
985
915
  | ☐ NavigationSections seeded (if `seedDataCore.navigationSections` in feature.json) | |
986
916
  | ☐ NavigationResources seeded (if `seedDataCore.navigationResources` in feature.json) | |
987
- | ☐ Resource permissions if sub-resources (Level 5) | |
917
+ | ☐ Resource permissions if sub-resources (Level 4) | |
988
918
  | ☐ Bulk Operations permissions created | |
989
919
  | ☐ RolePermissions assigned | |
990
920
  | ☐ Entity SeedData.cs created (if user opted in) | |
@@ -994,28 +924,24 @@ public class {AppPascalName}SeedDataProvider : IClientSeedDataProvider
994
924
 
995
925
  ---
996
926
 
997
- ## PERMISSIONS HIERARCHY (5 Levels)
927
+ ## PERMISSIONS HIERARCHY (4 Levels)
998
928
 
999
929
  ```
1000
- Level 1: CONTEXT
1001
- └─ Path: {context}.*
1002
- └─ E.g.: platform.* → Full context access
1003
-
1004
- Level 2: APPLICATION
1005
- └─ Path: {context}.{application}.*
1006
- └─ E.g.: platform.administration.* → Full app access
930
+ Level 1: APPLICATION
931
+ └─ Path: {application}.*
932
+ └─ E.g.: administration.* → Full app access
1007
933
 
1008
- Level 3: MODULE
1009
- └─ Path: {context}.{application}.{module}.{action}
1010
- └─ E.g.: platform.administration.users.read
934
+ Level 2: MODULE
935
+ └─ Path: {application}.{module}.{action}
936
+ └─ E.g.: administration.users.read
1011
937
 
1012
- Level 4: SECTION
1013
- └─ Path: {context}.{application}.{module}.{section}.{action}
1014
- └─ E.g.: platform.administration.ai.settings.update
938
+ Level 3: SECTION
939
+ └─ Path: {application}.{module}.{section}.{action}
940
+ └─ E.g.: administration.ai.settings.update
1015
941
 
1016
- Level 5: RESOURCE (finest granularity)
1017
- └─ Path: {context}.{application}.{module}.{section}.{resource}.{action}
1018
- └─ E.g.: platform.administration.ai.prompts.blocks.delete
942
+ Level 4: RESOURCE (finest granularity)
943
+ └─ Path: {application}.{module}.{section}.{resource}.{action}
944
+ └─ E.g.: administration.ai.prompts.blocks.delete
1019
945
  ```
1020
946
 
1021
947
  ---
@@ -12,7 +12,7 @@ Execute business analysis workflows. This skill produces feature.json files prog
12
12
  2. **Update** — delta changes on an existing application or module
13
13
  3. **Multi-application project** — when a project spans multiple independent applications (e.g., HR Management + Employee Self-Service)
14
14
 
15
- The skill auto-detects which use case applies by scanning existing features in `docs/business/`, `docs/platform/`, `docs/personal/`, and `docs/business-analyse/`.
15
+ The skill auto-detects which use case applies by scanning existing features in `docs/{app}/` and `docs/business-analyse/`.
16
16
 
17
17
  **Architecture highlights:**
18
18
  - Conditional context loading: each step loads only the shared files it needs (~54% context reduction)
@@ -42,7 +42,7 @@ The skill auto-detects which use case applies by scanning existing features in `
42
42
  | `-review` | Mode review — lit `ba-review.json`, cree une nouvelle version avec les corrections appliquees |
43
43
 
44
44
  Step-00 handles detection automatically:
45
- - **New vs Update**: scans `docs/business/` for existing applications
45
+ - **New vs Update**: scans `docs/` for existing applications
46
46
  - **Single vs Multi-app**: multi-app detection in step-01, application identity confirmed in step-01b (always)
47
47
  - **Single vs Multi-module**: determined during step-02 decomposition
48
48
  - **Language**: detected from config or asked once
@@ -57,15 +57,15 @@ Step-00 handles detection automatically:
57
57
  docs/
58
58
  business-analyse/v{X.Y}/
59
59
  feature.json # PROJECT-level master (only if multi-app: applications, dependencies)
60
- {context}/ # "business" | "platform" | "personal"
60
+ {app}/
61
61
  index.json # BA manifest (auto-updated at handoff, consumed by web app viewer)
62
- {app}/business-analyse/v{X.Y}/
62
+ business-analyse/v{X.Y}/
63
63
  feature.json # APPLICATION-level master (modules, dependencies, roles)
64
64
  ba-interactive.html # Client-facing interactive review document (deployed at handoff)
65
65
  {app}/{module}/business-analyse/v{X.Y}/
66
66
  feature.json # MODULE-level detail (entities, UC, FR, permissions, mockups)
67
67
  ```
68
- > In standalone mode (single app), the project-level file is NOT created and `{context}` is always `business`.
68
+ > In standalone mode (single app), the project-level file is NOT created.
69
69
 
70
70
  **Ralph Loop files (generated by step-05):**
71
71
  ```
@@ -75,25 +75,24 @@ docs/
75
75
  ```
76
76
 
77
77
  **Documentation integrated in SmartStack app:**
78
- - Application view: `/docs/business/{app}` (module overview, dependency graph, roles)
79
- - Module view: `/docs/business/{app}/{module}` (full specification, mockups)
78
+ - Application view: `/docs/{app}` (module overview, dependency graph, roles)
79
+ - Module view: `/docs/{app}/{module}` (full specification, mockups)
80
80
 
81
81
  **No intermediate markdown files - all state in feature.json**
82
82
  </output_structure>
83
83
 
84
84
  <navigation_hierarchy>
85
- **SmartStack uses a 5-level navigation structure mapped to database tables:**
85
+ **SmartStack uses a 4-level navigation structure mapped to database tables:**
86
86
 
87
87
  | Level | Entity | Table DB | Created in Step | Description |
88
88
  |-------|--------|----------|-----------------|-------------|
89
- | 1 | Context | `core.nav_Contexts` | N/A | Fixed ("business", "platform", "system") |
90
- | 2 | Application | `core.nav_Applications` | 00-01 | Top-level application (e.g., "RessourcesHumaines") |
91
- | 3 | Module | `core.nav_Modules` | 02 | Functional module (e.g., "Employees", "TimeManagement") |
92
- | 4 | **Section** | **`core.nav_Sections`** | **03a-03c** | **Page within module (e.g., "list", "detail", "create", "dashboard")** |
93
- | 5 | **Resource** | **`core.nav_Resources`** | **03b-03c** | **React component (SmartTable, SmartForm, Chart, KpiCard, etc.)** |
89
+ | 1 | Application | `core.nav_Applications` | 00-01 | Top-level application (e.g., "HumanResources") |
90
+ | 2 | Module | `core.nav_Modules` | 02 | Functional module (e.g., "Employees", "TimeManagement") |
91
+ | 3 | **Section** | **`core.nav_Sections`** | **03a-03c** | **Page within module (e.g., "list", "detail", "dashboard")** |
92
+ | 4 | **Resource** | **`core.nav_Resources`** | **03b-03c** | **React component (SmartTable, SmartForm, Chart, KpiCard, etc.)** |
94
93
 
95
94
  **Hierarchical relationship:**
96
- - Context → Application → Module → **Section** → **Resource**
95
+ - Application → Module → **Section** → **Resource**
97
96
  - Each Section MUST have ≥1 Resource
98
97
  - Each Section corresponds to 1 React page route
99
98
  - Each Resource corresponds to 1 SmartStack UI component
@@ -104,11 +103,11 @@ The `specification.seedDataCore` contains **9 mandatory arrays** for database se
104
103
 
105
104
  | Array | Table | Source | Description |
106
105
  |-------|-------|--------|-------------|
107
- | `navigationApplications` | `core.nav_Applications` | Manual (step-03c) | Application entry (Level 2) — created ONCE per application |
106
+ | `navigationApplications` | `core.nav_Applications` | Manual (step-03c) | Application entry (Level 1) — created ONCE per application |
108
107
  | `applicationRoles` | `core.auth_Roles` | Manual (step-03c) | Application-scoped roles (admin, manager, contributor, viewer) |
109
- | `navigationModules` | `core.nav_Modules` | Manual (step-03c) | Module entry (Level 3) |
110
- | **`navigationSections`** | **`core.nav_Sections`** | **Derived from `specification.sections[]`** | **Section entries (Level 4)** |
111
- | **`navigationResources`** | **`core.nav_Resources`** | **Derived from `specification.sections[].resources[]`** | **Resource entries (Level 5)** |
108
+ | `navigationModules` | `core.nav_Modules` | Manual (step-03c) | Module entry (Level 2) |
109
+ | **`navigationSections`** | **`core.nav_Sections`** | **Derived from `specification.sections[]`** | **Section entries (Level 3)** |
110
+ | **`navigationResources`** | **`core.nav_Resources`** | **Derived from `specification.sections[].resources[]`** | **Resource entries (Level 4)** |
112
111
  | `navigationTranslations` | `core.nav_Translations` | Manual (i18n) | Multi-language labels |
113
112
  | `permissions` | `core.Permissions` | Manual (step-03c) | Permission definitions ({path, action, description}) |
114
113
  | `rolePermissions` | `core.RolePermissions` | Manual (step-03c) | Role-permission mappings |
@@ -119,13 +118,13 @@ The `specification.seedDataCore` contains **9 mandatory arrays** for database se
119
118
  - `navigationResources` = transform `specification.sections[].resources[]` → flatten to { code, type, entity, parentCode, permission }
120
119
 
121
120
  **Example:**
122
- - Module: `Employees` (Level 3)
123
- - Section: `list` (Level 4) → contains resources:
124
- - Resource: `employees-grid` (SmartTable) (Level 5)
125
- - Resource: `status-filter` (FilterBar) (Level 5)
126
- - Section: `detail` (Level 4) → contains resources:
127
- - Resource: `employee-card` (DetailCard) (Level 5)
128
- - Resource: `contract-history` (SmartTable) (Level 5)
121
+ - Module: `Employees` (Level 2)
122
+ - Section: `list` (Level 3) → contains resources:
123
+ - Resource: `employees-grid` (SmartTable) (Level 4)
124
+ - Resource: `status-filter` (FilterBar) (Level 4)
125
+ - Section: `detail` (Level 3) → contains resources:
126
+ - Resource: `employee-card` (DetailCard) (Level 4)
127
+ - Resource: `contract-history` (SmartTable) (Level 4)
129
128
 
130
129
  </navigation_hierarchy>
131
130
 
@@ -144,7 +143,7 @@ When step-00 detects that the description matches an existing application:
144
143
  **Step-00 routing (auto-detection):**
145
144
 
146
145
  1. Read `{feature_description}`
147
- 2. Scan `docs/business/` for existing applications
146
+ 2. Scan `docs/` for existing applications
148
147
  3. If match found → ask user: "New application" or "Update {app}" ?
149
148
  4. If no match → new application
150
149
  5. Create master feature.json and proceed to step-01
@@ -188,10 +187,9 @@ When step-00 detects that the description matches an existing application:
188
187
  | `{application_name}` | string | Target application name |
189
188
  | `{module_name}` | string | Target module name |
190
189
  | `{project_id}` | string | Project identifier (e.g., `PROJ-001`) — only in multi-app mode |
191
- | `{context}` | string | "business" (default), "platform", or "personal" per application |
192
190
  | `{workflow_mode}` | string | "project" (multi-app), "application" (single-app multi-module), or "module" (single) |
193
191
  | `{analysisMode}` | string | Always "interactive" — analysis phase is always interactive with the user |
194
- | `{docs_dir}` | string | `docs/business/{app}/{module}/business-analyse/v{X.Y}/` |
192
+ | `{docs_dir}` | string | `docs/{app}/{module}/business-analyse/v{X.Y}/` |
195
193
 
196
194
  </state_variables>
197
195
 
@@ -281,7 +279,6 @@ Load ONLY relevant categories based on feature type:
281
279
  - **Use ba-writer agent** for all JSON writes
282
280
  - **Use ba-reader agent** for all JSON reads
283
281
  - **Follow next_step directive** at end of each step
284
- - **Context:** business-only in standalone mode; business/platform/personal per-application in project mode
285
282
  - **Use parallel agents** for codebase exploration
286
283
  - **Team mode** (2+ modules): After step-02, load `references/team-orchestration.md` and follow team protocol
287
284
  - **Inline mode** (1 module): Classic sequential execution, no team
@@ -326,5 +323,5 @@ Load ONLY relevant categories based on feature type:
326
323
  - Cross-module consolidation passed (step-04)
327
324
  - Development handoff ready for `/ralph-loop`
328
325
  - Ralph Loop prd.json generated (per module or consolidated)
329
- - All outputs renderable by SmartStack app viewer at `/docs/business/{app}/`
326
+ - All outputs renderable by SmartStack app viewer at `/docs/{app}/`
330
327
  </success_criteria>
@@ -63,11 +63,11 @@
63
63
  | **Domain** | `{Project}.Domain/Business/{Application}/{Module}/` | `Domain/Business/Operations/FreeBicke/FreeBicke.cs` |
64
64
  | **Application/DTOs** | `{Project}.Application/Business/{Application}/{Module}/DTOs/` | `Application/Business/Operations/FreeBicke/DTOs/FreeBickeDto.cs` |
65
65
  | **Application/Interfaces** | `{Project}.Application/Common/Interfaces/` | `Application/Common/Interfaces/IFreeBickeService.cs` |
66
- | **Infrastructure/Config** | `{Project}.Infrastructure/Persistence/Configurations/{Context}/{Application}/{Module}/` | `Configurations/Business/Operations/FreeBicke/FreeBickeConfiguration.cs` |
67
- | **Infrastructure/Services** | `{Project}.Infrastructure/Services/{Context}/{Application}/{Module}/` | `Services/Business/Operations/FreeBicke/FreeBickeService.cs` |
68
- | **Infrastructure/SeedData** | `{Project}.Infrastructure/Persistence/Seeding/Data/{Context}/{Application}/{Module}/` | `Seeding/Data/Business/Operations/FreeBicke/FreeBickeSeedData.cs` |
66
+ | **Infrastructure/Config** | `{Project}.Infrastructure/Persistence/Configurations/{Application}/{Module}/` | `Configurations/Operations/FreeBicke/FreeBickeConfiguration.cs` |
67
+ | **Infrastructure/Services** | `{Project}.Infrastructure/Services/{Application}/{Module}/` | `Services/Operations/FreeBicke/FreeBickeService.cs` |
68
+ | **Infrastructure/SeedData** | `{Project}.Infrastructure/Persistence/Seeding/Data/{Application}/{Module}/` | `Seeding/Data/Operations/FreeBicke/FreeBickeSeedData.cs` |
69
69
  | **API/Controllers** | `{Project}.Api/Controllers/Business/{Application}/` | `Controllers/Business/Operations/FreeBickeController.cs` |
70
- | **Frontend/Pages** | `web/src/pages/business/{application}/{module}/` | `pages/business/operations/freebicke/page.tsx` |
70
+ | **Frontend/Pages** | `web/src/pages/{application}/{module}/` | `pages/operations/freebicke/page.tsx` |
71
71
  | **Frontend/i18n** | `web/src/i18n/locales/{lang}/{module}.json` | `locales/fr/freebicke.json` |
72
72
 
73
73
  > **IMPORTANT :** Chaque module a son **propre sous-dossier** dans chaque couche. Ne JAMAIS mettre tous les fichiers a la racine d'une couche.
@@ -90,7 +90,7 @@
90
90
 
91
91
  | Role | Permissions | Description |
92
92
  |------|-------------|-------------|
93
- | **{App} Admin** | `{context}.{app}.*` (wildcard) | Acces complet a l'application |
93
+ | **{App} Admin** | `{app}.*` (wildcard) | Acces complet a l'application |
94
94
  | **{App} Manager** | `read`, `create`, `update`, `assign` | Gestion complete sans suppression |
95
95
  | **{App} Contributor** | `read`, `create`, `update` | Contribution active |
96
96
  | **{App} Viewer** | `read` uniquement | Consultation seule |
@@ -104,7 +104,7 @@
104
104
  | Contrainte | Detail |
105
105
  |------------|--------|
106
106
  | **Multi-tenant** | `TenantId` sur toute entite metier, isolation automatique |
107
- | **RBAC** | Permissions `business.{app}.{module}.{action}`, HasData pattern |
107
+ | **RBAC** | Permissions `{app}.{module}.{action}`, HasData pattern |
108
108
  | **CQRS** | Commands (write) et Queries (read) separes via MediatR |
109
109
  | **Validation** | FluentValidation pour toute commande |
110
110
  | **i18n** | 4 langues obligatoires (fr, en, it, de) |