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.md CHANGED
@@ -8,7 +8,7 @@ npx claudeos-core init
8
8
 
9
9
  ClaudeOS-Core reads your codebase, extracts every pattern it finds, and generates a complete set of Standards, Rules, Skills, and Guides tailored to _your_ project. After that, when you tell Claude Code "Create a CRUD for orders", it produces code that matches your existing patterns exactly.
10
10
 
11
- [🇨🇳 中文](./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) · [🇩🇪 Deutsch](./README.de.md) · [🇰🇷 한국어](./README.ko.md)
11
+ [🇰🇷 한국어](./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) · [🇩🇪 Deutsch](./README.de.md)
12
12
 
13
13
  ---
14
14
 
@@ -22,7 +22,7 @@ ClaudeOS-Core automates the entire process:
22
22
 
23
23
  1. **Scans** your project — detects stack, domains, ORM, DB, package manager automatically
24
24
  2. **Analyzes** your source code in depth — controller patterns, service layers, naming conventions, error handling, security, testing, and 50+ categories
25
- 3. **Generates** a complete documentation ecosystem — `CLAUDE.md`, Standards (15–17 files), Rules, Skills, Guides (9 files), Master Plans, DB docs, and MCP guide
25
+ 3. **Generates** a complete documentation ecosystem — `CLAUDE.md`, Standards (15–19 files), Rules, Skills, Guides (9 files), Master Plans, DB docs, and MCP guide
26
26
  4. **Validates** everything — 6 built-in verification tools ensure consistency
27
27
 
28
28
  Total time: **5–18 minutes**, depending on project size. Zero manual configuration.
@@ -33,16 +33,51 @@ Total time: **5–18 minutes**, depending on project size. Zero manual configura
33
33
 
34
34
  | Stack | Detection | Analysis Depth |
35
35
  |---|---|---|
36
- | **Java / Spring Boot** | `build.gradle`, `pom.xml` | 10 categories, 59 sub-items |
36
+ | **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 package patterns | 10 categories, 59 sub-items |
37
+ | **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 categories, 95 sub-items |
37
38
  | **Node.js / Express / NestJS** | `package.json` | 9 categories, 57 sub-items |
38
- | **Next.js / React / Vue** | `package.json` (next, react, vue) | 9 categories, 55 sub-items |
39
+ | **Next.js / React / Vue** | `package.json`, `next.config.*`, FSD support | 9 categories, 55 sub-items |
39
40
  | **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 categories, 55 sub-items |
40
41
  | **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 categories, 58 sub-items |
41
42
 
42
- Auto-detected: language & version, framework & version, ORM (MyBatis, JPA, Prisma, TypeORM, SQLAlchemy, etc.), database (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), package manager (Gradle, Maven, npm, yarn, pnpm, pip, poetry).
43
+ Auto-detected: language & version, framework & version, ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy, etc.), database (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), package manager (Gradle, Maven, npm, yarn, pnpm, pip, poetry), architecture (CQRS, BFF — from module names), multi-module structure (from settings.gradle).
43
44
 
44
45
  **You don't specify anything. It's all detected automatically.**
45
46
 
47
+ ### Java Domain Detection (5 patterns with fallback)
48
+
49
+ | Priority | Pattern | Structure | Example |
50
+ |---|---|---|---|
51
+ | A | Layer-first | `controller/{domain}/` | `controller/user/UserController.java` |
52
+ | B | Domain-first | `{domain}/controller/` | `user/controller/UserController.java` |
53
+ | D | Module prefix | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
54
+ | E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
55
+ | C | Flat | `controller/*.java` | `controller/UserController.java` → extracts `user` from class name |
56
+
57
+ Service-only domains (without controllers) are also detected. Skips: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2`, etc.
58
+
59
+ ### Kotlin Multi-Module Domain Detection
60
+
61
+ For Kotlin projects with Gradle multi-module structure (e.g., CQRS monorepo):
62
+
63
+ | Step | What It Does | Example |
64
+ |---|---|---|
65
+ | 1 | Scan `settings.gradle.kts` for `include()` | Finds 14 modules |
66
+ | 2 | Detect module type from name | `reservation-command-server` → type: `command` |
67
+ | 3 | Extract domain from module name | `reservation-command-server` → domain: `reservation` |
68
+ | 4 | Group same domain across modules | `reservation-command-server` + `common-query-server` → 1 domain |
69
+ | 5 | Detect architecture | Has `command` + `query` modules → CQRS |
70
+
71
+ Supported module types: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Shared libraries (`shared-lib`, `integration-lib`) are detected as special domains.
72
+
73
+ ### Frontend Domain Detection
74
+
75
+ - **App Router**: `app/{domain}/page.tsx` (Next.js)
76
+ - **Pages Router**: `pages/{domain}/index.tsx`
77
+ - **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
78
+ - **RSC/Client split**: Detects `client.tsx` pattern, tracks Server/Client component separation
79
+ - **Config fallback**: Detects Next.js/Vite/Nuxt from config files when not in `package.json` (monorepo support)
80
+
46
81
  ---
47
82
 
48
83
  ## Quick Start
@@ -57,16 +92,153 @@ Auto-detected: language & version, framework & version, ORM (MyBatis, JPA, Prism
57
92
  ```bash
