@atlashub/smartstack-cli 1.4.0 → 1.5.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 (66) hide show
  1. package/.documentation/agents.html +8 -4
  2. package/.documentation/apex.html +8 -4
  3. package/.documentation/business-analyse.html +833 -406
  4. package/.documentation/commands.html +8 -4
  5. package/.documentation/css/styles.css +153 -15
  6. package/.documentation/efcore.html +8 -4
  7. package/.documentation/gitflow.html +795 -230
  8. package/.documentation/hooks.html +8 -4
  9. package/.documentation/index.html +13 -9
  10. package/.documentation/installation.html +23 -19
  11. package/.documentation/ralph-loop.html +530 -0
  12. package/.documentation/test-web.html +8 -4
  13. package/README.md +52 -10
  14. package/dist/index.js +813 -283
  15. package/dist/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/templates/agents/efcore/conflicts.md +44 -17
  18. package/templates/agents/efcore/db-status.md +27 -6
  19. package/templates/agents/efcore/scan.md +43 -13
  20. package/templates/commands/ai-prompt.md +315 -315
  21. package/templates/commands/application/create.md +362 -362
  22. package/templates/commands/controller/create.md +216 -216
  23. package/templates/commands/controller.md +59 -0
  24. package/templates/commands/create/agent.md +138 -0
  25. package/templates/commands/create/command.md +166 -0
  26. package/templates/commands/create/hook.md +234 -0
  27. package/templates/commands/create/plugin.md +329 -0
  28. package/templates/commands/create/project.md +507 -0
  29. package/templates/commands/create/skill.md +199 -0
  30. package/templates/commands/create.md +220 -0
  31. package/templates/commands/documentation/module.md +202 -202
  32. package/templates/commands/efcore/_env-check.md +153 -153
  33. package/templates/commands/efcore/conflicts.md +109 -192
  34. package/templates/commands/efcore/db-status.md +101 -89
  35. package/templates/commands/efcore/migration.md +23 -11
  36. package/templates/commands/efcore/scan.md +115 -119
  37. package/templates/commands/efcore.md +54 -6
  38. package/templates/commands/feature-full.md +267 -267
  39. package/templates/commands/gitflow/11-finish.md +145 -11
  40. package/templates/commands/gitflow/13-sync.md +216 -216
  41. package/templates/commands/gitflow/14-rebase.md +251 -251
  42. package/templates/commands/gitflow/2-status.md +120 -10
  43. package/templates/commands/gitflow/3-commit.md +150 -0
  44. package/templates/commands/gitflow/7-pull-request.md +134 -5
  45. package/templates/commands/gitflow/9-merge.md +142 -1
  46. package/templates/commands/implement.md +663 -663
  47. package/templates/commands/init.md +562 -0
  48. package/templates/commands/mcp-integration.md +330 -0
  49. package/templates/commands/notification.md +129 -129
  50. package/templates/commands/validate.md +233 -0
  51. package/templates/commands/workflow.md +193 -193
  52. package/templates/skills/ai-prompt/SKILL.md +778 -778
  53. package/templates/skills/application/SKILL.md +563 -563
  54. package/templates/skills/application/templates-backend.md +450 -450
  55. package/templates/skills/application/templates-frontend.md +531 -531
  56. package/templates/skills/application/templates-i18n.md +520 -520
  57. package/templates/skills/application/templates-seed.md +647 -647
  58. package/templates/skills/controller/SKILL.md +240 -240
  59. package/templates/skills/controller/postman-templates.md +614 -614
  60. package/templates/skills/controller/templates.md +1468 -1468
  61. package/templates/skills/documentation/SKILL.md +133 -133
  62. package/templates/skills/documentation/templates.md +476 -476
  63. package/templates/skills/feature-full/SKILL.md +838 -838
  64. package/templates/skills/notification/SKILL.md +555 -555
  65. package/templates/skills/ui-components/SKILL.md +870 -870
  66. package/templates/skills/workflow/SKILL.md +582 -582
