claudeos-core 1.0.7 → 1.2.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.

Potentially problematic release.


This version of claudeos-core might be problematic. Click here for more details.

Files changed (44) hide show
  1. package/CHANGELOG.md +84 -1
  2. package/CONTRIBUTING.md +15 -4
  3. package/README.de.md +187 -11
  4. package/README.es.md +187 -11
  5. package/README.fr.md +187 -11
  6. package/README.hi.md +187 -11
  7. package/README.ja.md +186 -10
  8. package/README.ko.md +331 -364
  9. package/README.md +200 -11
  10. package/README.ru.md +187 -11
  11. package/README.vi.md +188 -12
  12. package/README.zh-CN.md +186 -10
  13. package/bin/cli.js +183 -61
  14. package/bootstrap.sh +128 -21
  15. package/content-validator/index.js +131 -60
  16. package/health-checker/index.js +29 -23
  17. package/import-linter/index.js +14 -8
  18. package/manifest-generator/index.js +26 -20
  19. package/package.json +84 -75
  20. package/pass-json-validator/index.js +92 -70
  21. package/pass-prompts/templates/common/header.md +4 -4
  22. package/pass-prompts/templates/common/lang-instructions.json +27 -0
  23. package/pass-prompts/templates/common/pass3-footer.md +2 -3
  24. package/pass-prompts/templates/java-spring/pass1.md +84 -81
  25. package/pass-prompts/templates/java-spring/pass2.md +66 -66
  26. package/pass-prompts/templates/java-spring/pass3.md +60 -60
  27. package/pass-prompts/templates/kotlin-spring/pass1.md +172 -0
  28. package/pass-prompts/templates/kotlin-spring/pass2.md +109 -0
  29. package/pass-prompts/templates/kotlin-spring/pass3.md +98 -0
  30. package/pass-prompts/templates/node-express/pass1.md +73 -73
  31. package/pass-prompts/templates/node-express/pass2.md +66 -66
  32. package/pass-prompts/templates/node-express/pass3.md +53 -53
  33. package/pass-prompts/templates/node-nextjs/pass1.md +68 -68
  34. package/pass-prompts/templates/node-nextjs/pass2.md +61 -61
  35. package/pass-prompts/templates/node-nextjs/pass3.md +48 -48
  36. package/pass-prompts/templates/python-django/pass1.md +78 -78
  37. package/pass-prompts/templates/python-django/pass2.md +69 -69
  38. package/pass-prompts/templates/python-django/pass3.md +45 -45
  39. package/pass-prompts/templates/python-fastapi/pass1.md +76 -76
  40. package/pass-prompts/templates/python-fastapi/pass2.md +67 -67
  41. package/pass-prompts/templates/python-fastapi/pass3.md +45 -45
  42. package/plan-installer/index.js +623 -97
  43. package/plan-validator/index.js +54 -23
  44. package/sync-checker/index.js +25 -14
package/README.es.md CHANGED
@@ -8,7 +8,7 @@ npx claudeos-core init
8
8
 
9
9
  ClaudeOS-Core lee tu código fuente, extrae cada patrón que encuentra y genera un conjunto completo de Standards, Rules, Skills y Guides adaptados a _tu_ proyecto. Después, cuando le digas a Claude Code "Crea un CRUD para pedidos", generará código que coincide exactamente con tus patrones existentes.
10
10
 
11
- [🇺🇸 English](./README.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇻🇳 Tiếng Việt](./README.vi.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇷🇺 Русский](./README.ru.md) · [🇫🇷 Français](./README.fr.md) · [🇩🇪 Deutsch](./README.de.md) · [🇰🇷 한국어](./README.ko.md)
11
+ [🇺🇸 English](./README.md) · [🇰🇷 한국어](./README.ko.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇻🇳 Tiếng Việt](./README.vi.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇷🇺 Русский](./README.ru.md) · [🇫🇷 Français](./README.fr.md) · [🇩🇪 Deutsch](./README.de.md)
12
12
 
13
13
  ---
14
14
 
@@ -22,7 +22,7 @@ ClaudeOS-Core automatiza todo el proceso:
22
22
 
23
23
  1. **Escanea** tu proyecto — detecta automáticamente stack, dominios, ORM, base de datos y gestor de paquetes
24
24
  2. **Analiza** tu código fuente en profundidad — patrones de controladores, capas de servicio, convenciones de nombrado, manejo de errores, seguridad, testing y más de 50 categorías
