@atlashub/smartstack-cli 1.13.2 → 1.14.1

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 (214) hide show
  1. package/.documentation/agents.html +1 -1
  2. package/.documentation/apex.html +1 -1
  3. package/.documentation/business-analyse.html +1 -1
  4. package/.documentation/cli-commands.html +3 -3
  5. package/.documentation/commands.html +1 -1
  6. package/.documentation/efcore.html +1 -1
  7. package/.documentation/gitflow.html +231 -236
  8. package/.documentation/hooks.html +1 -1
  9. package/.documentation/index.html +1 -1
  10. package/.documentation/init.html +3 -3
  11. package/.documentation/installation.html +1075 -351
  12. package/.documentation/ralph-loop.html +1 -1
  13. package/.documentation/test-web.html +1 -1
  14. package/README.md +88 -20
  15. package/config/default-config.json +10 -1
  16. package/dist/index.js +276 -85
  17. package/dist/index.js.map +1 -1
  18. package/package.json +1 -1
  19. package/templates/agents/code-reviewer.md +163 -0
  20. package/templates/agents/efcore/db-deploy.md +25 -7
  21. package/templates/agents/efcore/db-reset.md +31 -10
  22. package/templates/agents/efcore/db-status.md +22 -5
  23. package/templates/agents/efcore/migration.md +70 -20
  24. package/templates/agents/gitflow/cleanup.md +8 -1
  25. package/templates/agents/gitflow/commit.md +7 -5
  26. package/templates/agents/gitflow/finish.md +6 -4
  27. package/templates/agents/gitflow/pr.md +8 -1
  28. package/templates/agents/gitflow/start.md +1 -1
  29. package/templates/commands/check-version.md +267 -0
  30. package/templates/commands/efcore/_shared.md +31 -2
  31. package/templates/commands/efcore/db-reset.md +18 -6
  32. package/templates/commands/efcore/migration.md +1 -1
  33. package/templates/commands/efcore/rebase-snapshot.md +1 -1
  34. package/templates/commands/efcore/squash.md +1 -0
  35. package/templates/commands/refactor.md +164 -0
  36. package/templates/project/DependencyInjection.Application.cs.template +25 -0
  37. package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -0
  38. package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -0
  39. package/templates/project/ExampleEntity.cs.template +116 -0
  40. package/templates/project/ExampleEntityConfiguration.cs.template +64 -0
  41. package/templates/project/ExampleService.cs.template +146 -0
  42. package/templates/project/ExtensionsDbContext.cs.template +41 -0
  43. package/templates/project/IExtensionsDbContext.cs.template +22 -0
  44. package/templates/project/Program.cs.template +47 -0
  45. package/templates/project/README.md +79 -0
  46. package/templates/ralph/README.md +10 -8
  47. package/templates/ralph/ralph.config.yaml +2 -2
  48. package/templates/skills/_shared.md +44 -44
  49. package/templates/skills/ai-prompt/SKILL.md +55 -55
  50. package/templates/skills/apex/SKILL.md +235 -0
  51. package/templates/skills/apex/steps/step-00-init.md +203 -0
  52. package/templates/skills/apex/steps/step-01-analyze.md +210 -0
  53. package/templates/skills/apex/steps/step-02-plan.md +217 -0
  54. package/templates/skills/apex/steps/step-03-execute.md +178 -0
  55. package/templates/skills/apex/steps/step-04-validate.md +217 -0
  56. package/templates/skills/apex/steps/step-05-examine.md +207 -0
  57. package/templates/skills/apex/steps/step-06-resolve.md +181 -0
  58. package/templates/skills/apex/steps/step-07-tests.md +206 -0
  59. package/templates/skills/apex/steps/step-08-run-tests.md +207 -0
  60. package/templates/skills/apex/templates/00-context.md +46 -0
  61. package/templates/skills/apex/templates/01-analyze.md +63 -0
  62. package/templates/skills/apex/templates/02-plan.md +63 -0
  63. package/templates/skills/apex/templates/03-execute.md +34 -0
  64. package/templates/skills/apex/templates/04-validate.md +61 -0
  65. package/templates/skills/apex/templates/05-examine.md +58 -0
  66. package/templates/skills/apex/templates/06-resolve.md +39 -0
  67. package/templates/skills/apex/templates/07-tests.md +56 -0
  68. package/templates/skills/apex/templates/08-run-tests.md +41 -0
  69. package/templates/skills/apex/templates/README.md +69 -0
  70. package/templates/skills/application/SKILL.md +50 -50
  71. package/templates/skills/application/templates-backend.md +25 -25
  72. package/templates/skills/application/templates-frontend.md +43 -43
  73. package/templates/skills/application/templates-i18n.md +29 -29
  74. package/templates/skills/application/templates-seed.md +77 -77
  75. package/templates/skills/business-analyse/SKILL.md +223 -0
  76. package/templates/skills/business-analyse/_shared.md +258 -0
  77. package/templates/skills/business-analyse/questionnaire/01-context.md +33 -0
  78. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +35 -0
  79. package/templates/skills/business-analyse/questionnaire/03-scope.md +35 -0
  80. package/templates/skills/business-analyse/questionnaire/04-data.md +36 -0
  81. package/templates/skills/business-analyse/questionnaire/05-integrations.md +36 -0
  82. package/templates/skills/business-analyse/questionnaire/06-security.md +40 -0
  83. package/templates/skills/business-analyse/questionnaire/07-ui.md +36 -0
  84. package/templates/skills/business-analyse/questionnaire/08-performance.md +35 -0
  85. package/templates/skills/business-analyse/questionnaire/09-constraints.md +35 -0
  86. package/templates/skills/business-analyse/questionnaire/10-documentation.md +35 -0
  87. package/templates/skills/business-analyse/questionnaire.md +177 -177
  88. package/templates/skills/business-analyse/react/components.md +340 -0
  89. package/templates/skills/business-analyse/react/i18n-template.md +245 -0
  90. package/templates/skills/business-analyse/react/schema.md +151 -0
  91. package/templates/skills/business-analyse/steps/step-00-init.md +293 -0
  92. package/templates/skills/business-analyse/steps/step-01-discover.md +267 -0
  93. package/templates/skills/business-analyse/steps/step-02-analyse.md +243 -0
  94. package/templates/skills/business-analyse/steps/step-03-specify.md +317 -0
  95. package/templates/skills/business-analyse/steps/step-04-validate.md +239 -0
  96. package/templates/skills/business-analyse/steps/step-05-handoff.md +336 -0
  97. package/templates/skills/business-analyse/steps/step-06-doc-html.md +261 -0
  98. package/templates/skills/business-analyse/templates/00-context.md +105 -0
  99. package/templates/skills/business-analyse/templates/frd-brd.md +97 -0
  100. package/templates/skills/business-analyse/templates/frd-discovery.md +78 -0
  101. package/templates/skills/business-analyse/templates/frd-handoff.md +118 -0
  102. package/templates/skills/business-analyse/templates/frd-spec.md +168 -0
  103. package/templates/skills/business-analyse/templates-frd.md +217 -217
  104. package/templates/skills/business-analyse/templates-react.md +26 -26
  105. package/templates/skills/controller/SKILL.md +141 -92
  106. package/templates/skills/controller/postman-templates.md +15 -15
  107. package/templates/skills/controller/steps/step-00-init.md +191 -0
  108. package/templates/skills/controller/steps/step-01-analyze.md +146 -0
  109. package/templates/skills/controller/steps/step-02-plan.md +176 -0
  110. package/templates/skills/controller/steps/step-03-generate.md +219 -0
  111. package/templates/skills/controller/steps/step-04-perms.md +219 -0
  112. package/templates/skills/controller/steps/step-05-validate.md +107 -0
  113. package/templates/skills/controller/templates.md +77 -77
  114. package/templates/skills/documentation/SKILL.md +79 -79
  115. package/templates/skills/feature-full/SKILL.md +38 -38
  116. package/templates/skills/gitflow/SKILL.md +277 -0
  117. package/templates/{commands → skills}/gitflow/_shared.md +20 -20
  118. package/templates/skills/gitflow/phases/abort.md +173 -0
  119. package/templates/skills/gitflow/phases/cleanup.md +226 -0
  120. package/templates/skills/gitflow/phases/status.md +178 -0
  121. package/templates/skills/gitflow/steps/step-commit.md +255 -0
  122. package/templates/skills/gitflow/steps/step-finish.md +255 -0
  123. package/templates/skills/gitflow/steps/step-init.md +209 -0
  124. package/templates/skills/gitflow/steps/step-merge.md +225 -0
  125. package/templates/skills/gitflow/steps/step-plan.md +208 -0
  126. package/templates/skills/gitflow/steps/step-pr.md +235 -0
  127. package/templates/skills/gitflow/steps/step-start.md +334 -0
  128. package/templates/skills/gitflow/steps/step-sync.md +200 -0
  129. package/templates/skills/gitflow/templates/config.json +53 -0
  130. package/templates/skills/notification/SKILL.md +51 -51
  131. package/templates/skills/ralph-loop/SKILL.md +228 -0
  132. package/templates/skills/ralph-loop/steps/step-00-init.md +201 -0
  133. package/templates/skills/ralph-loop/steps/step-01-task.md +169 -0
  134. package/templates/skills/ralph-loop/steps/step-02-execute.md +173 -0
  135. package/templates/skills/ralph-loop/steps/step-03-commit.md +170 -0
  136. package/templates/skills/ralph-loop/steps/step-04-check.md +162 -0
  137. package/templates/skills/ralph-loop/steps/step-05-report.md +181 -0
  138. package/templates/skills/review-code/SKILL.md +219 -0
  139. package/templates/skills/review-code/references/clean-code-principles.md +140 -0
  140. package/templates/skills/review-code/references/code-quality-metrics.md +174 -0
  141. package/templates/skills/review-code/references/feedback-patterns.md +149 -0
  142. package/templates/skills/review-code/references/security-checklist.md +127 -0
  143. package/templates/skills/ui-components/SKILL.md +54 -54
  144. package/templates/skills/workflow/SKILL.md +46 -46
  145. package/templates/commands/ai-prompt.md +0 -315
  146. package/templates/commands/apex/1-analyze.md +0 -100
  147. package/templates/commands/apex/2-plan.md +0 -145
  148. package/templates/commands/apex/3-execute.md +0 -171
  149. package/templates/commands/apex/4-examine.md +0 -116
  150. package/templates/commands/apex/5-tasks.md +0 -209
  151. package/templates/commands/apex.md +0 -76
  152. package/templates/commands/application/create.md +0 -362
  153. package/templates/commands/application/templates-backend.md +0 -463
  154. package/templates/commands/application/templates-frontend.md +0 -517
  155. package/templates/commands/application/templates-i18n.md +0 -478
  156. package/templates/commands/application/templates-seed.md +0 -362
  157. package/templates/commands/application.md +0 -303
  158. package/templates/commands/business-analyse/0-orchestrate.md +0 -156
  159. package/templates/commands/business-analyse/1-init.md +0 -99
  160. package/templates/commands/business-analyse/2-discover.md +0 -143
  161. package/templates/commands/business-analyse/3-analyse.md +0 -106
  162. package/templates/commands/business-analyse/4-specify.md +0 -133
  163. package/templates/commands/business-analyse/5-validate.md +0 -132
  164. package/templates/commands/business-analyse/6-handoff.md +0 -157
  165. package/templates/commands/business-analyse/7-doc-html.md +0 -103
  166. package/templates/commands/business-analyse/_shared.md +0 -176
  167. package/templates/commands/business-analyse/bug.md +0 -118
  168. package/templates/commands/business-analyse/change-request.md +0 -144
  169. package/templates/commands/business-analyse/hotfix.md +0 -116
  170. package/templates/commands/business-analyse.md +0 -121
  171. package/templates/commands/controller/create.md +0 -216
  172. package/templates/commands/controller/postman-templates.md +0 -528
  173. package/templates/commands/controller/templates.md +0 -600
  174. package/templates/commands/controller.md +0 -337
  175. package/templates/commands/create/agent.md +0 -138
  176. package/templates/commands/create/command.md +0 -166
  177. package/templates/commands/create/hook.md +0 -234
  178. package/templates/commands/create/plugin.md +0 -329
  179. package/templates/commands/create/project.md +0 -508
  180. package/templates/commands/create/skill.md +0 -199
  181. package/templates/commands/create.md +0 -220
  182. package/templates/commands/documentation/module.md +0 -202
  183. package/templates/commands/documentation/templates.md +0 -432
  184. package/templates/commands/documentation.md +0 -190
  185. package/templates/commands/epct.md +0 -69
  186. package/templates/commands/explain.md +0 -186
  187. package/templates/commands/feature-full.md +0 -267
  188. package/templates/commands/gitflow/1-init.md +0 -188
  189. package/templates/commands/gitflow/10-start.md +0 -190
  190. package/templates/commands/gitflow/11-finish.md +0 -382
  191. package/templates/commands/gitflow/12-cleanup.md +0 -103
  192. package/templates/commands/gitflow/13-sync.md +0 -216
  193. package/templates/commands/gitflow/14-rebase.md +0 -251
  194. package/templates/commands/gitflow/2-status.md +0 -122
  195. package/templates/commands/gitflow/3-commit.md +0 -209
  196. package/templates/commands/gitflow/4-plan.md +0 -174
  197. package/templates/commands/gitflow/5-exec.md +0 -202
  198. package/templates/commands/gitflow/6-abort.md +0 -121
  199. package/templates/commands/gitflow/7-pull-request.md +0 -176
  200. package/templates/commands/gitflow/8-review.md +0 -113
  201. package/templates/commands/gitflow/9-merge.md +0 -157
  202. package/templates/commands/gitflow.md +0 -128
  203. package/templates/commands/implement.md +0 -663
  204. package/templates/commands/init.md +0 -567
  205. package/templates/commands/mcp-integration.md +0 -330
  206. package/templates/commands/notification.md +0 -129
  207. package/templates/commands/oneshot.md +0 -57
  208. package/templates/commands/quickstart.md +0 -154
  209. package/templates/commands/ralph-loop/cancel-ralph.md +0 -18
  210. package/templates/commands/ralph-loop/help.md +0 -126
  211. package/templates/commands/ralph-loop/ralph-loop.md +0 -120
  212. package/templates/commands/review.md +0 -106
  213. package/templates/commands/workflow.md +0 -193
  214. package/templates/gitflow/config.json +0 -138