58
93
  cd /your/project/root
59
94
 
60
- # Option A: npx (recommended)
95
+ # Option A: npx (recommended — no install needed)
61
96
  npx claudeos-core init
62
97
 
63
- # Option B: git clone (for development/contribution)
98
+ # Option B: global install
99
+ npm install -g claudeos-core
100
+ claudeos-core init
101
+
102
+ # Option C: project devDependency
103
+ npm install --save-dev claudeos-core
104
+ npx claudeos-core init
105
+
106
+ # Option D: git clone (for development/contribution)
64
107
  git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
65
108
  bash claudeos-core-tools/bootstrap.sh
66
109
  ```
67
110
 
68
111
  That's it. After 5–18 minutes, all documentation is generated and ready to use.
69
112
 
113
+ ### Manual Step-by-Step Installation
114
+
115
+ If you want full control over each phase — or if the automated pipeline fails at any step — you can run each stage manually. This is also useful for understanding how ClaudeOS-Core works internally.
116
+
117
+ #### Step 1: Clone and install dependencies
118
+
119
+ ```bash
120
+ cd /your/project/root
121
+
122
+ git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
123
+ cd claudeos-core-tools && npm install && cd ..
124
+ ```
125
+
126
+ #### Step 2: Create directory structure
127
+
128
+ ```bash
129
+ # Rules
130
+ mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
131
+
132
+ # Standards
133
+ mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
134
+
135
+ # Skills
136
+ mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
137
+
138
+ # Guide, Plan, Database, MCP, Generated
139
+ mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
140
+ mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
141
+ ```
142
+
143
+ #### Step 3: Run plan-installer (project analysis)
144
+
145
+ This scans your project, detects the stack, finds domains, splits them into groups, and generates prompts.
146
+
147
+ ```bash
148
+ node claudeos-core-tools/plan-installer/index.js
149
+ ```
150
+
151
+ **Output (in `claudeos-core/generated/`):**
152
+ - `project-analysis.json` — detected stack, domains, frontend info
153
+ - `domain-groups.json` — domain groups for Pass 1
154
+ - `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — analysis prompts
155
+ - `pass2-prompt.md` — merge prompt
156
+ - `pass3-prompt.md` — generation prompt
157
+
158
+ You can inspect these files to verify detection accuracy before proceeding.
159
+
160
+ #### Step 4: Pass 1 — Deep code analysis (per domain group)
161
+
162
+ Run Pass 1 for each domain group. Check `domain-groups.json` for the number of groups.
163
+
164
+ ```bash
165
+ # Check how many groups
166
+ cat claudeos-core/generated/domain-groups.json | node -e "
167
+ const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
168
+ g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
169
+ "
170
+
171
+ # Run Pass 1 for each group (replace N with group number)
172
+ # For group 1:
173
+ cat claudeos-core/generated/pass1-backend-prompt.md \
174
+ | sed "s/{{DOMAIN_GROUP}}/user, order, product/g" \
175
+ | sed "s/{{PASS_NUM}}/1/g" \
176
+ | claude -p --dangerously-skip-permissions
177
+
178
+ # For group 2 (if exists):
179
+ cat claudeos-core/generated/pass1-backend-prompt.md \
180
+ | sed "s/{{DOMAIN_GROUP}}/payment, system, delivery/g" \
181
+ | sed "s/{{PASS_NUM}}/2/g" \
182
+ | claude -p --dangerously-skip-permissions
183
+
184
+ # For frontend groups, use pass1-frontend-prompt.md instead
185
+ ```
186
+
187
+ **Verify:** `ls claudeos-core/generated/pass1-*.json` should show one JSON per group.
188
+
189
+ #### Step 5: Pass 2 — Merge analysis results
190
+
191
+ ```bash
192
+ cat claudeos-core/generated/pass2-prompt.md \
193
+ | claude -p --dangerously-skip-permissions
194
+ ```
195
+
196
+ **Verify:** `claudeos-core/generated/pass2-merged.json` should exist with 9+ top-level keys.
197
+
198
+ #### Step 6: Pass 3 — Generate all documentation
199
+
200
+ ```bash
201
+ cat claudeos-core/generated/pass3-prompt.md \
202
+ | claude -p --dangerously-skip-permissions
203
+ ```
204
+
205
+ **Verify:** `CLAUDE.md` should exist in your project root.
206
+
207
+ #### Step 7: Run verification tools
208
+
209
+ ```bash
210
+ # Generate metadata (required before other checks)
211
+ node claudeos-core-tools/manifest-generator/index.js
212
+
213
+ # Run all checks
214
+ node claudeos-core-tools/health-checker/index.js
215
+
216
+ # Or run individual checks:
217
+ node claudeos-core-tools/import-linter/index.js # @import path validation
218
+ node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ disk consistency
219
+ node claudeos-core-tools/sync-checker/index.js # Unregistered/orphaned files
220
+ node claudeos-core-tools/content-validator/index.js # File quality checks
221
+ node claudeos-core-tools/pass-json-validator/index.js # Pass JSON format checks
222
+ ```
223
+
224
+ #### Step 8: Verify the results
225
+
226
+ ```bash
227
+ # Count generated files
228
+ find .claude claudeos-core -type f | grep -v node_modules | wc -l
229
+
230
+ # Check CLAUDE.md
231
+ head -30 CLAUDE.md
232
+
233
+ # Check a standard file
234
+ cat claudeos-core/standard/00.core/01.project-overview.md | head -20
235
+
236
+ # Check rules
237
+ ls .claude/rules/*/
238
+ ```
239
+
240
+ > **Tip:** If any step fails, you can fix the issue and re-run just that step. Pass 1/2 results are cached — if `pass1-N.json` or `pass2-merged.json` already exists, the automated pipeline skips them. Delete the file to force re-run.
241
+
70
242
  ### Start Using