25
- 3. **Genera** un ecosistema documental completo — `CLAUDE.md`, Standards (15–17 archivos), Rules, Skills, Guides (9 archivos), Master Plans, documentación de BD y guía MCP
25
+ 3. **Genera** un ecosistema documental completo — `CLAUDE.md`, Standards (15–19 archivos), Rules, Skills, Guides (9 archivos), Master Plans, documentación de BD y guía MCP
26
26
  4. **Valida** todo — 6 herramientas de verificación integradas garantizan la consistencia
27
27
 
28
28
  Tiempo total: **5–18 minutos**, según el tamaño del proyecto. Cero configuración manual.
@@ -33,16 +33,53 @@ Tiempo total: **5–18 minutos**, según el tamaño del proyecto. Cero configura
33
33
 
34
34
  | Stack | Detección | Profundidad de Análisis |
35
35
  |---|---|---|
36
- | **Java / Spring Boot** | `build.gradle`, `pom.xml` | 10 categorías, 59 sub-ítems |
36
+ | **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 patrones de paquete | 10 categorías, 59 sub-ítems |
37
+ | **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 categorías, 95 sub-ítems |
37
38
  | **Node.js / Express / NestJS** | `package.json` | 9 categorías, 57 sub-ítems |
38
- | **Next.js / React / Vue** | `package.json` (next, react, vue) | 9 categorías, 55 sub-ítems |
39
+ | **Next.js / React / Vue** | `package.json`, `next.config.*`, soporte FSD | 9 categorías, 55 sub-ítems |
39
40
  | **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 categorías, 55 sub-ítems |
40
41
  | **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 categorías, 58 sub-ítems |
41
42
 
42
- Detección automática: lenguaje y versión, framework y versión, ORM (MyBatis, JPA, Prisma, TypeORM, SQLAlchemy, etc.), base de datos (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), gestor de paquetes (Gradle, Maven, npm, yarn, pnpm, pip, poetry).
43
+ Detección automática: lenguaje y versión, framework y versión, ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy, etc.), base de datos (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), gestor de paquetes (Gradle, Maven, npm, yarn, pnpm, pip, poetry), arquitectura (CQRS, BFF — detectado de nombres de módulos), estructura multi-módulo (desde settings.gradle).
43
44
 
44
45
  **No necesitas especificar nada. Todo se detecta automáticamente.**
45
46
 
47
+
48
+ ### Detección de Dominios Java (5 patrones con fallback)
49
+
50
+ | Prioridad | Patrón | Estructura | Ejemplo |
51
+ |---|---|---|---|
52
+ | A | Capa primero | `controller/{domain}/` | `controller/user/UserController.java` |
53
+ | B | Dominio primero | `{domain}/controller/` | `user/controller/UserController.java` |
54
+ | D | Prefijo de módulo | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
55
+ | E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
56
+ | C | Plano | `controller/*.java` | `controller/UserController.java` → extrae `user` del nombre de clase |
57
+
58
+ Los dominios solo con servicios (sin controladores) también se detectan. Se omiten: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2`, etc.
59
+
60
+
61
+ ### Detección de Dominios Kotlin Multi-Módulo
62
+
63
+ Para proyectos Kotlin con estructura Gradle multi-módulo (ej: monorepo CQRS):
64
+
65
+ | Paso | Acción | Ejemplo |
66
+ |---|---|---|
67
+ | 1 | Escanear `settings.gradle.kts` buscando `include()` | Encuentra 14 módulos |
68
+ | 2 | Detectar tipo de módulo por nombre | `reservation-command-server` → tipo: `command` |
69
+ | 3 | Extraer dominio del nombre del módulo | `reservation-command-server` → dominio: `reservation` |
70
+ | 4 | Agrupar mismo dominio entre módulos | `reservation-command-server` + `common-query-server` → 1 dominio |
71
+ | 5 | Detectar arquitectura | Tiene módulos `command` + `query` → CQRS |
72
+
73
+ Tipos de módulo soportados: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Las bibliotecas compartidas (`shared-lib`, `integration-lib`) se detectan como dominios especiales.
74
+
75
+ ### Detección de Dominios Frontend
76
+
77
+ - **App Router**: `app/{domain}/page.tsx` (Next.js)
78
+ - **Pages Router**: `pages/{domain}/index.tsx`
79
+ - **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
80
+ - **RSC/Client split**: Detecta patrón `client.tsx`, rastrea separación Server/Client
81
+ - **Config fallback**: Detecta Next.js/Vite/Nuxt desde archivos de configuración (soporte monorepo)
82
+
46
83
  ---
47
84
 
48
85
  ## Inicio Rápido
@@ -57,16 +94,138 @@ Detección automática: lenguaje y versión, framework y versión, ORM (MyBatis,
57
94
  ```bash
58
95
  cd /your/project/root
59
96
 
