claudeos-core 1.6.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.vi.md CHANGED
@@ -1,654 +1,656 @@
1
- # ClaudeOS-Core
2
-
3
- **Công cụ duy nhất đọc mã nguồn trước, xác nhận stack và pattern bằng phân tích deterministic, sau đó tạo quy tắc Claude Code phù hợp chính xác với dự án của bạn.**
4
-
5
- ```bash
6
- npx claudeos-core init
7
- ```
8
-
9
- ClaudeOS-Core đọc codebase của bạn, trích xuất mọi pattern tìm thấy và tạo ra bộ Standards, Rules, Skills và Guides hoàn chỉnh được tùy chỉnh cho _dự án của bạn_. Sau đó, khi bạn nói với Claude Code "Tạo CRUD cho đơn hàng", nó sẽ tạo ra code khớp chính xác với các pattern hiện có của bạn.
10
-
11
- [🇺🇸 English](./README.md) · [🇰🇷 한국어](./README.ko.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇪🇸 Español](./README.es.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇷🇺 Русский](./README.ru.md) · [🇫🇷 Français](./README.fr.md) · [🇩🇪 Deutsch](./README.de.md)
12
-
13
- ---
14
-
15
- ## Tại sao ClaudeOS-Core?
16
-
17
- > Con người mô tả dự án → LLM tạo tài liệu
18
-
19
- ClaudeOS-Core:
20
-
21
- > Code phân tích source → Code xây dựng prompt tùy chỉnh → LLM tạo tài liệu → Code xác minh đầu ra
22
-
23
- ### Vấn đề cốt lõi: LLM đoán. Code xác nhận.
24
-
25
- Khi bạn yêu cầu Claude "phân tích dự án này", nó **đoán** stack, ORM, cấu trúc domain.
26
-
27
- **ClaudeOS-Core không đoán.** Claude Node.js:
28
-
29
- - `build.gradle` / `package.json` / `pyproject.toml` → **confirmed**
30
- - directory scan → **confirmed**
31
- - Java 5 patterns, Kotlin CQRS/BFF, Next.js App Router/FSD → **classified**
32
- - domain groups → **split**
33
- - stack-specific prompt → **assembled**
34
-
35
- ### Kết quả
36
-
37
- Các tool khác tạo tài liệu "tốt một cách chung chung".
38
- ClaudeOS-Core tạo tài liệu biết rằng dự án sử dụng `ApiResponse.ok()` (không phải `ResponseEntity.success()`), MyBatis XML mapper nằm ở `src/main/resources/mybatis/mappers/` — vì nó đã đọc code thực tế.
39
-
40
- ### Before & After
41
-
42
- **Không có ClaudeOS-Core**:
43
- ```
44
- ❌ JPA repository (MyBatis)
45
- ❌ ResponseEntity.success() (ApiResponse.ok())
46
- ❌ order/controller/ (controller/order/)
47
- → 20 min fix per file
48
- ```
49
-
50
- **Có ClaudeOS-Core**:
51
- ```
52
- ✅ MyBatis mapper + XML (build.gradle)
53
- ✅ ApiResponse.ok() (source code)
54
- ✅ controller/order/ (Pattern A)
55
- → immediate match
56
- ```
57
-
58
- Sự khác biệt này tích lũy. 10 task/ngày × 20 phút tiết kiệm = **hơn 3 giờ/ngày**.
59
-
60
- ---
61
-
62
- ## Stack Được Hỗ Trợ
63
-
64
- | Stack | Phát Hiện | Độ Sâu Phân Tích |
65
- |---|---|---|
66
- | **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 package patterns | 10 danh mục, 59 mục con |
67
- | **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 danh mục, 95 mục con |
68
- | **Node.js / Express** | `package.json` | 9 danh mục, 57 mục con |
69
- | **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 danh mục, 68 mục con |
70
- | **Next.js / React** | `package.json`, `next.config.*`, hỗ trợ FSD | 9 danh mục, 55 mục con |
71
- | **Vue / Nuxt** | `package.json`, `nuxt.config.*`, Composition API | 9 danh mục, 58 mục con |
72
- | **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 danh mục, 55 mục con |
73
- | **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 danh mục, 58 mục con |
74
- | **Node.js / Fastify** | `package.json` | 10 danh mục, 62 mục con |
75
- | **Angular** | `package.json`, `angular.json` | 12 danh mục, 78 mục con |
76
-
77
- Tự động phát hiện: ngôn ngữ & phiên bản, framework & phiên bản, ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy, v.v.), database (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), package manager (Gradle, Maven, npm, yarn, pnpm, pip, poetry), kiến trúc (CQRS, BFF — phát hiện từ tên module), cấu trúc multi-module (từ settings.gradle), monorepo (Turborepo, pnpm-workspace, Lerna, npm/yarn workspaces).
78
-
79
- **Bạn không cần chỉ định gì cả. Tất cả được phát hiện tự động.**
80
-
81
-
82
- ### Phát Hiện Domain Java (5 pattern với fallback)
83
-
84
- | Ưu tiên | Pattern | Cấu trúc | Ví dụ |
85
- |---|---|---|---|
86
- | A | Layer trước | `controller/{domain}/` | `controller/user/UserController.java` |
87
- | B | Domain trước | `{domain}/controller/` | `user/controller/UserController.java` |
88
- | D | Module prefix | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
89
- | E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
90
- | C | Phẳng | `controller/*.java` | `controller/UserController.java` → trích `user` từ tên class |
91
-
92
- Các domain chỉ có service (không có controller) cũng được phát hiện qua thư mục `service/`, `dao/`, `aggregator/`, `facade/`, `usecase/`, `orchestrator/`, `mapper/`, `repository/`. Bỏ qua: `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2`, v.v.
93
-
94
-
95
- ### Phát Hiện Domain Kotlin Multi-Module
96
-
97
- Dành cho dự án Kotlin với cấu trúc Gradle multi-module (ví dụ: CQRS monorepo):
98
-
99
- | Bước | Hành Động | Ví Dụ |
100
- |---|---|---|
101
- | 1 | Quét `settings.gradle.kts` tìm `include()` | Tìm thấy 14 module |
102
- | 2 | Phát hiện loại module từ tên | `reservation-command-server` type: `command` |
103
- | 3 | Trích xuất domain từ tên module | `reservation-command-server` → domain: `reservation` |
104
- | 4 | Nhóm cùng domain qua các module | `reservation-command-server` + `common-query-server` → 1 domain |
105
- | 5 | Phát hiện kiến trúc | module `command` + `query` → CQRS |
106
-
107
- Loại module hỗ trợ: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Thư viện chia sẻ (`shared-lib`, `integration-lib`) được phát hiện như domain đặc biệt.
108
-
109
- ### Phát Hiện Domain Frontend
110
-
111
- - **App Router**: `app/{domain}/page.tsx` (Next.js)
112
- - **Pages Router**: `pages/{domain}/index.tsx`
113
- - **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
114
- - **RSC/Client split**: Phát hiện pattern `client.tsx`, theo dõi tách Server/Client
115
- - **Config fallback**: Phát hiện Next.js/Vite/Nuxt từ file config (hỗ trợ monorepo)
116
- - **Fallback thư mục sâu**: Với dự án React/CRA/Vite/Vue/RN, quét `**/components/*/`, `**/views/*/`, `**/screens/*/`, `**/containers/*/`, `**/pages/*/`, `**/routes/*/`, `**/modules/*/`, `**/domains/*/` mọi độ sâu
117
-
118
- ---
119
-
120
- ## Bắt Đầu Nhanh
121
-
122
- ### Yêu Cầu
123
-
124
- - **Node.js** v18+
125
- - **Claude Code CLI** (đã cài đặt & xác thực)
126
-
127
- ### Cài Đặt
128
-
129
- ```bash
130
- cd /your/project/root
131
-
132
- # Cách A: npx (khuyến nghị — không cần cài đặt)
133
- npx claudeos-core init
134
-
135
- # Cách B: cài đặt global
136
- npm install -g claudeos-core
137
- claudeos-core init
138
-
139
- # Cách C: devDependency của dự án
140
- npm install --save-dev claudeos-core
141
- npx claudeos-core init
142
-
143
- # Cách D: git clone (cho phát triển/đóng góp)
144
- git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
145
-
146
- # Đa nền tảng (PowerShell, CMD, Bash, Zsh — mọi terminal)
147
- node claudeos-core-tools/bin/cli.js init
148
-
149
- # Chỉ Linux/macOS (chỉ Bash)
150
- bash claudeos-core-tools/bootstrap.sh
151
- ```
152
-
153
- ### Ngôn ngữ đầu ra (10 ngôn ngữ)
154
-
155
- Khi chạy `init` không `--lang`, bộ chọn tương tác bằng phím mũi tên hoặc phím số sẽ xuất hiện:
156
-
157
- ```
158
- ╔══════════════════════════════════════════════════╗
159
- ║ Select generated document language (required) ║
160
- ╚══════════════════════════════════════════════════╝
161
-
162
- Các file được tạo (CLAUDE.md, Standards, Rules,
163
- Skills, Guides) sẽ được viết bằng tiếng Việt.
164
-
165
- 1. en — English
166
- ...
167
- ❯ 6. viTiếng Việt (Vietnamese)
168
- ...
169
-
170
- ↑↓ Move 1-0 Jump Enter Select ESC Cancel
171
- ```
172
-
173
- Mô tả thay đổi sang ngôn ngữ tương ứng khi di chuyển. Bỏ qua bộ chọn:
174
-
175
- ```bash
176
- npx claudeos-core init --lang vi # Tiếng Việt
177
- npx claudeos-core init --lang en # English
178
- npx claudeos-core init --lang ko # 한국어
179
- ```
180
-
181
- > **Lưu ý:** Chỉ thay đổi ngôn ngữ của file tài liệu được tạo. Phân tích mã (Pass 1–2) luôn chạy bằng tiếng Anh; chỉ kết quả tạo (Pass 3) được viết bằng ngôn ngữ đã chọn.
182
-
183
- Chỉ vậy thôi. Sau 5–18 phút, tất cả tài liệu được tạo sẵn sàng sử dụng. CLI hiển thị thời gian mỗi Pass tổng thời gian trong banner hoàn thành.
184
-
185
- ### Cài Đặt Thủ Công Từng Bước
186
-
187
- Nếu bạn muốn kiểm soát hoàn toàn từng giai đoạn — hoặc nếu pipeline tự động thất bại ở bước nào đó — bạn có thể chạy từng bước thủ công. Điều này cũng hữu ích để hiểu cách ClaudeOS-Core hoạt động bên trong.
188
-
189
- #### Step 1: Clone cài đặt dependencies
190
-
191
- ```bash
192
- cd /your/project/root
193
-
194
- git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
195
- cd claudeos-core-tools && npm install && cd ..
196
- ```
197
-
198
- #### Step 2: Tạo cấu trúc thư mục
199
-
200
- ```bash
201
- # Rules
202
- mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
203
-
204
- # Standards
205
- mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
206
-
207
- # Skills
208
- mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
209
-
210
- # Guide, Plan, Database, MCP, Generated
211
- mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
212
- mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
213
- ```
214
-
215
- #### Step 3: Chạy plan-installer (phân tích dự án)
216
-
217
- Quét dự án, phát hiện stack, tìm domain, chia nhóm và tạo prompt.
218
-
219
- ```bash
220
- node claudeos-core-tools/plan-installer/index.js
221
- ```
222
-
223
- **Đầu ra (`claudeos-core/generated/`):**
224
- - `project-analysis.json` — stack phát hiện, domain, thông tin frontend
225
- - `domain-groups.json` — nhóm domain cho Pass 1
226
- - `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` prompt phân tích
227
- - `pass2-prompt.md` — prompt hợp nhất
228
- - `pass3-prompt.md` — prompt tạo
229
-
230
- Bạn thể kiểm tra các file này để xác minh độ chính xác phát hiện trước khi tiếp tục.
231
-
232
- #### Step 4: Pass 1 Phân tích code sâu theo nhóm domain
233
-
234
- Chạy Pass 1 cho mỗi nhóm domain. Kiểm tra `domain-groups.json` để biết số nhóm.
235
-
236
- ```bash
237
- # Check groups
238
- cat claudeos-core/generated/domain-groups.json | node -e "
239
- const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
240
- g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
241
- "
242
-
243
- # Run Pass 1 for group 1:
244
- cp claudeos-core/generated/pass1-backend-prompt.md /tmp/_pass1.md
245
- DOMAIN_LIST="user, order, product" PASS_NUM=1 \
246
- perl -pi -e 's/\{\{DOMAIN_GROUP\}\}/$ENV{DOMAIN_LIST}/g; s/\{\{PASS_NUM\}\}/$ENV{PASS_NUM}/g' /tmp/_pass1.md
247
- cat /tmp/_pass1.md | claude -p --dangerously-skip-permissions
248
-
249
- # Đối với nhóm frontend, sử dụng pass1-frontend-prompt.md
250
- ```
251
-
252
- **Xác minh:** `ls claudeos-core/generated/pass1-*.json` phải hiển thị một JSON cho mỗi nhóm.
253
-
254
- #### Step 5: Pass 2 Hợp nhất kết quả phân tích
255
-
256
- ```bash
257
- cat claudeos-core/generated/pass2-prompt.md \
258
- | claude -p --dangerously-skip-permissions
259
- ```
260
-
261
- **Xác minh:** `claudeos-core/generated/pass2-merged.json` phải tồn tại với 9+ key cấp cao nhất.
262
-
263
- #### Step 6: Pass 3 Tạo tất cả tài liệu
264
-
265
- ```bash
266
- cat claudeos-core/generated/pass3-prompt.md \
267
- | claude -p --dangerously-skip-permissions
268
- ```
269
-
270
- **Xác minh:** `CLAUDE.md` phải tồn tại ở thư mục gốc dự án.
271
-
272
- #### Step 7: Chạy công cụ xác thực
273
-
274
- ```bash
275
- # Tạo metadata (bắt buộc trước các kiểm tra khác)
276
- node claudeos-core-tools/manifest-generator/index.js
277
-
278
- # Chạy tất cả kiểm tra
279
- node claudeos-core-tools/health-checker/index.js
280
-
281
- # Hoặc chạy kiểm tra riêng lẻ:
282
- node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ disk
283
- node claudeos-core-tools/sync-checker/index.js # Sync status
284
- node claudeos-core-tools/content-validator/index.js # Content quality
285
- node claudeos-core-tools/pass-json-validator/index.js # JSON format
286
- ```
287
-
288
- #### Step 8: Xác minh kết quả
289
-
290
- ```bash
291
- find .claude claudeos-core -type f | grep -v node_modules | grep -v '/generated/' | wc -l
292
- head -30 CLAUDE.md
293
- ls .claude/rules/*/
294
- ```
295
-
296
- > **Mẹo:** Nếu bước nào thất bại, bạn có thể chạy lại chỉ bước đó. Kết quả Pass 1/2 được cache — nếu `pass1-N.json` hoặc `pass2-merged.json` đã tồn tại, pipeline tự động sẽ bỏ qua. Dùng `npx claudeos-core init --force` để xóa kết quả trước và bắt đầu lại từ đầu.
297
-
298
- ### Bắt Đầu Sử Dụng
299
-
300
- ```
301
- # Trong Claude Code — chỉ cần nói tự nhiên:
302
- "Tạo CRUD cho domain đơn hàng"
303
- "Thêm API xác thực người dùng"
304
- "Refactor code này theo pattern của dự án"
305
-
306
- # Claude Code tự động tham chiếu Standards, Rules và Skills đã tạo.
307
- ```
308
-
309
- ---
310
-
311
- ## Cách Hoạt Động — Pipeline 3-Pass
312
-
313
- ```
314
- npx claudeos-core init
315
-
316
- ├── [1] npm install ← Cài dependencies (~10s)
317
- ├── [2] Cấu trúc thư mục ← Tạo folders (~1s)
318
- ├── [3] plan-installer (Node.js) Quét dự án (~5s)
319
- ├── Tự động phát hiện stack (hỗ trợ multi-stack)
320
- ├── Trích xuất danh sách domain (gắn tag: backend/frontend)
321
- │ ├── Phân chia nhóm domain (theo loại)
322
- └── Chọn prompt theo stack (theo loại)
323
-
324
- ├── [4] Pass 1 × N (claude -p) Phân tích code chuyên sâu (~2-8 phút)
325
- ├── ⚙️ Nhóm backend → prompt phân tích backend
326
- │ └── 🎨 Nhóm frontend prompt phân tích frontend
327
-
328
- ├── [5] Pass 2 × 1 (claude -p) ← Hợp nhất phân tích (~1 phút)
329
- └── Tổng hợp TẤT CẢ kết quả Pass 1 (backend + frontend)
330
-
331
- ├── [6] Pass 3 × 1 (claude -p) ← Tạo toàn bộ file (~3-5 phút)
332
- └── Prompt kết hợp (mục tiêu backend + frontend)
333
-
334
- └── [7] Xác thực ← Tự động chạy health checker
335
- ```
336
-
337
- ### Tại Sao 3 Pass?
338
-
339
- **Pass 1** pass duy nhất đọc mã nguồn. Nó chọn file đại diện cho mỗi domain và trích xuất pattern trên 55–95 danh mục phân tích (theo stack). Với dự án lớn, Pass 1 chạy nhiều lần — mỗi nhóm domain một lần. Trong dự án multi-stack (ví dụ: Java backend + React frontend), backend và frontend sử dụng **prompt phân tích riêng biệt** phù hợp với từng stack.
340
-
341
- **Pass 2** hợp nhất tất cả kết quả Pass 1 thành phân tích thống nhất: pattern chung (100% chia sẻ), pattern đa số (50%+ chia sẻ), pattern riêng domain, anti-pattern theo mức độ nghiêm trọng các mối quan tâm xuyên suốt (đặt tên, bảo mật, DB, testing, logging, hiệu suất).
342
-
343
- **Pass 3** lấy phân tích đã hợp nhất tạo toàn bộ hệ sinh thái file. không bao giờ đọc nguồn chỉ đọc JSON phân tích. Trong chế độ multi-stack, prompt tạo file kết hợp mục tiêu backend frontend để tạo cả hai bộ tiêu chuẩn trong một pass duy nhất.
344
-
345
- ---
346
-
347
- ## Cấu Trúc File Được Tạo
348
-
349
- ```
350
- your-project/
351
-
352
- ├── CLAUDE.md ← Điểm vào Claude Code
353
-
354
- ├── .claude/
355
- └── rules/ ← Rules kích hoạt bằng Glob
356
- ├── 00.core/
357
- ├── 10.backend/
358
- │ ├── 20.frontend/
359
- │ ├── 30.security-db/
360
- │ ├── 40.infra/
361
- └── 50.sync/ ← Rules nhắc nhở đồng bộ
362
-
363
- ├── claudeos-core/ Thư mục đầu ra chính
364
- ├── generated/ ← JSON phân tích + prompt động
365
- ├── standard/ Tiêu chuẩn code (15-19 file)
366
- │ ├── skills/ Skills scaffolding CRUD
367
- │ ├── guide/ Onboarding, FAQ, troubleshooting (9 file)
368
- │ ├── plan/ Master Plans (backup/khôi phục)
369
- │ ├── database/ Schema DB, hướng dẫn migration
370
- └── mcp-guide/ Hướng dẫn tích hợp MCP server
371
-
372
- └── claudeos-core-tools/ Bộ công cụ này (không chỉnh sửa)
373
- ```
374
-
375
- Mỗi file tiêu chuẩn bao gồm ví dụ ✅ đúng, ví dụ ❌ sai và bảng tóm tắt rules — tất cả được trích xuất từ pattern code thực tế của bạn, không phải template chung.
376
-
377
- ---
378
-
379
- ## Tự Động Mở Rộng Theo Quy Mô Dự Án
380
-
381
- | Quy | Số Domain | Số Lần Pass 1 | Tổng `claude -p` | Thời Gian Ước Tính |
382
- |---|---|---|---|---|
383
- | Nhỏ | 1–4 | 1 | 3 | ~5 phút |
384
- | Trung Bình | 5–8 | 2 | 4 | ~8 phút |
385
- | Lớn | 916 | 3–4 | 5–6 | ~12 phút |
386
- | Rất Lớn | 17+ | 5+ | 7+ | ~18 phút+ |
387
-
388
- Với dự án multi-stack (ví dụ: Java + React), domain backend frontend được đếm chung. Dự án có 6 domain backend + 4 frontend = tổng 10, mở rộng theo mức "Lớn".
389
-
390
- ---
391
-
392
- ## Công Cụ Xác Thực
393
-
394
- ClaudeOS-Core bao gồm 5 công cụ xác thực tích hợp, chạy tự động sau khi tạo:
395
-
396
- ```bash
397
- # Chạy tất cả kiểm tra cùng lúc (khuyến nghị)
398
- npx claudeos-core health
399
-
400
- # Lệnh riêng lẻ
401
- npx claudeos-core validate # So sánh Plan ↔ đĩa
402
- npx claudeos-core refresh # Đồng bộ Đĩa → Plan
403
- npx claudeos-core restore # Khôi phục Plan Đĩa
404
- ```
405
-
406
- | Công Cụ | Chức Năng |
407
- |---|---|
408
- | **manifest-generator** | Xây dựng JSON metadata (rule-manifest, sync-map, plan-manifest) |
409
- | **plan-validator** | So sánh khối `<file>` của Master Plan với đĩa — 3 chế độ: check, refresh, restore |
410
- | **sync-checker** | Phát hiện file chưa đăng ký (trên đĩa nhưng không trong plan) và mục mồ côi |
411
- | **content-validator** | Xác thực chất lượng file file trống, thiếu dụ ✅/❌, phần bắt buộc |
412
- | **pass-json-validator** | Xác thực cấu trúc JSON Pass 1–3, khóa bắt buộc tính đầy đủ của phần |
413
-
414
- ---
415
-
416
- ## Claude Code Sử Dụng Tài Liệu Như Thế Nào
417
-
418
- Đây là cách Claude Code thực sự đọc tài liệu được ClaudeOS-Core tạo ra:
419
-
420
- ### File được đọc tự động
421
-
422
- | File | Thời điểm | Đảm bảo |
423
- |---|---|---|
424
- | `CLAUDE.md` | Mỗi lần bắt đầu cuộc trò chuyện | Luôn luôn |
425
- | `.claude/rules/00.core/*` | Khi chỉnh sửa file (`paths: ["**/*"]`) | Luôn luôn |
426
- | `.claude/rules/10.backend/*` | Khi chỉnh sửa file (`paths: ["**/*"]`) | Luôn luôn |
427
- | `.claude/rules/30.security-db/*` | Khi chỉnh sửa file (`paths: ["**/*"]`) | Luôn luôn |
428
- | `.claude/rules/40.infra/*` | Chỉ khi chỉnh sửa file config/infra (paths giới hạn) | điều kiện |
429
- | `.claude/rules/50.sync/*` | Chỉ khi chỉnh sửa file claudeos-core (paths giới hạn) | điều kiện |
430
-
431
- ### File được đọc theo yêu cầu qua tham chiếu trong quy tắc
432
-
433
- Mỗi file quy tắc liên kết đến standard tương ứng trong phần `## Reference`. Claude chỉ đọc standard liên quan đến tác vụ hiện tại:
434
-
435
- - `claudeos-core/standard/**` Pattern coding, dụ ✅/❌, quy tắc đặt tên
436
- - `claudeos-core/database/**` — DB schema (cho query, mapper, migration)
437
-
438
- `00.standard-reference.md` đóng vai trò thư mục để khám phá các standard không có quy tắc tương ứng.
439
-
440
- ### File KHÔNG đọc (tiết kiệm context)
441
-
442
- Được loại trừ ràng qua phần `DO NOT Read` của quy tắc standard-reference:
443
-
444
- | Thư mục | do loại trừ |
445
- |---|---|
446
- | `claudeos-core/plan/` | Backup Master Plan (~340KB). Dùng `npx claudeos-core refresh` để đồng bộ. |
447
- | `claudeos-core/generated/` | JSON metadata build. Không dùng cho coding. |
448
- | `claudeos-core/guide/` | Hướng dẫn onboarding cho người dùng. |
449
- | `claudeos-core/mcp-guide/` | Tài liệu MCP server. Không dùng cho coding. |
450
-
451
- ---
452
-
453
- ## Quy Trình Làm Việc Hàng Ngày
454
-
455
- ### Sau Khi Cài Đặt
456
-
457
- ```
458
- # Sử dụng Claude Code bình thường — nó tự động tham chiếu tiêu chuẩn:
459
- "Tạo CRUD cho domain đơn hàng"
460
- "Thêm API cập nhật hồ người dùng"
461
- "Refactor code này theo pattern của dự án"
462
- ```
463
-
464
- ### Sau Khi Chỉnh Sửa Thủ Công Standards
465
-
466
- ```bash
467
- # Sau khi chỉnh sửa file standard hoặc rules:
468
- npx claudeos-core refresh
469
-
470
- # Xác minh mọi thứ nhất quán
471
- npx claudeos-core health
472
- ```
473
-
474
- ### Khi Tài Liệu Bị Hỏng
475
-
476
- ```bash
477
- # Khôi phục mọi thứ từ Master Plan
478
- npx claudeos-core restore
479
- ```
480
-
481
- ### Tích Hợp CI/CD
482
-
483
- ```yaml
484
- # Ví dụ GitHub Actions
485
- - run: npx claudeos-core validate
486
- # thoát 1 chặn PR
487
- ```
488
-
489
- ---
490
-
491
- ## Khác Biệt Gì?
492
-
493
- | | ClaudeOS-Core | Everything Claude Code (50K+ ⭐) | Harness | specs-generator | Claude `/init` |
494
- |---|---|---|---|---|---|
495
- | **Approach** | Code analyzes first, then LLM generates | Pre-built config presets | LLM designs agent teams | LLM generates spec docs | LLM writes CLAUDE.md |
496
- | **Reads your source code** | ✅ Deterministic static analysis | ❌ | ❌ | ❌ (LLM reads) | ❌ (LLM reads) |
497
- | **Stack detection** | Code confirms (ORM, DB, build tool, pkg manager) | N/A (stack-agnostic) | LLM guesses | LLM guesses | LLM guesses |
498
- | **Domain detection** | Code confirms (Java 5 patterns, Kotlin CQRS, Next.js FSD) | N/A | LLM guesses | N/A | N/A |
499
- | **Same project Same result** | Deterministic analysis | (static files) | ❌ (LLM varies) | ❌ (LLM varies) | ❌ (LLM varies) |
500
- | **Large project handling** | Domain group splitting (4 domains / 40 files per group) | N/A | No splitting | No splitting | Context window limit |
501
- | **Output** | CLAUDE.md + Rules + Standards + Skills + Guides + Plans (40-50+ files) | Agents + Skills + Commands + Hooks | Agents + Skills | 6 spec documents | CLAUDE.md (1 file) |
502
- | **Output location** | `.claude/rules/` (auto-loaded by Claude Code) | `.claude/` various | `.claude/agents/` + `.claude/skills/` | `.claude/steering/` + `specs/` | `CLAUDE.md` |
503
- | **Post-generation verification** | 5 automated validators | | | | |
504
- | **Multi-language output** | 10 languages | | | | |
505
- | **Multi-stack** | ✅ Backend + Frontend simultaneous | ❌ Stack-agnostic | ❌ | ❌ | Partial |
506
- | **Agent orchestration** | ❌ | 28 agents | 6 patterns | ❌ | ❌ |
507
-
508
- ### Key difference
509
-
510
- **Other tools give Claude "generally good instructions." ClaudeOS-Core gives Claude "instructions extracted from your actual code."**
511
-
512
- ### Complementary, not competing
513
-
514
- ClaudeOS-Core: **project-specific rules**. Other tools: **agent orchestration**.
515
- Use both together.
516
-
517
- ---
518
- ## FAQ
519
-
520
- **H: Nó có sửa đổi mã nguồn của tôi không?**
521
- Không. Chỉ tạo `CLAUDE.md`, `.claude/rules/` và `claudeos-core/`. Code hiện có của bạn không bao giờ bị sửa đổi.
522
-
523
- **H: Chi phí bao nhiêu?**
524
- Gọi `claude -p` từ 3–7 lần. Nằm trong phạm vi sử dụng bình thường của Claude Code.
525
-
526
- **H: nên commit file được tạo vào Git không?**
527
- Khuyến nghị. Team của bạn có thể chia sẻ cùng tiêu chuẩn Claude Code. Cân nhắc thêm `claudeos-core/generated/` vào `.gitignore` (JSON phân tích có thể tạo lại).
528
-
529
- **H: Dự án multi-stack ( dụ: Java backend + React frontend) thì sao?**
530
- Hỗ trợ hoàn toàn. ClaudeOS-Core tự phát hiện cả hai stack, gắn tag domain là `backend` hoặc `frontend`, và sử dụng prompt phân tích riêng cho từng loại. Pass 2 hợp nhất tất cả, Pass 3 tạo tiêu chuẩn cho cả backend và frontend trong một pass duy nhất.
531
-
532
- **H: Chạy lại thì sao?**
533
- Nếu kết quả Pass 1/2 trước đó tồn tại, prompt tương tác cho phép bạn chọn: **Continue** (tiếp tục từ nơi dừng lại) hoặc **Fresh** (xóa tất cả và bắt đầu lại). Dùng `--force` để bỏ qua prompt và luôn bắt đầu lại từ đầu. Pass 3 luôn chạy lại. Phiên bản trước có thể khôi phục từ Master Plans.
534
-
535
- **H: hoạt động với Turborepo / pnpm workspaces / Lerna monorepo không?**
536
- Có. ClaudeOS-Core phát hiện `turbo.json`, `pnpm-workspace.yaml`, `lerna.json`, hoặc `package.json#workspaces` và tự động quét file `package.json` của sub-package để tìm dependency framework/ORM/DB. Quét domain bao gồm pattern `apps/*/src/` và `packages/*/src/`. Chạy từ thư mục gốc monorepo.
537
-
538
- **H: NestJS template riêng hay dùng chung với Express?**
539
- NestJS sử dụng template `node-nestjs` chuyên dụng với các danh mục phân tích riêng cho NestJS: decorator `@Module`, `@Injectable`, `@Controller`, Guards, Pipes, Interceptors, DI container, pattern CQRS, và `Test.createTestingModule`. Dự án Express sử dụng template `node-express` riêng biệt.
540
-
541
- **H: Dự án Vue / Nuxt thì sao?**
542
- Vue/Nuxt sử dụng template `vue-nuxt` chuyên dụng bao gồm Composition API, `<script setup>`, defineProps/defineEmits, Pinia stores, `useFetch`/`useAsyncData`, Nitro server routes, và `@nuxt/test-utils`. Dự án Next.js/React sử dụng template `node-nextjs`.
543
-
544
- **H: hỗ trợ Kotlin không?**
545
- Có. ClaudeOS-Core tự động phát hiện Kotlin từ `build.gradle.kts` hoặc kotlin plugin trong `build.gradle`. Sử dụng template chuyên dụng `kotlin-spring` để phân tích các pattern đặc thù của Kotlin (data class, sealed class, coroutine, extension function, MockK, v.v.).
546
-
547
- **H: Kiến trúc CQRS / BFF thì sao?**
548
- Hỗ trợ đầy đủ cho các dự án Kotlin multi-module. ClaudeOS-Core đọc `settings.gradle.kts`, phát hiện loại module (command, query, bff, integration) từ tên module, và nhóm các module Command/Query cùng domain lại. Các standard được tạo bao gồm quy tắc riêng cho command controller vs query controller, pattern BFF/Feign và quy ước giao tiếp giữa các module.
549
-
550
- **H: Gradle multi-module monorepo thì sao?**
551
- ClaudeOS-Core quét tất cả submodule (`**/src/main/kotlin/**/*.kt`) bất kể độ sâu lồng nhau. Loại module được suy luận từ quy ước đặt tên (ví dụ: `reservation-command-server` → domain: `reservation`, type: `command`). Thư viện chia sẻ (`shared-lib`, `integration-lib`) cũng được phát hiện.
552
-
553
- ---
554
-
555
- ## Cấu Trúc Template
556
-
557
- ```
558
- pass-prompts/templates/
559
- ├── common/ # Header/footer chung
560
- ├── java-spring/ # Java / Spring Boot
561
- ├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
562
- ├── node-express/ # Node.js / Express
563
- ├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
564
- ├── node-fastify/ # Node.js / Fastify
565
- ├── node-nextjs/ # Next.js / React
566
- ├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
567
- ├── angular/ # Angular
568
- ├── python-django/ # Python / Django (DRF)
569
- └── python-fastapi/ # Python / FastAPI
570
- ```
571
-
572
- `plan-installer` tự phát hiện stack của bạn, sau đó lắp ráp prompt theo loại. NestJS và Vue/Nuxt sử dụng template chuyên dụng với các danh mục phân tích riêng cho từng framework (ví dụ: `@Module`/`@Injectable`/Guards cho NestJS, `<script setup>`/Pinia/useFetch cho Vue). Với dự án multi-stack, `pass1-backend-prompt.md` và `pass1-frontend-prompt.md` được tạo riêng, trong khi `pass3-prompt.md` kết hợp mục tiêu tạo file của cả hai stack.
573
-
574
- ---
575
-
576
- ## Hỗ Trợ Monorepo
577
-
578
- ClaudeOS-Core tự động phát hiện thiết lập monorepo JS/TS và quét các sub-package để tìm dependency.
579
-
580
- **Monorepo marker được hỗ trợ** (tự động phát hiện):
581
- - `turbo.json` (Turborepo)
582
- - `pnpm-workspace.yaml` (pnpm workspaces)
583
- - `lerna.json` (Lerna)
584
- - `package.json#workspaces` (npm/yarn workspaces)
585
-
586
- **Chạy từ thư mục gốc monorepo** — ClaudeOS-Core đọc `apps/*/package.json` và `packages/*/package.json` để tìm dependency framework/ORM/DB trong các sub-package:
587
-
588
- ```bash
589
- cd my-monorepo
590
- npx claudeos-core init
591
- ```
592
-
593
- **Những gì được phát hiện:**
594
- - Dependency từ `apps/web/package.json` (ví dụ: `next`, `react`) → frontend stack
595
- - Dependency từ `apps/api/package.json` (ví dụ: `express`, `prisma`) → backend stack
596
- - Dependency từ `packages/db/package.json` (ví dụ: `drizzle-orm`) → ORM/DB
597
- - Đường dẫn workspace tùy chỉnh từ `pnpm-workspace.yaml` (ví dụ: `services/*`)
598
-
599
- **Quét domain cũng bao gồm cấu trúc monorepo:**
600
- - `apps/api/src/modules/*/` và `apps/api/src/*/` cho domain backend
601
- - `apps/web/app/*/`, `apps/web/src/app/*/`, `apps/web/pages/*/` cho domain frontend
602
- - `packages/*/src/*/` cho domain package chia sẻ
603
-
604
- ```
605
- my-monorepo/ ← Chạy ở đây: npx claudeos-core init
606
- ├── turbo.json ← Tự động phát hiện là Turborepo
607
- ├── apps/
608
- ├── web/ Next.js phát hiện từ apps/web/package.json
609
- │ │ ├── app/dashboard/ ← Domain frontend được phát hiện
610
- │ └── package.json { "dependencies": { "next": "^14" } }
611
- └── api/ Express phát hiện từ apps/api/package.json
612
- ├── src/modules/users/ Domain backend được phát hiện
613
- └── package.json { "dependencies": { "express": "^4" } }
614
- ├── packages/
615
- ├── db/ Drizzle phát hiện từ packages/db/package.json
616
- │ └── ui/
617
- └── package.json { "workspaces": ["apps/*", "packages/*"] }
618
- ```
619
-
620
- > **Lưu ý:** Với monorepo Kotlin/Java, phát hiện multi-module sử dụng `settings.gradle.kts` (xem [Phát Hiện Domain Kotlin Multi-Module](#phát-hiện-domain-kotlin-multi-module) ở trên) và không yêu cầu JS monorepo marker.
621
-
622
- ## Xử Sự Cố
623
-
624
- **"claude: command not found"** — Claude Code CLI chưa được cài đặt hoặc không nằm trong PATH. Xem [tài liệu Claude Code](https://code.claude.com/docs/en/overview).
625
-
626
- **"npm install failed"** — Phiên bản Node.js thể quá thấp. Yêu cầu v18+.
627
-
628
- **"0 domains detected"** — Cấu trúc dự án có thể không chuẩn. Xem pattern phát hiện trong [tài liệu tiếng Hàn](./README.ko.md#트러블슈팅) cho stack của bạn.
629
-
630
- **Dự án Kotlin "phát hiện 0 domain"** — Đảm bảo thư mục gốc `build.gradle.kts` (hoặc `build.gradle` với kotlin plugin), file nguồn nằm dưới `**/src/main/kotlin/`. Với dự án multi-module, `settings.gradle.kts` phải chứa câu lệnh `include()`. Dự án Kotlin đơn module (không có `settings.gradle`) cũng được hỗ trợ — domain được trích xuất từ cấu trúc package/class dưới `src/main/kotlin/`.
631
-
632
- **"Ngôn ngữ phát hiện java thay vì kotlin"** — ClaudeOS-Core kiểm tra `build.gradle(.kts)` gốc trước, sau đó kiểm tra file build của submodule. Đảm bảo ít nhất một file chứa `kotlin("jvm")` hoặc `org.jetbrains.kotlin`.
633
-
634
- **"Không phát hiện CQRS"** Phát hiện kiến trúc phụ thuộc vào tên module chứa từ khóa `command` `query`. Nếu module của bạn dùng tên khác, thể điều chỉnh thủ công các prompt đã tạo.
635
-
636
- ---
637
-
638
- ## Đóng Góp
639
-
640
- Chào đón mọi đóng góp! Các lĩnh vực cần hỗ trợ nhất:
641
-
642
- - **Template stack mới** Ruby/Rails, Go/Gin, PHP/Laravel, Rust/Axum
643
- - **Hỗ trợ monorepo sâu** — Root sub-project riêng, phát hiện workspace
644
- - **Độ phủ test** — Mở rộng bộ test (hiện tại 256 test bao gồm tất cả scanner, phát hiện stack, nhóm domain, phân tích plan, tạo prompt, bộ chọn CLI, phát hiện monorepo và công cụ xác thực)
645
-
646
- ---
647
-
648
- ## Tác Giả
649
-
650
- Được tạo bởi **claudeos-core** — [GitHub](https://github.com/claudeos-core) · [Email](mailto:claudeoscore@gmail.com)
651
-
652
- ## Giấy Phép
653
-
654
- ISC
1
+ # ClaudeOS-Core
2
+
3
+ **Công cụ duy nhất đọc mã nguồn trước, xác nhận stack và pattern bằng phân tích deterministic, sau đó tạo quy tắc Claude Code phù hợp chính xác với dự án của bạn.**
4
+
5
+ ```bash
6
+ npx claudeos-core init
7
+ ```
8
+
9
+ ClaudeOS-Core đọc codebase của bạn, trích xuất mọi pattern tìm thấy và tạo ra bộ Standards, Rules, Skills và Guides hoàn chỉnh được tùy chỉnh cho _dự án của bạn_. Sau đó, khi bạn nói với Claude Code "Tạo CRUD cho đơn hàng", nó sẽ tạo ra code khớp chính xác với các pattern hiện có của bạn.
10
+
11
+ [🇺🇸 English](./README.md) · [🇰🇷 한국어](./README.ko.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇪🇸 Español](./README.es.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇷🇺 Русский](./README.ru.md) · [🇫🇷 Français](./README.fr.md) · [🇩🇪 Deutsch](./README.de.md)
12
+
13
+ ---
14
+
15
+ ## Tại sao ClaudeOS-Core?
16
+
17
+ > Con người mô tả dự án → LLM tạo tài liệu
18
+
19
+ ClaudeOS-Core:
20
+
21
+ > Code phân tích source → Code xây dựng prompt tùy chỉnh → LLM tạo tài liệu → Code xác minh đầu ra
22
+
23
+ ### Vấn đề cốt lõi: LLM đoán. Code xác nhận.
24
+
25
+ Khi bạn yêu cầu Claude "phân tích dự án này", nó **đoán** stack, ORM, cấu trúc domain.
26
+
27
+ **ClaudeOS-Core không đoán.** Claude Node.js:
28
+
29
+ - `build.gradle` / `package.json` / `pyproject.toml` → **confirmed**
30
+ - directory scan → **confirmed**
31
+ - Java 5 patterns, Kotlin CQRS/BFF, Next.js App Router/FSD → **classified**
32
+ - domain groups → **split**
33
+ - stack-specific prompt → **assembled**
34
+
35
+ ### Kết quả
36
+
37
+ Các tool khác tạo tài liệu "tốt một cách chung chung".
38
+ ClaudeOS-Core tạo tài liệu biết rằng dự án sử dụng `ApiResponse.ok()` (không phải `ResponseEntity.success()`), MyBatis XML mapper nằm ở `src/main/resources/mybatis/mappers/` — vì nó đã đọc code thực tế.
39
+
40
+ ### Before & After
41
+
42
+ **Không có ClaudeOS-Core**:
43
+ ```
44
+ ❌ JPA repository (MyBatis)
45
+ ❌ ResponseEntity.success() (ApiResponse.ok())
46
+ ❌ order/controller/ (controller/order/)
47
+ → 20 min fix per file
48
+ ```
49
+
50
+ **Có ClaudeOS-Core**:
51
+ ```
52
+ ✅ MyBatis mapper + XML (build.gradle)
53
+ ✅ ApiResponse.ok() (source code)
54
+ ✅ controller/order/ (Pattern A)
55
+ → immediate match
56
+ ```
57
+
58
+ Sự khác biệt này tích lũy. 10 task/ngày × 20 phút tiết kiệm = **hơn 3 giờ/ngày**.
59
+
60
+ ---
61
+
62
+ ## Stack Được Hỗ Trợ
63
+
64
+ | Stack | Phát Hiện | Độ Sâu Phân Tích |
65
+ |---|---|---|
66
+ | **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 package patterns | 10 danh mục, 59 mục con |
67
+ | **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 danh mục, 95 mục con |
68
+ | **Node.js / Express** | `package.json` | 9 danh mục, 57 mục con |
69
+ | **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 danh mục, 68 mục con |
70
+ | **Next.js / React** | `package.json`, `next.config.*`, hỗ trợ FSD | 9 danh mục, 55 mục con |
71
+ | **Vue / Nuxt** | `package.json`, `nuxt.config.*`, Composition API | 9 danh mục, 58 mục con |
72
+ | **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 danh mục, 55 mục con |
73
+ | **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 danh mục, 58 mục con |
74
+ | **Node.js / Fastify** | `package.json` | 10 danh mục, 62 mục con |
75
+ | **Vite / React SPA** | `package.json`, `vite.config.*` | 9 danh mục, 55 mục con |
76
+ | **Angular** | `package.json`, `angular.json` | 12 danh mục, 78 mục con |
77
+
78
+ Tự động phát hiện: ngôn ngữ & phiên bản, framework & phiên bản (bao gồm Vite như SPA framework), ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy, v.v.), database (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), package manager (Gradle, Maven, npm, yarn, pnpm, pip, poetry), kiến trúc (CQRS, BFF — phát hiện từ tên module), cấu trúc multi-module (từ settings.gradle), monorepo (Turborepo, pnpm-workspace, Lerna, npm/yarn workspaces).
79
+
80
+ **Bạn không cần chỉ định gì cả. Tất cả được phát hiện tự động.**
81
+
82
+
83
+ ### Phát Hiện Domain Java (5 pattern với fallback)
84
+
85
+ | Ưu tiên | Pattern | Cấu trúc | Ví dụ |
86
+ |---|---|---|---|
87
+ | A | Layer trước | `controller/{domain}/` | `controller/user/UserController.java` |
88
+ | B | Domain trước | `{domain}/controller/` | `user/controller/UserController.java` |
89
+ | D | Module prefix | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
90
+ | E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
91
+ | C | Phẳng | `controller/*.java` | `controller/UserController.java` → trích `user` từ tên class |
92
+
93
+ Các domain chỉ có service (không có controller) cũng được phát hiện qua thư mục `service/`, `dao/`, `aggregator/`, `facade/`, `usecase/`, `orchestrator/`, `mapper/`, `repository/`. Bỏ qua: `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2`, v.v.
94
+
95
+
96
+ ### Phát Hiện Domain Kotlin Multi-Module
97
+
98
+ Dành cho dự án Kotlin với cấu trúc Gradle multi-module (ví dụ: CQRS monorepo):
99
+
100
+ | Bước | Hành Động | Ví Dụ |
101
+ |---|---|---|
102
+ | 1 | Quét `settings.gradle.kts` tìm `include()` | Tìm thấy 14 module |
103
+ | 2 | Phát hiện loại module từ tên | `reservation-command-server` → type: `command` |
104
+ | 3 | Trích xuất domain từ tên module | `reservation-command-server` domain: `reservation` |
105
+ | 4 | Nhóm cùng domain qua các module | `reservation-command-server` + `common-query-server` → 1 domain |
106
+ | 5 | Phát hiện kiến trúc | Có module `command` + `query` → CQRS |
107
+
108
+ Loại module hỗ trợ: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Thư viện chia sẻ (`shared-lib`, `integration-lib`) được phát hiện như domain đặc biệt.
109
+
110
+ ### Phát Hiện Domain Frontend
111
+
112
+ - **App Router**: `app/{domain}/page.tsx` (Next.js)
113
+ - **Pages Router**: `pages/{domain}/index.tsx`
114
+ - **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
115
+ - **RSC/Client split**: Phát hiện pattern `client.tsx`, theo dõi tách Server/Client
116
+ - **Đường dẫn lồng nhau không chuẩn**: Phát hiện pages, components FSD layers dưới `src/*/pages/`, `src/*/components/`, `src/*/features/` (ví dụ: `src/admin/pages/dashboard/`)
117
+ - **Config fallback**: Phát hiện Next.js/Vite/Nuxt từ file config (hỗ trợ monorepo)
118
+ - **Fallback thư mục sâu**: Với dự án React/CRA/Vite/Vue/RN, quét `**/components/*/`, `**/views/*/`, `**/screens/*/`, `**/containers/*/`, `**/pages/*/`, `**/routes/*/`, `**/modules/*/`, `**/domains/*/` ở mọi độ sâu
119
+
120
+ ---
121
+
122
+ ## Bắt Đầu Nhanh
123
+
124
+ ### Yêu Cầu
125
+
126
+ - **Node.js** v18+
127
+ - **Claude Code CLI** (đã cài đặt & xác thực)
128
+
129
+ ### Cài Đặt
130
+
131
+ ```bash
132
+ cd /your/project/root
133
+
134
+ # Cách A: npx (khuyến nghị — không cần cài đặt)
135
+ npx claudeos-core init
136
+
137
+ # Cách B: cài đặt global
138
+ npm install -g claudeos-core
139
+ claudeos-core init
140
+
141
+ # Cách C: devDependency của dự án
142
+ npm install --save-dev claudeos-core
143
+ npx claudeos-core init
144
+
145
+ # Cách D: git clone (cho phát triển/đóng góp)
146
+ git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
147
+
148
+ # Đa nền tảng (PowerShell, CMD, Bash, Zsh — mọi terminal)
149
+ node claudeos-core-tools/bin/cli.js init
150
+
151
+ # Chỉ Linux/macOS (chỉ Bash)
152
+ bash claudeos-core-tools/bootstrap.sh
153
+ ```
154
+
155
+ ### Ngôn ngữ đầu ra (10 ngôn ngữ)
156
+
157
+ Khi chạy `init` không có `--lang`, bộ chọn tương tác bằng phím mũi tên hoặc phím số sẽ xuất hiện:
158
+
159
+ ```
160
+ ╔══════════════════════════════════════════════════╗
161
+ ║ Select generated document language (required) ║
162
+ ╚══════════════════════════════════════════════════╝
163
+
164
+ Các file được tạo (CLAUDE.md, Standards, Rules,
165
+ Skills, Guides) sẽ được viết bằng tiếng Việt.
166
+
167
+ 1. enEnglish
168
+ ...
169
+ ❯ 6. vi — Tiếng Việt (Vietnamese)
170
+ ...
171
+
172
+ ↑↓ Move 1-0 Jump Enter Select ESC Cancel
173
+ ```
174
+
175
+ Mô tả thay đổi sang ngôn ngữ tương ứng khi di chuyển. Bỏ qua bộ chọn:
176
+
177
+ ```bash
178
+ npx claudeos-core init --lang vi # Tiếng Việt
179
+ npx claudeos-core init --lang en # English
180
+ npx claudeos-core init --lang ko # 한국어
181
+ ```
182
+
183
+ > **Lưu ý:** Chỉ thay đổi ngôn ngữ của file tài liệu được tạo. Phân tích (Pass 1–2) luôn chạy bằng tiếng Anh; chỉ kết quả tạo (Pass 3) được viết bằng ngôn ngữ đã chọn.
184
+
185
+ Chỉ vậy thôi. Sau 5–18 phút, tất cả tài liệu được tạo và sẵn sàng sử dụng. CLI hiển thị thanh tiến trình với phần trăm, thời gian đã trôi và thời gian còn lại ước tính cho mỗi Pass.
186
+
187
+ ### Cài Đặt Thủ Công Từng Bước
188
+
189
+ Nếu bạn muốn kiểm soát hoàn toàn từng giai đoạn — hoặc nếu pipeline tự động thất bại ở bước nào đó — bạn có thể chạy từng bước thủ công. Điều này cũng hữu ích để hiểu cách ClaudeOS-Core hoạt động bên trong.
190
+
191
+ #### Step 1: Clone và cài đặt dependencies
192
+
193
+ ```bash
194
+ cd /your/project/root
195
+
196
+ git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
197
+ cd claudeos-core-tools && npm install && cd ..
198
+ ```
199
+
200
+ #### Step 2: Tạo cấu trúc thư mục
201
+
202
+ ```bash
203
+ # Rules
204
+ mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
205
+
206
+ # Standards
207
+ mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
208
+
209
+ # Skills
210
+ mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
211
+
212
+ # Guide, Plan, Database, MCP, Generated
213
+ mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
214
+ mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
215
+ ```
216
+
217
+ #### Step 3: Chạy plan-installer (phân tích dự án)
218
+
219
+ Quét dự án, phát hiện stack, tìm domain, chia nhóm và tạo prompt.
220
+
221
+ ```bash
222
+ node claudeos-core-tools/plan-installer/index.js
223
+ ```
224
+
225
+ **Đầu ra (`claudeos-core/generated/`):**
226
+ - `project-analysis.json` stack phát hiện, domain, thông tin frontend
227
+ - `domain-groups.json` — nhóm domain cho Pass 1
228
+ - `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — prompt phân tích
229
+ - `pass2-prompt.md` — prompt hợp nhất
230
+ - `pass3-prompt.md` prompt tạo
231
+
232
+ Bạn thể kiểm tra các file này để xác minh độ chính xác phát hiện trước khi tiếp tục.
233
+
234
+ #### Step 4: Pass 1 Phân tích code sâu theo nhóm domain
235
+
236
+ Chạy Pass 1 cho mỗi nhóm domain. Kiểm tra `domain-groups.json` để biết số nhóm.
237
+
238
+ ```bash
239
+ # Check groups
240
+ cat claudeos-core/generated/domain-groups.json | node -e "
241
+ const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
242
+ g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
243
+ "
244
+
245
+ # Run Pass 1 for group 1:
246
+ cp claudeos-core/generated/pass1-backend-prompt.md /tmp/_pass1.md
247
+ DOMAIN_LIST="user, order, product" PASS_NUM=1 \
248
+ perl -pi -e 's/\{\{DOMAIN_GROUP\}\}/$ENV{DOMAIN_LIST}/g; s/\{\{PASS_NUM\}\}/$ENV{PASS_NUM}/g' /tmp/_pass1.md
249
+ cat /tmp/_pass1.md | claude -p --dangerously-skip-permissions
250
+
251
+ # Đối với nhóm frontend, sử dụng pass1-frontend-prompt.md
252
+ ```
253
+
254
+ **Xác minh:** `ls claudeos-core/generated/pass1-*.json` phải hiển thị một JSON cho mỗi nhóm.
255
+
256
+ #### Step 5: Pass 2 — Hợp nhất kết quả phân tích
257
+
258
+ ```bash
259
+ cat claudeos-core/generated/pass2-prompt.md \
260
+ | claude -p --dangerously-skip-permissions
261
+ ```
262
+
263
+ **Xác minh:** `claudeos-core/generated/pass2-merged.json` phải tồn tại với 9+ key cấp cao nhất.
264
+
265
+ #### Step 6: Pass 3 — Tạo tất cả tài liệu
266
+
267
+ ```bash
268
+ cat claudeos-core/generated/pass3-prompt.md \
269
+ | claude -p --dangerously-skip-permissions
270
+ ```
271
+
272
+ **Xác minh:** `CLAUDE.md` phải tồn tại thư mục gốc dự án.
273
+
274
+ #### Step 7: Chạy công cụ xác thực
275
+
276
+ ```bash
277
+ # Tạo metadata (bắt buộc trước các kiểm tra khác)
278
+ node claudeos-core-tools/manifest-generator/index.js
279
+
280
+ # Chạy tất cả kiểm tra
281
+ node claudeos-core-tools/health-checker/index.js
282
+
283
+ # Hoặc chạy kiểm tra riêng lẻ:
284
+ node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ disk
285
+ node claudeos-core-tools/sync-checker/index.js # Sync status
286
+ node claudeos-core-tools/content-validator/index.js # Content quality
287
+ node claudeos-core-tools/pass-json-validator/index.js # JSON format
288
+ ```
289
+
290
+ #### Step 8: Xác minh kết quả
291
+
292
+ ```bash
293
+ find .claude claudeos-core -type f | grep -v node_modules | grep -v '/generated/' | wc -l
294
+ head -30 CLAUDE.md
295
+ ls .claude/rules/*/
296
+ ```
297
+
298
+ > **Mẹo:** Nếu bước nào thất bại, bạn có thể chạy lại chỉ bước đó. Kết quả Pass 1/2 được cache — nếu `pass1-N.json` hoặc `pass2-merged.json` đã tồn tại, pipeline tự động sẽ bỏ qua. Dùng `npx claudeos-core init --force` để xóa kết quả trước và bắt đầu lại từ đầu.
299
+
300
+ ### Bắt Đầu Sử Dụng
301
+
302
+ ```
303
+ # Trong Claude Code chỉ cần nói tự nhiên:
304
+ "Tạo CRUD cho domain đơn hàng"
305
+ "Thêm API xác thực người dùng"
306
+ "Refactor code này theo pattern của dự án"
307
+
308
+ # Claude Code tự động tham chiếu Standards, Rules và Skills đã tạo.
309
+ ```
310
+
311
+ ---
312
+
313
+ ## Cách Hoạt Động — Pipeline 3-Pass
314
+
315
+ ```
316
+ npx claudeos-core init
317
+
318
+ ├── [1] npm install Cài dependencies (~10s)
319
+ ├── [2] Cấu trúc thư mục ← Tạo folders (~1s)
320
+ ├── [3] plan-installer (Node.js) ← Quét dự án (~5s)
321
+ │ ├── Tự động phát hiện stack (hỗ trợ multi-stack)
322
+ ├── Trích xuất danh sách domain (gắn tag: backend/frontend)
323
+ ├── Phân chia nhóm domain (theo loại)
324
+ └── Chọn prompt theo stack (theo loại)
325
+
326
+ ├── [4] Pass 1 × N (claude -p) ← Phân tích code chuyên sâu (~2-8 phút)
327
+ ├── ⚙️ Nhóm backend → prompt phân tích backend
328
+ │ └── 🎨 Nhóm frontend prompt phân tích frontend
329
+
330
+ ├── [5] Pass 2 × 1 (claude -p) ← Hợp nhất phân tích (~1 phút)
331
+ │ └── Tổng hợp TẤT CẢ kết quả Pass 1 (backend + frontend)
332
+
333
+ ├── [6] Pass 3 × 1 (claude -p) ← Tạo toàn bộ file (~3-5 phút)
334
+ └── Prompt kết hợp (mục tiêu backend + frontend)
335
+
336
+ └── [7] Xác thực ← Tự động chạy health checker
337
+ ```
338
+
339
+ ### Tại Sao 3 Pass?
340
+
341
+ **Pass 1** pass duy nhất đọc nguồn. chọn file đại diện cho mỗi domain và trích xuất pattern trên 55–95 danh mục phân tích (theo stack). Với dự án lớn, Pass 1 chạy nhiều lần mỗi nhóm domain một lần. Trong dự án multi-stack (ví dụ: Java backend + React frontend), backend frontend sử dụng **prompt phân tích riêng biệt** phù hợp với từng stack.
342
+
343
+ **Pass 2** hợp nhất tất cả kết quả Pass 1 thành phân tích thống nhất: pattern chung (100% chia sẻ), pattern đa số (50%+ chia sẻ), pattern riêng domain, anti-pattern theo mức độ nghiêm trọng các mối quan tâm xuyên suốt (đặt tên, bảo mật, DB, testing, logging, hiệu suất).
344
+
345
+ **Pass 3** lấy phân tích đã hợp nhất và tạo toàn bộ hệ sinh thái file. Nó không bao giờ đọc mã nguồn — chỉ đọc JSON phân tích. Trong chế độ multi-stack, prompt tạo file kết hợp mục tiêu backend và frontend để tạo cả hai bộ tiêu chuẩn trong một pass duy nhất.
346
+
347
+ ---
348
+
349
+ ## Cấu Trúc File Được Tạo
350
+
351
+ ```
352
+ your-project/
353
+
354
+ ├── CLAUDE.md ← Điểm vào Claude Code
355
+
356
+ ├── .claude/
357
+ └── rules/ ← Rules kích hoạt bằng Glob
358
+ │ ├── 00.core/
359
+ │ ├── 10.backend/
360
+ │ ├── 20.frontend/
361
+ ├── 30.security-db/
362
+ ├── 40.infra/
363
+ │ └── 50.sync/ Rules nhắc nhở đồng bộ
364
+
365
+ ├── claudeos-core/ Thư mục đầu ra chính
366
+ │ ├── generated/ JSON phân tích + prompt động
367
+ │ ├── standard/ Tiêu chuẩn code (15-19 file)
368
+ │ ├── skills/ Skills scaffolding CRUD
369
+ │ ├── guide/ Onboarding, FAQ, troubleshooting (9 file)
370
+ ├── plan/ Master Plans (backup/khôi phục)
371
+ ├── database/ ← Schema DB, hướng dẫn migration
372
+ └── mcp-guide/ Hướng dẫn tích hợp MCP server
373
+
374
+ └── claudeos-core-tools/ ← Bộ công cụ này (không chỉnh sửa)
375
+ ```
376
+
377
+ Mỗi file tiêu chuẩn bao gồm ví dụ ✅ đúng, ví dụ ❌ sai và bảng tóm tắt rules — tất cả được trích xuất từ pattern code thực tế của bạn, không phải template chung.
378
+
379
+ ---
380
+
381
+ ## Tự Động Mở Rộng Theo Quy Dự Án
382
+
383
+ | Quy | Số Domain | Số Lần Pass 1 | Tổng `claude -p` | Thời Gian Ước Tính |
384
+ |---|---|---|---|---|
385
+ | Nhỏ | 14 | 1 | 3 | ~5 phút |
386
+ | Trung Bình | 5–8 | 2 | 4 | ~8 phút |
387
+ | Lớn | 9–16 | 3–4 | 5–6 | ~12 phút |
388
+ | Rất Lớn | 17+ | 5+ | 7+ | ~18 phút+ |
389
+
390
+ Với dự án multi-stack (ví dụ: Java + React), domain backend và frontend được đếm chung. Dự án có 6 domain backend + 4 frontend = tổng 10, mở rộng theo mức "Lớn".
391
+
392
+ ---
393
+
394
+ ## Công Cụ Xác Thực
395
+
396
+ ClaudeOS-Core bao gồm 5 công cụ xác thực tích hợp, chạy tự động sau khi tạo:
397
+
398
+ ```bash
399
+ # Chạy tất cả kiểm tra cùng lúc (khuyến nghị)
400
+ npx claudeos-core health
401
+
402
+ # Lệnh riêng lẻ
403
+ npx claudeos-core validate # So sánh Plan đĩa
404
+ npx claudeos-core refresh # Đồng bộ Đĩa → Plan
405
+ npx claudeos-core restore # Khôi phục Plan → Đĩa
406
+ ```
407
+
408
+ | Công Cụ | Chức Năng |
409
+ |---|---|
410
+ | **manifest-generator** | Xây dựng JSON metadata (rule-manifest, sync-map, plan-manifest) |
411
+ | **plan-validator** | So sánh khối `<file>` của Master Plan với đĩa 3 chế độ: check, refresh, restore |
412
+ | **sync-checker** | Phát hiện file chưa đăng (trên đĩa nhưng không trong plan) mục mồ côi |
413
+ | **content-validator** | Xác thực chất lượng file — file trống, thiếu ví dụ ✅/❌, phần bắt buộc |
414
+ | **pass-json-validator** | Xác thực cấu trúc JSON Pass 1–3, khóa bắt buộc và tính đầy đủ của phần |
415
+
416
+ ---
417
+
418
+ ## Claude Code Sử Dụng Tài Liệu Như Thế Nào
419
+
420
+ Đây cách Claude Code thực sự đọc tài liệu được ClaudeOS-Core tạo ra:
421
+
422
+ ### File được đọc tự động
423
+
424
+ | File | Thời điểm | Đảm bảo |
425
+ |---|---|---|
426
+ | `CLAUDE.md` | Mỗi lần bắt đầu cuộc trò chuyện | Luôn luôn |
427
+ | `.claude/rules/00.core/*` | Khi chỉnh sửa file (`paths: ["**/*"]`) | Luôn luôn |
428
+ | `.claude/rules/10.backend/*` | Khi chỉnh sửa file (`paths: ["**/*"]`) | Luôn luôn |
429
+ | `.claude/rules/30.security-db/*` | Khi chỉnh sửa file (`paths: ["**/*"]`) | Luôn luôn |
430
+ | `.claude/rules/40.infra/*` | Chỉ khi chỉnh sửa file config/infra (paths giới hạn) | Có điều kiện |
431
+ | `.claude/rules/50.sync/*` | Chỉ khi chỉnh sửa file claudeos-core (paths giới hạn) | Có điều kiện |
432
+
433
+ ### File được đọc theo yêu cầu qua tham chiếu trong quy tắc
434
+
435
+ Mỗi file quy tắc liên kết đến standard tương ứng trong phần `## Reference`. Claude chỉ đọc standard liên quan đến tác vụ hiện tại:
436
+
437
+ - `claudeos-core/standard/**` — Pattern coding, ví dụ ✅/❌, quy tắc đặt tên
438
+ - `claudeos-core/database/**` DB schema (cho query, mapper, migration)
439
+
440
+ `00.standard-reference.md` đóng vai trò thư mục để khám phá các standard không có quy tắc tương ứng.
441
+
442
+ ### File KHÔNG đọc (tiết kiệm context)
443
+
444
+ Được loại trừ ràng qua phần `DO NOT Read` của quy tắc standard-reference:
445
+
446
+ | Thư mục | do loại trừ |
447
+ |---|---|
448
+ | `claudeos-core/plan/` | Backup Master Plan (~340KB). Dùng `npx claudeos-core refresh` để đồng bộ. |
449
+ | `claudeos-core/generated/` | JSON metadata build. Không dùng cho coding. |
450
+ | `claudeos-core/guide/` | Hướng dẫn onboarding cho người dùng. |
451
+ | `claudeos-core/mcp-guide/` | Tài liệu MCP server. Không dùng cho coding. |
452
+
453
+ ---
454
+
455
+ ## Quy Trình Làm Việc Hàng Ngày
456
+
457
+ ### Sau Khi Cài Đặt
458
+
459
+ ```
460
+ # Sử dụng Claude Code bình thường — nó tự động tham chiếu tiêu chuẩn:
461
+ "Tạo CRUD cho domain đơn hàng"
462
+ "Thêm API cập nhật hồ sơ người dùng"
463
+ "Refactor code này theo pattern của dự án"
464
+ ```
465
+
466
+ ### Sau Khi Chỉnh Sửa Thủ Công Standards
467
+
468
+ ```bash
469
+ # Sau khi chỉnh sửa file standard hoặc rules:
470
+ npx claudeos-core refresh
471
+
472
+ # Xác minh mọi thứ nhất quán
473
+ npx claudeos-core health
474
+ ```
475
+
476
+ ### Khi Tài Liệu Bị Hỏng
477
+
478
+ ```bash
479
+ # Khôi phục mọi thứ từ Master Plan
480
+ npx claudeos-core restore
481
+ ```
482
+
483
+ ### Tích Hợp CI/CD
484
+
485
+ ```yaml
486
+ # dụ GitHub Actions
487
+ - run: npx claudeos-core validate
488
+ # Mã thoát 1 chặn PR
489
+ ```
490
+
491
+ ---
492
+
493
+ ## Khác Biệt Gì?
494
+
495
+ | | ClaudeOS-Core | Everything Claude Code (50K+ ⭐) | Harness | specs-generator | Claude `/init` |
496
+ |---|---|---|---|---|---|
497
+ | **Approach** | Code analyzes first, then LLM generates | Pre-built config presets | LLM designs agent teams | LLM generates spec docs | LLM writes CLAUDE.md |
498
+ | **Reads your source code** | Deterministic static analysis | | | (LLM reads) | (LLM reads) |
499
+ | **Stack detection** | Code confirms (ORM, DB, build tool, pkg manager) | N/A (stack-agnostic) | LLM guesses | LLM guesses | LLM guesses |
500
+ | **Domain detection** | Code confirms (Java 5 patterns, Kotlin CQRS, Next.js FSD) | N/A | LLM guesses | N/A | N/A |
501
+ | **Same project Same result** | Deterministic analysis | (static files) | (LLM varies) | (LLM varies) | (LLM varies) |
502
+ | **Large project handling** | Domain group splitting (4 domains / 40 files per group) | N/A | No splitting | No splitting | Context window limit |
503
+ | **Output** | CLAUDE.md + Rules + Standards + Skills + Guides + Plans (40-50+ files) | Agents + Skills + Commands + Hooks | Agents + Skills | 6 spec documents | CLAUDE.md (1 file) |
504
+ | **Output location** | `.claude/rules/` (auto-loaded by Claude Code) | `.claude/` various | `.claude/agents/` + `.claude/skills/` | `.claude/steering/` + `specs/` | `CLAUDE.md` |
505
+ | **Post-generation verification** | ✅ 5 automated validators | ❌ | ❌ | ❌ | |
506
+ | **Multi-language output** | ✅ 10 languages | | | ❌ | ❌ |
507
+ | **Multi-stack** | ✅ Backend + Frontend simultaneous | ❌ Stack-agnostic | ❌ | ❌ | Partial |
508
+ | **Agent orchestration** | ❌ | ✅ 28 agents | ✅ 6 patterns | ❌ | ❌ |
509
+
510
+ ### Key difference
511
+
512
+ **Other tools give Claude "generally good instructions." ClaudeOS-Core gives Claude "instructions extracted from your actual code."**
513
+
514
+ ### Complementary, not competing
515
+
516
+ ClaudeOS-Core: **project-specific rules**. Other tools: **agent orchestration**.
517
+ Use both together.
518
+
519
+ ---
520
+ ## FAQ
521
+
522
+ **H: Nó có sửa đổi mã nguồn của tôi không?**
523
+ Không. Chỉ tạo `CLAUDE.md`, `.claude/rules/` và `claudeos-core/`. Code hiện có của bạn không bao giờ bị sửa đổi.
524
+
525
+ **H: Chi phí bao nhiêu?**
526
+ Gọi `claude -p` từ 3–7 lần. Nằm trong phạm vi sử dụng bình thường của Claude Code.
527
+
528
+ **H: Có nên commit file được tạo vào Git không?**
529
+ Khuyến nghị. Team của bạn có thể chia sẻ cùng tiêu chuẩn Claude Code. Cân nhắc thêm `claudeos-core/generated/` vào `.gitignore` (JSON phân tích thể tạo lại).
530
+
531
+ **H: Dự án multi-stack (ví dụ: Java backend + React frontend) thì sao?**
532
+ Hỗ trợ hoàn toàn. ClaudeOS-Core tự phát hiện cả hai stack, gắn tag domain là `backend` hoặc `frontend`, và sử dụng prompt phân tích riêng cho từng loại. Pass 2 hợp nhất tất cả, Pass 3 tạo tiêu chuẩn cho cả backend và frontend trong một pass duy nhất.
533
+
534
+ **H: Chạy lại thì sao?**
535
+ Nếu kết quả Pass 1/2 trước đó tồn tại, prompt tương tác cho phép bạn chọn: **Continue** (tiếp tục từ nơi dừng lại) hoặc **Fresh** (xóa tất cả và bắt đầu lại). Dùng `--force` để bỏ qua prompt và luôn bắt đầu lại từ đầu. Pass 3 luôn chạy lại. Phiên bản trước có thể khôi phục từ Master Plans.
536
+
537
+ **H: Có hoạt động với Turborepo / pnpm workspaces / Lerna monorepo không?**
538
+ Có. ClaudeOS-Core phát hiện `turbo.json`, `pnpm-workspace.yaml`, `lerna.json`, hoặc `package.json#workspaces` và tự động quét file `package.json` của sub-package để tìm dependency framework/ORM/DB. Quét domain bao gồm pattern `apps/*/src/` và `packages/*/src/`. Chạy từ thư mục gốc monorepo.
539
+
540
+ **H: NestJS có template riêng hay dùng chung với Express?**
541
+ NestJS sử dụng template `node-nestjs` chuyên dụng với các danh mục phân tích riêng cho NestJS: decorator `@Module`, `@Injectable`, `@Controller`, Guards, Pipes, Interceptors, DI container, pattern CQRS, và `Test.createTestingModule`. Dự án Express sử dụng template `node-express` riêng biệt.
542
+
543
+ **H: Dự án Vue / Nuxt thì sao?**
544
+ Vue/Nuxt sử dụng template `vue-nuxt` chuyên dụng bao gồm Composition API, `<script setup>`, defineProps/defineEmits, Pinia stores, `useFetch`/`useAsyncData`, Nitro server routes, và `@nuxt/test-utils`. Dự án Next.js/React sử dụng template `node-nextjs`.
545
+
546
+ **H: Có hỗ trợ Kotlin không?**
547
+ Có. ClaudeOS-Core tự động phát hiện Kotlin từ `build.gradle.kts` hoặc kotlin plugin trong `build.gradle`. Sử dụng template chuyên dụng `kotlin-spring` để phân tích các pattern đặc thù của Kotlin (data class, sealed class, coroutine, extension function, MockK, v.v.).
548
+
549
+ **H: Kiến trúc CQRS / BFF thì sao?**
550
+ Hỗ trợ đầy đủ cho các dự án Kotlin multi-module. ClaudeOS-Core đọc `settings.gradle.kts`, phát hiện loại module (command, query, bff, integration) từ tên module, và nhóm các module Command/Query cùng domain lại. Các standard được tạo bao gồm quy tắc riêng cho command controller vs query controller, pattern BFF/Feign và quy ước giao tiếp giữa các module.
551
+
552
+ **H: Gradle multi-module monorepo thì sao?**
553
+ ClaudeOS-Core quét tất cả submodule (`**/src/main/kotlin/**/*.kt`) bất kể độ sâu lồng nhau. Loại module được suy luận từ quy ước đặt tên (ví dụ: `reservation-command-server` → domain: `reservation`, type: `command`). Thư viện chia sẻ (`shared-lib`, `integration-lib`) cũng được phát hiện.
554
+
555
+ ---
556
+
557
+ ## Cấu Trúc Template
558
+
559
+ ```
560
+ pass-prompts/templates/
561
+ ├── common/ # Header/footer chung
562
+ ├── java-spring/ # Java / Spring Boot
563
+ ├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
564
+ ├── node-express/ # Node.js / Express
565
+ ├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
566
+ ├── node-fastify/ # Node.js / Fastify
567
+ ├── node-nextjs/ # Next.js / React
568
+ ├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
569
+ ├── angular/ # Angular
570
+ ├── python-django/ # Python / Django (DRF)
571
+ └── python-fastapi/ # Python / FastAPI
572
+ ```
573
+
574
+ `plan-installer` tự phát hiện stack của bạn, sau đó lắp ráp prompt theo loại. NestJS và Vue/Nuxt sử dụng template chuyên dụng với các danh mục phân tích riêng cho từng framework (ví dụ: `@Module`/`@Injectable`/Guards cho NestJS, `<script setup>`/Pinia/useFetch cho Vue). Với dự án multi-stack, `pass1-backend-prompt.md` và `pass1-frontend-prompt.md` được tạo riêng, trong khi `pass3-prompt.md` kết hợp mục tiêu tạo file của cả hai stack.
575
+
576
+ ---
577
+
578
+ ## Hỗ Trợ Monorepo
579
+
580
+ ClaudeOS-Core tự động phát hiện thiết lập monorepo JS/TS và quét các sub-package để tìm dependency.
581
+
582
+ **Monorepo marker được hỗ trợ** (tự động phát hiện):
583
+ - `turbo.json` (Turborepo)
584
+ - `pnpm-workspace.yaml` (pnpm workspaces)
585
+ - `lerna.json` (Lerna)
586
+ - `package.json#workspaces` (npm/yarn workspaces)
587
+
588
+ **Chạy từ thư mục gốc monorepo** — ClaudeOS-Core đọc `apps/*/package.json` và `packages/*/package.json` để tìm dependency framework/ORM/DB trong các sub-package:
589
+
590
+ ```bash
591
+ cd my-monorepo
592
+ npx claudeos-core init
593
+ ```
594
+
595
+ **Những được phát hiện:**
596
+ - Dependency từ `apps/web/package.json` (ví dụ: `next`, `react`) → frontend stack
597
+ - Dependency từ `apps/api/package.json` (ví dụ: `express`, `prisma`) → backend stack
598
+ - Dependency từ `packages/db/package.json` (ví dụ: `drizzle-orm`) → ORM/DB
599
+ - Đường dẫn workspace tùy chỉnh từ `pnpm-workspace.yaml` (ví dụ: `services/*`)
600
+
601
+ **Quét domain cũng bao gồm cấu trúc monorepo:**
602
+ - `apps/api/src/modules/*/` và `apps/api/src/*/` cho domain backend
603
+ - `apps/web/app/*/`, `apps/web/src/app/*/`, `apps/web/pages/*/` cho domain frontend
604
+ - `packages/*/src/*/` cho domain package chia sẻ
605
+
606
+ ```
607
+ my-monorepo/ ← Chạy ở đây: npx claudeos-core init
608
+ ├── turbo.json Tự động phát hiện Turborepo
609
+ ├── apps/
610
+ ├── web/ Next.js phát hiện từ apps/web/package.json
611
+ │ ├── app/dashboard/ Domain frontend được phát hiện
612
+ │ └── package.json { "dependencies": { "next": "^14" } }
613
+ └── api/ Express phát hiện từ apps/api/package.json
614
+ ├── src/modules/users/ ← Domain backend được phát hiện
615
+ └── package.json { "dependencies": { "express": "^4" } }
616
+ ├── packages/
617
+ │ ├── db/ Drizzle phát hiện từ packages/db/package.json
618
+ │ └── ui/
619
+ └── package.json ← { "workspaces": ["apps/*", "packages/*"] }
620
+ ```
621
+
622
+ > **Lưu ý:** Với monorepo Kotlin/Java, phát hiện multi-module sử dụng `settings.gradle.kts` (xem [Phát Hiện Domain Kotlin Multi-Module](#phát-hiện-domain-kotlin-multi-module) ở trên) và không yêu cầu JS monorepo marker.
623
+
624
+ ## Xử Sự Cố
625
+
626
+ **"claude: command not found"** — Claude Code CLI chưa được cài đặt hoặc không nằm trong PATH. Xem [tài liệu Claude Code](https://code.claude.com/docs/en/overview).
627
+
628
+ **"npm install failed"** — Phiên bản Node.js có thể quá thấp. Yêu cầu v18+.
629
+
630
+ **"0 domains detected"** — Cấu trúc dự ánthể không chuẩn. Xem pattern phát hiện trong [tài liệu tiếng Hàn](./README.ko.md#트러블슈팅) cho stack của bạn.
631
+
632
+ **Dự án Kotlin "phát hiện 0 domain"** — Đảm bảo thư mục gốc có `build.gradle.kts` (hoặc `build.gradle` với kotlin plugin), file nguồn nằm dưới `**/src/main/kotlin/`. Với dự án multi-module, `settings.gradle.kts` phải chứa câu lệnh `include()`. Dự án Kotlin đơn module (không có `settings.gradle`) cũng được hỗ trợ — domain được trích xuất từ cấu trúc package/class dưới `src/main/kotlin/`.
633
+
634
+ **"Ngôn ngữ phát hiện java thay kotlin"** ClaudeOS-Core kiểm tra `build.gradle(.kts)` gốc trước, sau đó kiểm tra file build của submodule. Đảm bảo ít nhất một file chứa `kotlin("jvm")` hoặc `org.jetbrains.kotlin`.
635
+
636
+ **"Không phát hiện CQRS"** — Phát hiện kiến trúc phụ thuộc vào tên module chứa từ khóa `command` và `query`. Nếu module của bạn dùng tên khác, có thể điều chỉnh thủ công các prompt đã tạo.
637
+
638
+ ---
639
+
640
+ ## Đóng Góp
641
+
642
+ Chào đón mọi đóng góp! Các lĩnh vực cần hỗ trợ nhất:
643
+
644
+ - **Template stack mới** — Ruby/Rails, Go/Gin, PHP/Laravel, Rust/Axum
645
+ - **Hỗ trợ monorepo sâu** — Root sub-project riêng, phát hiện workspace
646
+ - **Độ phủ test** — Mở rộng bộ test (hiện tại 269 test bao gồm tất cả scanner, phát hiện stack, nhóm domain, phân tích plan, tạo prompt, bộ chọn CLI, phát hiện monorepo, công cụ xác thực và phát hiện Vite SPA)
647
+
648
+ ---
649
+
650
+ ## Tác Giả
651
+
652
+ Được tạo bởi **claudeos-core** — [GitHub](https://github.com/claudeos-core) · [Email](mailto:claudeoscore@gmail.com)
653
+
654
+ ## Giấy Phép
655
+
656
+ ISC