71
243
 
72
244
  ```
@@ -108,7 +280,7 @@ npx claudeos-core init
108
280
 
109
281
  ### Why 3 Passes?
110
282
 
111
- **Pass 1** is the only pass that reads your source code. It selects representative files per domain and extracts patterns across 55–59 analysis categories (per stack). For large projects, Pass 1 runs multiple times — one per domain group. In multi-stack projects (e.g., Java backend + React frontend), backend and frontend domains use **different analysis prompts** tailored to each stack.
283
+ **Pass 1** is the only pass that reads your source code. It selects representative files per domain and extracts patterns across 55–95 analysis categories (per stack). For large projects, Pass 1 runs multiple times — one per domain group. In multi-stack projects (e.g., Java backend + React frontend), backend and frontend domains use **different analysis prompts** tailored to each stack.
112
284
 
113
285
  **Pass 2** merges all Pass 1 results into a unified analysis: common patterns (100% shared), majority patterns (50%+ shared), domain-specific patterns, anti-patterns by severity, and cross-cutting concerns (naming, security, DB, testing, logging, performance). Backend and frontend results are merged together.
114
286
 
@@ -140,7 +312,7 @@ your-project/
140
312
  │ │ ├── pass1-frontend-prompt.md ← Frontend analysis prompt (if detected)
141
313
  │ │ ├── pass2-prompt.md ← Merge prompt
142
314
  │ │ └── pass3-prompt.md ← Generation prompt (combined)
143
- │ ├── standard/ ← Coding standards (15-17 files)
315
+ │ ├── standard/ ← Coding standards (15-19 files)
144
316
  │ │ ├── 00.core/ ← Overview, architecture, naming
145
317
  │ │ ├── 10.backend-api/ ← API patterns (stack-specific)
146
318
  │ │ ├── 20.frontend-ui/ ← Frontend patterns (if detected)
@@ -247,9 +419,10 @@ npx claudeos-core restore
247
419
 
248
420
  | | ClaudeOS-Core | SuperClaude | Manual CLAUDE.md | Generic Skills |
249
421
  |---|---|---|---|---|
250
- | **Reads your code** | ✅ Deep analysis (55–59 categories) | ❌ Behavioral injection | ❌ Manual writing | ❌ Pre-built templates |
422
+ | **Reads your code** | ✅ Deep analysis (55–95 categories) | ❌ Behavioral injection | ❌ Manual writing | ❌ Pre-built templates |
251
423
  | **Project-specific output** | ✅ Every file reflects your patterns | ❌ Generic commands | Partially | ❌ One-size-fits-all |
252
424
  | **Multi-stack** | ✅ Auto-detected + separate analysis | ❌ Stack-agnostic | Manual | Varies |
425
+ | **Kotlin + CQRS/BFF** | ✅ Multi-module, Command/Query split | ❌ | ❌ | ❌ |
253
426
  | **Self-verifying** | ✅ 6 validation tools | ❌ | ❌ | ❌ |
254
427
  | **Backup / Restore** | ✅ Master Plan system | ❌ | ❌ | ❌ |
255
428
  | **Setup time** | ~5–18min (automated) | ~5min (manual config) | Hours–Days | ~5min |
@@ -273,6 +446,15 @@ Fully supported. ClaudeOS-Core auto-detects both stacks, tags domains as `backen
273
446
  **Q: What happens on re-run?**
