claudeos-core 1.1.0 → 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.
Files changed (44) hide show
  1. package/CHANGELOG.md +62 -3
  2. package/CONTRIBUTING.md +7 -2
  3. package/README.de.md +164 -9
  4. package/README.es.md +164 -9
  5. package/README.fr.md +164 -9
  6. package/README.hi.md +164 -9
  7. package/README.ja.md +165 -10
  8. package/README.ko.md +315 -368
  9. package/README.md +178 -9
  10. package/README.ru.md +164 -9
  11. package/README.vi.md +165 -10
  12. package/README.zh-CN.md +165 -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/CHANGELOG.md CHANGED
@@ -1,6 +1,65 @@
1
1
  # Changelog
2
2
 
3
- ## [1.1.0] — 2026-04
3
+ ## [1.2.0] — 2026-04-01
4
+
5
+ ### Added
6
+ - **Multi-language output (i18n)** — `--lang` parameter selects output language for all generated files
7
+ - 10 languages supported: en, ko, zh-CN, ja, es, vi, hi, ru, fr, de
8
+ - Analysis (Pass 1-2) remains in English; generated files (Pass 3) are in selected language
9
+ - Interactive language selection when `--lang` is omitted
10
+ - Language instruction injected into Pass 3 prompt via `lang-instructions.json` template
11
+ - Code syntax, JSON keys, frontmatter keys stay in English; only documentation text is localized
12
+ - `project-analysis.json` now includes `lang` field
13
+ - `content-validator` updated with language-aware section keyword validation (10 languages)
14
+ - `pass-json-validator` now validates and displays `lang` field
15
+ - `bootstrap.sh` supports `--lang` parameter with interactive fallback
16
+ - **Kotlin / Spring Boot support** — Dedicated `kotlin-spring` template (pass1/pass2/pass3)
17
+ - Kotlin-specific analysis: data class, sealed class, coroutines, extension functions, MockK, Kotest, kotlin-logging
18
+ - 12 analysis categories, 95 sub-items in Pass 1 (vs Java's 10/59)
19
+ - 14 merge categories in Pass 2 (vs Java's 12)
20
+ - 14 CRUD scaffold sub-skills in Pass 3 (vs Java's 8)
21
+ - **CQRS architecture auto-detection** — Detects `command`/`query`/`bff`/`integration` from module names in `settings.gradle(.kts)`
22
+ - **BFF (Backend For Frontend) analysis** — Feign Client patterns, response composition, error propagation, inter-module communication
23
+ - **Gradle multi-module monorepo scanning** — `**/src/main/kotlin/**/*.kt` across all submodules, regardless of nesting depth
24
+ - **Module type classification** — command, query, bff, integration, standalone, library
25
+ - **Domain grouping across modules** — Same domain in Command + Query modules merged into single domain for analysis
26
+ - **Shared query module resolution** — `common-query-server` and similar shared query modules are redistributed to actual domains (Pattern A: package-based, Pattern B: class-name-based extraction)
27
+ - **VO (Value Object) pattern support** — DTO vs VO distinction, value class VO, immutability rules, VO location analysis
28
+ - **Aggregate / Aggregate Root pattern support** — DDD aggregate boundary definition, Aggregate Root identification, repository-per-aggregate, domain event publishing, inter-aggregate references
29
+ - **Aggregator service pattern support** — Aggregator vs BFF distinction, internal service aggregation analysis
30
+ - **Shared library detection** — `shared-lib`, `integration-lib`, `*-lib` detected as special domains
31
+ - **`build.gradle.kts` support** — Kotlin DSL build files detected alongside Groovy DSL
32
+ - **Submodule Kotlin fallback** — If root build file doesn't have Kotlin plugin, checks up to 5 submodule build files
33
+ - **Installation options expanded** — Added `npm install -g` and `npm install --save-dev` options in all 10 READMEs
34
+ - **Manual step-by-step installation** — 8-step guide added to all 10 READMEs
35
+ - **Full English localization** — All JS comments, console messages, pass prompts, and bootstrap.sh translated to English
36
+
37
+ ### Changed
38
+ - `detectStack()` refactored: unified `build.gradle` / `build.gradle.kts` detection path
39
+ - `selectTemplates()` now routes `kotlin` → `kotlin-spring` before Java fallback
40
+ - `plan-validator` output file renamed `plan-manifest.json` → `plan-sync-status.json` (avoids overwriting manifest-generator output)
41
+ - `sync-checker` exit code: now exits 1 only for orphaned files (actual breakage), exits 0 for unregistered files (informational)
42
+ - `import-linter` now scans `database/` and `mcp-guide/` directories (aligned with other tools)
43
+ - `import-graph.json` now includes imports from all 6 directories (was rules/ only)
44
+ - Java `DTO/Entity` analysis category renamed to `DTO/VO/Entity` with VO pattern support added
45
+
46
+ ### Fixed
47
+ - **Security**: Eliminated shell pipe command injection in `cli.js` (`runClaudePrompt` now uses stdin `input` option)
48
+ - **Security**: Fixed Perl code injection in `bootstrap.sh` (domain list now passed via `$ENV{}`)
49
+ - **Security**: Added Bash version guard in `bootstrap.sh` (prevents silent failure when run with `sh`)
50
+ - **Security**: Windows `escapeShellArg` now handles `%`, `^`, `&`, `|`, `<`, `>`, `!` metacharacters
51
+ - **Kotlin single-module fallback**: Projects without `settings.gradle` or `servers/` directory now detect domains from `src/main/kotlin/` (previously returned 0 domains)
52
+ - **plan-validator `--execute`**: Now creates `.bak` backup before overwriting files
53
+ - **Spring Boot version detection**: Added 3 regex patterns for modern Gradle DSL (`plugins {}`, `platform()`)
54
+ - **Port detection**: Now matches only `server.port` (was matching any `port:` including database/Redis ports)
55
+ - **Nested code fence handling**: `plan-validator` now tracks nesting depth to avoid false closing fence detection
56
+ - **stale-report.json crash**: All 4 tools now wrap `JSON.parse` in try/catch (prevents cascade crash on corrupted file)
57
+ - **package.json parse error**: `detectStack()` now catches malformed `package.json` instead of crashing
58
+ - **Module path prefix overlap**: Kotlin module scan appends `/` to prevent `reservation` matching `reservation-ext`
59
+ - **Acronym class names**: `resolveSharedQueryDomains` now handles `IAM`, `BFF` style names
60
+ - `.gitignore`: Added `.env*` pattern, removed redundant entry
61
+
62
+ ## [1.1.0] — 2026-04-01
4
63
 
5
64
  ### Added
6
65
  - **Java 5-pattern domain detection** (A→B/D→E→C fallback):
@@ -14,7 +73,7 @@
14
73
  - **RSC/Client component detection**: Counts `client.tsx` files, tracks RSC+Client split pattern per domain
15
74
  - **Config file fallback**: Detect Next.js/Vite/Nuxt from config files when framework not in package.json (monorepo support)
16
75
  - **Windows glob compatibility**: Direct file scan fallback for Java and Frontend when glob patterns fail on Windows
17
- - **Pipe-based prompt delivery**: Write prompt to temp file and pipe to `claude -p` to bypass Windows 8191-char command-line limit
76
+ - **Stdin-based prompt delivery**: Pass prompt via `execSync` `input` option to `claude -p` (no shell pipe, no temp file — secure and cross-platform)
18
77
  - **8 language READMEs**: Chinese, Japanese, Spanish, Vietnamese, Hindi, Russian, French, German
19
78
  - **Monorepo Support section** in all 10 READMEs (Turborepo, Nx, Lerna, pnpm workspaces)
20
79
  - **Cross-language navigation links** in all READMEs (Korean last position)
@@ -24,7 +83,7 @@
24
83
  - `frontend` variable reference before initialization (RSC stats)
25
84
  - npm bin path warning (`npm pkg fix`)
26
85
 
27
- ## [1.0.0] — 2025
86
+ ## [1.0.0] — 2025-12-01
28
87
 
29
88
  ### Added
30
89
  - 3-Pass pipeline: Deep analysis → Merge → Generate
package/CONTRIBUTING.md CHANGED
@@ -14,6 +14,7 @@ Thank you for your interest in contributing! Here's how you can help.
14
14
 
15
15
  - ~~Monorepo deep support~~ — Implemented (Turborepo, Nx, Lerna, pnpm workspaces)
16
16
  - ~~Localization~~ — 10 languages available (EN, KO, ZH-CN, JA, ES, VI, HI, RU, FR, DE)
17
+ - ~~Kotlin / Spring Boot~~ — Implemented with CQRS, BFF, and multi-module monorepo support
17
18
 
18
19
  ## How to Contribute
19
20
 
@@ -27,11 +28,15 @@ Thank you for your interest in contributing! Here's how you can help.
27
28
 
28
29
  ## Adding a New Stack Template
29
30
 
31
+ See `kotlin-spring/` as a reference implementation — it shows how to add CQRS/multi-module awareness on top of the standard 3-pass structure.
32
+
30
33
  1. Create a new directory under `pass-prompts/templates/your-stack/`
31
34
  2. Add `pass1.md`, `pass2.md`, `pass3.md` following the existing template structure
32
- 3. Update `selectTemplates()` in `plan-installer/index.js`
35
+ 3. Update `detectStack()` in `plan-installer/index.js` to detect the new language/framework
33
36
  4. Update `scanStructure()` to detect the new stack's domains
34
- 5. Update `README.md` Supported Stacks table
37
+ 5. Update `selectTemplates()` in `plan-installer/index.js` to route to the new template
38
+ 6. Update `README.md` Supported Stacks table
39
+ 7. Add FAQ and Troubleshooting entries for the new stack
35
40
 
36
41
  ## Code Style
37
42
 
package/README.de.md CHANGED
@@ -8,7 +8,7 @@ npx claudeos-core init
8
8
 
9
9
  ClaudeOS-Core liest Ihre Codebasis, extrahiert jedes Muster und generiert einen vollständigen Satz von Standards, Rules, Skills und Guides, die auf _Ihr_ Projekt zugeschnitten sind. Danach, wenn Sie Claude Code sagen „Erstelle ein CRUD für Bestellungen", erzeugt es Code, der exakt Ihren bestehenden Mustern entspricht.
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) · [🇫🇷 Français](./README.fr.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) · [🇫🇷 Français](./README.fr.md)
12
12
 
13
13
  ---
14
14
 
@@ -22,7 +22,7 @@ ClaudeOS-Core automatisiert den gesamten Prozess:
22
22
 
23
23
  1. **Scannt** Ihr Projekt — erkennt automatisch Stack, Domänen, ORM, Datenbank, Paketmanager
24
24
  2. **Analysiert** Ihren Quellcode tiefgehend — Controller-Muster, Service-Schichten, Namenskonventionen, Fehlerbehandlung, Sicherheit, Tests und 50+ Kategorien
25
- 3. **Generiert** ein vollständiges Dokumentationsökosystem — `CLAUDE.md`, Standards (15–17 Dateien), Rules, Skills, Guides (9 Dateien), Master Plans, DB-Dokumentation und MCP-Leitfaden
25
+ 3. **Generiert** ein vollständiges Dokumentationsökosystem — `CLAUDE.md`, Standards (15–19 Dateien), Rules, Skills, Guides (9 Dateien), Master Plans, DB-Dokumentation und MCP-Leitfaden
26
26
  4. **Validiert** alles — 6 integrierte Verifizierungstools gewährleisten Konsistenz
27
27
 
28
28
  Gesamtzeit: **5–18 Minuten**, abhängig von der Projektgröße. Null manuelle Konfiguration.
@@ -34,12 +34,13 @@ Gesamtzeit: **5–18 Minuten**, abhängig von der Projektgröße. Null manuelle
34
34
  | Stack | Erkennung | Analysetiefe |
35
35
  |---|---|---|
36
36
  | **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 Paketmuster | 10 Kategorien, 59 Unterpunkte |
37
+ | **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 Kategorien, 95 Unterpunkte |
37
38
  | **Node.js / Express / NestJS** | `package.json` | 9 Kategorien, 57 Unterpunkte |
38
39
  | **Next.js / React / Vue** | `package.json`, `next.config.*`, FSD-Unterstützung | 9 Kategorien, 55 Unterpunkte |
39
40
  | **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 Kategorien, 55 Unterpunkte |
40
41
  | **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 Kategorien, 58 Unterpunkte |
41
42
 
42
- Automatisch erkannt: Sprache und Version, Framework und Version, ORM (MyBatis, JPA, Prisma, TypeORM, SQLAlchemy usw.), Datenbank (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), Paketmanager (Gradle, Maven, npm, yarn, pnpm, pip, poetry).
43
+ Automatisch erkannt: Sprache und Version, Framework und Version, ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy usw.), Datenbank (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), Paketmanager (Gradle, Maven, npm, yarn, pnpm, pip, poetry), Architektur (CQRS, BFF — aus Modulnamen erkannt), Multi-Modul-Struktur (aus settings.gradle).
43
44
 
44
45
  **Sie müssen nichts angeben. Alles wird automatisch erkannt.**
45
46
 
@@ -56,6 +57,21 @@ Automatisch erkannt: Sprache und Version, Framework und Version, ORM (MyBatis, J
56
57
 
57
58
  Domains nur mit Services (ohne Controller) werden ebenfalls erkannt. Übersprungen: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2` usw.
58
59
 
60
+
61
+ ### Kotlin Multi-Modul Domain-Erkennung
62
+
63
+ Für Kotlin-Projekte mit Gradle-Multi-Modul-Struktur (z.B. CQRS-Monorepo):
64
+
65
+ | Schritt | Aktion | Beispiel |
66
+ |---|---|---|
67
+ | 1 | `settings.gradle.kts` nach `include()` scannen | 14 Module gefunden |
68
+ | 2 | Modultyp aus Name erkennen | `reservation-command-server` → Typ: `command` |
69
+ | 3 | Domain aus Modulname extrahieren | `reservation-command-server` → Domain: `reservation` |
70
+ | 4 | Gleiche Domain über Module gruppieren | `reservation-command-server` + `common-query-server` → 1 Domain |
71
+ | 5 | Architektur erkennen | Hat `command` + `query` Module → CQRS |
72
+
73
+ Unterstützte Modultypen: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Gemeinsame Bibliotheken (`shared-lib`, `integration-lib`) werden als spezielle Domains erkannt.
74
+
59
75
  ### Frontend-Domain-Erkennung
60
76
 
61
77
  - **App Router**: `app/{domain}/page.tsx` (Next.js)
@@ -78,16 +94,138 @@ Domains nur mit Services (ohne Controller) werden ebenfalls erkannt. Übersprung
78
94
  ```bash
79
95
  cd /your/project/root
80
96
 
81
- # Option A: npx (empfohlen)
97
+ # Option A: npx (empfohlen — keine Installation nötig)
98
+ npx claudeos-core init
99
+
100
+ # Option B: globale Installation
101
+ npm install -g claudeos-core
102
+ claudeos-core init
103
+
104
+ # Option C: Projekt devDependency
105
+ npm install --save-dev claudeos-core
82
106
  npx claudeos-core init
83
107
 
84
- # Option B: git clone (für Entwicklung/Beiträge)
108
+ # Option D: git clone (für Entwicklung/Beiträge)
85
109
  git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
86
110
  bash claudeos-core-tools/bootstrap.sh
87
111
  ```
88
112
 
89
113
  Das war's. Nach 5–18 Minuten ist die gesamte Dokumentation generiert und einsatzbereit.
90
114
 
115
+ ### Manuelle Schritt-für-Schritt-Installation
116
+
117
+ Wenn Sie volle Kontrolle über jede Phase wünschen — oder wenn die automatisierte Pipeline bei einem Schritt fehlschlägt — können Sie jede Stufe manuell ausführen. Dies ist auch nützlich, um die interne Funktionsweise von ClaudeOS-Core zu verstehen.
118
+
119
+ #### Step 1: Klonen und Abhängigkeiten installieren
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: Verzeichnisstruktur erstellen
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: plan-installer ausführen (Projektanalyse)
146
+
147
+ Scannt Ihr Projekt, erkennt den Stack, findet Domains, teilt sie in Gruppen auf und generiert Prompts.
148
+
149
+ ```bash
150
+ node claudeos-core-tools/plan-installer/index.js
151
+ ```
152
+
153
+ **Ausgabe (`claudeos-core/generated/`):**
154
+ - `project-analysis.json` — erkannter Stack, Domains, Frontend-Info
155
+ - `domain-groups.json` — Domain-Gruppen für Pass 1
156
+ - `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — Analyse-Prompts
157
+ - `pass2-prompt.md` — Merge-Prompt
158
+ - `pass3-prompt.md` — Generierungs-Prompt
159
+
160
+ Sie können diese Dateien inspizieren, um die Erkennungsgenauigkeit zu überprüfen, bevor Sie fortfahren.
161
+
162
+ #### Step 4: Pass 1 — Tiefgehende Code-Analyse pro Domain-Gruppe
163
+
164
+ Führen Sie Pass 1 für jede Domain-Gruppe aus. Prüfen Sie `domain-groups.json` für die Anzahl der Gruppen.
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
+ **Prüfen:** `ls claudeos-core/generated/pass1-*.json` sollte pro Gruppe eine JSON zeigen.
183
+
184
+ #### Step 5: Pass 2 — Analyseergebnisse zusammenführen
185
+
186
+ ```bash
187
+ cat claudeos-core/generated/pass2-prompt.md \
188
+ | claude -p --dangerously-skip-permissions
189
+ ```
190
+
191
+ **Prüfen:** `claudeos-core/generated/pass2-merged.json` sollte existieren mit 9+ Top-Level-Schlüsseln.
192
+
193
+ #### Step 6: Pass 3 — Gesamte Dokumentation generieren
194
+
195
+ ```bash
196
+ cat claudeos-core/generated/pass3-prompt.md \
197
+ | claude -p --dangerously-skip-permissions
198
+ ```
199
+
200
+ **Prüfen:** `CLAUDE.md` sollte im Projekt-Root existieren.
201
+
202
+ #### Step 7: Verifizierungstools ausführen
203
+
204
+ ```bash
205
+ # Metadaten generieren (vor anderen Prüfungen erforderlich)
206
+ node claudeos-core-tools/manifest-generator/index.js
207
+
208
+ # Alle Prüfungen ausführen
209
+ node claudeos-core-tools/health-checker/index.js
210
+
211
+ # Oder einzelne Prüfungen ausführen:
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: Ergebnisse überprüfen
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
+ > **Tipp:** Wenn ein Schritt fehlschlägt, können Sie nur diesen Schritt erneut ausführen. Pass 1/2-Ergebnisse werden gecacht — wenn `pass1-N.json` oder `pass2-merged.json` bereits existiert, überspringt die automatisierte Pipeline sie. Löschen Sie die Datei, um eine erneute Ausführung zu erzwingen.
228
+
91
229
  ### Nutzung starten
92
230
 
93
231
  ```
@@ -129,7 +267,7 @@ npx claudeos-core init
129
267
 
130
268
  ### Warum 3 Passes?
131
269
 
132
- **Pass 1** ist der einzige Pass, der Ihren Quellcode liest. Er wählt repräsentative Dateien pro Domäne aus und extrahiert Muster über 55–59 Analysekategorien (pro Stack). Bei großen Projekten wird Pass 1 mehrfach ausgeführt — einmal pro Domänengruppe. In Multi-Stack-Projekten (z.B. Java-Backend + React-Frontend) verwenden Backend und Frontend **unterschiedliche Analyse-Prompts**, die auf jeden Stack zugeschnitten sind.
270
+ **Pass 1** ist der einzige Pass, der Ihren Quellcode liest. Er wählt repräsentative Dateien pro Domäne aus und extrahiert Muster über 55–95 Analysekategorien (pro Stack). Bei großen Projekten wird Pass 1 mehrfach ausgeführt — einmal pro Domänengruppe. In Multi-Stack-Projekten (z.B. Java-Backend + React-Frontend) verwenden Backend und Frontend **unterschiedliche Analyse-Prompts**, die auf jeden Stack zugeschnitten sind.
133
271
 
134
272
  **Pass 2** führt alle Pass-1-Ergebnisse zu einer einheitlichen Analyse zusammen: gemeinsame Muster (100% geteilt), Mehrheitsmuster (50%+ geteilt), domänenspezifische Muster, Anti-Muster nach Schweregrad und Querschnittsthemen (Benennung, Sicherheit, DB, Tests, Logging, Performance).
135
273
 
@@ -155,7 +293,7 @@ your-project/
155
293
 
156
294
  ├── claudeos-core/ ← Hauptausgabeverzeichnis
157
295
  │ ├── generated/ ← Analyse-JSON + dynamische Prompts
158
- │ ├── standard/ ← Code-Standards (15-17 Dateien)
296
+ │ ├── standard/ ← Code-Standards (15-19 Dateien)
159
297
  │ ├── skills/ ← CRUD-Scaffolding-Skills
160
298
  │ ├── guide/ ← Onboarding, FAQ, Fehlerbehebung (9 Dateien)
161
299
  │ ├── plan/ ← Master Plans (Backup/Wiederherstellung)
@@ -249,9 +387,10 @@ npx claudeos-core restore
249
387
 
250
388
  | | ClaudeOS-Core | SuperClaude | Manuelle CLAUDE.md | Generische Skills |
251
389
  |---|---|---|---|---|
252
- | **Liest Ihren Code** | ✅ Tiefenanalyse (55–59 Kategorien) | ❌ Verhaltensinjektion | ❌ Manuelles Schreiben | ❌ Vorgefertigte Vorlagen |
390
+ | **Liest Ihren Code** | ✅ Tiefenanalyse (55–95 Kategorien) | ❌ Verhaltensinjektion | ❌ Manuelles Schreiben | ❌ Vorgefertigte Vorlagen |
253
391
  | **Projektspezifische Ausgabe** | ✅ Jede Datei spiegelt Ihre Muster wider | ❌ Generische Befehle | Teilweise | ❌ Einheitsgröße |
254
392
  | **Multi-Stack** | ✅ Auto-Erkennung + separate Analyse | ❌ Stack-agnostisch | Manuell | Variiert |
393
+ | **Kotlin + CQRS/BFF** | ✅ Multi-Modul, Command/Query-Trennung | ❌ | ❌ | ❌ |
255
394
  | **Selbstverifizierung** | ✅ 6 Validierungstools | ❌ | ❌ | ❌ |
256
395
  | **Backup / Wiederherstellung** | ✅ Master Plan System | ❌ | ❌ | ❌ |
257
396
  | **Einrichtungszeit** | ~5–18 Min (automatisch) | ~5 Min (manuelle Konfig) | Stunden–Tage | ~5 Min |
@@ -275,6 +414,15 @@ Vollständig unterstützt. ClaudeOS-Core erkennt automatisch beide Stacks, taggt
275
414
  **F: Was passiert bei erneutem Ausführen?**
276
415
  Pass 1/2 werden übersprungen, wenn ihr JSON bereits existiert. Pass 3 wird immer erneut ausgeführt. Frühere Versionen können aus Master Plans wiederhergestellt werden.
277
416
 
417
+ **F: Wird Kotlin unterstützt?**
418
+ Ja. ClaudeOS-Core erkennt Kotlin automatisch aus `build.gradle.kts` oder dem Kotlin-Plugin in `build.gradle`. Es verwendet ein dediziertes `kotlin-spring`-Template mit Kotlin-spezifischer Analyse (Data Classes, Sealed Classes, Coroutines, Extension Functions, MockK usw.).
419
+
420
+ **F: Was ist mit CQRS / BFF-Architektur?**
421
+ Vollständig unterstützt für Kotlin-Multi-Modul-Projekte. ClaudeOS-Core liest `settings.gradle.kts`, erkennt Modultypen (command, query, bff, integration) aus den Modulnamen und gruppiert dieselbe Domäne über Command/Query-Module. Die generierten Standards enthalten separate Regeln für Command-Controller vs. Query-Controller, BFF/Feign-Patterns und Inter-Modul-Kommunikationskonventionen.
422
+
423
+ **F: Was ist mit Gradle-Multi-Modul-Monorepos?**
424
+ ClaudeOS-Core scannt alle Submodule (`**/src/main/kotlin/**/*.kt`) unabhängig von der Verschachtelungstiefe. Modultypen werden aus Namenskonventionen abgeleitet (z.B. `reservation-command-server` → Domäne: `reservation`, Typ: `command`). Gemeinsame Bibliotheken (`shared-lib`, `integration-lib`) werden ebenfalls erkannt.
425
+
278
426
  ---
279
427
 
280
428
  ## Template-Struktur
@@ -283,6 +431,7 @@ Pass 1/2 werden übersprungen, wenn ihr JSON bereits existiert. Pass 3 wird imme
283
431
  pass-prompts/templates/
284
432
  ├── common/ # Gemeinsamer Header/Footer
285
433
  ├── java-spring/ # Java / Spring Boot
434
+ ├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
286
435
  ├── node-express/ # Node.js / Express / NestJS
287
436
  ├── node-nextjs/ # Next.js / React / Vue
288
437
  ├── python-django/ # Python / Django (DRF)
@@ -334,7 +483,13 @@ my-monorepo/ ← Nicht hier ausführen (Root hat keine Framew
334
483
 
335
484
  **"npm install failed"** — Node.js-Version könnte zu niedrig sein. v18+ erforderlich.
336
485
 
337
- **"0 domains detected"** — Ihre Projektstruktur könnte nicht standardmäßig sein. Siehe die Erkennungsmuster in der [koreanischen Dokumentation](./README.ko.md#-문제-해결--troubleshooting) für Ihren Stack.
486
+ **"0 domains detected"** — Ihre Projektstruktur könnte nicht standardmäßig sein. Siehe die Erkennungsmuster in der [koreanischen Dokumentation](./README.ko.md#트러블슈팅) für Ihren Stack.
487
+
488
+ **„0 Domains erkannt" bei Kotlin-Projekt** — Stellen Sie sicher, dass `build.gradle.kts` (oder `build.gradle` mit Kotlin-Plugin) im Projektstamm existiert und Quelldateien unter `**/src/main/kotlin/` liegen. Bei Multi-Modul-Projekten muss `settings.gradle.kts` `include()`-Anweisungen enthalten. Einzelmodul-Kotlin-Projekte (ohne `settings.gradle`) werden ebenfalls unterstützt — Domänen werden aus der Paket-/Klassenstruktur unter `src/main/kotlin/` extrahiert.
489
+
490
+ **„Sprache als java statt kotlin erkannt"** — ClaudeOS-Core prüft zuerst die Root-`build.gradle(.kts)`, dann Submodul-Build-Dateien. Stellen Sie sicher, dass mindestens eine `kotlin("jvm")` oder `org.jetbrains.kotlin` enthält.
491
+
492
+ **„CQRS nicht erkannt"** — Die Architekturerkennung basiert auf den Schlüsselwörtern `command` und `query` in Modulnamen. Wenn Ihre Module andere Bezeichnungen verwenden, können Sie die generierten Prompts nach dem plan-installer manuell anpassen.
338
493
 
339
494
  ---
340
495
 
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.
@@ -34,12 +34,13 @@ Tiempo total: **5–18 minutos**, según el tamaño del proyecto. Cero configura
34
34
  | Stack | Detección | Profundidad de Análisis |
35
35
  |---|---|---|
36
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
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
 
@@ -56,6 +57,21 @@ Detección automática: lenguaje y versión, framework y versión, ORM (MyBatis,
56
57
 
57
58
  Los dominios solo con servicios (sin controladores) también se detectan. Se omiten: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2`, etc.
58
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
+
59
75
  ### Detección de Dominios Frontend
60
76
 
61
77
  - **App Router**: `app/{domain}/page.tsx` (Next.js)
@@ -78,16 +94,138 @@ Los dominios solo con servicios (sin controladores) también se detectan. Se omi
78
94
  ```bash
79
95
  cd /your/project/root
80
96
 
81
- # Opción A: npx (recomendado)
97
+ # Opción A: npx (recomendado — sin instalación)
98
+ npx claudeos-core init
99
+
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
82
106
  npx claudeos-core init
83
107
 
84
- # Opción B: git clone (para desarrollo/contribución)
108
+ # Opción D: git clone (para desarrollo/contribución)
85
109
  git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
86
110
  bash claudeos-core-tools/bootstrap.sh
87
111
  ```
88
112
 
89
113
  Eso es todo. Después de 5–18 minutos, toda la documentación estará generada y lista para usar.
90
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
+
91
229
  ### Empieza a Usar
92
230
 
93
231
  ```
@@ -129,7 +267,7 @@ npx claudeos-core init
129
267
 
130
268
  ### ¿Por Qué 3 Pasadas?
131
269
 
132
- **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.
133
271
 
134
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).
135
273
 
@@ -155,7 +293,7 @@ your-project/
155
293
 
156
294
  ├── claudeos-core/ ← Directorio principal de salida
157
295
  │ ├── generated/ ← JSON de análisis + prompts dinámicos
158
- │ ├── standard/ ← Estándares de código (15-17 archivos)
296
+ │ ├── standard/ ← Estándares de código (15-19 archivos)
159
297
  │ ├── skills/ ← Skills de scaffolding CRUD
160
298
  │ ├── guide/ ← Onboarding, FAQ, troubleshooting (9 archivos)
161
299
  │ ├── plan/ ← Master Plans (backup/restauración)
@@ -249,9 +387,10 @@ npx claudeos-core restore
249
387
 
250
388
  | | ClaudeOS-Core | SuperClaude | CLAUDE.md Manual | Skills Genéricos |
251
389
  |---|---|---|---|---|
252
- | **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 |
253
391
  | **Salida específica del proyecto** | ✅ Cada archivo refleja tus patrones | ❌ Comandos genéricos | Parcial | ❌ Talla única |
254
392
  | **Multi-stack** | ✅ Auto-detección + análisis separado | ❌ Agnóstico al stack | Manual | Variable |
393
+ | **Kotlin + CQRS/BFF** | ✅ Multi-module, Command/Query split | ❌ | ❌ | ❌ |
255
394
  | **Auto-verificación** | ✅ 6 herramientas de validación | ❌ | ❌ | ❌ |
256
395
  | **Backup / Restauración** | ✅ Sistema Master Plan | ❌ | ❌ | ❌ |
257
396
  | **Tiempo de configuración** | ~5–18min (automático) | ~5min (config manual) | Horas–Días | ~5min |
@@ -275,6 +414,15 @@ Totalmente soportado. ClaudeOS-Core auto-detecta ambos stacks, etiqueta dominios
275
414
  **P: ¿Qué pasa al re-ejecutar?**
276
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.
277
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
+
278
426
  ---
279
427
 
280
428
  ## Estructura de Plantillas
@@ -283,6 +431,7 @@ Pass 1/2 se omiten si su JSON ya existe. Pass 3 siempre se re-ejecuta. Las versi
283
431
  pass-prompts/templates/
284
432
  ├── common/ # Encabezado/pie compartido
285
433
  ├── java-spring/ # Java / Spring Boot
434
+ ├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
286
435
  ├── node-express/ # Node.js / Express / NestJS
287
436
  ├── node-nextjs/ # Next.js / React / Vue
288
437
  ├── python-django/ # Python / Django (DRF)
@@ -334,7 +483,13 @@ my-monorepo/ ← No ejecutes aquí (la raíz no tiene deps de
334
483
 
335
484
  **"npm install failed"** — La versión de Node.js puede ser demasiado baja. Se requiere v18+.
336
485
 
337
- **"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.
338
493
 
339
494
  ---
340
495