60
- # Opción A: npx (recomendado)
97
+ # Opción A: npx (recomendado — sin instalación)
61
98
  npx claudeos-core init
62
99
 
63
- # Opción B: git clone (para desarrollo/contribución)
100
+ # Opción B: instalación global
101
+ npm install -g claudeos-core
102
+ claudeos-core init
103
+
104
+ # Opción C: devDependency del proyecto
105
+ npm install --save-dev claudeos-core
106
+ npx claudeos-core init
107
+
108
+ # Opción D: git clone (para desarrollo/contribución)
64
109
  git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
65
110
  bash claudeos-core-tools/bootstrap.sh
66
111
  ```
67
112
 
68
113
  Eso es todo. Después de 5–18 minutos, toda la documentación estará generada y lista para usar.
69
114
 
115
+ ### Instalación Manual Paso a Paso
116
+
117
+ Si deseas control total sobre cada fase, o si el pipeline automatizado falla en algún paso, puedes ejecutar cada etapa manualmente. También es útil para entender cómo funciona ClaudeOS-Core internamente.
118
+
119
+ #### Step 1: Clonar e instalar dependencias
120
+
121
+ ```bash
122
+ cd /your/project/root
123
+
124
+ git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
125
+ cd claudeos-core-tools && npm install && cd ..
126
+ ```
127
+
128
+ #### Step 2: Crear estructura de directorios
129
+
130
+ ```bash
131
+ # Rules
132
+ mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
133
+
134
+ # Standards
135
+ mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
136
+
137
+ # Skills
138
+ mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
139
+
140
+ # Guide, Plan, Database, MCP, Generated
141
+ mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
142
+ mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
143
+ ```
144
+
145
+ #### Step 3: Ejecutar plan-installer (análisis del proyecto)
146
+
147
+ Escanea tu proyecto, detecta el stack, encuentra dominios, los divide en grupos y genera prompts.
148
+
149
+ ```bash
150
+ node claudeos-core-tools/plan-installer/index.js
151
+ ```
152
+
153
+ **Salida (`claudeos-core/generated/`):**
154
+ - `project-analysis.json` — stack detectado, dominios, info de frontend
155
+ - `domain-groups.json` — grupos de dominios para Pass 1
156
+ - `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — prompts de análisis
157
+ - `pass2-prompt.md` — prompt de fusión
158
+ - `pass3-prompt.md` — prompt de generación
159
+
160
+ Puedes inspeccionar estos archivos para verificar la precisión de la detección antes de continuar.
161
+
162
+ #### Step 4: Pass 1 — Análisis profundo de código por grupo de dominio
163
+
164
+ Ejecuta Pass 1 para cada grupo de dominio. Revisa `domain-groups.json` para el número de grupos.
165
+
166
+ ```bash
167
+ # Check groups
168
+ cat claudeos-core/generated/domain-groups.json | node -e "
169
+ const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
170
+ g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
171
+ "
172
+
173
+ # Run Pass 1 for group 1:
174
+ cat claudeos-core/generated/pass1-backend-prompt.md \
175
+ | sed "s/{{DOMAIN_GROUP}}/user, order, product/g" \
176
+ | sed "s/{{PASS_NUM}}/1/g" \
177
+ | claude -p --dangerously-skip-permissions
178
+
179
+ # For frontend groups, use pass1-frontend-prompt.md instead
180
+ ```
181
+
182
+ **Verificar:** `ls claudeos-core/generated/pass1-*.json` debe mostrar un JSON por grupo.
183
+
184
+ #### Step 5: Pass 2 — Fusionar resultados de análisis
185
+
186
+ ```bash
187
+ cat claudeos-core/generated/pass2-prompt.md \
188
+ | claude -p --dangerously-skip-permissions
189
+ ```
190
+
191
+ **Verificar:** `claudeos-core/generated/pass2-merged.json` debe existir con 9+ claves de nivel superior.
192
+
193
+ #### Step 6: Pass 3 — Generar toda la documentación
194
+
195
+ ```bash
196
+ cat claudeos-core/generated/pass3-prompt.md \
197
+ | claude -p --dangerously-skip-permissions
198
+ ```
199
+
200
+ **Verificar:** `CLAUDE.md` debe existir en la raíz del proyecto.
201
+
202
+ #### Step 7: Ejecutar herramientas de verificación
203
+
204
+ ```bash
205
+ # Generar metadatos (requerido antes de otras verificaciones)
206
+ node claudeos-core-tools/manifest-generator/index.js
207
+
208
+ # Ejecutar todas las verificaciones
209
+ node claudeos-core-tools/health-checker/index.js
210
+
211
+ # O ejecutar verificaciones individuales:
212
+ node claudeos-core-tools/import-linter/index.js # @import validation
213
+ node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ disk
214
+ node claudeos-core-tools/sync-checker/index.js # Sync status
215
+ node claudeos-core-tools/content-validator/index.js # Content quality
216
+ node claudeos-core-tools/pass-json-validator/index.js # JSON format
217
+ ```
218
+
219
+ #### Step 8: Verificar los resultados
220
+
221
+ ```bash
222
+ find .claude claudeos-core -type f | grep -v node_modules | wc -l
223
+ head -30 CLAUDE.md
224
+ ls .claude/rules/*/
225
+ ```
226
+
227
+ > **Consejo:** Si un paso falla, puedes volver a ejecutar solo ese paso. Los resultados de Pass 1/2 se cachean — si `pass1-N.json` o `pass2-merged.json` ya existen, el pipeline automatizado los omite. Elimina el archivo para forzar la re-ejecución.
228
+
70
229
  ### Empieza a Usar