274
447
  Pass 1/2 are skipped if their JSON already exists. Pass 3 always re-runs. Previous versions can be restored from Master Plans.
275
448
 
449
+ **Q: Does it support Kotlin?**
450
+ Yes. ClaudeOS-Core auto-detects Kotlin from `build.gradle.kts` or the kotlin plugin in `build.gradle`. It uses a dedicated `kotlin-spring` template with Kotlin-specific analysis (data classes, sealed classes, coroutines, extension functions, MockK, etc.).
451
+
452
+ **Q: What about CQRS / BFF architecture?**
453
+ Fully supported for Kotlin multi-module projects. ClaudeOS-Core reads `settings.gradle.kts`, detects module types (command, query, bff, integration) from module names, and groups the same domain across Command/Query modules. The generated standards include separate rules for command controllers vs query controllers, BFF/Feign patterns, and inter-module communication conventions.
454
+
455
+ **Q: What about Gradle multi-module monorepos?**
456
+ ClaudeOS-Core scans all submodules (`**/src/main/kotlin/**/*.kt`) regardless of nesting depth. Module types are inferred from naming conventions (e.g., `reservation-command-server` → domain: `reservation`, type: `command`). Shared libraries (`shared-lib`, `integration-lib`) are also detected.
457
+
276
458
  ---
277
459
 
278
460
  ## Template Structure
@@ -281,6 +463,7 @@ Pass 1/2 are skipped if their JSON already exists. Pass 3 always re-runs. Previo
281
463
  pass-prompts/templates/
282
464
  ├── common/ # Shared header/footer
283
465
  ├── java-spring/ # Java / Spring Boot
466
+ ├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
284
467
  ├── node-express/ # Node.js / Express / NestJS
285
468
  ├── node-nextjs/ # Next.js / React / Vue
286
469
  ├── python-django/ # Python / Django (DRF)
@@ -332,7 +515,13 @@ my-monorepo/ ← Don't run here (root has no framework deps)
332
515
 
333
516
  **"npm install failed"** — Node.js version may be too low. Requires v18+.
334
517
 