@@ -0,0 +1,220 @@
1
+ ---
2
+ description: Create SmartStack projects and extensions
3
+ argument-hint: <type> <name> [description]
4
+ ---
5
+
6
+ # SmartStack Creator
7
+
8
+ Create complete project structures for SmartStack applications and extensions.
9
+
10
+ ## Supported Types
11
+
12
+ | Type | Command | Description |
13
+ |------|---------|-------------|
14
+ | **project** | `/create:project` | Full-stack app (.NET + React + Vite + Tailwind) |
15
+ | **command** | `/create:command` | Slash command (like /apex, /gitflow) |
16
+ | **agent** | `/create:agent` | Specialized execution agent |
17
+ | **skill** | `/create:skill` | Multi-phase workflow orchestrator |
18
+ | **hook** | `/create:hook` | Git operation validator |
19
+ | **plugin** | `/create:plugin` | Full CLI extension with all types |
20
+
21
+ ## Quick Usage
22
+
23
+ ```
24
+ /create project MyApp "My awesome full-stack application"
25
+ /create command my-feature "Description of my feature command"
26
+ /create agent code-reviewer "Agent for reviewing code quality"
27
+ /create skill deployment "Multi-phase deployment workflow"
28
+ /create hook security-check "Pre-commit security validation"
29
+ /create plugin my-toolkit "Complete CLI toolkit extension"
30
+ ```
31
+
32
+ ## Workflow
33
+
34
+ ### 1. PARSE ARGUMENTS
35
+
36
+ Extract from `$ARGUMENTS`:
37
+ - **type**: command | agent | skill | hook | plugin
38
+ - **name**: Extension name (kebab-case)
39
+ - **description**: Optional description
40
+
41
+ If arguments missing, use AskUserQuestion to gather:
42
+ - Type of extension
43
+ - Name (validate kebab-case)
44
+ - Description
45
+
46
+ ### 2. VALIDATE
47
+
48
+ Check:
49
+ - Name is valid kebab-case: `^[a-z][a-z0-9-]*$`
50
+ - Type is supported
51
+ - Target directory doesn't already exist
52
+
53
+ ### 3. CREATE PROJECT STRUCTURE
54
+
55
+ Create the following structure:
56
+
57
+ ```
58
+ smartstack-{name}/
59
+ ├── package.json # npm package configuration
60
+ ├── tsconfig.json # TypeScript configuration
61
+ ├── tsup.config.ts # Build configuration
62
+ ├── README.md # Documentation
63
+ ├── .gitignore # Git ignore rules
64
+ ├── src/
65
+ │ └── index.ts # Main entry point
66
+ └── templates/
67
+ ├── commands/ # Command templates
68
+ │ └── {name}.md
69
+ ├── agents/ # Agent templates
70
+ │ └── {name}.md
71
+ ├── skills/ # Skill templates
72
+ │ └── {name}/
73
+ │ ├── SKILL.md
74
+ │ └── 1-*.md (phases)
75
+ └── hooks/ # Hook templates
76
+ └── {name}.md
77
+ ```
78
+
79
+ ### 4. GENERATE FILES
80
+
81
+ Use the Write tool to create each file with proper content.
82
+
83
+ **File Generation Order:**
84
+ 1. Create root directory
85
+ 2. Create package.json
86
+ 3. Create tsconfig.json
87
+ 4. Create tsup.config.ts
88
+ 5. Create src/index.ts
89
+ 6. Create README.md
90
+ 7. Create .gitignore
91
+ 8. Create templates based on type
92
+
93
+ ### 5. SHOW NEXT STEPS
94
+
95
+ Display instructions for:
96
+ - Installing dependencies
97
+ - Editing templates
98
+ - Building the extension
99
+ - Publishing
100
+
101
+ ## Type-Specific Templates
102
+
103
+ ### Command Template Structure
104
+
105
+ ```yaml
106
+ ---
107
+ description: {description}
108
+ argument-hint: <task-description>
109
+ ---
110
+
111
+ # {PascalCaseName}
112
+
113
+ {description}
114
+
115
+ ## Workflow
116
+ [phases]
117
+
118
+ ## Execution Rules
119
+ [rules]
120
+
121
+ ## Priority
122
+ [priority statement]
123
+
124
+ ---
125
+ User: $ARGUMENTS
126
+ ```
127
+
128
+ ### Agent Template Structure
129
+
130
+ ```yaml
131
+ ---
132
+ name: {kebab-case-name}
133
+ description: {description}
134
+ color: yellow
135
+ model: haiku
136
+ ---
137
+
138
+ # {PascalCaseName} Agent
139
+
140
+ ## Search Strategy
141
+ [strategy]
142
+
143
+ ## Output Format
144
+ [format]
145
+ ```
146
+
147
+ ### Skill Template Structure
148
+
149
+ ```yaml
150
+ ---
151
+ name: {kebab-case-name}
152
+ description: {description}
153
+ ---
154
+
155
+ # {PascalCaseName} Skill
156
+
157
+ ## Phases
158
+ [phase table]
159
+
160
+ ## Workflow Diagram
161
+ [ASCII diagram]
162
+
163
+ ## Model Strategy
164
+ [cost table]
165
+ ```
166
+
167
+ ### Hook Template Structure
168
+
169
+ ```yaml
170
+ ---
171
+ description: {description}
172
+ trigger: pre-commit
173
+ blocking: true
174
+ ---
175
+
176
+ # {PascalCaseName} Hook
177
+
178
+ ## Patterns to Detect
179
+ [patterns]
180
+
181
+ ## Detection Script
182
+ [bash script]
183
+ ```
184
+
185
+ ## Execution Rules
186
+
187
+ 1. **ALWAYS** validate name format before creating files
188
+ 2. **NEVER** overwrite existing directories
189
+ 3. Use Write tool for all file creation
190
+ 4. Generate complete, working templates
191
+ 5. Include practical examples in generated code
192
+
193
+ ## Output Format
194
+
195
+ After creation, display:
196
+
197
+ ```
198
+ ╔═══════════════════════════════════════════════════════════╗
199
+ ║ SMARTSTACK EXTENSION CREATED ║
200
+ ╠═══════════════════════════════════════════════════════════╣
201
+ ║ Name: smartstack-{name} ║
202
+ ║ Type: {type} ║
203
+ ║ Location: {full-path} ║
204
+ ╠═══════════════════════════════════════════════════════════╣
205
+ ║ Next steps: ║
206
+ ║ 1. cd smartstack-{name} ║
207
+ ║ 2. npm install ║
208
+ ║ 3. Edit templates in templates/ folder ║
209
+ ║ 4. npm run build ║
210
+ ║ 5. npm publish (when ready) ║
211
+ ╚═══════════════════════════════════════════════════════════╝
212
+ ```
213
+
214
+ ## Priority
215
+
216
+ Completeness > Correctness > Speed
217
+
218
+ ---
219
+
220
+ User: $ARGUMENTS
@@ -1,202 +1,202 @@
1
- # /documentation:module - Génération Documentation SmartStack
2
-
3
- > **Synergie Skill/Commande:**
4
- > - **Skill** (`.claude/skills/documentation/`) → Invocation automatique par Claude
5
- > - **Commande** (`/documentation:module`) → Invocation manuelle par l'utilisateur
6
- > - Templates partagés dans `.claude/skills/documentation/templates.md`
7
-
8
- ---
9
-
10
- ## ARGUMENTS
11
-
12
- ```
13
- /documentation:module <type> <target>
14
- ```
15
-
16
- | Variable | Extraction | Valeurs |
17
- |----------|------------|---------|
18
- | `$TYPE` | Premier mot | `user` \| `developer` \| `database` \| `testing` |
19
- | `$TARGET` | Reste de la ligne | Nom du module, outil, ou schéma |
20
-
21
- ---
22
-
23
- ## RÈGLES ABSOLUES
24
-
25
- 1. **JAMAIS** de texte en dur → `useTranslation('docs')`
26
- 2. **JAMAIS** d'ASCII art → composants React/HTML pour MCD
27
- 3. **TOUJOURS** lire les sources existantes avant de générer
28
- 4. **TOUJOURS** demander confirmation avant de créer les fichiers
29
- 5. **TOUJOURS** mettre à jour App.tsx et les index parents
30
-
31
- ---
32
-
33
- ## WORKFLOW
34
-
35
- ### ÉTAPE 1: PARSING DES ARGUMENTS
36
-
37
- ```
38
- EXTRAIRE $TYPE = premier mot des arguments
39
- EXTRAIRE $TARGET = reste des arguments
40
-
41
- SI $TYPE absent OU non reconnu → AskUserQuestion
42
- SI $TARGET absent → AskUserQuestion
43
- ```
44
-
45
- ### ÉTAPE 2: ANALYSE (selon $TYPE)
46
-
47
- #### SI $TYPE == "user"
48
-
49
- | Action | Commande |
50
- |--------|----------|
51
- | Trouver le module | `Grep "code.*$TARGET" src/.../Navigation/` |
52
- | Composants React | `Glob "web/.../pages/**/*$TARGET*"` |
53
- | Permissions | `Grep "$TARGET" src/.../Permissions.cs` |
54
- | Endpoints API | `Grep "$TARGET" src/.../Controllers/` |
55
-
56
- #### SI $TYPE == "database"
57
-
58
- | Action | Commande |
59
- |--------|----------|
60
- | Tables du schéma | `Read ApplicationDbContextModelSnapshot.cs` |
61
- | Configurations | `Glob "Persistence/Configurations/$TARGET/*.cs"` |
62
- | Entités Domain | `Glob "Domain/Entities/$TARGET/*.cs"` |
63
-
64
- #### SI $TYPE == "developer" ou "testing"
65
-
66
- | Action | Commande |
67
- |--------|----------|
68
- | Doc existante | `Glob "pages/docs/developer/**/*$TARGET*"` |
69
- | Fichiers config | `Glob "**/$TARGET*.{json,yaml}"` |
70
- | Doc officielle | `WebSearch` |
71
-
72
- ### ÉTAPE 3: CONFIRMATION UTILISATEUR
73
-
74
- ```typescript
75
- AskUserQuestion({
76
- questions: [{
77
- header: "Détail",
78
- question: "Quel niveau de détail pour '$TARGET' ?",
79
- options: [
80
- { label: "Complet (Recommended)", description: "Toutes sections" },
81
- { label: "Standard", description: "Sections principales" },
82
- { label: "Minimal", description: "Référence rapide" }
83
- ]
84
- }]
85
- })
86
- ```
87
-
88
- ### ÉTAPE 4: GÉNÉRATION
89
-
90
- | $TYPE | Fichier | Chemin |
91
- |-------|---------|--------|
92
- | `user` | `{Module}DocPage.tsx` | `pages/docs/user/{context}/` |
93
- | `developer` | `{Tool}Page.tsx` | `pages/docs/developer/tools/` |
94
- | `database` | `{Schema}SchemaPage.tsx` | `pages/docs/developer/database/` |
95
- | `testing` | `{Tool}TestingPage.tsx` | `pages/docs/developer/testing/` |
96
-
97
- **Fichiers à créer/modifier:**
98
- 1. Page React (utiliser template de `templates.md`)
99
- 2. Traductions EN → `i18n/locales/en/docs.json`
100
- 3. Traductions FR → `i18n/locales/fr/docs.json`
101
- 4. Route → `App.tsx`
102
- 5. Index parent → lien de navigation
103
- 6. **UserIndexPage.tsx** → Ajouter le module à la hiérarchie (SI $TYPE == "user")
104
-
105
- ### ÉTAPE 4bis: INTÉGRATION UserIndexPage (SI $TYPE == "user")
106
-
107
- **OBLIGATOIRE** pour les modules utilisateur: Vérifier et mettre à jour `UserIndexPage.tsx`
108
-
109
- ```typescript
110
- // Fichier: web/smartstack-web/src/pages/docs/user/UserIndexPage.tsx
111
-
112
- // 1. Ajouter l'icône si nécessaire
113
- import { ..., {IconName} } from 'lucide-react';
114
-
115
- // 2. Trouver l'application parente dans la hiérarchie
116
- // - Platform > Administration: pour les modules admin
117
- // - Platform > Support: pour les modules support
118
- // - Personal > MySpace: pour les modules personnels
119
-
120
- // 3. Ajouter le module dans le tableau `modules` de l'application:
121
- {
122
- name: t('user.modules.{module}.name'),
123
- icon: {IconName},
124
- href: '/docs/user/{slug}',
125
- description: t('user.modules.{module}.description')
126
- },
127
-
128
- // 4. Ajouter les traductions dans docs.json (fr + en):
129
- "modules": {
130
- "{module}": {
131
- "name": "Nom du module",
132
- "description": "Description courte"
133
- }
134
- }
135
- ```
136
-
137
- **Vérification:**
138
- - Le module doit apparaître dans la page `/docs/user` sous son application parente
139
- - Le lien doit pointer vers `/docs/user/{slug}`
140
-
141
- ### ÉTAPE 5: INTÉGRATION
142
-
143
- ```typescript
144
- // App.tsx
145
- import { {Name}DocPage } from '@/pages/docs/{path}/{Name}DocPage';
146
- <Route path="{slug}" element={<{Name}DocPage />} />
147
- ```
148
-
149
- ### ÉTAPE 6: RÉSUMÉ FINAL
150
-
151
- Afficher:
152
- - ✅ Fichiers créés (chemins cliquables)
153
- - 🔗 URL: `/docs/{path}/{slug}`
154
- - 📝 Prochaines étapes
155
-
156
- ---
157
-
158
- ## TEMPLATES
159
-
160
- → **Voir `.claude/skills/documentation/templates.md`**
161
-
162
- Templates disponibles:
163
- - User Module (maquettes UI, FAQ, API)
164
- - Database Schema (MCD HTML, tables détaillées)
165
- - Developer Tool (installation, config, CI/CD)
166
- - Patterns réutilisables (CodeBlock, Stats, Badges)
167
-
168
- ---
169
-
170
- ## SOURCES DE DONNÉES
171
-
172
- | Donnée | Source |
173
- |--------|--------|
174
- | Tables DB | `ApplicationDbContextModelSnapshot.cs` |
175
- | Configurations | `Persistence/Configurations/{schema}/*.cs` |
176
- | Permissions | `Domain/Authorization/Permissions.cs` |
177
- | Routes | `App.tsx` |
178
- | Traductions | `i18n/locales/*/docs.json` |
179
- | Doc outils | WebSearch |
180
-
181
- ---
182
-
183
- ## STRUCTURE i18n
184
-
185
- ```json
186
- {
187
- "breadcrumb": { "documentation": "...", "user": "...", "developer": "..." },
188
- "common": { "tableOfContents": "...", "externalResources": "..." },
189
- "user": { "{module}": { "title": "...", "sections": {...} } },
190
- "developer": { "tools": {...}, "database": {...} }
191
- }
192
- ```
193
-
194
- ---
195
-
196
- ## CONTRAINTES
197
-
198
- - Variables CSS: `var(--text-primary)`, `var(--bg-secondary)`, `var(--color-primary-600)`
199
- - Responsive: `grid-cols-1 md:grid-cols-2 lg:grid-cols-3`
200
- - Icônes: `lucide-react` uniquement
201
- - Liens externes: avec `<ExternalLink />` icon
202
- - MCD: composants React/HTML (JAMAIS ASCII)
1
+ # /documentation:module - Génération Documentation SmartStack
2
+
3
+ > **Synergie Skill/Commande:**
4
+ > - **Skill** (`.claude/skills/documentation/`) → Invocation automatique par Claude
5
+ > - **Commande** (`/documentation:module`) → Invocation manuelle par l'utilisateur
6
+ > - Templates partagés dans `.claude/skills/documentation/templates.md`
7
+
8
+ ---
9
+
10
+ ## ARGUMENTS
11
+
12
+ ```
13
+ /documentation:module <type> <target>
14
+ ```
15
+
16
+ | Variable | Extraction | Valeurs |
17
+ |----------|------------|---------|
18
+ | `$TYPE` | Premier mot | `user` \| `developer` \| `database` \| `testing` |
19
+ | `$TARGET` | Reste de la ligne | Nom du module, outil, ou schéma |
20
+
21
+ ---
22
+
23
+ ## RÈGLES ABSOLUES
24
+
25
+ 1. **JAMAIS** de texte en dur → `useTranslation('docs')`
26
+ 2. **JAMAIS** d'ASCII art → composants React/HTML pour MCD
27
+ 3. **TOUJOURS** lire les sources existantes avant de générer
28
+ 4. **TOUJOURS** demander confirmation avant de créer les fichiers
29
+ 5. **TOUJOURS** mettre à jour App.tsx et les index parents
30
+
31
+ ---
32
+
33
+ ## WORKFLOW
34
+
35
+ ### ÉTAPE 1: PARSING DES ARGUMENTS
36
+
37
+ ```
38
+ EXTRAIRE $TYPE = premier mot des arguments
39
+ EXTRAIRE $TARGET = reste des arguments
40
+
41
+ SI $TYPE absent OU non reconnu → AskUserQuestion
42
+ SI $TARGET absent → AskUserQuestion
43
+ ```
44
+
45
+ ### ÉTAPE 2: ANALYSE (selon $TYPE)
46
+
47
+ #### SI $TYPE == "user"
48
+
49
+ | Action | Commande |
50
+ |--------|----------|
51
+ | Trouver le module | `Grep "code.*$TARGET" src/.../Navigation/` |
52
+ | Composants React | `Glob "web/.../pages/**/*$TARGET*"` |
53
+ | Permissions | `Grep "$TARGET" src/.../Permissions.cs` |
54
+ | Endpoints API | `Grep "$TARGET" src/.../Controllers/` |
55
+
56
+ #### SI $TYPE == "database"
57
+
58
+ | Action | Commande |
59
+ |--------|----------|
60
+ | Tables du schéma | `Read ApplicationDbContextModelSnapshot.cs` |
61
+ | Configurations | `Glob "Persistence/Configurations/$TARGET/*.cs"` |
62
+ | Entités Domain | `Glob "Domain/Entities/$TARGET/*.cs"` |
63
+
64
+ #### SI $TYPE == "developer" ou "testing"
65
+
66
+ | Action | Commande |
67
+ |--------|----------|
68
+ | Doc existante | `Glob "pages/docs/developer/**/*$TARGET*"` |
69
+ | Fichiers config | `Glob "**/$TARGET*.{json,yaml}"` |
70
+ | Doc officielle | `WebSearch` |
71
+
72
+ ### ÉTAPE 3: CONFIRMATION UTILISATEUR
73
+
74
+ ```typescript
75
+ AskUserQuestion({
76
+ questions: [{
77
+ header: "Détail",
78
+ question: "Quel niveau de détail pour '$TARGET' ?",
79
+ options: [
80
+ { label: "Complet (Recommended)", description: "Toutes sections" },
81
+ { label: "Standard", description: "Sections principales" },
82
+ { label: "Minimal", description: "Référence rapide" }
83
+ ]
84
+ }]
85
+ })
86
+ ```
87
+
88
+ ### ÉTAPE 4: GÉNÉRATION
89
+
90
+ | $TYPE | Fichier | Chemin |
91
+ |-------|---------|--------|
92
+ | `user` | `{Module}DocPage.tsx` | `pages/docs/user/{context}/` |
93
+ | `developer` | `{Tool}Page.tsx` | `pages/docs/developer/tools/` |
94
+ | `database` | `{Schema}SchemaPage.tsx` | `pages/docs/developer/database/` |
95
+ | `testing` | `{Tool}TestingPage.tsx` | `pages/docs/developer/testing/` |
96
+
97
+ **Fichiers à créer/modifier:**
98
+ 1. Page React (utiliser template de `templates.md`)
99
+ 2. Traductions EN → `i18n/locales/en/docs.json`
100
+ 3. Traductions FR → `i18n/locales/fr/docs.json`
101
+ 4. Route → `App.tsx`
102
+ 5. Index parent → lien de navigation
103
+ 6. **UserIndexPage.tsx** → Ajouter le module à la hiérarchie (SI $TYPE == "user")
104
+
105
+ ### ÉTAPE 4bis: INTÉGRATION UserIndexPage (SI $TYPE == "user")
106
+
107
+ **OBLIGATOIRE** pour les modules utilisateur: Vérifier et mettre à jour `UserIndexPage.tsx`
108
+
109
+ ```typescript
110
+ // Fichier: web/smartstack-web/src/pages/docs/user/UserIndexPage.tsx
111
+
112
+ // 1. Ajouter l'icône si nécessaire
113
+ import { ..., {IconName} } from 'lucide-react';
114
+
115
+ // 2. Trouver l'application parente dans la hiérarchie
116
+ // - Platform > Administration: pour les modules admin
117
+ // - Platform > Support: pour les modules support
118
+ // - Personal > MySpace: pour les modules personnels
119
+
120
+ // 3. Ajouter le module dans le tableau `modules` de l'application:
121
+ {
122
+ name: t('user.modules.{module}.name'),
123
+ icon: {IconName},
124
+ href: '/docs/user/{slug}',
125
+ description: t('user.modules.{module}.description')
126
+ },
127
+
128
+ // 4. Ajouter les traductions dans docs.json (fr + en):
129
+ "modules": {
130
+ "{module}": {
131
+ "name": "Nom du module",
132
+ "description": "Description courte"
133
+ }
134
+ }
135
+ ```
136
+
137
+ **Vérification:**
138
+ - Le module doit apparaître dans la page `/docs/user` sous son application parente
139
+ - Le lien doit pointer vers `/docs/user/{slug}`
140
+
141
+ ### ÉTAPE 5: INTÉGRATION
142
+
143
+ ```typescript
144
+ // App.tsx
145
+ import { {Name}DocPage } from '@/pages/docs/{path}/{Name}DocPage';
146
+ <Route path="{slug}" element={<{Name}DocPage />} />
147
+ ```
148
+
149
+ ### ÉTAPE 6: RÉSUMÉ FINAL
150
+
151
+ Afficher:
152
+ - ✅ Fichiers créés (chemins cliquables)
153
+ - 🔗 URL: `/docs/{path}/{slug}`
154
+ - 📝 Prochaines étapes
155
+
156
+ ---
157
+
158
+ ## TEMPLATES
159
+
160
+ → **Voir `.claude/skills/documentation/templates.md`**
161
+
162
+ Templates disponibles:
163
+ - User Module (maquettes UI, FAQ, API)
164
+ - Database Schema (MCD HTML, tables détaillées)
165
+ - Developer Tool (installation, config, CI/CD)
166
+ - Patterns réutilisables (CodeBlock, Stats, Badges)
167
+
168
+ ---
169
+
170
+ ## SOURCES DE DONNÉES
171
+
172
+ | Donnée | Source |
173
+ |--------|--------|
174
+ | Tables DB | `ApplicationDbContextModelSnapshot.cs` |
175
+ | Configurations | `Persistence/Configurations/{schema}/*.cs` |
176
+ | Permissions | `Domain/Authorization/Permissions.cs` |
177
+ | Routes | `App.tsx` |
178
+ | Traductions | `i18n/locales/*/docs.json` |
179
+ | Doc outils | WebSearch |
180
+
181
+ ---
182
+
183
+ ## STRUCTURE i18n
184
+
185
+ ```json
186
+ {
187
+ "breadcrumb": { "documentation": "...", "user": "...", "developer": "..." },
188
+ "common": { "tableOfContents": "...", "externalResources": "..." },
189
+ "user": { "{module}": { "title": "...", "sections": {...} } },
190
+ "developer": { "tools": {...}, "database": {...} }
191
+ }
192
+ ```
193
+
194
+ ---
195
+
196
+ ## CONTRAINTES
197
+
198
+ - Variables CSS: `var(--text-primary)`, `var(--bg-secondary)`, `var(--color-primary-600)`
199
+ - Responsive: `grid-cols-1 md:grid-cols-2 lg:grid-cols-3`
200
+ - Icônes: `lucide-react` uniquement
201
+ - Liens externes: avec `<ExternalLink />` icon
202
+ - MCD: composants React/HTML (JAMAIS ASCII)