71
230
 
72
231
  ```
@@ -108,7 +267,7 @@ npx claudeos-core init
108
267
 
109
268
  ### ¿Por Qué 3 Pasadas?
110
269
 
111
- **Pass 1** es la única pasada que lee tu código fuente. Selecciona archivos representativos por dominio y extrae patrones en 55–59 categorías de análisis (por stack). Para proyectos grandes, Pass 1 se ejecuta múltiples veces — una por grupo de dominios. En proyectos multi-stack (ej: backend Java + frontend React), backend y frontend usan **prompts de análisis diferentes** adaptados a cada stack.
270
+ **Pass 1** es la única pasada que lee tu código fuente. Selecciona archivos representativos por dominio y extrae patrones en 55–95 categorías de análisis (por stack). Para proyectos grandes, Pass 1 se ejecuta múltiples veces — una por grupo de dominios. En proyectos multi-stack (ej: backend Java + frontend React), backend y frontend usan **prompts de análisis diferentes** adaptados a cada stack.
112
271
 
113
272
  **Pass 2** fusiona todos los resultados de Pass 1 en un análisis unificado: patrones comunes (100% compartidos), patrones mayoritarios (50%+ compartidos), patrones específicos de dominio, anti-patrones por severidad y preocupaciones transversales (nombrado, seguridad, BD, testing, logging, rendimiento).
114
273
 
@@ -134,7 +293,7 @@ your-project/
134
293
 
135
294
  ├── claudeos-core/ ← Directorio principal de salida
136
295
  │ ├── generated/ ← JSON de análisis + prompts dinámicos
137
- │ ├── standard/ ← Estándares de código (15-17 archivos)
296
+ │ ├── standard/ ← Estándares de código (15-19 archivos)
138
297
  │ ├── skills/ ← Skills de scaffolding CRUD
139
298
  │ ├── guide/ ← Onboarding, FAQ, troubleshooting (9 archivos)
140
299
  │ ├── plan/ ← Master Plans (backup/restauración)
@@ -228,9 +387,10 @@ npx claudeos-core restore
228
387
 
229
388
  | | ClaudeOS-Core | SuperClaude | CLAUDE.md Manual | Skills Genéricos |
230
389
  |---|---|---|---|---|
231
- | **Lee tu código** | ✅ Análisis profundo (55–59 categorías) | ❌ Inyección de comportamiento | ❌ Escritura manual | ❌ Plantillas predefinidas |
390
+ | **Lee tu código** | ✅ Análisis profundo (55–95 categorías) | ❌ Inyección de comportamiento | ❌ Escritura manual | ❌ Plantillas predefinidas |
232
391
  | **Salida específica del proyecto** | ✅ Cada archivo refleja tus patrones | ❌ Comandos genéricos | Parcial | ❌ Talla única |
233
392
  | **Multi-stack** | ✅ Auto-detección + análisis separado | ❌ Agnóstico al stack | Manual | Variable |
393
+ | **Kotlin + CQRS/BFF** | ✅ Multi-module, Command/Query split | ❌ | ❌ | ❌ |
234
394
  | **Auto-verificación** | ✅ 6 herramientas de validación | ❌ | ❌ | ❌ |
235
395
  | **Backup / Restauración** | ✅ Sistema Master Plan | ❌ | ❌ | ❌ |
236
396
  | **Tiempo de configuración** | ~5–18min (automático) | ~5min (config manual) | Horas–Días | ~5min |
@@ -254,6 +414,15 @@ Totalmente soportado. ClaudeOS-Core auto-detecta ambos stacks, etiqueta dominios
254
414
  **P: ¿Qué pasa al re-ejecutar?**
255
415
  Pass 1/2 se omiten si su JSON ya existe. Pass 3 siempre se re-ejecuta. Las versiones anteriores pueden restaurarse desde los Master Plans.
256
416
 
417
+ **P: ¿Soporta Kotlin?**
418
+ Sí. ClaudeOS-Core detecta automáticamente Kotlin desde `build.gradle.kts` o el plugin kotlin en `build.gradle`. Utiliza una plantilla dedicada `kotlin-spring` con análisis específico de Kotlin (data classes, sealed classes, coroutines, extension functions, MockK, etc.).
419
+
420
+ **P: ¿Qué hay de la arquitectura CQRS / BFF?**
421
+ Totalmente soportado para proyectos multi-módulo de Kotlin. ClaudeOS-Core lee `settings.gradle.kts`, detecta tipos de módulos (command, query, bff, integration) de los nombres, y agrupa el mismo dominio entre módulos Command/Query. Los estándares generados incluyen reglas separadas para command controllers vs query controllers, patrones BFF/Feign y convenciones de comunicación entre módulos.
422
+
423
+ **P: ¿Qué hay de los monorepos multi-módulo de Gradle?**
424
+ ClaudeOS-Core escanea todos los submódulos (`**/src/main/kotlin/**/*.kt`) sin importar la profundidad de anidamiento. Los tipos de módulos se infieren de las convenciones de nombres (ej: `reservation-command-server` → dominio: `reservation`, tipo: `command`). Las bibliotecas compartidas (`shared-lib`, `integration-lib`) también se detectan.
425
+
257
426
  ---
258
427
 
259
428
  ## Estructura de Plantillas
@@ -262,6 +431,7 @@ Pass 1/2 se omiten si su JSON ya existe. Pass 3 siempre se re-ejecuta. Las versi
262
431
  pass-prompts/templates/
263
432
  ├── common/ # Encabezado/pie compartido
264
433
  ├── java-spring/ # Java / Spring Boot
434
+ ├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
265
435
  ├── node-express/ # Node.js / Express / NestJS
266
436
  ├── node-nextjs/ # Next.js / React / Vue
267
437
  ├── python-django/ # Python / Django (DRF)
@@ -313,7 +483,13 @@ my-monorepo/ ← No ejecutes aquí (la raíz no tiene deps de
313
483
 
314
484
  **"npm install failed"** — La versión de Node.js puede ser demasiado baja. Se requiere v18+.
315
485
 
316
- **"0 domains detected"** — La estructura de tu proyecto puede ser no estándar. Consulta los patrones de detección en la [documentación en coreano](./README.ko.md#-문제-해결--troubleshooting) para tu stack.
486
+ **"0 domains detected"** — La estructura de tu proyecto puede ser no estándar. Consulta los patrones de detección en la [documentación en coreano](./README.ko.md#트러블슈팅) para tu stack.
487
+
488
+ **"0 dominios detectados" en proyecto Kotlin** — Asegúrate de que `build.gradle.kts` (o `build.gradle` con plugin kotlin) exista en la raíz, y los archivos fuente estén bajo `**/src/main/kotlin/`. Para proyectos multi-módulo, `settings.gradle.kts` debe contener sentencias `include()`. Los proyectos Kotlin de módulo único (sin `settings.gradle`) también son compatibles — los dominios se extraen de la estructura de paquetes/clases bajo `src/main/kotlin/`.
489
+
490
+ **"Lenguaje detectado como java en vez de kotlin"** — ClaudeOS-Core primero verifica el `build.gradle(.kts)` raíz, luego los archivos build de submódulos. Asegúrate de que al menos uno contenga `kotlin("jvm")` o `org.jetbrains.kotlin`.
491
+
492
+ **"CQRS no detectado"** — La detección de arquitectura depende de que los nombres de módulos contengan las palabras `command` y `query`. Si tus módulos usan nombres diferentes, puedes ajustar manualmente los prompts generados.
317
493
 
318
494
  ---
319
495
 
package/README.fr.md CHANGED
@@ -8,7 +8,7 @@ npx claudeos-core init
8
8
 
9
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
10
 
11
- [🇺🇸 English](./README.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) · [🇰🇷 한국어](./README.ko.md)
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
12
 
13
13
  ---
14
14
 
@@ -22,7 +22,7 @@ ClaudeOS-Core automatise l'ensemble du processus :
22
22
 
23
23
  1. **Scanne** votre projet — détecte automatiquement le stack, les domaines, l'ORM, la base de données et le gestionnaire de paquets
24
24
  2. **Analyse en profondeur** votre code source — patterns de contrôleurs, couches de service, conventions de nommage, gestion des erreurs, sécurité, tests et plus de 50 catégories
25
- 3. **Génère** un écosystème documentaire complet — `CLAUDE.md`, Standards (15–17 fichiers), Rules, Skills, Guides (9 fichiers), Master Plans, documentation BD et guide MCP
25
+ 3. **Génère** un écosystème documentaire complet — `CLAUDE.md`, Standards (15–19 fichiers), Rules, Skills, Guides (9 fichiers), Master Plans, documentation BD et guide MCP
26
26
  4. **Valide** tout — 6 outils de vérification intégrés garantissent la cohérence
27
27
 
28
28
  Temps total : **5–18 minutes**, selon la taille du projet. Zéro configuration manuelle.
@@ -33,16 +33,53 @@ Temps total : **5–18 minutes**, selon la taille du projet. Zéro configuration
33
33
 
34
34
  | Stack | Détection | Profondeur d'Analyse |
35
35
  |---|---|---|
36
- | **Java / Spring Boot** | `build.gradle`, `pom.xml` | 10 catégories, 59 sous-éléments |
36
+ | **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 patterns de paquets | 10 catégories, 59 sous-éléments |
37
+ | **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 catégories, 95 sous-éléments |
37
38
  | **Node.js / Express / NestJS** | `package.json` | 9 catégories, 57 sous-éléments |
38
- | **Next.js / React / Vue** | `package.json` (next, react, vue) | 9 catégories, 55 sous-éléments |
39
+ | **Next.js / React / Vue** | `package.json`, `next.config.*`, support FSD | 9 catégories, 55 sous-éléments |
39
40
  | **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 catégories, 55 sous-éléments |
40
41
  | **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 catégories, 58 sous-éléments |
41
42
 
42
- Détection automatique : langage et version, framework et version, ORM (MyBatis, JPA, Prisma, TypeORM, SQLAlchemy, etc.), base de données (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), gestionnaire de paquets (Gradle, Maven, npm, yarn, pnpm, pip, poetry).
43
+ 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).
43
44
 
44
45
  **Vous n'avez rien à spécifier. Tout est détecté automatiquement.**
45
46
 
47
+
48
+ ### Détection des Domaines Java (5 patterns avec fallback)
49
+
50
+ | Priorité | Pattern | Structure | Exemple |
51
+ |---|---|---|---|
52
+ | A | Couche d'abord | `controller/{domain}/` | `controller/user/UserController.java` |
53
+ | B | Domaine d'abord | `{domain}/controller/` | `user/controller/UserController.java` |
54
+ | D | Préfixe module | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
55
+ | E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
56
+ | C | Plat | `controller/*.java` | `controller/UserController.java` → extrait `user` du nom de classe |
57
+
58
+ Les domaines sans contrôleurs (service uniquement) sont aussi détectés. Ignorés : `common`, `config`, `util`, `front`, `admin`, `v1`, `v2`, etc.
59
+
60
+
61
+ ### Détection des domaines Kotlin multi-modules
62
+
63
+ Pour les projets Kotlin avec structure Gradle multi-modules (ex : monorepo CQRS) :
64
+
65
+ | Étape | Action | Exemple |
66
+ |---|---|---|
67
+ | 1 | Scanner `settings.gradle.kts` pour les `include()` | 14 modules trouvés |
68
+ | 2 | Détecter le type de module par son nom | `reservation-command-server` → type : `command` |
69
+ | 3 | Extraire le domaine du nom du module | `reservation-command-server` → domaine : `reservation` |
70
+ | 4 | Regrouper le même domaine entre modules | `reservation-command-server` + `common-query-server` → 1 domaine |
71
+ | 5 | Détecter l'architecture | Modules `command` + `query` présents → CQRS |
72
+
73
+ 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.
74
+
75
+ ### Détection des Domaines Frontend
76
+
77
+ - **App Router** : `app/{domain}/page.tsx` (Next.js)
78
+ - **Pages Router** : `pages/{domain}/index.tsx`
79
+ - **FSD (Feature-Sliced Design)** : `features/*/`, `widgets/*/`, `entities/*/`
80
+ - **RSC/Client split** : Détecte le pattern `client.tsx`, suit la séparation Server/Client
81
+ - **Fallback config** : Détecte Next.js/Vite/Nuxt depuis les fichiers de config (support monorepo)
82
+
46
83
  ---
47
84
 
48
85
  ## Démarrage Rapide
@@ -57,16 +94,138 @@ Détection automatique : langage et version, framework et version, ORM (MyBatis,
57
94
  ```bash
