claudeos-core 1.6.2 → 1.7.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/README.fr.md CHANGED
@@ -1,655 +1,657 @@
1
- # ClaudeOS-Core
2
-
3
- **Le seul outil qui lit d'abord votre code source, confirme votre stack et vos patterns par une analyse déterministe, puis génère des règles Claude Code adaptées exactement à votre projet.**
4
-
5
- ```bash
6
- npx claudeos-core init
7
- ```
8
-
9
- ClaudeOS-Core lit votre codebase, extrait chaque pattern qu'il trouve et génère un ensemble complet de Standards, Rules, Skills et Guides adaptés à _votre_ projet. Ensuite, quand vous dites à Claude Code « Crée un CRUD pour les commandes », il produit du code qui correspond exactement à vos patterns existants.
10
-
11
- [🇺🇸 English](./README.md) · [🇰🇷 한국어](./README.ko.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇪🇸 Español](./README.es.md) · [🇻🇳 Tiếng Việt](./README.vi.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇷🇺 Русский](./README.ru.md) · [🇩🇪 Deutsch](./README.de.md)
12
-
13
- ---
14
-
15
- ## Pourquoi ClaudeOS-Core ?
16
-
17
- > L'humain décrit le projet → Le LLM génère la documentation
18
-
19
- ClaudeOS-Core:
20
-
21
- > Le code analyse vos sources → Le code construit un prompt personnalisé → Le LLM génère la documentation → Le code vérifie la sortie
22
-
23
- ### Le problème fondamental : les LLMs devinent. Le code confirme.
24
-
25
- Quand vous demandez à Claude d'« analyser ce projet », il **devine** votre stack, ORM, structure de domaines.
26
-
27
- **ClaudeOS-Core ne devine pas.** Claude Node.js:
28
-
29
- - `build.gradle` / `package.json` / `pyproject.toml` → **confirmed**
30
- - directory scan → **confirmed**
31
- - Java 5 patterns, Kotlin CQRS/BFF, Next.js App Router/FSD → **classified**
32
- - domain groups → **split**
33
- - stack-specific prompt → **assembled**
34
-
35
- ### Le résultat
36
-
37
- Les autres outils produisent une documentation « généralement bonne ».
38
- ClaudeOS-Core produit une documentation qui sait que votre projet utilise `ApiResponse.ok()` (pas `ResponseEntity.success()`), que vos mappers MyBatis XML sont dans `src/main/resources/mybatis/mappers/` — parce qu'il a lu votre vrai code.
39
-
40
- ### Before & After
41
-
42
- **Sans ClaudeOS-Core**:
43
- ```
44
- ❌ JPA repository (MyBatis)
45
- ❌ ResponseEntity.success() (ApiResponse.ok())
46
- ❌ order/controller/ (controller/order/)
47
- → 20 min fix per file
48
- ```
49
-
50
- **Avec ClaudeOS-Core**:
51
- ```
52
- ✅ MyBatis mapper + XML (build.gradle)
53
- ✅ ApiResponse.ok() (source code)
54
- ✅ controller/order/ (Pattern A)
55
- → immediate match
56
- ```
57
-
58
- Cette différence s'accumule. 10 tâches/jour × 20 minutes économisées = **plus de 3 heures/jour**.
59
-
60
- ---
61
-
62
- ## Stacks Supportés
63
-
64
- | Stack | Détection | Profondeur d'Analyse |
65
- |---|---|---|
66
- | **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 patterns de paquets | 10 catégories, 59 sous-éléments |
67
- | **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 catégories, 95 sous-éléments |
68
- | **Node.js / Express** | `package.json` | 9 catégories, 57 sous-éléments |
69
- | **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 catégories, 68 sous-éléments |
70
- | **Next.js / React** | `package.json`, `next.config.*`, support FSD | 9 catégories, 55 sous-éléments |
71
- | **Vue / Nuxt** | `package.json`, `nuxt.config.*`, Composition API | 9 catégories, 58 sous-éléments |
72
- | **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 catégories, 55 sous-éléments |
73
- | **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 catégories, 58 sous-éléments |
74
- | **Node.js / Fastify** | `package.json` | 10 catégories, 62 sous-éléments |
75
- | **Angular** | `package.json`, `angular.json` | 12 catégories, 78 sous-éléments |
76
-
77
- Détection automatique : langage et version, framework et version, ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy, etc.), base de données (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), gestionnaire de paquets (Gradle, Maven, npm, yarn, pnpm, pip, poetry), architecture (CQRS, BFF — détecté à partir des noms de modules), structure multi-module (depuis settings.gradle), monorepo (Turborepo, pnpm-workspace, Lerna, npm/yarn workspaces).
78
-
79
- **Vous n'avez rien à spécifier. Tout est détecté automatiquement.**
80
-
81
-
82
- ### Détection des Domaines Java (5 patterns avec fallback)
83
-
84
- | Priorité | Pattern | Structure | Exemple |
85
- |---|---|---|---|
86
- | A | Couche d'abord | `controller/{domain}/` | `controller/user/UserController.java` |
87
- | B | Domaine d'abord | `{domain}/controller/` | `user/controller/UserController.java` |
88
- | D | Préfixe module | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
89
- | E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
90
- | C | Plat | `controller/*.java` | `controller/UserController.java` → extrait `user` du nom de classe |
91
-
92
- Les domaines sans contrôleurs (service uniquement) sont aussi détectés via les répertoires `service/`, `dao/`, `aggregator/`, `facade/`, `usecase/`, `orchestrator/`, `mapper/`, `repository/`. Ignorés : `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2`, etc.
93
-
94
-
95
- ### Détection des domaines Kotlin multi-modules
96
-
97
- Pour les projets Kotlin avec structure Gradle multi-modules (ex : monorepo CQRS) :
98
-
99
- | Étape | Action | Exemple |
100
- |---|---|---|
101
- | 1 | Scanner `settings.gradle.kts` pour les `include()` | 14 modules trouvés |
102
- | 2 | Détecter le type de module par son nom | `reservation-command-server` type : `command` |
103
- | 3 | Extraire le domaine du nom du module | `reservation-command-server` → domaine : `reservation` |
104
- | 4 | Regrouper le même domaine entre modules | `reservation-command-server` + `common-query-server` → 1 domaine |
105
- | 5 | Détecter l'architecture | Modules `command` + `query` présents CQRS |
106
-
107
- Types de modules supportés : `command`, `query`, `bff`, `integration`, `standalone`, `library`. Les bibliothèques partagées (`shared-lib`, `integration-lib`) sont détectées comme domaines spéciaux.
108
-
109
- ### Détection des Domaines Frontend
110
-
111
- - **App Router** : `app/{domain}/page.tsx` (Next.js)
112
- - **Pages Router** : `pages/{domain}/index.tsx`
113
- - **FSD (Feature-Sliced Design)** : `features/*/`, `widgets/*/`, `entities/*/`
114
- - **RSC/Client split** : Détecte le pattern `client.tsx`, suit la séparation Server/Client
115
- - **Fallback config** : Détecte Next.js/Vite/Nuxt depuis les fichiers de config (support monorepo)
116
- - **Fallback répertoires profonds** : Pour les projets React/CRA/Vite/Vue/RN, scanne `**/components/*/`, `**/views/*/`, `**/screens/*/`, `**/containers/*/`, `**/pages/*/`, `**/routes/*/`, `**/modules/*/`, `**/domains/*/` à toute profondeur
117
-
118
- ---
119
-
120
- ## Démarrage Rapide
121
-
122
- ### Prérequis
123
-
124
- - **Node.js** v18+
125
- - **Claude Code CLI** (installé et authentifié)
126
-
127
- ### Installation
128
-
129
- ```bash
130
- cd /your/project/root
131
-
132
- # Option A : npx (recommandé — aucune installation requise)
133
- npx claudeos-core init
134
-
135
- # Option B : installation globale
136
- npm install -g claudeos-core
137
- claudeos-core init
138
-
139
- # Option C : devDependency du projet
140
- npm install --save-dev claudeos-core
141
- npx claudeos-core init
142
-
143
- # Option D : git clone (pour développement/contribution)
144
- git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
145
-
146
- # Multiplateforme (PowerShell, CMD, Bash, Zsh — tout terminal)
147
- node claudeos-core-tools/bin/cli.js init
148
-
149
- # Linux/macOS uniquement (Bash uniquement)
150
- bash claudeos-core-tools/bootstrap.sh
151
- ```
152
-
153
- ### Langue de sortie (10 langues)
154
-
155
- En exécutant `init` sans `--lang`, un sélecteur interactif apparaît (touches fléchées ou touches numériques) :
156
-
157
- ```
158
- ╔══════════════════════════════════════════════════╗
159
- ║ Select generated document language (required) ║
160
- ╚══════════════════════════════════════════════════╝
161
-
162
- Les fichiers générés (CLAUDE.md, Standards, Rules,
163
- Skills, Guides) seront rédigés en français.
164
-
165
- 1. en English
166
- ...
167
- ❯ 9. frFrançais (French)
168
- ...
169
-
170
- ↑↓ Move 1-0 Jump Enter Select ESC Cancel
171
- ```
172
-
173
- La description change dans la langue correspondante lors de la navigation. Pour passer le sélecteur :
174
-
175
- ```bash
176
- npx claudeos-core init --lang fr # Français
177
- npx claudeos-core init --lang en # English
178
- npx claudeos-core init --lang ko # 한국어
179
- ```
180
-
181
- > **Note :** Ceci ne change que la langue des fichiers de documentation générés. L'analyse du code (Pass 1–2) s'exécute toujours en anglais ; seul le résultat généré (Pass 3) est écrit dans la langue choisie.
182
-
183
- C'est tout. Après 5–18 minutes, toute la documentation est générée et prête à l'emploi.
184
- Le CLI affiche le temps écoulé par Pass et le temps total dans la bannière de fin.
185
-
186
- ### Installation Manuelle Étape par Étape
187
-
188
- Si vous souhaitez un contrôle total sur chaque phase — ou si le pipeline automatisé échoue à une étape — vous pouvez exécuter chaque étape manuellement. C'est également utile pour comprendre le fonctionnement interne de ClaudeOS-Core.
189
-
190
- #### Step 1 : Cloner et installer les dépendances
191
-
192
- ```bash
193
- cd /your/project/root
194
-
195
- git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
196
- cd claudeos-core-tools && npm install && cd ..
197
- ```
198
-
199
- #### Step 2 : Créer la structure des répertoires
200
-
201
- ```bash
202
- # Rules
203
- mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
204
-
205
- # Standards
206
- mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
207
-
208
- # Skills
209
- mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
210
-
211
- # Guide, Plan, Database, MCP, Generated
212
- mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
213
- mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
214
- ```
215
-
216
- #### Step 3 : Exécuter plan-installer (analyse du projet)
217
-
218
- Scanne votre projet, détecte le stack, trouve les domaines, les divise en groupes et génère les prompts.
219
-
220
- ```bash
221
- node claudeos-core-tools/plan-installer/index.js
222
- ```
223
-
224
- **Sortie (`claudeos-core/generated/`) :**
225
- - `project-analysis.json` — stack détecté, domaines, info frontend
226
- - `domain-groups.json` — groupes de domaines pour le Pass 1
227
- - `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` prompts d'analyse
228
- - `pass2-prompt.md` — prompt de fusion
229
- - `pass3-prompt.md` prompt de génération
230
-
231
- Vous pouvez inspecter ces fichiers pour vérifier la précision de la détection avant de continuer.
232
-
233
- #### Step 4 : Pass 1 Analyse approfondie du code par groupe de domaines
234
-
235
- Exécutez Pass 1 pour chaque groupe de domaines. Vérifiez `domain-groups.json` pour le nombre de groupes.
236
-
237
- ```bash
238
- # Check groups
239
- cat claudeos-core/generated/domain-groups.json | node -e "
240
- const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
241
- g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
242
- "
243
-
244
- # Run Pass 1 for group 1:
245
- cp claudeos-core/generated/pass1-backend-prompt.md /tmp/_pass1.md
246
- DOMAIN_LIST="user, order, product" PASS_NUM=1 \
247
- perl -pi -e 's/\{\{DOMAIN_GROUP\}\}/$ENV{DOMAIN_LIST}/g; s/\{\{PASS_NUM\}\}/$ENV{PASS_NUM}/g' /tmp/_pass1.md
248
- cat /tmp/_pass1.md | claude -p --dangerously-skip-permissions
249
-
250
- # Pour les groupes frontend, utilisez pass1-frontend-prompt.md
251
- ```
252
-
253
- **Vérifier :** `ls claudeos-core/generated/pass1-*.json` doit afficher un JSON par groupe.
254
-
255
- #### Step 5 : Pass 2 Fusion des résultats d'analyse
256
-
257
- ```bash
258
- cat claudeos-core/generated/pass2-prompt.md \
259
- | claude -p --dangerously-skip-permissions
260
- ```
261
-
262
- **Vérifier :** `claudeos-core/generated/pass2-merged.json` doit exister avec 9+ clés de niveau supérieur.
263
-
264
- #### Step 6 : Pass 3 Générer toute la documentation
265
-
266
- ```bash
267
- cat claudeos-core/generated/pass3-prompt.md \
268
- | claude -p --dangerously-skip-permissions
269
- ```
270
-
271
- **Vérifier :** `CLAUDE.md` doit exister à la racine du projet.
272
-
273
- #### Step 7 : Exécuter les outils de vérification
274
-
275
- ```bash
276
- # Générer les métadonnées (requis avant les autres vérifications)
277
- node claudeos-core-tools/manifest-generator/index.js
278
-
279
- # Exécuter toutes les vérifications
280
- node claudeos-core-tools/health-checker/index.js
281
-
282
- # Ou exécuter les vérifications individuellement :
283
- node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ disk
284
- node claudeos-core-tools/sync-checker/index.js # Sync status
285
- node claudeos-core-tools/content-validator/index.js # Content quality
286
- node claudeos-core-tools/pass-json-validator/index.js # JSON format
287
- ```
288
-
289
- #### Step 8 : Vérifier les résultats
290
-
291
- ```bash
292
- find .claude claudeos-core -type f | grep -v node_modules | grep -v '/generated/' | wc -l
293
- head -30 CLAUDE.md
294
- ls .claude/rules/*/
295
- ```
296
-
297
- > **Conseil :** Si une étape échoue, vous pouvez relancer uniquement cette étape. Les résultats Pass 1/2 sont mis en cache — si `pass1-N.json` ou `pass2-merged.json` existe déjà, le pipeline automatisé les ignore. Utilisez `npx claudeos-core init --force` pour supprimer les résultats précédents et repartir de zéro.
298
-
299
- ### Commencez à Utiliser
300
-
301
- ```
302
- # Dans Claude Code — parlez simplement de manière naturelle :
303
- "Crée un CRUD pour le domaine commandes"
304
- "Ajoute une API d'authentification utilisateur"
305
- "Refactorise ce code selon les patterns du projet"
306
-
307
- # Claude Code référence automatiquement vos Standards, Rules et Skills générés.
308
- ```
309
-
310
- ---
311
-
312
- ## Comment ça Marche — Pipeline 3-Pass
313
-
314
- ```
315
- npx claudeos-core init
316
-
317
- ├── [1] npm install ← Dépendances (~10s)
318
- ├── [2] Structure des répertoires ← Création des dossiers (~1s)
319
- ├── [3] plan-installer (Node.js) Scan du projet (~5s)
320
- ├── Auto-détection du stack (multi-stack)
321
- ├── Extraction de la liste des domaines (tags : backend/frontend)
322
- │ ├── Division en groupes de domaines (par type)
323
- └── Sélection des prompts spécifiques au stack (par type)
324
-
325
- ├── [4] Pass 1 × N (claude -p) ← Analyse approfondie du code (~2-8 min)
326
- ├── ⚙️ Groupes backend → prompt d'analyse backend
327
- └── 🎨 Groupes frontend prompt d'analyse frontend
328
-
329
- ├── [5] Pass 2 × 1 (claude -p) ← Fusion de l'analyse (~1 min)
330
- └── Consolidation de TOUS les résultats Pass 1 (backend + frontend)
331
-
332
- ├── [6] Pass 3 × 1 (claude -p) ← Génération complète (~3-5 min)
333
- └── Prompt combiné (cibles backend + frontend)
334
-
335
- └── [7] Vérification ← Exécution auto du health checker
336
- ```
337
-
338
- ### Pourquoi 3 Pass ?
339
-
340
- **Pass 1** est le seul pass qui lit votre code source. Il sélectionne des fichiers représentatifs par domaine et extrait les patterns sur 55–95 catégories d'analyse (par stack). Pour les grands projets, Pass 1 s'exécute plusieurs fois — une par groupe de domaines. Dans les projets multi-stack (ex : backend Java + frontend React), backend et frontend utilisent **des prompts d'analyse différents** adaptés à chaque stack.
341
-
342
- **Pass 2** fusionne tous les résultats de Pass 1 en une analyse unifiée : patterns communs (100% partagés), patterns majoritaires (50%+ partagés), patterns spécifiques au domaine, anti-patterns par sévérité et préoccupations transversales (nommage, sécurité, BD, tests, journalisation, performance).
343
-
344
- **Pass 3** prend l'analyse fusionnée et génère tout l'écosystème de fichiers. Il ne lit jamais le code source uniquement le JSON d'analyse. En mode multi-stack, le prompt de génération combine les cibles backend et frontend pour générer les deux ensembles de standards en un seul pass.
345
-
346
- ---
347
-
348
- ## Structure des Fichiers Générés
349
-
350
- ```
351
- your-project/
352
-
353
- ├── CLAUDE.md ← Point d'entrée Claude Code
354
-
355
- ├── .claude/
356
- └── rules/ ← Règles déclenchées par Glob
357
- ├── 00.core/
358
- ├── 10.backend/
359
- │ ├── 20.frontend/
360
- │ ├── 30.security-db/
361
- │ ├── 40.infra/
362
- └── 50.sync/ ← Règles de rappel de synchronisation
363
-
364
- ├── claudeos-core/ Répertoire principal de sortie
365
- ├── generated/ ← JSON d'analyse + prompts dynamiques
366
- ├── standard/ Standards de code (15-19 fichiers)
367
- │ ├── skills/ Skills de scaffolding CRUD
368
- │ ├── guide/ Onboarding, FAQ, dépannage (9 fichiers)
369
- │ ├── plan/ Master Plans (sauvegarde/restauration)
370
- │ ├── database/ Schéma BD, guide de migration
371
- └── mcp-guide/ Guide d'intégration serveur MCP
372
-
373
- └── claudeos-core-tools/ Ce toolkit (ne pas modifier)
374
- ```
375
-
376
- Chaque fichier de standard inclut des exemples ✅ corrects, des exemples ❌ incorrects et un tableau récapitulatif des règles — le tout dérivé de vos patterns de code réels, pas de templates génériques.
377
-
378
- ---
379
-
380
- ## Auto-dimensionnement par Taille de Projet
381
-
382
- | Taille | Domaines | Exécutions Pass 1 | Total `claude -p` | Temps Estimé |
383
- |---|---|---|---|---|
384
- | Petit | 1–4 | 1 | 3 | ~5 min |
385
- | Moyen | 5–8 | 2 | 4 | ~8 min |
386
- | Grand | 916 | 3–4 | 5–6 | ~12 min |
387
- | Très Grand | 17+ | 5+ | 7+ | ~18 min+ |
388
-
389
- Pour les projets multi-stack (ex : Java + React), les domaines backend et frontend sont comptés ensemble. 6 backend + 4 frontend = 10 domaines, dimensionné comme « Grand ».
390
-
391
- ---
392
-
393
- ## Outils de Vérification
394
-
395
- ClaudeOS-Core inclut 5 outils de vérification intégrés, exécutés automatiquement après la génération :
396
-
397
- ```bash
398
- # Exécuter toutes les vérifications (recommandé)
399
- npx claudeos-core health
400
-
401
- # Commandes individuelles
402
- npx claudeos-core validate # Comparaison Plan ↔ disque
403
- npx claudeos-core refresh # Synchronisation Disque → Plan
404
- npx claudeos-core restore # Restauration Plan Disque
405
- ```
406
-
407
- | Outil | Fonction |
408
- |---|---|
409
- | **manifest-generator** | Construit les JSON de métadonnées (rule-manifest, sync-map, plan-manifest) |
410
- | **plan-validator** | Compare les blocs `<file>` du Master Plan avec le disque — 3 modes : check, refresh, restore |
411
- | **sync-checker** | Détecte les fichiers non enregistrés (sur disque mais pas dans le plan) et les entrées orphelines |
412
- | **content-validator** | Valide la qualité des fichiersfichiers vides, exemples ✅/❌ manquants, sections requises |
413
- | **pass-json-validator** | Valide la structure JSON des Pass 1–3, clés requises et complétude des sections |
414
-
415
- ---
416
-
417
- ## Comment Claude Code Utilise Votre Documentation
418
-
419
- Voici comment Claude Code lit effectivement la documentation générée par ClaudeOS-Core :
420
-
421
- ### Fichiers lus automatiquement
422
-
423
- | Fichier | Quand | Garanti |
424
- |---|---|---|
425
- | `CLAUDE.md` | Au début de chaque conversation | Toujours |
426
- | `.claude/rules/00.core/*` | Lors de l'édition de fichiers (`paths: ["**/*"]`) | Toujours |
427
- | `.claude/rules/10.backend/*` | Lors de l'édition de fichiers (`paths: ["**/*"]`) | Toujours |
428
- | `.claude/rules/30.security-db/*` | Lors de l'édition de fichiers (`paths: ["**/*"]`) | Toujours |
429
- | `.claude/rules/40.infra/*` | Uniquement pour les fichiers config/infra (paths scopés) | Conditionnel |
430
- | `.claude/rules/50.sync/*` | Uniquement pour les fichiers claudeos-core (paths scopés) | Conditionnel |
431
-
432
- ### Fichiers lus à la demande via les références des règles
433
-
434
- Chaque fichier de règle lie son standard correspondant dans la section `## Reference`. Claude ne lit que le standard pertinent pour la tâche en cours :
435
-
436
- - `claudeos-core/standard/**` Patterns de code, exemples ✅/❌, conventions de nommage
437
- - `claudeos-core/database/**` — Schéma DB (pour requêtes, mappers, migrations)
438
-
439
- `00.standard-reference.md` sert de répertoire pour découvrir les standards sans règle correspondante.
440
-
441
- ### Fichiers NON lus (économie de contexte)
442
-
443
- Explicitement exclus par la section `DO NOT Read` de la règle standard-reference :
444
-
445
- | Dossier | Raison d'exclusion |
446
- |---|---|
447
- | `claudeos-core/plan/` | Sauvegardes Master Plan (~340Ko). Utilisez `npx claudeos-core refresh` pour synchroniser. |
448
- | `claudeos-core/generated/` | JSON de métadonnées build. Pas une référence de code. |
449
- | `claudeos-core/guide/` | Guides d'onboarding pour humains. |
450
- | `claudeos-core/mcp-guide/` | Docs serveur MCP. Pas une référence de code. |
451
-
452
- ---
453
-
454
- ## Flux de Travail Quotidien
455
-
456
- ### Après l'Installation
457
-
458
- ```
459
- # Utilisez Claude Code normalement — il référence vos standards automatiquement :
460
- "Crée un CRUD pour le domaine commandes"
461
- "Ajoute une API de mise à jour du profil utilisateur"
462
- "Refactorise ce code selon les patterns du projet"
463
- ```
464
-
465
- ### Après Modification Manuelle des Standards
466
-
467
- ```bash
468
- # Après avoir édité des fichiers standard ou rules :
469
- npx claudeos-core refresh
470
-
471
- # Vérifier la cohérence
472
- npx claudeos-core health
473
- ```
474
-
475
- ### Quand les Docs sont Corrompus
476
-
477
- ```bash
478
- # Tout restaurer depuis le Master Plan
479
- npx claudeos-core restore
480
- ```
481
-
482
- ### Intégration CI/CD
483
-
484
- ```yaml
485
- # Exemple GitHub Actions
486
- - run: npx claudeos-core validate
487
- # Code de sortie 1 bloque la PR
488
- ```
489
-
490
- ---
491
-
492
- ## Quelle Différence ?
493
-
494
- | | ClaudeOS-Core | Everything Claude Code (50K+ ⭐) | Harness | specs-generator | Claude `/init` |
495
- |---|---|---|---|---|---|
496
- | **Approach** | Code analyzes first, then LLM generates | Pre-built config presets | LLM designs agent teams | LLM generates spec docs | LLM writes CLAUDE.md |
497
- | **Reads your source code** | ✅ Deterministic static analysis | ❌ | ❌ | ❌ (LLM reads) | ❌ (LLM reads) |
498
- | **Stack detection** | Code confirms (ORM, DB, build tool, pkg manager) | N/A (stack-agnostic) | LLM guesses | LLM guesses | LLM guesses |
499
- | **Domain detection** | Code confirms (Java 5 patterns, Kotlin CQRS, Next.js FSD) | N/A | LLM guesses | N/A | N/A |
500
- | **Same project Same result** | Deterministic analysis | (static files) | ❌ (LLM varies) | ❌ (LLM varies) | ❌ (LLM varies) |
501
- | **Large project handling** | Domain group splitting (4 domains / 40 files per group) | N/A | No splitting | No splitting | Context window limit |
502
- | **Output** | CLAUDE.md + Rules + Standards + Skills + Guides + Plans (40-50+ files) | Agents + Skills + Commands + Hooks | Agents + Skills | 6 spec documents | CLAUDE.md (1 file) |
503
- | **Output location** | `.claude/rules/` (auto-loaded by Claude Code) | `.claude/` various | `.claude/agents/` + `.claude/skills/` | `.claude/steering/` + `specs/` | `CLAUDE.md` |
504
- | **Post-generation verification** | 5 automated validators | | | | |
505
- | **Multi-language output** | 10 languages | | | | |
506
- | **Multi-stack** | ✅ Backend + Frontend simultaneous | ❌ Stack-agnostic | ❌ | ❌ | Partial |
507
- | **Agent orchestration** | ❌ | 28 agents | 6 patterns | ❌ | ❌ |
508
-
509
- ### Key difference
510
-
511
- **Other tools give Claude "generally good instructions." ClaudeOS-Core gives Claude "instructions extracted from your actual code."**
512
-
513
- ### Complementary, not competing
514
-
515
- ClaudeOS-Core: **project-specific rules**. Other tools: **agent orchestration**.
516
- Use both together.
517
-
518
- ---
519
- ## FAQ
520
-
521
- **Q : Est-ce que ça modifie mon code source ?**
522
- Non. Seuls `CLAUDE.md`, `.claude/rules/` et `claudeos-core/` sont créés. Votre code existant n'est jamais modifié.
523
-
524
- **Q : Combien ça coûte ?**
525
- Appelle `claude -p` 3–7 fois. C'est dans les limites d'utilisation normale de Claude Code.
526
-
527
- **Q : Faut-il commiter les fichiers générés dans Git ?**
528
- Recommandé. Votre équipe peut partager les mêmes standards Claude Code. Envisagez d'ajouter `claudeos-core/generated/` au `.gitignore` (le JSON d'analyse est regénérable).
529
-
530
- **Q : Qu'en est-il des projets multi-stack (ex : backend Java + frontend React) ?**
531
- Entièrement supporté. ClaudeOS-Core auto-détecte les deux stacks, étiquette les domaines comme `backend` ou `frontend`, et utilise des prompts d'analyse spécifiques pour chacun. Pass 2 fusionne tout, et Pass 3 génère les standards backend et frontend en un seul pass.
532
-
533
- **Q : Fonctionne-t-il avec Turborepo / pnpm workspaces / Lerna ?**
534
- Oui. ClaudeOS-Core détecte `turbo.json`, `pnpm-workspace.yaml`, `lerna.json` ou `package.json#workspaces` et scanne automatiquement les `package.json` des sous-packages pour les dépendances framework/ORM/BD. Le scan de domaines couvre les patterns `apps/*/src/` et `packages/*/src/`. Exécutez depuis la racine du monorepo.
535
-
536
- **Q : Que se passe-t-il lors d'une ré-exécution ?**
537
- Si des résultats Pass 1/2 précédents existent, un prompt interactif vous permet de choisir : **Continue** (reprendre là où ça s'est arrêté) ou **Fresh** (tout supprimer et repartir de zéro). Utilisez `--force` pour ignorer le prompt et toujours repartir de zéro. Pass 3 est toujours ré-exécuté. Les versions précédentes peuvent être restaurées depuis les Master Plans.
538
-
539
- **Q : NestJS a-t-il son propre template ou utilise-t-il celui d'Express ?**
540
- NestJS utilise un template dédié `node-nestjs` avec des catégories d'analyse spécifiques à NestJS : décorateurs `@Module`, `@Injectable`, `@Controller`, Guards, Pipes, Interceptors, conteneur DI, patterns CQRS et `Test.createTestingModule`. Les projets Express utilisent le template séparé `node-express`.
541
-
542
- **Q : Qu'en est-il des projets Vue / Nuxt ?**
543
- Vue/Nuxt utilise un template dédié `vue-nuxt` couvrant la Composition API, `<script setup>`, defineProps/defineEmits, les stores Pinia, `useFetch`/`useAsyncData`, les routes serveur Nitro et `@nuxt/test-utils`. Les projets Next.js/React utilisent le template `node-nextjs`.
544
-
545
- **Q : Kotlin est-il supporté ?**
546
- Oui. ClaudeOS-Core détecte automatiquement Kotlin à partir de `build.gradle.kts` ou du plugin kotlin dans `build.gradle`. Il utilise un template dédié `kotlin-spring` avec une analyse spécifique à Kotlin (data classes, sealed classes, coroutines, fonctions d'extension, MockK, etc.).
547
-
548
- **Q : Qu'en est-il de l'architecture CQRS / BFF ?**
549
- Entièrement supporté pour les projets Kotlin multi-modules. ClaudeOS-Core lit `settings.gradle.kts`, détecte les types de modules (command, query, bff, integration) à partir de leurs noms, et regroupe le même domaine à travers les modules Command/Query. Les standards générés incluent des règles séparées pour les command controllers vs query controllers, les patterns BFF/Feign et les conventions de communication inter-modules.
550
-
551
- **Q : Qu'en est-il des monorepos multi-modules Gradle ?**
552
- ClaudeOS-Core analyse tous les sous-modules (`**/src/main/kotlin/**/*.kt`) quelle que soit la profondeur d'imbrication. Les types de modules sont déduits des conventions de nommage (ex : `reservation-command-server` → domaine : `reservation`, type : `command`). Les bibliothèques partagées (`shared-lib`, `integration-lib`) sont également détectées.
553
-
554
- ---
555
-
556
- ## Structure des Templates
557
-
558
- ```
559
- pass-prompts/templates/
560
- ├── common/ # En-tête/pied de page partagés
561
- ├── java-spring/ # Java / Spring Boot
562
- ├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
563
- ├── node-express/ # Node.js / Express
564
- ├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
565
- ├── node-fastify/ # Node.js / Fastify
566
- ├── node-nextjs/ # Next.js / React
567
- ├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
568
- ├── angular/ # Angular
569
- ├── python-django/ # Python / Django (DRF)
570
- └── python-fastapi/ # Python / FastAPI
571
- ```
572
-
573
- `plan-installer` auto-détecte votre/vos stack(s) puis assemble des prompts spécifiques au type. NestJS et Vue/Nuxt utilisent des templates dédiés avec des catégories d'analyse spécifiques au framework (ex : `@Module`/`@Injectable`/Guards pour NestJS, `<script setup>`/Pinia/useFetch pour Vue). Pour les projets multi-stack, `pass1-backend-prompt.md` et `pass1-frontend-prompt.md` sont générés séparément, tandis que `pass3-prompt.md` combine les cibles de génération des deux stacks.
574
-
575
- ---
576
-
577
- ## Support Monorepo
578
-
579
- ClaudeOS-Core détecte automatiquement les configurations monorepo JS/TS et scanne les sous-packages pour les dépendances.
580
-
581
- **Marqueurs monorepo supportés** (auto-détectés) :
582
- - `turbo.json` (Turborepo)
583
- - `pnpm-workspace.yaml` (pnpm workspaces)
584
- - `lerna.json` (Lerna)
585
- - `package.json#workspaces` (npm/yarn workspaces)
586
-
587
- **Exécutez depuis la racine du monorepo** — ClaudeOS-Core lit `apps/*/package.json` et `packages/*/package.json` pour découvrir les dépendances framework/ORM/BD dans les sous-packages :
588
-
589
- ```bash
590
- cd my-monorepo
591
- npx claudeos-core init
592
- ```
593
-
594
- **Ce qui est détecté :**
595
- - Dépendances de `apps/web/package.json` (ex : `next`, `react`) → stack frontend
596
- - Dépendances de `apps/api/package.json` (ex : `express`, `prisma`) → stack backend
597
- - Dépendances de `packages/db/package.json` (ex : `drizzle-orm`) → ORM/BD
598
- - Chemins de workspace personnalisés depuis `pnpm-workspace.yaml` (ex : `services/*`)
599
-
600
- **Le scan de domaines couvre aussi les structures monorepo :**
601
- - `apps/api/src/modules/*/` et `apps/api/src/*/` pour les domaines backend
602
- - `apps/web/app/*/`, `apps/web/src/app/*/`, `apps/web/pages/*/` pour les domaines frontend
603
- - `packages/*/src/*/` pour les domaines des packages partagés
604
-
605
- ```
606
- my-monorepo/ ← Exécuter ici : npx claudeos-core init
607
- ├── turbo.json ← Auto-détecté comme Turborepo
608
- ├── apps/
609
- ├── web/ Next.js détecté depuis apps/web/package.json
610
- │ │ ├── app/dashboard/ ← Domaine frontend détecté
611
- │ └── package.json { "dependencies": { "next": "^14" } }
612
- └── api/ Express détecté depuis apps/api/package.json
613
- ├── src/modules/users/ Domaine backend détecté
614
- └── package.json { "dependencies": { "express": "^4" } }
615
- ├── packages/
616
- ├── db/ Drizzle détecté depuis packages/db/package.json
617
- │ └── ui/
618
- └── package.json { "workspaces": ["apps/*", "packages/*"] }
619
- ```
620
-
621
- > **Note :** Pour les monorepos Kotlin/Java, la détection multi-modules utilise `settings.gradle.kts` (voir [Détection des domaines Kotlin multi-modules](#détection-des-domaines-kotlin-multi-modules) ci-dessus) et ne nécessite pas de marqueurs monorepo JS.
622
-
623
- ## Dépannage
624
-
625
- **"claude: command not found"** — Claude Code CLI n'est pas installé ou pas dans le PATH. Voir la [documentation Claude Code](https://code.claude.com/docs/en/overview).
626
-
627
- **"npm install failed"** — La version de Node.js peut être trop ancienne. v18+ requis.
628
-
629
- **"0 domains detected"** — La structure de votre projet peut être non standard. Consultez les patterns de détection dans la [documentation coréenne](./README.ko.md#트러블슈팅) pour votre stack.
630
-
631
- **« 0 domaines détectés » sur un projet Kotlin** — Vérifiez que `build.gradle.kts` (ou `build.gradle` avec le plugin kotlin) existe à la racine, et que les fichiers source sont sous `**/src/main/kotlin/`. Pour les projets multi-modules, `settings.gradle.kts` doit contenir des instructions `include()`. Les projets Kotlin mono-module (sans `settings.gradle`) sont également pris en charge — les domaines sont extraits de la structure des packages/classes sous `src/main/kotlin/`.
632
-
633
- **« Langage détecté comme java au lieu de kotlin »** ClaudeOS-Core vérifie d'abord le `build.gradle(.kts)` racine, puis les fichiers build des sous-modules. Assurez-vous qu'au moins un contient `kotlin("jvm")` ou `org.jetbrains.kotlin`.
634
-
635
- **« CQRS non détecté »** La détection d'architecture repose sur la présence des mots-clés `command` et `query` dans les noms de modules. Si vos modules utilisent des noms différents, vous pouvez ajuster manuellement les prompts générés.
636
-
637
- ---
638
-
639
- ## Contribuer
640
-
641
- Les contributions sont les bienvenues ! Domaines où l'aide est la plus nécessaire :
642
-
643
- - **Nouveaux templates de stack** Ruby/Rails, Go/Gin, PHP/Laravel, Rust/Axum
644
- - **Support approfondi monorepo** — Racines de sous-projets séparées, détection de workspaces
645
- - **Couverture de tests** — Suite de tests en expansion (actuellement 256 tests couvrant tous les scanners, la détection de stack, le groupement de domaines, le parsing de plans, la génération de prompts, les sélecteurs CLI, la détection de monorepos et les outils de vérification)
646
-
647
- ---
648
-
649
- ## Auteur
650
-
651
- Créé par **claudeos-core** — [GitHub](https://github.com/claudeos-core) · [Email](mailto:claudeoscore@gmail.com)
652
-
653
- ## Licence
654
-
655
- ISC
1
+ # ClaudeOS-Core
2
+
3
+ **Le seul outil qui lit d'abord votre code source, confirme votre stack et vos patterns par une analyse déterministe, puis génère des règles Claude Code adaptées exactement à votre projet.**
4
+
5
+ ```bash
6
+ npx claudeos-core init
7
+ ```
8
+
9
+ ClaudeOS-Core lit votre codebase, extrait chaque pattern qu'il trouve et génère un ensemble complet de Standards, Rules, Skills et Guides adaptés à _votre_ projet. Ensuite, quand vous dites à Claude Code « Crée un CRUD pour les commandes », il produit du code qui correspond exactement à vos patterns existants.
10
+
11
+ [🇺🇸 English](./README.md) · [🇰🇷 한국어](./README.ko.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇪🇸 Español](./README.es.md) · [🇻🇳 Tiếng Việt](./README.vi.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇷🇺 Русский](./README.ru.md) · [🇩🇪 Deutsch](./README.de.md)
12
+
13
+ ---
14
+
15
+ ## Pourquoi ClaudeOS-Core ?
16
+
17
+ > L'humain décrit le projet → Le LLM génère la documentation
18
+
19
+ ClaudeOS-Core:
20
+
21
+ > Le code analyse vos sources → Le code construit un prompt personnalisé → Le LLM génère la documentation → Le code vérifie la sortie
22
+
23
+ ### Le problème fondamental : les LLMs devinent. Le code confirme.
24
+
25
+ Quand vous demandez à Claude d'« analyser ce projet », il **devine** votre stack, ORM, structure de domaines.
26
+
27
+ **ClaudeOS-Core ne devine pas.** Claude Node.js:
28
+
29
+ - `build.gradle` / `package.json` / `pyproject.toml` → **confirmed**
30
+ - directory scan → **confirmed**
31
+ - Java 5 patterns, Kotlin CQRS/BFF, Next.js App Router/FSD → **classified**
32
+ - domain groups → **split**
33
+ - stack-specific prompt → **assembled**
34
+
35
+ ### Le résultat
36
+
37
+ Les autres outils produisent une documentation « généralement bonne ».
38
+ ClaudeOS-Core produit une documentation qui sait que votre projet utilise `ApiResponse.ok()` (pas `ResponseEntity.success()`), que vos mappers MyBatis XML sont dans `src/main/resources/mybatis/mappers/` — parce qu'il a lu votre vrai code.
39
+
40
+ ### Before & After
41
+
42
+ **Sans ClaudeOS-Core**:
43
+ ```
44
+ ❌ JPA repository (MyBatis)
45
+ ❌ ResponseEntity.success() (ApiResponse.ok())
46
+ ❌ order/controller/ (controller/order/)
47
+ → 20 min fix per file
48
+ ```
49
+
50
+ **Avec ClaudeOS-Core**:
51
+ ```
52
+ ✅ MyBatis mapper + XML (build.gradle)
53
+ ✅ ApiResponse.ok() (source code)
54
+ ✅ controller/order/ (Pattern A)
55
+ → immediate match
56
+ ```
57
+
58
+ Cette différence s'accumule. 10 tâches/jour × 20 minutes économisées = **plus de 3 heures/jour**.
59
+
60
+ ---
61
+
62
+ ## Stacks Supportés
63
+
64
+ | Stack | Détection | Profondeur d'Analyse |
65
+ |---|---|---|
66
+ | **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 patterns de paquets | 10 catégories, 59 sous-éléments |
67
+ | **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 catégories, 95 sous-éléments |
68
+ | **Node.js / Express** | `package.json` | 9 catégories, 57 sous-éléments |
69
+ | **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 catégories, 68 sous-éléments |
70
+ | **Next.js / React** | `package.json`, `next.config.*`, support FSD | 9 catégories, 55 sous-éléments |
71
+ | **Vue / Nuxt** | `package.json`, `nuxt.config.*`, Composition API | 9 catégories, 58 sous-éléments |
72
+ | **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 catégories, 55 sous-éléments |
73
+ | **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 catégories, 58 sous-éléments |
74
+ | **Node.js / Fastify** | `package.json` | 10 catégories, 62 sous-éléments |
75
+ | **Vite / React SPA** | `package.json`, `vite.config.*` | 9 catégories, 55 sous-éléments |
76
+ | **Angular** | `package.json`, `angular.json` | 12 catégories, 78 sous-éléments |
77
+
78
+ Détection automatique : langage et version, framework et version (y compris Vite comme framework SPA), ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy, etc.), base de données (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), gestionnaire de paquets (Gradle, Maven, npm, yarn, pnpm, pip, poetry), architecture (CQRS, BFF — détecté à partir des noms de modules), structure multi-module (depuis settings.gradle), monorepo (Turborepo, pnpm-workspace, Lerna, npm/yarn workspaces).
79
+
80
+ **Vous n'avez rien à spécifier. Tout est détecté automatiquement.**
81
+
82
+
83
+ ### Détection des Domaines Java (5 patterns avec fallback)
84
+
85
+ | Priorité | Pattern | Structure | Exemple |
86
+ |---|---|---|---|
87
+ | A | Couche d'abord | `controller/{domain}/` | `controller/user/UserController.java` |
88
+ | B | Domaine d'abord | `{domain}/controller/` | `user/controller/UserController.java` |
89
+ | D | Préfixe module | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
90
+ | E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
91
+ | C | Plat | `controller/*.java` | `controller/UserController.java` → extrait `user` du nom de classe |
92
+
93
+ Les domaines sans contrôleurs (service uniquement) sont aussi détectés via les répertoires `service/`, `dao/`, `aggregator/`, `facade/`, `usecase/`, `orchestrator/`, `mapper/`, `repository/`. Ignorés : `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2`, etc.
94
+
95
+
96
+ ### Détection des domaines Kotlin multi-modules
97
+
98
+ Pour les projets Kotlin avec structure Gradle multi-modules (ex : monorepo CQRS) :
99
+
100
+ | Étape | Action | Exemple |
101
+ |---|---|---|
102
+ | 1 | Scanner `settings.gradle.kts` pour les `include()` | 14 modules trouvés |
103
+ | 2 | Détecter le type de module par son nom | `reservation-command-server` → type : `command` |
104
+ | 3 | Extraire le domaine du nom du module | `reservation-command-server` domaine : `reservation` |
105
+ | 4 | Regrouper le même domaine entre modules | `reservation-command-server` + `common-query-server` → 1 domaine |
106
+ | 5 | Détecter l'architecture | Modules `command` + `query` présents → CQRS |
107
+
108
+ Types de modules supportés : `command`, `query`, `bff`, `integration`, `standalone`, `library`. Les bibliothèques partagées (`shared-lib`, `integration-lib`) sont détectées comme domaines spéciaux.
109
+
110
+ ### Détection des Domaines Frontend
111
+
112
+ - **App Router** : `app/{domain}/page.tsx` (Next.js)
113
+ - **Pages Router** : `pages/{domain}/index.tsx`
114
+ - **FSD (Feature-Sliced Design)** : `features/*/`, `widgets/*/`, `entities/*/`
115
+ - **RSC/Client split** : Détecte le pattern `client.tsx`, suit la séparation Server/Client
116
+ - **Chemins imbriqués non standard** : détection des pages, composants et couches FSD sous `src/*/pages/`, `src/*/components/`, `src/*/features/` (ex. `src/admin/pages/dashboard/`)
117
+ - **Fallback config** : Détecte Next.js/Vite/Nuxt depuis les fichiers de config (support monorepo)
118
+ - **Fallback répertoires profonds** : Pour les projets React/CRA/Vite/Vue/RN, scanne `**/components/*/`, `**/views/*/`, `**/screens/*/`, `**/containers/*/`, `**/pages/*/`, `**/routes/*/`, `**/modules/*/`, `**/domains/*/` à toute profondeur
119
+
120
+ ---
121
+
122
+ ## Démarrage Rapide
123
+
124
+ ### Prérequis
125
+
126
+ - **Node.js** v18+
127
+ - **Claude Code CLI** (installé et authentifié)
128
+
129
+ ### Installation
130
+
131
+ ```bash
132
+ cd /your/project/root
133
+
134
+ # Option A : npx (recommandé — aucune installation requise)
135
+ npx claudeos-core init
136
+
137
+ # Option B : installation globale
138
+ npm install -g claudeos-core
139
+ claudeos-core init
140
+
141
+ # Option C : devDependency du projet
142
+ npm install --save-dev claudeos-core
143
+ npx claudeos-core init
144
+
145
+ # Option D : git clone (pour développement/contribution)
146
+ git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
147
+
148
+ # Multiplateforme (PowerShell, CMD, Bash, Zsh — tout terminal)
149
+ node claudeos-core-tools/bin/cli.js init
150
+
151
+ # Linux/macOS uniquement (Bash uniquement)
152
+ bash claudeos-core-tools/bootstrap.sh
153
+ ```
154
+
155
+ ### Langue de sortie (10 langues)
156
+
157
+ En exécutant `init` sans `--lang`, un sélecteur interactif apparaît (touches fléchées ou touches numériques) :
158
+
159
+ ```
160
+ ╔══════════════════════════════════════════════════╗
161
+ ║ Select generated document language (required) ║
162
+ ╚══════════════════════════════════════════════════╝
163
+
164
+ Les fichiers générés (CLAUDE.md, Standards, Rules,
165
+ Skills, Guides) seront rédigés en français.
166
+
167
+ 1. enEnglish
168
+ ...
169
+ ❯ 9. fr — Français (French)
170
+ ...
171
+
172
+ ↑↓ Move 1-0 Jump Enter Select ESC Cancel
173
+ ```
174
+
175
+ La description change dans la langue correspondante lors de la navigation. Pour passer le sélecteur :
176
+
177
+ ```bash
178
+ npx claudeos-core init --lang fr # Français
179
+ npx claudeos-core init --lang en # English
180
+ npx claudeos-core init --lang ko # 한국어
181
+ ```
182
+
183
+ > **Note :** Ceci ne change que la langue des fichiers de documentation générés. L'analyse du code (Pass 1–2) s'exécute toujours en anglais ; seul le résultat généré (Pass 3) est écrit dans la langue choisie.
184
+
185
+ C'est tout. Après 5–18 minutes, toute la documentation est générée et prête à l'emploi.
186
+ Le CLI affiche une barre de progression avec pourcentage, temps écoulé et temps restant estimé pour chaque Pass.
187
+
188
+ ### Installation Manuelle Étape par Étape
189
+
190
+ Si vous souhaitez un contrôle total sur chaque phase — ou si le pipeline automatisé échoue à une étape — vous pouvez exécuter chaque étape manuellement. C'est également utile pour comprendre le fonctionnement interne de ClaudeOS-Core.
191
+
192
+ #### Step 1 : Cloner et installer les dépendances
193
+
194
+ ```bash
195
+ cd /your/project/root
196
+
197
+ git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
198
+ cd claudeos-core-tools && npm install && cd ..
199
+ ```
200
+
201
+ #### Step 2 : Créer la structure des répertoires
202
+
203
+ ```bash
204
+ # Rules
205
+ mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
206
+
207
+ # Standards
208
+ mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
209
+
210
+ # Skills
211
+ mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
212
+
213
+ # Guide, Plan, Database, MCP, Generated
214
+ mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
215
+ mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
216
+ ```
217
+
218
+ #### Step 3 : Exécuter plan-installer (analyse du projet)
219
+
220
+ Scanne votre projet, détecte le stack, trouve les domaines, les divise en groupes et génère les prompts.
221
+
222
+ ```bash
223
+ node claudeos-core-tools/plan-installer/index.js
224
+ ```
225
+
226
+ **Sortie (`claudeos-core/generated/`) :**
227
+ - `project-analysis.json` stack détecté, domaines, info frontend
228
+ - `domain-groups.json` — groupes de domaines pour le Pass 1
229
+ - `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` prompts d'analyse
230
+ - `pass2-prompt.md` — prompt de fusion
231
+ - `pass3-prompt.md` prompt de génération
232
+
233
+ Vous pouvez inspecter ces fichiers pour vérifier la précision de la détection avant de continuer.
234
+
235
+ #### Step 4 : Pass 1 Analyse approfondie du code par groupe de domaines
236
+
237
+ Exécutez Pass 1 pour chaque groupe de domaines. Vérifiez `domain-groups.json` pour le nombre de groupes.
238
+
239
+ ```bash
240
+ # Check groups
241
+ cat claudeos-core/generated/domain-groups.json | node -e "
242
+ const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
243
+ g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
244
+ "
245
+
246
+ # Run Pass 1 for group 1:
247
+ cp claudeos-core/generated/pass1-backend-prompt.md /tmp/_pass1.md
248
+ DOMAIN_LIST="user, order, product" PASS_NUM=1 \
249
+ perl -pi -e 's/\{\{DOMAIN_GROUP\}\}/$ENV{DOMAIN_LIST}/g; s/\{\{PASS_NUM\}\}/$ENV{PASS_NUM}/g' /tmp/_pass1.md
250
+ cat /tmp/_pass1.md | claude -p --dangerously-skip-permissions
251
+
252
+ # Pour les groupes frontend, utilisez pass1-frontend-prompt.md
253
+ ```
254
+
255
+ **Vérifier :** `ls claudeos-core/generated/pass1-*.json` doit afficher un JSON par groupe.
256
+
257
+ #### Step 5 : Pass 2 — Fusion des résultats d'analyse
258
+
259
+ ```bash
260
+ cat claudeos-core/generated/pass2-prompt.md \
261
+ | claude -p --dangerously-skip-permissions
262
+ ```
263
+
264
+ **Vérifier :** `claudeos-core/generated/pass2-merged.json` doit exister avec 9+ clés de niveau supérieur.
265
+
266
+ #### Step 6 : Pass 3 — Générer toute la documentation
267
+
268
+ ```bash
269
+ cat claudeos-core/generated/pass3-prompt.md \
270
+ | claude -p --dangerously-skip-permissions
271
+ ```
272
+
273
+ **Vérifier :** `CLAUDE.md` doit exister à la racine du projet.
274
+
275
+ #### Step 7 : Exécuter les outils de vérification
276
+
277
+ ```bash
278
+ # Générer les métadonnées (requis avant les autres vérifications)
279
+ node claudeos-core-tools/manifest-generator/index.js
280
+
281
+ # Exécuter toutes les vérifications
282
+ node claudeos-core-tools/health-checker/index.js
283
+
284
+ # Ou exécuter les vérifications individuellement :
285
+ node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ disk
286
+ node claudeos-core-tools/sync-checker/index.js # Sync status
287
+ node claudeos-core-tools/content-validator/index.js # Content quality
288
+ node claudeos-core-tools/pass-json-validator/index.js # JSON format
289
+ ```
290
+
291
+ #### Step 8 : Vérifier les résultats
292
+
293
+ ```bash
294
+ find .claude claudeos-core -type f | grep -v node_modules | grep -v '/generated/' | wc -l
295
+ head -30 CLAUDE.md
296
+ ls .claude/rules/*/
297
+ ```
298
+
299
+ > **Conseil :** Si une étape échoue, vous pouvez relancer uniquement cette étape. Les résultats Pass 1/2 sont mis en cache — si `pass1-N.json` ou `pass2-merged.json` existe déjà, le pipeline automatisé les ignore. Utilisez `npx claudeos-core init --force` pour supprimer les résultats précédents et repartir de zéro.
300
+
301
+ ### Commencez à Utiliser
302
+
303
+ ```
304
+ # Dans Claude Code — parlez simplement de manière naturelle :
305
+ "Crée un CRUD pour le domaine commandes"
306
+ "Ajoute une API d'authentification utilisateur"
307
+ "Refactorise ce code selon les patterns du projet"
308
+
309
+ # Claude Code référence automatiquement vos Standards, Rules et Skills générés.
310
+ ```
311
+
312
+ ---
313
+
314
+ ## Comment ça Marche — Pipeline 3-Pass
315
+
316
+ ```
317
+ npx claudeos-core init
318
+
319
+ ├── [1] npm install Dépendances (~10s)
320
+ ├── [2] Structure des répertoires ← Création des dossiers (~1s)
321
+ ├── [3] plan-installer (Node.js) ← Scan du projet (~5s)
322
+ │ ├── Auto-détection du stack (multi-stack)
323
+ ├── Extraction de la liste des domaines (tags : backend/frontend)
324
+ ├── Division en groupes de domaines (par type)
325
+ │ └── Sélection des prompts spécifiques au stack (par type)
326
+
327
+ ├── [4] Pass 1 × N (claude -p) Analyse approfondie du code (~2-8 min)
328
+ ├── ⚙️ Groupes backend → prompt d'analyse backend
329
+ │ └── 🎨 Groupes frontend prompt d'analyse frontend
330
+
331
+ ├── [5] Pass 2 × 1 (claude -p) ← Fusion de l'analyse (~1 min)
332
+ │ └── Consolidation de TOUS les résultats Pass 1 (backend + frontend)
333
+
334
+ ├── [6] Pass 3 × 1 (claude -p) ← Génération complète (~3-5 min)
335
+ └── Prompt combiné (cibles backend + frontend)
336
+
337
+ └── [7] Vérification ← Exécution auto du health checker
338
+ ```
339
+
340
+ ### Pourquoi 3 Pass ?
341
+
342
+ **Pass 1** est le seul pass qui lit votre code source. Il sélectionne des fichiers représentatifs par domaine et extrait les patterns sur 55–95 catégories d'analyse (par stack). Pour les grands projets, Pass 1 s'exécute plusieurs fois — une par groupe de domaines. Dans les projets multi-stack (ex : backend Java + frontend React), backend et frontend utilisent **des prompts d'analyse différents** adaptés à chaque stack.
343
+
344
+ **Pass 2** fusionne tous les résultats de Pass 1 en une analyse unifiée : patterns communs (100% partagés), patterns majoritaires (50%+ partagés), patterns spécifiques au domaine, anti-patterns par sévérité et préoccupations transversales (nommage, sécurité, BD, tests, journalisation, performance).
345
+
346
+ **Pass 3** prend l'analyse fusionnée et génère tout l'écosystème de fichiers. Il ne lit jamais le code source — uniquement le JSON d'analyse. En mode multi-stack, le prompt de génération combine les cibles backend et frontend pour générer les deux ensembles de standards en un seul pass.
347
+
348
+ ---
349
+
350
+ ## Structure des Fichiers Générés
351
+
352
+ ```
353
+ your-project/
354
+
355
+ ├── CLAUDE.md ← Point d'entrée Claude Code
356
+
357
+ ├── .claude/
358
+ └── rules/ ← Règles déclenchées par Glob
359
+ │ ├── 00.core/
360
+ │ ├── 10.backend/
361
+ │ ├── 20.frontend/
362
+ ├── 30.security-db/
363
+ ├── 40.infra/
364
+ │ └── 50.sync/ Règles de rappel de synchronisation
365
+
366
+ ├── claudeos-core/ Répertoire principal de sortie
367
+ │ ├── generated/ JSON d'analyse + prompts dynamiques
368
+ │ ├── standard/ Standards de code (15-19 fichiers)
369
+ │ ├── skills/ Skills de scaffolding CRUD
370
+ │ ├── guide/ Onboarding, FAQ, dépannage (9 fichiers)
371
+ ├── plan/ Master Plans (sauvegarde/restauration)
372
+ ├── database/ ← Schéma BD, guide de migration
373
+ └── mcp-guide/ Guide d'intégration serveur MCP
374
+
375
+ └── claudeos-core-tools/ ← Ce toolkit (ne pas modifier)
376
+ ```
377
+
378
+ Chaque fichier de standard inclut des exemples ✅ corrects, des exemples ❌ incorrects et un tableau récapitulatif des règles — le tout dérivé de vos patterns de code réels, pas de templates génériques.
379
+
380
+ ---
381
+
382
+ ## Auto-dimensionnement par Taille de Projet
383
+
384
+ | Taille | Domaines | Exécutions Pass 1 | Total `claude -p` | Temps Estimé |
385
+ |---|---|---|---|---|
386
+ | Petit | 14 | 1 | 3 | ~5 min |
387
+ | Moyen | 5–8 | 2 | 4 | ~8 min |
388
+ | Grand | 9–16 | 3–4 | 5–6 | ~12 min |
389
+ | Très Grand | 17+ | 5+ | 7+ | ~18 min+ |
390
+
391
+ Pour les projets multi-stack (ex : Java + React), les domaines backend et frontend sont comptés ensemble. 6 backend + 4 frontend = 10 domaines, dimensionné comme « Grand ».
392
+
393
+ ---
394
+
395
+ ## Outils de Vérification
396
+
397
+ ClaudeOS-Core inclut 5 outils de vérification intégrés, exécutés automatiquement après la génération :
398
+
399
+ ```bash
400
+ # Exécuter toutes les vérifications (recommandé)
401
+ npx claudeos-core health
402
+
403
+ # Commandes individuelles
404
+ npx claudeos-core validate # Comparaison Plan disque
405
+ npx claudeos-core refresh # Synchronisation Disque → Plan
406
+ npx claudeos-core restore # Restauration Plan → Disque
407
+ ```
408
+
409
+ | Outil | Fonction |
410
+ |---|---|
411
+ | **manifest-generator** | Construit les JSON de métadonnées (rule-manifest, sync-map, plan-manifest) |
412
+ | **plan-validator** | Compare les blocs `<file>` du Master Plan avec le disque 3 modes : check, refresh, restore |
413
+ | **sync-checker** | Détecte les fichiers non enregistrés (sur disque mais pas dans le plan) et les entrées orphelines |
414
+ | **content-validator** | Valide la qualité des fichiers — fichiers vides, exemples ✅/❌ manquants, sections requises |
415
+ | **pass-json-validator** | Valide la structure JSON des Pass 1–3, clés requises et complétude des sections |
416
+
417
+ ---
418
+
419
+ ## Comment Claude Code Utilise Votre Documentation
420
+
421
+ Voici comment Claude Code lit effectivement la documentation générée par ClaudeOS-Core :
422
+
423
+ ### Fichiers lus automatiquement
424
+
425
+ | Fichier | Quand | Garanti |
426
+ |---|---|---|
427
+ | `CLAUDE.md` | Au début de chaque conversation | Toujours |
428
+ | `.claude/rules/00.core/*` | Lors de l'édition de fichiers (`paths: ["**/*"]`) | Toujours |
429
+ | `.claude/rules/10.backend/*` | Lors de l'édition de fichiers (`paths: ["**/*"]`) | Toujours |
430
+ | `.claude/rules/30.security-db/*` | Lors de l'édition de fichiers (`paths: ["**/*"]`) | Toujours |
431
+ | `.claude/rules/40.infra/*` | Uniquement pour les fichiers config/infra (paths scopés) | Conditionnel |
432
+ | `.claude/rules/50.sync/*` | Uniquement pour les fichiers claudeos-core (paths scopés) | Conditionnel |
433
+
434
+ ### Fichiers lus à la demande via les références des règles
435
+
436
+ Chaque fichier de règle lie son standard correspondant dans la section `## Reference`. Claude ne lit que le standard pertinent pour la tâche en cours :
437
+
438
+ - `claudeos-core/standard/**` — Patterns de code, exemples ✅/❌, conventions de nommage
439
+ - `claudeos-core/database/**` Schéma DB (pour requêtes, mappers, migrations)
440
+
441
+ `00.standard-reference.md` sert de répertoire pour découvrir les standards sans règle correspondante.
442
+
443
+ ### Fichiers NON lus (économie de contexte)
444
+
445
+ Explicitement exclus par la section `DO NOT Read` de la règle standard-reference :
446
+
447
+ | Dossier | Raison d'exclusion |
448
+ |---|---|
449
+ | `claudeos-core/plan/` | Sauvegardes Master Plan (~340Ko). Utilisez `npx claudeos-core refresh` pour synchroniser. |
450
+ | `claudeos-core/generated/` | JSON de métadonnées build. Pas une référence de code. |
451
+ | `claudeos-core/guide/` | Guides d'onboarding pour humains. |
452
+ | `claudeos-core/mcp-guide/` | Docs serveur MCP. Pas une référence de code. |
453
+
454
+ ---
455
+
456
+ ## Flux de Travail Quotidien
457
+
458
+ ### Après l'Installation
459
+
460
+ ```
461
+ # Utilisez Claude Code normalement il référence vos standards automatiquement :
462
+ "Crée un CRUD pour le domaine commandes"
463
+ "Ajoute une API de mise à jour du profil utilisateur"
464
+ "Refactorise ce code selon les patterns du projet"
465
+ ```
466
+
467
+ ### Après Modification Manuelle des Standards
468
+
469
+ ```bash
470
+ # Après avoir édité des fichiers standard ou rules :
471
+ npx claudeos-core refresh
472
+
473
+ # Vérifier la cohérence
474
+ npx claudeos-core health
475
+ ```
476
+
477
+ ### Quand les Docs sont Corrompus
478
+
479
+ ```bash
480
+ # Tout restaurer depuis le Master Plan
481
+ npx claudeos-core restore
482
+ ```
483
+
484
+ ### Intégration CI/CD
485
+
486
+ ```yaml
487
+ # Exemple GitHub Actions
488
+ - run: npx claudeos-core validate
489
+ # Code de sortie 1 bloque la PR
490
+ ```
491
+
492
+ ---
493
+
494
+ ## Quelle Différence ?
495
+
496
+ | | ClaudeOS-Core | Everything Claude Code (50K+ ⭐) | Harness | specs-generator | Claude `/init` |
497
+ |---|---|---|---|---|---|
498
+ | **Approach** | Code analyzes first, then LLM generates | Pre-built config presets | LLM designs agent teams | LLM generates spec docs | LLM writes CLAUDE.md |
499
+ | **Reads your source code** | Deterministic static analysis | | | (LLM reads) | (LLM reads) |
500
+ | **Stack detection** | Code confirms (ORM, DB, build tool, pkg manager) | N/A (stack-agnostic) | LLM guesses | LLM guesses | LLM guesses |
501
+ | **Domain detection** | Code confirms (Java 5 patterns, Kotlin CQRS, Next.js FSD) | N/A | LLM guesses | N/A | N/A |
502
+ | **Same project Same result** | Deterministic analysis | (static files) | (LLM varies) | (LLM varies) | (LLM varies) |
503
+ | **Large project handling** | Domain group splitting (4 domains / 40 files per group) | N/A | No splitting | No splitting | Context window limit |
504
+ | **Output** | CLAUDE.md + Rules + Standards + Skills + Guides + Plans (40-50+ files) | Agents + Skills + Commands + Hooks | Agents + Skills | 6 spec documents | CLAUDE.md (1 file) |
505
+ | **Output location** | `.claude/rules/` (auto-loaded by Claude Code) | `.claude/` various | `.claude/agents/` + `.claude/skills/` | `.claude/steering/` + `specs/` | `CLAUDE.md` |
506
+ | **Post-generation verification** | ✅ 5 automated validators | ❌ | ❌ | ❌ | |
507
+ | **Multi-language output** | ✅ 10 languages | | | ❌ | ❌ |
508
+ | **Multi-stack** | ✅ Backend + Frontend simultaneous | ❌ Stack-agnostic | ❌ | ❌ | Partial |
509
+ | **Agent orchestration** | ❌ | ✅ 28 agents | ✅ 6 patterns | ❌ | ❌ |
510
+
511
+ ### Key difference
512
+
513
+ **Other tools give Claude "generally good instructions." ClaudeOS-Core gives Claude "instructions extracted from your actual code."**
514
+
515
+ ### Complementary, not competing
516
+
517
+ ClaudeOS-Core: **project-specific rules**. Other tools: **agent orchestration**.
518
+ Use both together.
519
+
520
+ ---
521
+ ## FAQ
522
+
523
+ **Q : Est-ce que ça modifie mon code source ?**
524
+ Non. Seuls `CLAUDE.md`, `.claude/rules/` et `claudeos-core/` sont créés. Votre code existant n'est jamais modifié.
525
+
526
+ **Q : Combien ça coûte ?**
527
+ Appelle `claude -p` 3–7 fois. C'est dans les limites d'utilisation normale de Claude Code.
528
+
529
+ **Q : Faut-il commiter les fichiers générés dans Git ?**
530
+ Recommandé. Votre équipe peut partager les mêmes standards Claude Code. Envisagez d'ajouter `claudeos-core/generated/` au `.gitignore` (le JSON d'analyse est regénérable).
531
+
532
+ **Q : Qu'en est-il des projets multi-stack (ex : backend Java + frontend React) ?**
533
+ Entièrement supporté. ClaudeOS-Core auto-détecte les deux stacks, étiquette les domaines comme `backend` ou `frontend`, et utilise des prompts d'analyse spécifiques pour chacun. Pass 2 fusionne tout, et Pass 3 génère les standards backend et frontend en un seul pass.
534
+
535
+ **Q : Fonctionne-t-il avec Turborepo / pnpm workspaces / Lerna ?**
536
+ Oui. ClaudeOS-Core détecte `turbo.json`, `pnpm-workspace.yaml`, `lerna.json` ou `package.json#workspaces` et scanne automatiquement les `package.json` des sous-packages pour les dépendances framework/ORM/BD. Le scan de domaines couvre les patterns `apps/*/src/` et `packages/*/src/`. Exécutez depuis la racine du monorepo.
537
+
538
+ **Q : Que se passe-t-il lors d'une ré-exécution ?**
539
+ Si des résultats Pass 1/2 précédents existent, un prompt interactif vous permet de choisir : **Continue** (reprendre ça s'est arrêté) ou **Fresh** (tout supprimer et repartir de zéro). Utilisez `--force` pour ignorer le prompt et toujours repartir de zéro. Pass 3 est toujours ré-exécuté. Les versions précédentes peuvent être restaurées depuis les Master Plans.
540
+
541
+ **Q : NestJS a-t-il son propre template ou utilise-t-il celui d'Express ?**
542
+ NestJS utilise un template dédié `node-nestjs` avec des catégories d'analyse spécifiques à NestJS : décorateurs `@Module`, `@Injectable`, `@Controller`, Guards, Pipes, Interceptors, conteneur DI, patterns CQRS et `Test.createTestingModule`. Les projets Express utilisent le template séparé `node-express`.
543
+
544
+ **Q : Qu'en est-il des projets Vue / Nuxt ?**
545
+ Vue/Nuxt utilise un template dédié `vue-nuxt` couvrant la Composition API, `<script setup>`, defineProps/defineEmits, les stores Pinia, `useFetch`/`useAsyncData`, les routes serveur Nitro et `@nuxt/test-utils`. Les projets Next.js/React utilisent le template `node-nextjs`.
546
+
547
+ **Q : Kotlin est-il supporté ?**
548
+ Oui. ClaudeOS-Core détecte automatiquement Kotlin à partir de `build.gradle.kts` ou du plugin kotlin dans `build.gradle`. Il utilise un template dédié `kotlin-spring` avec une analyse spécifique à Kotlin (data classes, sealed classes, coroutines, fonctions d'extension, MockK, etc.).
549
+
550
+ **Q : Qu'en est-il de l'architecture CQRS / BFF ?**
551
+ Entièrement supporté pour les projets Kotlin multi-modules. ClaudeOS-Core lit `settings.gradle.kts`, détecte les types de modules (command, query, bff, integration) à partir de leurs noms, et regroupe le même domaine à travers les modules Command/Query. Les standards générés incluent des règles séparées pour les command controllers vs query controllers, les patterns BFF/Feign et les conventions de communication inter-modules.
552
+
553
+ **Q : Qu'en est-il des monorepos multi-modules Gradle ?**
554
+ ClaudeOS-Core analyse tous les sous-modules (`**/src/main/kotlin/**/*.kt`) quelle que soit la profondeur d'imbrication. Les types de modules sont déduits des conventions de nommage (ex : `reservation-command-server` → domaine : `reservation`, type : `command`). Les bibliothèques partagées (`shared-lib`, `integration-lib`) sont également détectées.
555
+
556
+ ---
557
+
558
+ ## Structure des Templates
559
+
560
+ ```
561
+ pass-prompts/templates/
562
+ ├── common/ # En-tête/pied de page partagés
563
+ ├── java-spring/ # Java / Spring Boot
564
+ ├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
565
+ ├── node-express/ # Node.js / Express
566
+ ├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
567
+ ├── node-fastify/ # Node.js / Fastify
568
+ ├── node-nextjs/ # Next.js / React
569
+ ├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
570
+ ├── angular/ # Angular
571
+ ├── python-django/ # Python / Django (DRF)
572
+ └── python-fastapi/ # Python / FastAPI
573
+ ```
574
+
575
+ `plan-installer` auto-détecte votre/vos stack(s) puis assemble des prompts spécifiques au type. NestJS et Vue/Nuxt utilisent des templates dédiés avec des catégories d'analyse spécifiques au framework (ex : `@Module`/`@Injectable`/Guards pour NestJS, `<script setup>`/Pinia/useFetch pour Vue). Pour les projets multi-stack, `pass1-backend-prompt.md` et `pass1-frontend-prompt.md` sont générés séparément, tandis que `pass3-prompt.md` combine les cibles de génération des deux stacks.
576
+
577
+ ---
578
+
579
+ ## Support Monorepo
580
+
581
+ ClaudeOS-Core détecte automatiquement les configurations monorepo JS/TS et scanne les sous-packages pour les dépendances.
582
+
583
+ **Marqueurs monorepo supportés** (auto-détectés) :
584
+ - `turbo.json` (Turborepo)
585
+ - `pnpm-workspace.yaml` (pnpm workspaces)
586
+ - `lerna.json` (Lerna)
587
+ - `package.json#workspaces` (npm/yarn workspaces)
588
+
589
+ **Exécutez depuis la racine du monorepo** — ClaudeOS-Core lit `apps/*/package.json` et `packages/*/package.json` pour découvrir les dépendances framework/ORM/BD dans les sous-packages :
590
+
591
+ ```bash
592
+ cd my-monorepo
593
+ npx claudeos-core init
594
+ ```
595
+
596
+ **Ce qui est détecté :**
597
+ - Dépendances de `apps/web/package.json` (ex : `next`, `react`) → stack frontend
598
+ - Dépendances de `apps/api/package.json` (ex : `express`, `prisma`) → stack backend
599
+ - Dépendances de `packages/db/package.json` (ex : `drizzle-orm`) → ORM/BD
600
+ - Chemins de workspace personnalisés depuis `pnpm-workspace.yaml` (ex : `services/*`)
601
+
602
+ **Le scan de domaines couvre aussi les structures monorepo :**
603
+ - `apps/api/src/modules/*/` et `apps/api/src/*/` pour les domaines backend
604
+ - `apps/web/app/*/`, `apps/web/src/app/*/`, `apps/web/pages/*/` pour les domaines frontend
605
+ - `packages/*/src/*/` pour les domaines des packages partagés
606
+
607
+ ```
608
+ my-monorepo/ ← Exécuter ici : npx claudeos-core init
609
+ ├── turbo.json Auto-détecté comme Turborepo
610
+ ├── apps/
611
+ ├── web/ Next.js détecté depuis apps/web/package.json
612
+ │ ├── app/dashboard/ Domaine frontend détecté
613
+ │ └── package.json { "dependencies": { "next": "^14" } }
614
+ └── api/ Express détecté depuis apps/api/package.json
615
+ ├── src/modules/users/ ← Domaine backend détecté
616
+ └── package.json { "dependencies": { "express": "^4" } }
617
+ ├── packages/
618
+ │ ├── db/ Drizzle détecté depuis packages/db/package.json
619
+ │ └── ui/
620
+ └── package.json ← { "workspaces": ["apps/*", "packages/*"] }
621
+ ```
622
+
623
+ > **Note :** Pour les monorepos Kotlin/Java, la détection multi-modules utilise `settings.gradle.kts` (voir [Détection des domaines Kotlin multi-modules](#détection-des-domaines-kotlin-multi-modules) ci-dessus) et ne nécessite pas de marqueurs monorepo JS.
624
+
625
+ ## Dépannage
626
+
627
+ **"claude: command not found"** — Claude Code CLI n'est pas installé ou pas dans le PATH. Voir la [documentation Claude Code](https://code.claude.com/docs/en/overview).
628
+
629
+ **"npm install failed"** — La version de Node.js peut être trop ancienne. v18+ requis.
630
+
631
+ **"0 domains detected"** — La structure de votre projet peut être non standard. Consultez les patterns de détection dans la [documentation coréenne](./README.ko.md#트러블슈팅) pour votre stack.
632
+
633
+ **« 0 domaines détectés » sur un projet Kotlin**Vérifiez que `build.gradle.kts` (ou `build.gradle` avec le plugin kotlin) existe à la racine, et que les fichiers source sont sous `**/src/main/kotlin/`. Pour les projets multi-modules, `settings.gradle.kts` doit contenir des instructions `include()`. Les projets Kotlin mono-module (sans `settings.gradle`) sont également pris en charge — les domaines sont extraits de la structure des packages/classes sous `src/main/kotlin/`.
634
+
635
+ **« Langage détecté comme java au lieu de kotlin »** ClaudeOS-Core vérifie d'abord le `build.gradle(.kts)` racine, puis les fichiers build des sous-modules. Assurez-vous qu'au moins un contient `kotlin("jvm")` ou `org.jetbrains.kotlin`.
636
+
637
+ **« CQRS non détecté »** — La détection d'architecture repose sur la présence des mots-clés `command` et `query` dans les noms de modules. Si vos modules utilisent des noms différents, vous pouvez ajuster manuellement les prompts générés.
638
+
639
+ ---
640
+
641
+ ## Contribuer
642
+
643
+ Les contributions sont les bienvenues ! Domaines l'aide est la plus nécessaire :
644
+
645
+ - **Nouveaux templates de stack** — Ruby/Rails, Go/Gin, PHP/Laravel, Rust/Axum
646
+ - **Support approfondi monorepo** — Racines de sous-projets séparées, détection de workspaces
647
+ - **Couverture de tests** — Suite de tests en expansion (actuellement 269 tests couvrant tous les scanners, la détection de stack, le groupement de domaines, le parsing de plans, la génération de prompts, les sélecteurs CLI, la détection de monorepos, les outils de vérification et la détection Vite SPA)
648
+
649
+ ---
650
+
651
+ ## Auteur
652
+
653
+ Créé par **claudeos-core** — [GitHub](https://github.com/claudeos-core) · [Email](mailto:claudeoscore@gmail.com)
654
+
655
+ ## Licence
656
+
657
+ ISC