335
- **"0 domains detected"** — Your project structure may be non-standard. See the detection patterns in the [Korean docs](./README.ko.md#-문제-해결--troubleshooting) for your stack.
518
+ **"0 domains detected"** — Your project structure may be non-standard. See the detection patterns above for your stack.
519
+
520
+ **"0 domains detected" on Kotlin project** — Ensure your project has `build.gradle.kts` (or `build.gradle` with kotlin plugin) at the root, and source files are under `**/src/main/kotlin/`. For multi-module projects, ensure `settings.gradle.kts` contains `include()` statements. Single-module Kotlin projects (without `settings.gradle`) are also supported — domains are extracted from package/class structure under `src/main/kotlin/`.
521
+
522
+ **"Language detected as java instead of kotlin"** — ClaudeOS-Core checks the root `build.gradle(.kts)` first, then submodule build files. If the root build file uses `java` plugin without `kotlin`, but submodules use Kotlin, the tool checks up to 5 submodule build files as fallback. If still not detected, ensure at least one `build.gradle.kts` contains `kotlin("jvm")` or `org.jetbrains.kotlin`.
523
+
524
+ **"CQRS not detected"** — Architecture detection relies on module names containing `command` and `query` keywords. If your modules use different naming (e.g., `write-server`, `read-server`), the CQRS architecture won't be auto-detected. You can manually adjust the generated prompts after plan-installer runs.
336
525
 
337
526
  ---
338
527
 
package/README.ru.md CHANGED
@@ -8,7 +8,7 @@ npx claudeos-core init
8
8
 
9
9
  ClaudeOS-Core читает вашу кодовую базу, извлекает все паттерны и генерирует полный набор Standards, Rules, Skills и Guides, адаптированных под _ваш_ проект. После этого, когда вы говорите Claude Code «Создай CRUD для заказов», он генерирует код, точно соответствующий вашим существующим паттернам.
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) · [🇫🇷 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) · [🇪🇸 Español](./README.es.md) · [🇻🇳 Tiếng Việt](./README.vi.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇫🇷 Français](./README.fr.md) · [🇩🇪 Deutsch](./README.de.md)
12
12
 
13
13
  ---
14
14
 
@@ -22,7 +22,7 @@ ClaudeOS-Core автоматизирует весь процесс:
22
22
 
23
23
  1. **Сканирует** ваш проект — автоматически определяет стек, домены, ORM, базу данных, пакетный менеджер
24
24
  2. **Глубоко анализирует** исходный код — паттерны контроллеров, сервисные слои, соглашения об именовании, обработка ошибок, безопасность, тестирование и 50+ категорий
25
- 3. **Генерирует** полную экосистему документации — `CLAUDE.md`, Standards (15–17 файлов), Rules, Skills, Guides (9 файлов), Master Plans, документацию БД и руководство MCP
25
+ 3. **Генерирует** полную экосистему документации — `CLAUDE.md`, Standards (15–19 файлов), Rules, Skills, Guides (9 файлов), Master Plans, документацию БД и руководство MCP
26
26
  4. **Валидирует** всё — 6 встроенных инструментов проверки гарантируют консистентность
27
27
 
28
28
  Общее время: **5–18 минут**, в зависимости от размера проекта. Нулевая ручная настройка.
@@ -33,16 +33,53 @@ ClaudeOS-Core автоматизирует весь процесс:
33
33
 
34
34
  | Стек | Обнаружение | Глубина анализа |
35
35
  |---|---|---|
36
- | **Java / Spring Boot** | `build.gradle`, `pom.xml` | 10 категорий, 59 подпунктов |
36
+ | **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 паттернов пакетов | 10 категорий, 59 подпунктов |
37
+ | **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 категорий, 95 подпунктов |
37
38
  | **Node.js / Express / NestJS** | `package.json` | 9 категорий, 57 подпунктов |
38
- | **Next.js / React / Vue** | `package.json` (next, react, vue) | 9 категорий, 55 подпунктов |
39
+ | **Next.js / React / Vue** | `package.json`, `next.config.*`, поддержка FSD | 9 категорий, 55 подпунктов |
39
40
  | **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 категорий, 55 подпунктов |
40
41
  | **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 категорий, 58 подпунктов |
41
42
 
42
- Автоматическое определение: язык и версия, фреймворк и версия, ORM (MyBatis, JPA, Prisma, TypeORM, SQLAlchemy и др.), база данных (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), пакетный менеджер (Gradle, Maven, npm, yarn, pnpm, pip, poetry).
43
+ Автоматическое определение: язык и версия, фреймворк и версия, ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy и др.), база данных (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), пакетный менеджер (Gradle, Maven, npm, yarn, pnpm, pip, poetry), архитектура (CQRS, BFF — определяется из имён модулей), мультимодульная структура (из settings.gradle).
43
44
 
44
45
  **Вам не нужно ничего указывать. Всё определяется автоматически.**
45
46
 