@@ -1,28 +1,28 @@
1
1
  # Templates Frontend - Application Skill
2
2
 
3
- > Ces templates génèrent le code React/TypeScript pour les nouvelles applications/modules.
3
+ > These templates generate React/TypeScript code for new applications/modules.
4
4
 
5
5
  ---
6
6
 
7
- ## ARCHITECTURE FRONTEND
7
+ ## FRONTEND ARCHITECTURE
8
8
 
9
9
  ```
10
10
  web/smartstack-web/src/
11
11
  ├── pages/$CONTEXT/$MODULE/
12
- │ ├── $MODULE_PASCALPage.tsx # Page principale (liste)
13
- │ ├── $MODULE_PASCALDetailPage.tsx # Page détail
14
- │ └── Create$MODULE_PASCALPage.tsx # Page création
12
+ │ ├── $MODULE_PASCALPage.tsx # Main page (list)
13
+ │ ├── $MODULE_PASCALDetailPage.tsx # Detail page
14
+ │ └── Create$MODULE_PASCALPage.tsx # Create page
15
15
  ├── components/$MODULE/
16
- │ ├── $MODULE_PASCALListView.tsx # Composant liste réutilisable
17
- │ ├── $MODULE_PASCALForm.tsx # Formulaire CRUD
18
- │ └── $MODULE_PASCALFilters.tsx # Filtres
16
+ │ ├── $MODULE_PASCALListView.tsx # Reusable list component
17
+ │ ├── $MODULE_PASCALForm.tsx # CRUD form
18
+ │ └── $MODULE_PASCALFilters.tsx # Filters
19
19
  ├── components/common/
20
- │ └── (composants partagés)
20
+ │ └── (shared components)
21
21
  ├── hooks/
22
- │ ├── use$MODULE_PASCALPreferences.ts # Hook préférences
23
- │ └── use$MODULE_PASCAL.ts # Hook API
22
+ │ ├── use$MODULE_PASCALPreferences.ts # Preferences hook
23
+ │ └── use$MODULE_PASCAL.ts # API hook
24
24
  ├── services/api/
25
- │ └── $moduleApi.ts # Service API
25
+ │ └── $moduleApi.ts # API service
26
26
  └── i18n/locales/
27
27
  ├── fr/$module.json
28
28
  ├── en/$module.json
@@ -32,7 +32,7 @@ web/smartstack-web/src/
32
32
 
33
33
  ---
34
34
 
35
- ## TEMPLATE: PAGE PRINCIPALE
35
+ ## TEMPLATE: MAIN PAGE
36
36
 
37
37
  ```tsx
