@atlashub/smartstack-cli 1.4.1 → 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.
- package/.documentation/agents.html +916 -916
- package/.documentation/apex.html +1018 -1018
- package/.documentation/business-analyse.html +1501 -1501
- package/.documentation/commands.html +680 -680
- package/.documentation/css/styles.css +2168 -2168
- package/.documentation/efcore.html +2505 -2505
- package/.documentation/gitflow.html +2618 -2618
- package/.documentation/hooks.html +413 -413
- package/.documentation/index.html +323 -323
- package/.documentation/installation.html +462 -462
- package/.documentation/js/app.js +794 -794
- package/.documentation/test-web.html +513 -513
- package/dist/index.js +807 -277
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/agents/efcore/conflicts.md +44 -17
- package/templates/agents/efcore/db-status.md +27 -6
- package/templates/agents/efcore/scan.md +43 -13
- package/templates/commands/ai-prompt.md +315 -315
- package/templates/commands/application/create.md +362 -362
- package/templates/commands/controller/create.md +216 -216
- package/templates/commands/controller.md +59 -0
- package/templates/commands/documentation/module.md +202 -202
- package/templates/commands/efcore/_env-check.md +153 -153
- package/templates/commands/efcore/conflicts.md +109 -192
- package/templates/commands/efcore/db-status.md +101 -89
- package/templates/commands/efcore/migration.md +23 -11
- package/templates/commands/efcore/scan.md +115 -119
- package/templates/commands/efcore.md +54 -6
- package/templates/commands/feature-full.md +267 -267
- package/templates/commands/gitflow/11-finish.md +145 -11
- package/templates/commands/gitflow/13-sync.md +216 -216
- package/templates/commands/gitflow/14-rebase.md +251 -251
- package/templates/commands/gitflow/2-status.md +120 -10
- package/templates/commands/gitflow/3-commit.md +150 -0
- package/templates/commands/gitflow/7-pull-request.md +134 -5
- package/templates/commands/gitflow/9-merge.md +142 -1
- package/templates/commands/implement.md +663 -663
- package/templates/commands/init.md +562 -0
- package/templates/commands/mcp-integration.md +330 -0
- package/templates/commands/notification.md +129 -129
- package/templates/commands/validate.md +233 -0
- package/templates/commands/workflow.md +193 -193
- package/templates/skills/ai-prompt/SKILL.md +778 -778
- package/templates/skills/application/SKILL.md +563 -563
- package/templates/skills/application/templates-backend.md +450 -450
- package/templates/skills/application/templates-frontend.md +531 -531
- package/templates/skills/application/templates-i18n.md +520 -520
- package/templates/skills/application/templates-seed.md +647 -647
- package/templates/skills/controller/SKILL.md +240 -240
- package/templates/skills/controller/postman-templates.md +614 -614
- package/templates/skills/controller/templates.md +1468 -1468
- package/templates/skills/documentation/SKILL.md +133 -133
- package/templates/skills/documentation/templates.md +476 -476
- package/templates/skills/feature-full/SKILL.md +838 -838
- package/templates/skills/notification/SKILL.md +555 -555
- package/templates/skills/ui-components/SKILL.md +870 -870
- package/templates/skills/workflow/SKILL.md +582 -582
|
@@ -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)
|