47
+
48
+ ### Обнаружение Java-доменов (5 паттернов с фолбэком)
49
+
50
+ | Приоритет | Паттерн | Структура | Пример |
51
+ |---|---|---|---|
52
+ | A | Слой-первый | `controller/{domain}/` | `controller/user/UserController.java` |
53
+ | B | Домен-первый | `{domain}/controller/` | `user/controller/UserController.java` |
54
+ | D | Модуль-префикс | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
55
+ | E | DDD/Гексагональный | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
56
+ | C | Плоский | `controller/*.java` | `controller/UserController.java` → извлекает `user` из имени класса |
57
+
58
+ Домены только с сервисами (без контроллеров) тоже обнаруживаются. Пропускаются: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2` и т.д.
59
+
60
+
61
+ ### Обнаружение доменов Kotlin мультимодульных проектов
62
+
63
+ Для проектов Kotlin с Gradle мультимодульной структурой (например: CQRS монорепо):
64
+
65
+ | Шаг | Действие | Пример |
66
+ |---|---|---|
67
+ | 1 | Сканирование `settings.gradle.kts` на наличие `include()` | Найдено 14 модулей |
68
+ | 2 | Определение типа модуля по имени | `reservation-command-server` → тип: `command` |
69
+ | 3 | Извлечение домена из имени модуля | `reservation-command-server` → домен: `reservation` |
70
+ | 4 | Группировка одного домена по модулям | `reservation-command-server` + `common-query-server` → 1 домен |
71
+ | 5 | Определение архитектуры | Есть модули `command` + `query` → CQRS |
72
+
73
+ Поддерживаемые типы модулей: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Общие библиотеки (`shared-lib`, `integration-lib`) обнаруживаются как специальные домены.
74
+
75
+ ### Обнаружение фронтенд-доменов
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 разделение**: Обнаружение паттерна `client.tsx`, отслеживание разделения Server/Client
81
+ - **Фолбэк конфигурации**: Обнаружение Next.js/Vite/Nuxt из конфиг-файлов (поддержка monorepo)
82
+
46
83
  ---
47
84
 
48
85
  ## Быстрый старт
@@ -57,16 +94,138 @@ ClaudeOS-Core автоматизирует весь процесс:
57
94
  ```bash
58
95
  cd /your/project/root
59
96
 
60
- # Вариант A: npx (рекомендуется)
97
+ # Вариант A: npx (рекомендуется — установка не нужна)
61
98
  npx claudeos-core init
62
99
 
63
- # Вариант B: git clone (для разработки/контрибуции)
100
+ # Вариант B: глобальная установка
101
+ npm install -g claudeos-core
102
+ claudeos-core init
103
+
104
+ # Вариант C: devDependency проекта
105
+ npm install --save-dev claudeos-core
106
+ npx claudeos-core init
107
+
108
+ # Вариант D: git clone (для разработки/контрибуции)
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
  Это всё. Через 5–18 минут вся документация сгенерирована и готова к использованию.
69
114
 