38
38
  // pages/$CONTEXT/$MODULE/$MODULE_PASCALPage.tsx
@@ -56,7 +56,7 @@ export function $MODULE_PASCALPage() {
56
56
 
57
57
  ---
58
58
 
59
- ## TEMPLATE: LISTE VIEW (Composant réutilisable)
59
+ ## TEMPLATE: LIST VIEW (Reusable component)
60
60
 
61
61
  ```tsx
62
62
  // components/$MODULE/$MODULE_PASCALListView.tsx
@@ -70,7 +70,7 @@ import { use$MODULE_PASCALPreferences } from '@/hooks/use$MODULE_PASCALPreferenc
70
70
  import { Pagination } from '@/components/common/Pagination';
71
71
  import { ColumnSelector } from '@/components/common/ColumnSelector';
72
72
  import { ViewModeToggle } from '@/components/common/ViewModeToggle';
73
- import { EntityCard } from '@/components/ui/EntityCard'; // ⚠️ OBLIGATOIRE pour Grid view
73
+ import { EntityCard } from '@/components/ui/EntityCard'; // ⚠️ MANDATORY for Grid view
74
74
 
75
75
  interface $ENTITY_PASCALDto {
76
76
  id: string;
@@ -320,7 +320,7 @@ export function $MODULE_PASCALListView({
320
320
  </table>
321
321
  </div>
322
322
  ) : (
323
- /* Grid view - ⚠️ OBLIGATOIRE: utiliser EntityCard */
323
+ /* Grid view - ⚠️ MANDATORY: use EntityCard */
324
324
  <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
325
325
  {data?.items.map((item) => (
326
326
  <EntityCard
@@ -361,7 +361,7 @@ export function $MODULE_PASCALListView({
361
361
 
362
362
  ---
363
363
 
364
- ## TEMPLATE: HOOK PRÉFÉRENCES
364
+ ## TEMPLATE: PREFERENCES HOOK
365
365
 
366
366
  ```tsx
367
367
  // hooks/use$MODULE_PASCALPreferences.ts
@@ -477,25 +477,25 @@ export const $moduleApi = {
477
477
 
478
478
  ## TEMPLATE: ROUTES (App.tsx)
479
479
 
480
- ### ⚠️ RÈGLE CRITIQUE: ROUTES IMBRIQUÉES OBLIGATOIRES
480
+ ### ⚠️ CRITICAL RULE: NESTED ROUTES MANDATORY
481
481
 
482
- React Router v7 **exige** des routes imbriquées (nested routes) pour les applications multi-modules.
482
+ React Router v7 **requires** nested routes for multi-module applications.
483
483
 
484
- **❌ INTERDIT - Routes plates (causent des redirections vers Home)**
484
+ **❌ FORBIDDEN - Flat routes (cause redirects to Home)**
485
485
  ```tsx
486
486
  <Route path="$APPLICATION" element={<Navigate to="/$CONTEXT/$APPLICATION/$DEFAULT_MODULE" replace />} />
487
487
  <Route path="$APPLICATION/$MODULE" element={<$MODULE_PASCALPage />} />
488
488
  ```
489
489
 
490
- **✅ OBLIGATOIRE - Routes imbriquées avec index**
490
+ **✅ MANDATORY - Nested routes with index**
491
491
  ```tsx
492
- // Ajouter dans App.tsx
492
+ // Add to App.tsx
493
493
 
494
494
  import { $MODULE_PASCALPage } from '@/pages/$CONTEXT/$MODULE/$MODULE_PASCALPage';
495
495
  import { $MODULE_PASCALDetailPage } from '@/pages/$CONTEXT/$MODULE/$MODULE_PASCALDetailPage';
496
496
  import { Create$MODULE_PASCALPage } from '@/pages/$CONTEXT/$MODULE/Create$MODULE_PASCALPage';
497
497
 
498
- // Dans les routes - STRUCTURE IMBRIQUÉE
498
+ // In routes - NESTED STRUCTURE
499
499
  <Route path="$APPLICATION">
500
500
  <Route index element={<Navigate to="$DEFAULT_MODULE" replace />} />
501
501
  <Route path="$MODULE" element={<$MODULE_PASCALPage />} />
@@ -505,27 +505,27 @@ import { Create$MODULE_PASCALPage } from '@/pages/$CONTEXT/$MODULE/Create$MODULE
505
505
  </Route>
506
506
  ```
507
507
 
508
- ### Pourquoi cette structure ?
508
+ ### Why this structure?
509
509
 
510
- | Aspect | Routes plates | Routes imbriquées |
511
- |--------|--------------|-------------------|
512
- | Matching | Ambigu entre siblings | Hiérarchique clair |
513
- | Navigate | Doit être absolu | Peut être relatif |
514
- | Outlet | Non supporté | Supporté |
515
- | Redirect | Peut échouer | Fonctionne toujours |
510
+ | Aspect | Flat routes | Nested routes |
511
+ |--------|------------|----------------|
512
+ | Matching | Ambiguous between siblings | Hierarchical clear |
513
+ | Navigate | Must be absolute | Can be relative |
514
+ | Outlet | Not supported | Supported |
515
+ | Redirect | Can fail | Always works |
516
516
 
517
517
  ---
518
518
 
519
- ## CHECKLIST FRONTEND
520
-
521
- | Vérification | Status |
522
- |--------------|--------|
523
- | ☐ Page principale créée | |
524
- | ☐ Composant ListView créé | |
525
- | ☐ Hook préférences créé | |
526
- | ☐ Service API créé | |
527
- | ☐ Routes ajoutées dans App.tsx | |
528
- | ☐ Utilise apiClient (pas d'appel direct) | |
529
- | ☐ Pas d'import Infrastructure | |
530
- | ☐ npm run build réussi | |
531
- | ☐ npm run lint réussi | |
519
+ ## FRONTEND CHECKLIST
520
+
521
+ | Check | Status |
522
+ |-------|--------|
523
+ | ☐ Main page created | |
524
+ | ☐ ListView component created | |
525
+ | ☐ Preferences hook created | |
526
+ | ☐ API service created | |
527
+ | ☐ Routes added to App.tsx | |
528
+ | ☐ Uses apiClient (no direct calls) | |
529
+ | ☐ No Infrastructure imports | |
530
+ | ☐ npm run build successful | |
531
+ | ☐ npm run lint successful | |
@@ -1,14 +1,14 @@
1
1
  # Templates i18n - Application Skill
2
2
 
3
- > Ces templates génèrent les fichiers de traduction pour les 4 langues obligatoires.
3
+ > These templates generate translation files for the 4 mandatory languages.
4
4
 
5
5
  ---
6
6
 
7
- ## STRUCTURE DES FICHIERS
7
+ ## FILE STRUCTURE
8
8
 
9
9
  ```
10
10
  web/smartstack-web/src/i18n/locales/
11
- ├── fr/$module.json # Français (langue principale)
11
+ ├── fr/$module.json # French (main language)
12
12
  ├── en/$module.json # English
13
13
  ├── it/$module.json # Italiano
14
14
  └── de/$module.json # Deutsch
@@ -16,7 +16,7 @@ web/smartstack-web/src/i18n/locales/
16
16
 
17
17
  ---
18
18
 
19
- ## TEMPLATE: FRANÇAIS (fr/$module.json)
19
+ ## TEMPLATE: FRENCH (fr/$module.json)
20
20
 
21
21
  ```json
22
22
  {
@@ -194,7 +194,7 @@ web/smartstack-web/src/i18n/locales/
194
194
 
195
195
  ---
196
196
 
197
- ## TEMPLATE: ITALIANO (it/$module.json)
197
+ ## TEMPLATE: ITALIAN (it/$module.json)
198
198
 
199
199
  ```json
200
200
  {
@@ -283,7 +283,7 @@ web/smartstack-web/src/i18n/locales/
283
283
 
284
284
  ---
285
285
 
286
- ## TEMPLATE: DEUTSCH (de/$module.json)
286
+ ## TEMPLATE: GERMAN (de/$module.json)
287
287
 
288
288
  ```json
289
289
  {
@@ -372,9 +372,9 @@ web/smartstack-web/src/i18n/locales/
372
372
 
373
373
  ---
374
374
 
375
- ## MISE À JOUR NAVIGATION.JSON
375
+ ## UPDATE NAVIGATION.JSON
376
376
 
377
- Pour chaque entité de navigation créée, mettre à jour les fichiers `navigation.json` :
377
+ For each navigation entity created, update the `navigation.json` files:
378
378
 
379
379
  ### fr/navigation.json
380
380
 
@@ -430,18 +430,18 @@ Pour chaque entité de navigation créée, mettre à jour les fichiers `navigati
430
430
 
431
431
  ---
432
432
 
433
- ## ENREGISTREMENT i18n
433
+ ## i18n REGISTRATION
434
434
 
435
- Ajouter le namespace dans `i18n/index.ts` :
435
+ Add the namespace to `i18n/index.ts`:
436
436
 
437
437
  ```typescript
438
- // Ajouter l'import
438
+ // Add the import
439
439
  import $module_fr from './locales/fr/$module.json';
440
440
  import $module_en from './locales/en/$module.json';
441
441
  import $module_it from './locales/it/$module.json';
442
442
  import $module_de from './locales/de/$module.json';
443
443
 
444
- // Ajouter dans les resources
444
+ // Add to resources
445
445
  resources: {
446
446
  fr: {
447
447
  // ... existing
@@ -464,7 +464,7 @@ resources: {
464
464
 
465
465
  ---
466
466
 
467
- ## EXEMPLE COMPLET: Module "Products"
467
+ ## COMPLETE EXAMPLE: "Products" Module
468
468
 
469
469
  ### Variables
470
470
 
@@ -488,31 +488,31 @@ $SUBTITLE_DE = Verwalten Sie Ihren Produktkatalog
488
488
 
489
489
  ---
490
490
 
491
- ## CHECKLIST I18N
491
+ ## i18n CHECKLIST
492
492
 
493
- | Vérification | Status |
494
- |--------------|--------|
495
- | ☐ fr/$module.json créé | |
496
- | ☐ en/$module.json créé | |
497
- | ☐ it/$module.json créé | |
498
- | ☐ de/$module.json créé | |
499
- | ☐ navigation.json mis à jour (4 langues) | |
500
- | ☐ Namespace enregistré dans i18n/index.ts | |
501
- | ☐ Toutes les clés présentes dans les 4 fichiers | |
502
- | ☐ Pas de clés manquantes | |
493
+ | Check | Status |
494
+ |-------|--------|
495
+ | ☐ fr/$module.json created | |
496
+ | ☐ en/$module.json created | |
497
+ | ☐ it/$module.json created | |
498
+ | ☐ de/$module.json created | |
499
+ | ☐ navigation.json updated (4 languages) | |
500
+ | ☐ Namespace registered in i18n/index.ts | |
501
+ | ☐ All keys present in 4 files | |
502
+ | ☐ No missing keys | |
503
503
 
504
504
  ---
505
505
 
506
- ## OUTILS DE VALIDATION
506
+ ## VALIDATION TOOLS
507
507
 
508
508
  ```bash
509
- # Vérifier que toutes les clés sont présentes dans les 4 langues
510
- # Script à exécuter depuis web/smartstack-web
509
+ # Verify that all keys are present in 4 languages
510
+ # Script to run from web/smartstack-web
511
511
 
512
- # Liste les clés du fichier français (référence)
512
+ # List keys from French file (reference)
513
513
  jq -r 'paths(scalars) | join(".")' src/i18n/locales/fr/$module.json > /tmp/fr_keys.txt
514
514
 
515
- # Compare avec les autres langues
515
+ # Compare with other languages
516
516
  for lang in en it de; do
517
517
  jq -r 'paths(scalars) | join(".")' src/i18n/locales/$lang/$module.json > /tmp/${lang}_keys.txt
518
518
  diff /tmp/fr_keys.txt /tmp/${lang}_keys.txt
@@ -1,14 +1,14 @@
1
1
  # Templates DB Seed - Application Skill
2
2
 
3
- > Ces templates génèrent les seeds EF Core pour les entités de navigation et leurs traductions.
3
+ > These templates generate EF Core seeds for navigation entities and their translations.
4
4
 
5
5
  ---
6
6
 
7
- ## RÈGLES DE GÉNÉRATION GUID
7
+ ## GUID GENERATION RULES
8
8
 
9
9
  ```csharp
10
- // JAMAIS de GUIDs séquentiels générés par NewGuid()
11
- // TOUJOURS utiliser la méthode déterministe
10
+ // NEVER generate sequential GUIDs with NewGuid()
11
+ // ALWAYS use the deterministic method
12
12
 
13
13
  private static Guid GenerateGuid(int index)
14
14
  {
@@ -16,8 +16,8 @@ private static Guid GenerateGuid(int index)
16
16
  return Guid.Parse($"11111111-1111-1111-1111-{index:D12}");
17
17
  }
18
18
 
19
- // Pour les seeds existants, continuer la séquence
20
- // Vérifier le dernier index utilisé dans NavigationTranslationConfiguration.cs
19
+ // For existing seeds, continue the sequence
20
+ // Check the last index used in NavigationTranslationConfiguration.cs
21
21
  ```
22
22
 
23
23
  ---
@@ -27,25 +27,25 @@ private static Guid GenerateGuid(int index)
27
27
  ### Navigation Entity
28
28
 
29
29
  ```csharp
30
- // Dans NavigationContextConfiguration.cs - HasData()
30
+ // In NavigationContextConfiguration.cs - HasData()
31
31
  new {
32
32
  Id = Guid.Parse("$CONTEXT_GUID"),
33
- Code = "$CODE", // ex: "erp"
34
- Label = "$LABEL_FR", // ex: "ERP"
35
- Description = "$DESC_FR", // ex: "Gestion d'entreprise"
36
- Icon = "$ICON", // ex: "Building2"
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
37
  IconType = IconType.Lucide,
38
- Route = "/$CODE", // ex: "/erp"
39
- DisplayOrder = $ORDER, // ex: 4
38
+ Route = "/$CODE", // e.g.: "/erp"
39
+ DisplayOrder = $ORDER, // e.g.: 4
40
40
  IsActive = true,
41
41
  CreatedAt = seedDate
42
42
  }
43
43
  ```
44
44
 
45
- ### Translations (4 langues)
45
+ ### Translations (4 languages)
46
46
 
47
47
  ```csharp
48
- // Dans NavigationTranslationConfiguration.cs - GetSeedData()
48
+ // In NavigationTranslationConfiguration.cs - GetSeedData()
49
49
  // Context translations
50
50
  translations.Add(new {
51
51
  Id = GenerateGuid(index++),
@@ -92,23 +92,23 @@ translations.Add(new {
92
92
  ### Navigation Entity
93
93
 
94
94
  ```csharp
95
- // Dans NavigationApplicationConfiguration.cs - HasData()
95
+ // In NavigationApplicationConfiguration.cs - HasData()
96
96
  new {
97
97
  Id = Guid.Parse("$APP_GUID"),
98
98
  ContextId = Guid.Parse("$CONTEXT_GUID"),
99
- Code = "$CODE", // ex: "sales"
100
- Label = "$LABEL_FR", // ex: "Ventes"
101
- Description = "$DESC_FR", // ex: "Gestion des ventes"
102
- Icon = "$ICON", // ex: "TrendingUp"
99
+ Code = "$CODE", // e.g.: "sales"
100
+ Label = "$LABEL_EN", // e.g.: "Sales"
101
+ Description = "$DESC_EN", // e.g.: "Sales management"
102
+ Icon = "$ICON", // e.g.: "TrendingUp"
103
103
  IconType = IconType.Lucide,
104
- Route = "/$CONTEXT/$CODE", // ex: "/erp/sales"
104
+ Route = "/$CONTEXT/$CODE", // e.g.: "/erp/sales"
105
105
  DisplayOrder = $ORDER,
106
106
  IsActive = true,
107
107
  CreatedAt = seedDate
108
108
  }
109
109
  ```
110
110
 
111
- ### Translations (4 langues)
111
+ ### Translations (4 languages)
112
112
 
113
113
  ```csharp
114
114
  // Application translations
@@ -157,23 +157,23 @@ translations.Add(new {
157
157
  ### Navigation Entity
158
158
 
159
159
  ```csharp
160
- // Dans NavigationModuleConfiguration.cs - HasData()
160
+ // In NavigationModuleConfiguration.cs - HasData()
161
161
  new {
162
162
  Id = Guid.Parse("$MODULE_GUID"),
163
163
  ApplicationId = Guid.Parse("$APP_GUID"),
164
- Code = "$CODE", // ex: "products"
165
- Label = "$LABEL_FR", // ex: "Produits"
166
- Description = "$DESC_FR", // ex: "Gestion des produits"
167
- Icon = "$ICON", // ex: "Package"
164
+ Code = "$CODE", // e.g.: "products"
165
+ Label = "$LABEL_EN", // e.g.: "Products"
166
+ Description = "$DESC_EN", // e.g.: "Product management"
167
+ Icon = "$ICON", // e.g.: "Package"
168
168
  IconType = IconType.Lucide,
169
- Route = "/$CONTEXT/$APP/$CODE", // ex: "/erp/sales/products"
169
+ Route = "/$CONTEXT/$APP/$CODE", // e.g.: "/erp/sales/products"
170
170
  DisplayOrder = $ORDER,
171
171
  IsActive = true,
172
172
  CreatedAt = seedDate
173
173
  }
174
174
  ```
175
175
 
176
- ### Translations (4 langues)
176
+ ### Translations (4 languages)
177
177
 
178
178
  ```csharp
179
179
  // Module translations
@@ -222,23 +222,23 @@ translations.Add(new {
222
222
  ### Navigation Entity
223
223
 
224
224
  ```csharp
225
- // Dans NavigationSectionConfiguration.cs - HasData()
225
+ // In NavigationSectionConfiguration.cs - HasData()
226
226
  new {
227
227
  Id = Guid.Parse("$SECTION_GUID"),
228
228
  ModuleId = Guid.Parse("$MODULE_GUID"),
229
- Code = "$CODE", // ex: "inventory"
230
- Label = "$LABEL_FR", // ex: "Inventaire"
231
- Description = "$DESC_FR", // ex: "Gestion des stocks"
232
- Icon = "$ICON", // ex: "Warehouse"
229
+ Code = "$CODE", // e.g.: "inventory"
230
+ Label = "$LABEL_EN", // e.g.: "Inventory"
231
+ Description = "$DESC_EN", // e.g.: "Inventory management"
232
+ Icon = "$ICON", // e.g.: "Warehouse"
233
233
  IconType = IconType.Lucide,
234
- Route = "/$CONTEXT/$APP/$MODULE/$CODE", // ex: "/erp/sales/products/inventory"
234
+ Route = "/$CONTEXT/$APP/$MODULE/$CODE", // e.g.: "/erp/sales/products/inventory"
235
235
  DisplayOrder = $ORDER,
236
236
  IsActive = true,
237
237
  CreatedAt = seedDate
238
238
  }
239
239
  ```
240
240
 
241
- ### Translations (4 langues)
241
+ ### Translations (4 languages)
242
242
 
243
243
  ```csharp
244
244
  // Section translations
@@ -287,8 +287,8 @@ translations.Add(new {
287
287
  ### Permission Entity
288
288
 
289
289
  ```csharp
290
- // Dans PermissionConfiguration.cs - HasData()
291
- // Pour chaque action CRUD + assign + execute
290
+ // In PermissionConfiguration.cs - HasData()
291
+ // For each CRUD action + assign + execute
292
292
 
293
293
  // Read
294
294
  new {
@@ -331,7 +331,7 @@ new {
331
331
  ### RolePermission Seed (Default Roles)
332
332
 
333
333
  ```csharp
334
- // Dans RolePermissionConfiguration.cs - HasData()
334
+ // In RolePermissionConfiguration.cs - HasData()
335
335
  // SuperAdmin gets all permissions automatically (wildcard)
336
336
 
337
337
  // PlatformAdmin - if platform context
@@ -348,15 +348,15 @@ new { RoleId = Guid.Parse("...StandardUserRoleId..."), PermissionId = $PERM_READ
348
348
 
349
349
  ## TEMPLATE: SECTION PERMISSIONS SEED (Level 4)
350
350
 
351
- > **Usage:** Quand un Module a des sous-pages avec permissions différentes
351
+ > **Usage:** When a Module has sub-pages with different permissions
352
352
 
353
353
  ### Permission Entity - Section Level
354
354
 
355
355
  ```csharp
356
- // Dans PermissionConfiguration.cs - HasData()
356
+ // In PermissionConfiguration.cs - HasData()
357
357
  // Pattern: {context}.{application}.{module}.{section}.{action}
358
358
 
359
- // Déclarer le SectionId (doit correspondre à NavigationSectionConfiguration.cs)
359
+ // Declare SectionId (must match NavigationSectionConfiguration.cs)
360
360
  var {section}SectionId = Guid.Parse("$SECTION_GUID");
361
361
 
362
362
  // Wildcard Section
@@ -413,7 +413,7 @@ new {
413
413
  Description = "Delete in $SECTION_LABEL",
414
414
  CreatedAt = seedDate
415
415
  },
416
- // Execute (optionnel)
416
+ // Execute (optional)
417
417
  new {
418
418
  Id = Guid.Parse("$PERM_SECTION_EXECUTE_GUID"),
419
419
  Path = "$CONTEXT.$APP.$MODULE.$SECTION.execute",
@@ -430,15 +430,15 @@ new {
430
430
 
431
431
  ## TEMPLATE: RESOURCE PERMISSIONS SEED (Level 5)
432
432
 
433
- > **Usage:** Niveau le plus fin - sous-ressources avec permissions distinctes (ex: Prompts → Blocks)
433
+ > **Usage:** Finest level - sub-resources with distinct permissions (e.g.: Prompts → Blocks)
434
434
 
435
435
  ### Permission Entity - Resource Level
436
436
 
437
437
  ```csharp
438
- // Dans PermissionConfiguration.cs - HasData()
438
+ // In PermissionConfiguration.cs - HasData()
439
439
  // Pattern: {context}.{application}.{module}.{section}.{resource}.{action}
440
440
 
441
- // Déclarer le ResourceId (doit correspondre à NavigationResourceConfiguration.cs)
441
+ // Declare ResourceId (must match NavigationResourceConfiguration.cs)
442
442
  var {resource}ResourceId = Guid.Parse("$RESOURCE_GUID");
443
443
 
444
444
  // Wildcard Resource
@@ -501,13 +501,13 @@ new {
501
501
 
502
502
  ## TEMPLATE: BULK OPERATIONS PERMISSIONS
503
503
 
504
- > **OBLIGATOIRE:** Toujours prévoir pour les modules CRUD
504
+ > **MANDATORY:** Always provide for CRUD modules
505
505
 
506
506
  ### Permission Entity - Bulk Operations
507
507
 
508
508
  ```csharp
509
- // Dans PermissionConfiguration.cs - HasData()
510
- // Ajouter après les permissions CRUD standard
509
+ // In PermissionConfiguration.cs - HasData()
510
+ // Add after standard CRUD permissions
511
511
 
512
512
  // Bulk Create
513
513
  new {
@@ -568,7 +568,7 @@ new {
568
568
 
569
569
  ---
570
570
 
571
- ## EXEMPLE COMPLET: Module "Products" dans "ERP > Sales"
571
+ ## COMPLETE EXAMPLE: "Products" Module in "ERP > Sales"
572
572
 
573
573
  ### Variables
574
574
 
@@ -594,54 +594,54 @@ $ICON = Package
594
594
  $ORDER = 1
595
595
  ```
596
596
 
597
- ### Fichiers à modifier
597
+ ### Files to modify
598
598
 
599
- 1. `NavigationContextConfiguration.cs` - Ajouter context ERP (si nouveau)
600
- 2. `NavigationApplicationConfiguration.cs` - Ajouter application Sales
601
- 3. `NavigationModuleConfiguration.cs` - Ajouter module Products
602
- 4. `NavigationTranslationConfiguration.cs` - Ajouter 4 traductions × nombre d'entités
603
- 5. `PermissionConfiguration.cs` - Ajouter permissions CRUD
604
- 6. `RolePermissionConfiguration.cs` - Assigner aux rôles par défaut
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
605
605
 
606
606
  ---
607
607
 
608
- ## CHECKLIST SEED
609
-
610
- | Vérification | Status |
611
- |--------------|--------|
612
- | ☐ GUID déterministe (pas NewGuid) | |
613
- | ☐ 4 langues pour chaque entité | |
614
- | ☐ Index translations continue la séquence existante | |
615
- | ☐ Route alignée avec permission path | |
616
- | ☐ DisplayOrder cohérent | |
617
- | ☐ Permissions CRUD créées (Level 3 - Module) | |
618
- | ☐ Permissions Section si sous-pages (Level 4) | |
619
- | ☐ Permissions Resource si sous-ressources (Level 5) | |
620
- | ☐ Permissions Bulk Operations créées | |
621
- | ☐ RolePermissions assignés | |
608
+ ## SEED CHECKLIST
609
+
610
+ | Check | Status |
611
+ |-------|--------|
612
+ | ☐ Deterministic GUID (not NewGuid) | |
613
+ | ☐ 4 languages for each entity | |
614
+ | ☐ Index translations continue existing sequence | |
615
+ | ☐ Route aligned with permission path | |
616
+ | ☐ DisplayOrder consistent | |
617
+ | ☐ CRUD permissions created (Level 3 - Module) | |
618
+ | ☐ Section permissions if sub-pages (Level 4) | |
619
+ | ☐ Resource permissions if sub-resources (Level 5) | |
620
+ | ☐ Bulk Operations permissions created | |
621
+ | ☐ RolePermissions assigned | |
622
622
 
623
623
  ---
624
624
 
625
- ## HIÉRARCHIE DES PERMISSIONS (5 Niveaux)
625
+ ## PERMISSIONS HIERARCHY (5 Levels)
626
626
 
627
627
  ```
628
628
  Level 1: CONTEXT
629
629
  └─ Path: {context}.*
630
- └─ Ex: platform.* → Accès complet au context
630
+ └─ E.g.: platform.* → Full context access
631
631
 
632
632
  Level 2: APPLICATION
633
633
  └─ Path: {context}.{application}.*
634
- └─ Ex: platform.administration.* → Accès complet à l'app
634
+ └─ E.g.: platform.administration.* → Full app access
635
635
 
636
636
  Level 3: MODULE
637
637
  └─ Path: {context}.{application}.{module}.{action}
638
- └─ Ex: platform.administration.users.read
638
+ └─ E.g.: platform.administration.users.read
639
639
 
640
640
  Level 4: SECTION
641
641
  └─ Path: {context}.{application}.{module}.{section}.{action}
642
- └─ Ex: platform.administration.ai.settings.update
642
+ └─ E.g.: platform.administration.ai.settings.update
643
643
 
644
644
  Level 5: RESOURCE (finest granularity)
645
645
  └─ Path: {context}.{application}.{module}.{section}.{resource}.{action}
646
- └─ Ex: platform.administration.ai.prompts.blocks.delete
646
+ └─ E.g.: platform.administration.ai.prompts.blocks.delete
647
647
  ```