@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,134 +1,133 @@
1
- ---
2
- name: step-03b-provider
3
- description: Generate IClientSeedDataProvider implementation for client projects
4
- prev_step: steps/step-03-roles.md
5
- next_step: steps/step-04-backend.md
6
- ---
7
-
8
- # Step 3b: Client Seed Data Provider (Client Projects Only)
9
-
10
- ## CONDITION D'EXECUTION
11
-
12
- > This step executes ONLY if `{seeding_strategy}` = "provider" (client project).
13
- > If `{seeding_strategy}` = "hasdata", skip directly to step-04-backend.md.
14
-
15
- ## MANDATORY EXECUTION RULES
16
-
17
- - ONLY execute for client projects (`{seeding_strategy}` = "provider")
18
- - ALWAYS use factory methods (`NavigationModule.Create(...)`, etc.) - NEVER `new Entity()`
19
- - ALWAYS implement idempotence (check existence before inserting)
20
- - ALWAYS register the provider in DI
21
- - ALWAYS consume the SeedData classes created in steps 01-03
22
-
23
- ## YOUR TASK
24
-
25
- Generate the `IClientSeedDataProvider` implementation that wires the SeedData files
26
- created in steps 01, 02, 03 into the SmartStack Core seeding pipeline.
27
-
28
- ---
29
-
30
- ## AVAILABLE STATE
31
-
32
- From previous steps:
33
-
34
- | Variable | Description |
35
- |----------|-------------|
36
- | `{level}` | context, application, module, or section |
37
- | `{code}` | kebab-case identifier |
38
- | `{full_path}` | Complete navigation path |
39
- | `{labels}` | Object with fr, en, it, de |
40
- | `{descriptions}` | Object with fr, en, it, de |
41
- | `{icon}` | Lucide icon name |
42
- | `{display_order}` | Numeric display order |
43
- | `{navigation_guid}` | GUID of the navigation entity |
44
- | `{permission_guids}` | GUIDs for generated permissions |
45
- | `{project_type}` | "client" (guaranteed at this step) |
46
- | `{seeding_strategy}` | "provider" (guaranteed at this step) |
47
-
48
- ---
49
-
50
- ## FILES TO GENERATE
51
-
52
- See [references/provider-template.md](../references/provider-template.md) for the complete implementation:
53
- - **ApplicationRolesSeedData.cs** (once per application) — defines application-scoped roles (Admin, Manager, Contributor, Viewer)
54
- - **Provider class** (`{AppPascalName}SeedDataProvider.cs`) with 4 seed methods (Navigation, Roles, Permissions, RolePermissions)
55
- - **DI registration** pattern for `Infrastructure/DependencyInjection.cs`
56
- - **7 critical rules** (factory methods, idempotence, execution order, SaveChangesAsync order, deterministic GUIDs, FK by Code, Order property)
57
-
58
- ---
59
-
60
- ## EXECUTION SEQUENCE
61
-
62
- ### 1. Read SeedData files from steps 01-03
63
-
64
- Identify all SeedData files created in previous steps:
65
-
66
- ```
67
- Glob: **/Persistence/Seeding/Data/{Domain}/*SeedData.cs
68
- Glob: **/Persistence/Seeding/Data/ApplicationRolesSeedData.cs
69
- ```
70
-
71
- Expected files:
72
- - `ApplicationRolesSeedData.cs` (application-level, once per app)
73
- - `{Module}NavigationSeedData.cs` (from step 01)
74
- - `{Module}NavigationTranslationSeedData.cs` (from step 01)
75
- - `{Module}PermissionSeedData.cs` (from step 02)
76
- - `{Module}RolePermissionSeedData.cs` (from step 03)
77
-
78
- ### 2. Generate Provider Class
79
-
80
- Using the SeedData files as data sources, generate the `{AppPascalName}SeedDataProvider.cs` following the pattern above.
81
-
82
- Adapt the template:
83
- - Replace `{AppPascalName}` with the PascalCase application name
84
- - Replace `{app_code}` with the kebab-case application code
85
- - Replace `{context_code}` with the parent context code
86
- - Fill in the actual navigation, permission, and role-permission creation logic
87
- using the helper methods from the SeedData classes
88
-
89
- ### 3. Register in DI
90
-
91
- Find and update `Infrastructure/DependencyInjection.cs`:
92
-
93
- ```
94
- Glob: **/Infrastructure/DependencyInjection.cs
95
- ```
96
-
97
- Add the `IClientSeedDataProvider` registration.
98
-
99
- ### 4. Verify
100
-
101
- Before proceeding to step-04, verify:
102
- - [ ] ApplicationRolesSeedData.cs created (once per application)
103
- - [ ] Provider generated with 4 methods (SeedNavigationAsync, SeedRolesAsync, SeedPermissionsAsync, SeedRolePermissionsAsync)
104
- - [ ] Execution order: Navigation Roles → Permissions → RolePermissions
105
- - [ ] Registered in DI (`services.AddScoped<IClientSeedDataProvider, ...>()`)
106
- - [ ] Consumes SeedData classes from steps 01-03 + ApplicationRolesSeedData
107
- - [ ] Idempotent (check existence before insert)
108
- - [ ] Uses factory methods (no `new Entity()`)
109
-
110
- ---
111
-
112
- ## SUCCESS METRICS
113
-
114
- - ApplicationRolesSeedData.cs created (application-level)
115
- - Provider class generated with all 4 seed methods (Navigation, Roles, Permissions, RolePermissions)
116
- - Correct execution order enforced
117
- - DI registration added
118
- - SeedData classes from steps 01-03 + ApplicationRolesSeedData properly consumed
119
- - All methods are idempotent
120
- - Factory methods used throughout
121
- - Proceeded to step-04-backend.md
122
-
123
- ## FAILURE MODES
124
-
125
- - SeedData files not found from previous steps (return to step-01)
126
- - DependencyInjection.cs not found (ask user for DI registration location)
127
- - Missing IClientSeedDataProvider interface (verify SmartStack.Application reference)
128
-
129
- ---
130
-
131
- ## NEXT STEP
132
-
133
- After generating the provider and registering it in DI,
134
- proceed to `./step-04-backend.md`
1
+ ---
2
+ name: step-03b-provider
3
+ description: Generate IClientSeedDataProvider implementation for client projects
4
+ prev_step: steps/step-03-roles.md
5
+ next_step: steps/step-04-backend.md
6
+ ---
7
+
8
+ # Step 3b: Client Seed Data Provider (Client Projects Only)
9
+
10
+ ## CONDITION D'EXECUTION
11
+
12
+ > This step executes ONLY if `{seeding_strategy}` = "provider" (client project).
13
+ > If `{seeding_strategy}` = "hasdata", skip directly to step-04-backend.md.
14
+
15
+ ## MANDATORY EXECUTION RULES
16
+
17
+ - ONLY execute for client projects (`{seeding_strategy}` = "provider")
18
+ - ALWAYS use factory methods (`NavigationModule.Create(...)`, etc.) - NEVER `new Entity()`
19
+ - ALWAYS implement idempotence (check existence before inserting)
20
+ - ALWAYS register the provider in DI
21
+ - ALWAYS consume the SeedData classes created in steps 01-03
22
+
23
+ ## YOUR TASK
24
+
25
+ Generate the `IClientSeedDataProvider` implementation that wires the SeedData files
26
+ created in steps 01, 02, 03 into the SmartStack Core seeding pipeline.
27
+
28
+ ---
29
+
30
+ ## AVAILABLE STATE
31
+
32
+ From previous steps:
33
+
34
+ | Variable | Description |
35
+ |----------|-------------|
36
+ | `{level}` | application, module, section, or resource |
37
+ | `{code}` | kebab-case identifier |
38
+ | `{full_path}` | Complete navigation path |
39
+ | `{labels}` | Object with fr, en, it, de |
40
+ | `{descriptions}` | Object with fr, en, it, de |
41
+ | `{icon}` | Lucide icon name |
42
+ | `{display_order}` | Numeric display order |
43
+ | `{navigation_guid}` | GUID of the navigation entity |
44
+ | `{permission_guids}` | GUIDs for generated permissions |
45
+ | `{project_type}` | "client" (guaranteed at this step) |
46
+ | `{seeding_strategy}` | "provider" (guaranteed at this step) |
47
+
48
+ ---
49
+
50
+ ## FILES TO GENERATE
51
+
52
+ See [references/provider-template.md](../references/provider-template.md) for the complete implementation:
53
+ - **ApplicationRolesSeedData.cs** (once per application) — defines application-scoped roles (Admin, Manager, Contributor, Viewer)
54
+ - **Provider class** (`{AppPascalName}SeedDataProvider.cs`) with 4 seed methods (Navigation, Roles, Permissions, RolePermissions)
55
+ - **DI registration** pattern for `Infrastructure/DependencyInjection.cs`
56
+ - **7 critical rules** (factory methods, idempotence, execution order, SaveChangesAsync order, deterministic GUIDs, FK by Code, Order property)
57
+
58
+ ---
59
+
60
+ ## EXECUTION SEQUENCE
61
+
62
+ ### 1. Read SeedData files from steps 01-03
63
+
64
+ Identify all SeedData files created in previous steps:
65
+
66
+ ```
67
+ Glob: **/Persistence/Seeding/Data/{Domain}/*SeedData.cs
68
+ Glob: **/Persistence/Seeding/Data/ApplicationRolesSeedData.cs
69
+ ```
70
+
71
+ Expected files:
72
+ - `ApplicationRolesSeedData.cs` (application-level, once per app)
73
+ - `{Module}NavigationSeedData.cs` (from step 01)
74
+ - `{Module}NavigationTranslationSeedData.cs` (from step 01)
75
+ - `{Module}PermissionSeedData.cs` (from step 02)
76
+ - `{Module}RolePermissionSeedData.cs` (from step 03)
77
+
78
+ ### 2. Generate Provider Class
79
+
80
+ Using the SeedData files as data sources, generate the `{AppPascalName}SeedDataProvider.cs` following the pattern above.
81
+
82
+ Adapt the template:
83
+ - Replace `{AppPascalName}` with the PascalCase application name
84
+ - Replace `{app_code}` with the kebab-case application code
85
+ - Fill in the actual navigation, permission, and role-permission creation logic
86
+ using the helper methods from the SeedData classes
87
+
88
+ ### 3. Register in DI
89
+
90
+ Find and update `Infrastructure/DependencyInjection.cs`:
91
+
92
+ ```
93
+ Glob: **/Infrastructure/DependencyInjection.cs
94
+ ```
95
+
96
+ Add the `IClientSeedDataProvider` registration.
97
+
98
+ ### 4. Verify
99
+
100
+ Before proceeding to step-04, verify:
101
+ - [ ] ApplicationRolesSeedData.cs created (once per application)
102
+ - [ ] Provider generated with 4 methods (SeedNavigationAsync, SeedRolesAsync, SeedPermissionsAsync, SeedRolePermissionsAsync)
103
+ - [ ] Execution order: Navigation Roles Permissions RolePermissions
104
+ - [ ] Registered in DI (`services.AddScoped<IClientSeedDataProvider, ...>()`)
105
+ - [ ] Consumes SeedData classes from steps 01-03 + ApplicationRolesSeedData
106
+ - [ ] Idempotent (check existence before insert)
107
+ - [ ] Uses factory methods (no `new Entity()`)
108
+
109
+ ---
110
+
111
+ ## SUCCESS METRICS
112
+
113
+ - ApplicationRolesSeedData.cs created (application-level)
114
+ - Provider class generated with all 4 seed methods (Navigation, Roles, Permissions, RolePermissions)
115
+ - Correct execution order enforced
116
+ - DI registration added
117
+ - SeedData classes from steps 01-03 + ApplicationRolesSeedData properly consumed
118
+ - All methods are idempotent
119
+ - Factory methods used throughout
120
+ - Proceeded to step-04-backend.md
121
+
122
+ ## FAILURE MODES
123
+
124
+ - SeedData files not found from previous steps (return to step-01)
125
+ - DependencyInjection.cs not found (ask user for DI registration location)
126
+ - Missing IClientSeedDataProvider interface (verify SmartStack.Application reference)
127
+
128
+ ---
129
+
130
+ ## NEXT STEP
131
+
132
+ After generating the provider and registering it in DI,
133
+ proceed to `./step-04-backend.md`