58
95
  cd /your/project/root
59
96
 
60
- # Option A : npx (recommandé)
97
+ # Option A : npx (recommandé — aucune installation requise)
61
98
  npx claudeos-core init
62
99
 
63
- # Option B : git clone (pour développement/contribution)
100
+ # Option B : installation globale
101
+ npm install -g claudeos-core
102
+ claudeos-core init
103
+
104
+ # Option C : devDependency du projet
105
+ npm install --save-dev claudeos-core
106
+ npx claudeos-core init
107
+
108
+ # Option D : git clone (pour développement/contribution)
64
109
  git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
65
110
  bash claudeos-core-tools/bootstrap.sh
66
111
  ```
67
112
 
68
113
  C'est tout. Après 5–18 minutes, toute la documentation est générée et prête à l'emploi.
69
114
 
115
+ ### Installation Manuelle Étape par Étape
116
+
117
+ 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.
118
+
119
+ #### Step 1 : Cloner et installer les dépendances
120
+
121
+ ```bash
122
+ cd /your/project/root
123
+
124
+ git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
125
+ cd claudeos-core-tools && npm install && cd ..
126
+ ```
127
+
128
+ #### Step 2 : Créer la structure des répertoires
129
+
130
+ ```bash
131
+ # Rules
132
+ mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
133
+
134
+ # Standards
135
+ mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
136
+
137
+ # Skills
138
+ mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
139
+
140
+ # Guide, Plan, Database, MCP, Generated
141
+ mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
142
+ mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
143
+ ```
144
+
145
+ #### Step 3 : Exécuter plan-installer (analyse du projet)
146
+
147
+ Scanne votre projet, détecte le stack, trouve les domaines, les divise en groupes et génère les prompts.
148
+
149
+ ```bash
150
+ node claudeos-core-tools/plan-installer/index.js
151
+ ```
152
+
153
+ **Sortie (`claudeos-core/generated/`) :**
154
+ - `project-analysis.json` — stack détecté, domaines, info frontend
155
+ - `domain-groups.json` — groupes de domaines pour le Pass 1
156
+ - `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — prompts d'analyse
157
+ - `pass2-prompt.md` — prompt de fusion
158
+ - `pass3-prompt.md` — prompt de génération
159
+
160
+ Vous pouvez inspecter ces fichiers pour vérifier la précision de la détection avant de continuer.
161
+
162
+ #### Step 4 : Pass 1 — Analyse approfondie du code par groupe de domaines
163
+
164
+ Exécutez Pass 1 pour chaque groupe de domaines. Vérifiez `domain-groups.json` pour le nombre de groupes.
165
+
166
+ ```bash
167
+ # Check groups
168
+ cat claudeos-core/generated/domain-groups.json | node -e "
169
+ const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
170
+ g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
171
+ "
172
+
173
+ # Run Pass 1 for group 1:
174
+ cat claudeos-core/generated/pass1-backend-prompt.md \
175
+ | sed "s/{{DOMAIN_GROUP}}/user, order, product/g" \
176
+ | sed "s/{{PASS_NUM}}/1/g" \
177
+ | claude -p --dangerously-skip-permissions
178
+
179
+ # For frontend groups, use pass1-frontend-prompt.md instead
180
+ ```
181
+
182
+ **Vérifier :** `ls claudeos-core/generated/pass1-*.json` doit afficher un JSON par groupe.
183
+
184
+ #### Step 5 : Pass 2 — Fusion des résultats d'analyse
185
+
186
+ ```bash
187
+ cat claudeos-core/generated/pass2-prompt.md \
188
+ | claude -p --dangerously-skip-permissions
189
+ ```
190
+
191
+ **Vérifier :** `claudeos-core/generated/pass2-merged.json` doit exister avec 9+ clés de niveau supérieur.
192
+
193
+ #### Step 6 : Pass 3 — Générer toute la documentation
194
+
195
+ ```bash
196
+ cat claudeos-core/generated/pass3-prompt.md \
197
+ | claude -p --dangerously-skip-permissions
198
+ ```
199
+
200
+ **Vérifier :** `CLAUDE.md` doit exister à la racine du projet.
201
+
202
+ #### Step 7 : Exécuter les outils de vérification
203
+
204
+ ```bash
205
+ # Générer les métadonnées (requis avant les autres vérifications)
206
+ node claudeos-core-tools/manifest-generator/index.js
207
+
208
+ # Exécuter toutes les vérifications
209
+ node claudeos-core-tools/health-checker/index.js
210
+
211
+ # Ou exécuter les vérifications individuellement :
212
+ node claudeos-core-tools/import-linter/index.js # @import validation
213
+ node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ disk
214
+ node claudeos-core-tools/sync-checker/index.js # Sync status
215
+ node claudeos-core-tools/content-validator/index.js # Content quality
216
+ node claudeos-core-tools/pass-json-validator/index.js # JSON format
217
+ ```
218
+
219
+ #### Step 8 : Vérifier les résultats
220
+
221
+ ```bash
222
+ find .claude claudeos-core -type f | grep -v node_modules | wc -l
223
+ head -30 CLAUDE.md
224
+ ls .claude/rules/*/
225
+ ```
226
+
227
+ > **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. Supprimez le fichier pour forcer la ré-exécution.
228
+
70
229
  ### Commencez à Utiliser