115
+ ### Ручная пошаговая установка
116
+
117
+ Если вы хотите полностью контролировать каждый этап — или если автоматический пайплайн сбоит на каком-то шаге — можно запустить каждый этап вручную. Это также полезно для понимания внутренней работы ClaudeOS-Core.
118
+
119
+ #### Step 1: Клонирование и установка зависимостей
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: Создание структуры каталогов
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 (анализ проекта)
146
+
147
+ Сканирует ваш проект, определяет стек, находит домены, разделяет на группы и генерирует промпты.
148
+
149
+ ```bash
150
+ node claudeos-core-tools/plan-installer/index.js
151
+ ```
152
+
153
+ **Вывод (`claudeos-core/generated/`):**
154
+ - `project-analysis.json` — обнаруженный стек, домены, информация о фронтенде
155
+ - `domain-groups.json` — группы доменов для Pass 1
156
+ - `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — промпты анализа
157
+ - `pass2-prompt.md` — промпт объединения
158
+ - `pass3-prompt.md` — промпт генерации
159
+
160
+ Вы можете проверить эти файлы для верификации точности определения перед продолжением.
161
+
162
+ #### Step 4: Pass 1 — Глубокий анализ кода по группам доменов
163
+
164
+ Запустите Pass 1 для каждой группы доменов. Проверьте `domain-groups.json` для количества групп.
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
+ **Проверка:** `ls claudeos-core/generated/pass1-*.json` должен показать по одному JSON на группу.
183
+
184
+ #### Step 5: Pass 2 — Объединение результатов анализа
185
+
186
+ ```bash
187
+ cat claudeos-core/generated/pass2-prompt.md \
188
+ | claude -p --dangerously-skip-permissions
189
+ ```
190
+
191
+ **Проверка:** `claudeos-core/generated/pass2-merged.json` должен существовать с 9+ ключами верхнего уровня.
192
+
193
+ #### Step 6: Pass 3 — Генерация всей документации
194
+
195
+ ```bash
196
+ cat claudeos-core/generated/pass3-prompt.md \
197
+ | claude -p --dangerously-skip-permissions
198
+ ```
199
+
200
+ **Проверка:** `CLAUDE.md` должен существовать в корне проекта.
201
+
202
+ #### Step 7: Запуск инструментов проверки
203
+
204
+ ```bash
205
+ # Генерация метаданных (обязательно перед другими проверками)
206
+ node claudeos-core-tools/manifest-generator/index.js
207
+
208
+ # Запуск всех проверок
209
+ node claudeos-core-tools/health-checker/index.js
210
+
211
+ # Или запуск отдельных проверок:
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: Проверка результатов
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
+ > **Совет:** Если какой-то шаг не удался, можно перезапустить только этот шаг. Результаты Pass 1/2 кешируются — если `pass1-N.json` или `pass2-merged.json` уже существует, автоматический пайплайн их пропускает. Удалите файл для принудительного повтора.
228
+
70
229
  ### Начинайте использовать
71
230
 