71
230
 
72
231
  ```
@@ -108,7 +267,7 @@ npx claudeos-core init
108
267
 
109
268
  ### Pourquoi 3 Pass ?
110
269
 
111
- **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–59 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.
270
+ **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.
112
271
 
113
272
  **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).
114
273
 
@@ -134,7 +293,7 @@ your-project/
134
293
 
135
294
  ├── claudeos-core/ ← Répertoire principal de sortie
136
295
  │ ├── generated/ ← JSON d'analyse + prompts dynamiques
137
- │ ├── standard/ ← Standards de code (15-17 fichiers)
296
+ │ ├── standard/ ← Standards de code (15-19 fichiers)
138
297
  │ ├── skills/ ← Skills de scaffolding CRUD
139
298
  │ ├── guide/ ← Onboarding, FAQ, dépannage (9 fichiers)
140
299
  │ ├── plan/ ← Master Plans (sauvegarde/restauration)
@@ -228,9 +387,10 @@ npx claudeos-core restore
228
387
 
229
388
  | | ClaudeOS-Core | SuperClaude | CLAUDE.md Manuel | Skills Génériques |
230
389
  |---|---|---|---|---|
231
- | **Lit votre code** | ✅ Analyse approfondie (55–59 catégories) | ❌ Injection de comportement | ❌ Écriture manuelle | ❌ Templates prédéfinis |
390
+ | **Lit votre code** | ✅ Analyse approfondie (55–95 catégories) | ❌ Injection de comportement | ❌ Écriture manuelle | ❌ Templates prédéfinis |
232
391
  | **Sortie spécifique au projet** | ✅ Chaque fichier reflète vos patterns | ❌ Commandes génériques | Partiel | ❌ Taille unique |
233
392
  | **Multi-stack** | ✅ Auto-détection + analyse séparée | ❌ Agnostique au stack | Manuel | Variable |
393
+ | **Kotlin + CQRS/BFF** | ✅ Multi-module, Command/Query split | ❌ | ❌ | ❌ |
234
394
  | **Auto-vérification** | ✅ 6 outils de validation | ❌ | ❌ | ❌ |
235
395
  | **Sauvegarde / Restauration** | ✅ Système Master Plan | ❌ | ❌ | ❌ |
236
396
  | **Temps de configuration** | ~5–18 min (automatique) | ~5 min (config manuelle) | Heures–Jours | ~5 min |
@@ -254,6 +414,15 @@ Entièrement supporté. ClaudeOS-Core auto-détecte les deux stacks, étiquette
254
414
  **Q : Que se passe-t-il lors d'une ré-exécution ?**
255
415
  Pass 1/2 sont ignorés si leur JSON existe déjà. Pass 3 est toujours ré-exécuté. Les versions précédentes peuvent être restaurées depuis les Master Plans.
256
416
 
417
+ **Q : Kotlin est-il supporté ?**
418
+ 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.).
419
+
420
+ **Q : Qu'en est-il de l'architecture CQRS / BFF ?**
421
+ 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.
422
+
423
+ **Q : Qu'en est-il des monorepos multi-modules Gradle ?**
424
+ 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.
425
+
257
426
  ---
258
427
 
259
428
  ## Structure des Templates
@@ -262,6 +431,7 @@ Pass 1/2 sont ignorés si leur JSON existe déjà. Pass 3 est toujours ré-exéc
262
431
  pass-prompts/templates/
263
432
  ├── common/ # En-tête/pied de page partagés
264
433
  ├── java-spring/ # Java / Spring Boot
434
+ ├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
265
435
  ├── node-express/ # Node.js / Express / NestJS
266
436
  ├── node-nextjs/ # Next.js / React / Vue
267
437
  ├── python-django/ # Python / Django (DRF)
@@ -313,7 +483,13 @@ my-monorepo/ ← Ne pas exécuter ici (la racine n'a pas de d
313
483
 
314
484
  **"npm install failed"** — La version de Node.js peut être trop ancienne. v18+ requis.
315
485
 
316
- **"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#-문제-해결--troubleshooting) pour votre stack.
486
+ **"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.
487
+
488
+ **« 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/`.
489
+
490
+ **« 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`.
491
+
492
+ **« 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.
317
493
 
318
494
  ---
319
495