72
231
  ```
@@ -108,7 +267,7 @@ npx claudeos-core init
108
267
 
109
268
  ### Почему 3 Pass?
110
269
 
111
- **Pass 1** — единственный pass, который читает исходный код. Он выбирает репрезентативные файлы по доменам и извлекает паттерны по 55–59 категориям анализа (по стеку). Для крупных проектов Pass 1 запускается несколько раз — по одному на группу доменов. В мульти-стек проектах (например: Java backend + React frontend) backend и frontend используют **разные промпты анализа**, адаптированные под каждый стек.
270
+ **Pass 1** — единственный pass, который читает исходный код. Он выбирает репрезентативные файлы по доменам и извлекает паттерны по 55–95 категориям анализа (по стеку). Для крупных проектов Pass 1 запускается несколько раз — по одному на группу доменов. В мульти-стек проектах (например: Java backend + React frontend) backend и frontend используют **разные промпты анализа**, адаптированные под каждый стек.
112
271
 
113
272
  **Pass 2** объединяет все результаты Pass 1 в единый анализ: общие паттерны (100% совпадение), мажоритарные паттерны (50%+), доменно-специфичные паттерны, анти-паттерны по степени серьёзности и сквозные аспекты (именование, безопасность, БД, тестирование, логирование, производительность).
114
273
 
@@ -134,7 +293,7 @@ your-project/
134
293
 
135
294
  ├── claudeos-core/ ← Основная директория вывода
136
295
  │ ├── generated/ ← JSON анализа + динамические промпты
137
- │ ├── standard/ ← Стандарты кода (15-17 файлов)
296
+ │ ├── standard/ ← Стандарты кода (15-19 файлов)
138
297
  │ ├── skills/ ← Skills скаффолдинга CRUD
139
298
  │ ├── guide/ ← Онбординг, FAQ, устранение неполадок (9 файлов)
140
299
  │ ├── plan/ ← Master Plans (бэкап/восстановление)
@@ -228,9 +387,10 @@ npx claudeos-core restore
228
387
 
229
388
  | | ClaudeOS-Core | SuperClaude | Ручной CLAUDE.md | Универсальные Skills |
230
389
  |---|---|---|---|---|
231
- | **Читает ваш код** | ✅ Глубокий анализ (55–59 категорий) | ❌ Инъекция поведения | ❌ Ручное написание | ❌ Готовые шаблоны |
390
+ | **Читает ваш код** | ✅ Глубокий анализ (55–95 категорий) | ❌ Инъекция поведения | ❌ Ручное написание | ❌ Готовые шаблоны |
232
391
  | **Вывод под проект** | ✅ Каждый файл отражает ваши паттерны | ❌ Универсальные команды | Частично | ❌ Один размер для всех |
233
392
  | **Мульти-стек** | ✅ Автоопределение + раздельный анализ | ❌ Стек-агностик | Вручную | Неопределённо |
393
+ | **Kotlin + CQRS/BFF** | ✅ Мультимодульный, разделение Command/Query | ❌ | ❌ | ❌ |
234
394
  | **Самопроверка** | ✅ 6 инструментов валидации | ❌ | ❌ | ❌ |
235
395
  | **Бэкап / Восстановление** | ✅ Система Master Plan | ❌ | ❌ | ❌ |
236
396
  | **Время настройки** | ~5–18 мин (автоматически) | ~5 мин (ручная настройка) | Часы–Дни | ~5 мин |
@@ -254,6 +414,15 @@ npx claudeos-core restore
254
414
  **В: Что происходит при повторном запуске?**
255
415
  Pass 1/2 пропускаются, если их JSON уже существует. Pass 3 всегда перезапускается. Предыдущие версии можно восстановить из Master Plans.
256
416
 
417
+ **В: Поддерживается ли Kotlin?**
418
+ Да. ClaudeOS-Core автоматически определяет Kotlin из `build.gradle.kts` или плагина kotlin в `build.gradle`. Используется специальный шаблон `kotlin-spring` с Kotlin-специфичным анализом (data class, sealed class, корутины, функции-расширения, MockK и т.д.).
419
+
420
+ **В: Как насчёт архитектуры CQRS / BFF?**
421
+ Полностью поддерживается для Kotlin мультимодульных проектов. ClaudeOS-Core читает `settings.gradle.kts`, определяет типы модулей (command, query, bff, integration) из их имён и группирует одинаковые домены по модулям Command/Query. Сгенерированные стандарты включают отдельные правила для command-контроллеров и query-контроллеров, паттерны BFF/Feign и соглашения о межмодульном взаимодействии.
422
+
423
+ **В: Как насчёт Gradle мультимодульных monorepo?**
424
+ ClaudeOS-Core сканирует все подмодули (`**/src/main/kotlin/**/*.kt`) независимо от глубины вложенности. Типы модулей определяются из соглашений об именовании (например, `reservation-command-server` → домен: `reservation`, тип: `command`). Общие библиотеки (`shared-lib`, `integration-lib`) также обнаруживаются.
425
+
257
426
  ---
258
427
 
259
428
  ## Структура шаблонов
@@ -262,6 +431,7 @@ Pass 1/2 пропускаются, если их JSON уже существуе
262
431
  pass-prompts/templates/
263
432
  ├── common/ # Общий заголовок/футер
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/ ← Не запускайте здесь (в к
313
483
 
314
484
  **"npm install failed"** — Версия Node.js может быть слишком старой. Требуется v18+.
315
485
 
316
- **"0 domains detected"** — Структура вашего проекта может быть нестандартной. Смотрите паттерны обнаружения в [корейской документации](./README.ko.md#-문제-해결--troubleshooting) для вашего стека.
486
+ **"0 domains detected"** — Структура вашего проекта может быть нестандартной. Смотрите паттерны обнаружения в [корейской документации](./README.ko.md#트러블슈팅) для вашего стека.
487
+
488
+ **«0 доменов обнаружено» в Kotlin-проекте** — Убедитесь, что в корне проекта есть `build.gradle.kts` (или `build.gradle` с плагином kotlin), а исходные файлы находятся в `**/src/main/kotlin/`. Для мультимодульных проектов `settings.gradle.kts` должен содержать операторы `include()`. Одномодульные Kotlin-проекты (без `settings.gradle`) также поддерживаются — домены извлекаются из структуры пакетов/классов в `src/main/kotlin/`.
489
+
490
+ **«Язык определён как java вместо kotlin»** — ClaudeOS-Core сначала проверяет корневой `build.gradle(.kts)`, затем файлы сборки подмодулей. Убедитесь, что хотя бы один содержит `kotlin("jvm")` или `org.jetbrains.kotlin`.
491
+
492
+ **«CQRS не обнаружен»** — Определение архитектуры зависит от наличия ключевых слов `command` и `query` в именах модулей. Если ваши модули используют другие имена, можно вручную скорректировать сгенерированные промпты.
317
493
 
318
494
  ---
319
495