claudeos-core 1.5.0 → 1.6.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/CHANGELOG.md +38 -0
- package/README.de.md +54 -27
- package/README.es.md +54 -26
- package/README.fr.md +54 -26
- package/README.hi.md +54 -27
- package/README.ja.md +53 -26
- package/README.ko.md +56 -29
- package/README.md +53 -26
- package/README.ru.md +54 -27
- package/README.vi.md +54 -27
- package/README.zh-CN.md +54 -27
- package/bin/cli.js +6 -2
- package/bin/commands/init.js +48 -46
- package/bin/lib/cli-utils.js +6 -10
- package/bin/lib/lang-selector.js +10 -8
- package/bin/lib/resume-selector.js +10 -8
- package/content-validator/index.js +7 -12
- package/health-checker/index.js +7 -17
- package/lib/plan-parser.js +149 -0
- package/lib/safe-fs.js +2 -2
- package/lib/stale-report.js +36 -0
- package/manifest-generator/index.js +13 -36
- package/package.json +87 -87
- package/pass-json-validator/index.js +7 -12
- package/pass-prompts/templates/node-nestjs/pass1.md +132 -0
- package/pass-prompts/templates/node-nestjs/pass2.md +97 -0
- package/pass-prompts/templates/node-nestjs/pass3.md +121 -0
- package/pass-prompts/templates/vue-nuxt/pass1.md +119 -0
- package/pass-prompts/templates/vue-nuxt/pass2.md +83 -0
- package/pass-prompts/templates/vue-nuxt/pass3.md +100 -0
- package/plan-installer/domain-grouper.js +5 -2
- package/plan-installer/prompt-generator.js +1 -4
- package/plan-installer/scanners/scan-frontend.js +14 -7
- package/plan-installer/scanners/scan-java.js +18 -13
- package/plan-installer/scanners/scan-kotlin.js +47 -23
- package/plan-installer/scanners/scan-node.js +16 -2
- package/plan-installer/stack-detector.js +42 -1
- package/plan-validator/index.js +11 -121
- package/sync-checker/index.js +6 -19
package/README.md
CHANGED
|
@@ -75,14 +75,16 @@ This difference compounds. 10 tasks/day × 20 minutes saved = **3+ hours/day**.
|
|
|
75
75
|
|---|---|---|
|
|
76
76
|
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 package patterns | 10 categories, 59 sub-items |
|
|
77
77
|
| **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 categories, 95 sub-items |
|
|
78
|
-
| **Node.js / Express
|
|
79
|
-
| **
|
|
78
|
+
| **Node.js / Express** | `package.json` | 9 categories, 57 sub-items |
|
|
79
|
+
| **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 categories, 68 sub-items |
|
|
80
|
+
| **Next.js / React** | `package.json`, `next.config.*`, FSD support | 9 categories, 55 sub-items |
|
|
81
|
+
| **Vue / Nuxt** | `package.json`, `nuxt.config.*`, Composition API | 9 categories, 58 sub-items |
|
|
80
82
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 categories, 55 sub-items |
|
|
81
83
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 categories, 58 sub-items |
|
|
82
84
|
| **Node.js / Fastify** | `package.json` | 10 categories, 62 sub-items |
|
|
83
85
|
| **Angular** | `package.json`, `angular.json` | 12 categories, 78 sub-items |
|
|
84
86
|
|
|
85
|
-
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).
|
|
87
|
+
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), monorepo (Turborepo, pnpm-workspace, Lerna, npm/yarn workspaces).
|
|
86
88
|
|
|
87
89
|
**You don't specify anything. It's all detected automatically.**
|
|
88
90
|
|
|
@@ -96,7 +98,7 @@ Auto-detected: language & version, framework & version, ORM (MyBatis, JPA, Expos
|
|
|
96
98
|
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
97
99
|
| C | Flat | `controller/*.java` | `controller/UserController.java` → extracts `user` from class name |
|
|
98
100
|
|
|
99
|
-
Service-only domains (without controllers) are also detected via `service/`, `dao/`, `aggregator/`, `mapper/`, `repository/` directories. Skips: `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2`, etc.
|
|
101
|
+
Service-only domains (without controllers) are also detected via `service/`, `dao/`, `aggregator/`, `facade/`, `usecase/`, `orchestrator/`, `mapper/`, `repository/` directories. Skips: `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2`, etc.
|
|
100
102
|
|
|
101
103
|
### Kotlin Multi-Module Domain Detection
|
|
102
104
|
|
|
@@ -192,7 +194,7 @@ npx claudeos-core init --lang en # English (default)
|
|
|
192
194
|
|
|
193
195
|
> **Note:** This sets the language for generated documentation files only. Code analysis (Pass 1–2) always runs in English; generated output (Pass 3) is written in your chosen language. Code examples inside the generated files remain in their original programming language syntax.
|
|
194
196
|
|
|
195
|
-
That's it. After 5–18 minutes, all documentation is generated and ready to use.
|
|
197
|
+
That's it. After 5–18 minutes, all documentation is generated and ready to use. The CLI shows elapsed time per pass and total time in the completion banner.
|
|
196
198
|
|
|
197
199
|
### Manual Step-by-Step Installation
|
|
198
200
|
|
|
@@ -583,9 +585,18 @@ Yes, recommended. Your team can share the same Claude Code standards. Consider a
|
|
|
583
585
|
**Q: What about mixed-stack projects (e.g., Java backend + React frontend)?**
|
|
584
586
|
Fully supported. ClaudeOS-Core auto-detects both stacks, tags domains as `backend` or `frontend`, and uses stack-specific analysis prompts for each. Pass 2 merges everything, and Pass 3 generates both backend and frontend standards in one pass.
|
|
585
587
|
|
|
588
|
+
**Q: Does it work with Turborepo / pnpm workspaces / Lerna monorepos?**
|
|
589
|
+
Yes. ClaudeOS-Core detects `turbo.json`, `pnpm-workspace.yaml`, `lerna.json`, or `package.json#workspaces` and automatically scans sub-package `package.json` files for framework/ORM/DB dependencies. Domain scanning covers `apps/*/src/` and `packages/*/src/` patterns. Run from the monorepo root.
|
|
590
|
+
|
|
586
591
|
**Q: What happens on re-run?**
|
|
587
592
|
If previous Pass 1/2 results exist, an interactive prompt lets you choose: **Continue** (resume from where it stopped) or **Fresh** (delete all and start over). Use `--force` to skip the prompt and always start fresh. Pass 3 always re-runs. Previous versions can be restored from Master Plans.
|
|
588
593
|
|
|
594
|
+
**Q: Does NestJS get its own template or use the Express one?**
|
|
595
|
+
NestJS uses a dedicated `node-nestjs` template with NestJS-specific analysis categories: `@Module`, `@Injectable`, `@Controller` decorators, Guards, Pipes, Interceptors, DI container, CQRS patterns, and `Test.createTestingModule`. Express projects use the separate `node-express` template.
|
|
596
|
+
|
|
597
|
+
**Q: What about Vue / Nuxt projects?**
|
|
598
|
+
Vue/Nuxt uses a dedicated `vue-nuxt` template covering Composition API, `<script setup>`, defineProps/defineEmits, Pinia stores, `useFetch`/`useAsyncData`, Nitro server routes, and `@nuxt/test-utils`. Next.js/React projects use the `node-nextjs` template.
|
|
599
|
+
|
|
589
600
|
**Q: Does it support Kotlin?**
|
|
590
601
|
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.).
|
|
591
602
|
|
|
@@ -604,50 +615,66 @@ pass-prompts/templates/
|
|
|
604
615
|
├── common/ # Shared header/footer
|
|
605
616
|
├── java-spring/ # Java / Spring Boot
|
|
606
617
|
├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
|
|
607
|
-
├── node-express/ # Node.js / Express
|
|
618
|
+
├── node-express/ # Node.js / Express
|
|
619
|
+
├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
|
|
608
620
|
├── node-fastify/ # Node.js / Fastify
|
|
609
|
-
├── node-nextjs/ # Next.js / React
|
|
621
|
+
├── node-nextjs/ # Next.js / React
|
|
622
|
+
├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
|
|
610
623
|
├── angular/ # Angular
|
|
611
624
|
├── python-django/ # Python / Django (DRF)
|
|
612
625
|
└── python-fastapi/ # Python / FastAPI
|
|
613
626
|
```
|
|
614
627
|
|
|
615
|
-
`plan-installer` auto-detects your stack(s), then assembles type-specific prompts. For multi-stack projects, separate `pass1-backend-prompt.md` and `pass1-frontend-prompt.md` are generated, while `pass3-prompt.md` combines both stacks' generation targets.
|
|
628
|
+
`plan-installer` auto-detects your stack(s), then assembles type-specific prompts. NestJS and Vue/Nuxt use dedicated templates with framework-specific analysis categories (e.g., `@Module`/`@Injectable`/Guards for NestJS, `<script setup>`/Pinia/useFetch for Vue). For multi-stack projects, separate `pass1-backend-prompt.md` and `pass1-frontend-prompt.md` are generated, while `pass3-prompt.md` combines both stacks' generation targets.
|
|
616
629
|
|
|
617
630
|
---
|
|
618
631
|
|
|
619
632
|
## Monorepo Support
|
|
620
633
|
|
|
621
|
-
ClaudeOS-Core
|
|
634
|
+
ClaudeOS-Core automatically detects JS/TS monorepo setups and scans sub-packages for dependencies.
|
|
622
635
|
|
|
623
|
-
**
|
|
636
|
+
**Supported monorepo markers** (auto-detected):
|
|
637
|
+
- `turbo.json` (Turborepo)
|
|
638
|
+
- `pnpm-workspace.yaml` (pnpm workspaces)
|
|
639
|
+
- `lerna.json` (Lerna)
|
|
640
|
+
- `package.json#workspaces` (npm/yarn workspaces)
|
|
624
641
|
|
|
625
|
-
|
|
626
|
-
# Example: Turborepo with apps/my-app
|
|
627
|
-
cd apps/my-app
|
|
628
|
-
npx claudeos-core init
|
|
642
|
+
**Run from the monorepo root** — ClaudeOS-Core reads `apps/*/package.json` and `packages/*/package.json` to discover framework/ORM/DB dependencies across sub-packages:
|
|
629
643
|
|
|
630
|
-
|
|
631
|
-
cd
|
|
644
|
+
```bash
|
|
645
|
+
cd my-monorepo
|
|
632
646
|
npx claudeos-core init
|
|
633
647
|
```
|
|
634
648
|
|
|
635
|
-
|
|
649
|
+
**What gets detected:**
|
|
650
|
+
- Dependencies from `apps/web/package.json` (e.g., `next`, `react`) → frontend stack
|
|
651
|
+
- Dependencies from `apps/api/package.json` (e.g., `express`, `prisma`) → backend stack
|
|
652
|
+
- Dependencies from `packages/db/package.json` (e.g., `drizzle-orm`) → ORM/DB
|
|
653
|
+
- Custom workspace paths from `pnpm-workspace.yaml` (e.g., `services/*`)
|
|
636
654
|
|
|
637
|
-
**
|
|
655
|
+
**Domain scanning also covers monorepo layouts:**
|
|
656
|
+
- `apps/api/src/modules/*/` and `apps/api/src/*/` for backend domains
|
|
657
|
+
- `apps/web/app/*/`, `apps/web/src/app/*/`, `apps/web/pages/*/` for frontend domains
|
|
658
|
+
- `packages/*/src/*/` for shared package domains
|
|
638
659
|
|
|
639
660
|
```
|
|
640
|
-
my-monorepo/ ←
|
|
661
|
+
my-monorepo/ ← Run here: npx claudeos-core init
|
|
662
|
+
├── turbo.json ← Auto-detected as Turborepo
|
|
641
663
|
├── apps/
|
|
642
|
-
│ ├── web/ ←
|
|
643
|
-
│ ├──
|
|
644
|
-
│ └──
|
|
664
|
+
│ ├── web/ ← Next.js detected from apps/web/package.json
|
|
665
|
+
│ │ ├── app/dashboard/ ← Frontend domain detected
|
|
666
|
+
│ │ └── package.json ← { "dependencies": { "next": "^14" } }
|
|
667
|
+
│ └── api/ ← Express detected from apps/api/package.json
|
|
668
|
+
│ ├── src/modules/users/ ← Backend domain detected
|
|
669
|
+
│ └── package.json ← { "dependencies": { "express": "^4" } }
|
|
645
670
|
├── packages/
|
|
646
|
-
│ ├──
|
|
647
|
-
│ └──
|
|
648
|
-
└── package.json ←
|
|
671
|
+
│ ├── db/ ← Drizzle detected from packages/db/package.json
|
|
672
|
+
│ └── ui/
|
|
673
|
+
└── package.json ← { "workspaces": ["apps/*", "packages/*"] }
|
|
649
674
|
```
|
|
650
675
|
|
|
676
|
+
> **Note:** For Kotlin/Java monorepos, multi-module detection uses `settings.gradle.kts` (see [Kotlin Multi-Module Detection](#kotlin-multi-module-domain-detection) above) and does not require JS monorepo markers.
|
|
677
|
+
|
|
651
678
|
## Troubleshooting
|
|
652
679
|
|
|
653
680
|
**"claude: command not found"** — Claude Code CLI is not installed or not in PATH. See [Claude Code docs](https://code.claude.com/docs/en/overview).
|
|
@@ -670,7 +697,7 @@ Contributions are welcome! Areas where help is most needed:
|
|
|
670
697
|
|
|
671
698
|
- **New stack templates** — Ruby/Rails, Go/Gin, PHP/Laravel, Rust/Axum
|
|
672
699
|
- **Monorepo deep support** — Separate sub-project roots, workspace detection
|
|
673
|
-
- **Test coverage** — Expanding test suite (currently
|
|
700
|
+
- **Test coverage** — Expanding test suite (currently 256 tests covering all scanners, stack detection, domain grouping, plan parsing, prompt generation, CLI selectors, monorepo detection, and verification tools)
|
|
674
701
|
|
|
675
702
|
---
|
|
676
703
|
|
package/README.ru.md
CHANGED
|
@@ -65,14 +65,16 @@ ClaudeOS-Core создаёт документацию, которая знает
|
|
|
65
65
|
|---|---|---|
|
|
66
66
|
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 паттернов пакетов | 10 категорий, 59 подпунктов |
|
|
67
67
|
| **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 категорий, 95 подпунктов |
|
|
68
|
-
| **Node.js / Express
|
|
69
|
-
| **
|
|
68
|
+
| **Node.js / Express** | `package.json` | 9 категорий, 57 подпунктов |
|
|
69
|
+
| **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 категорий, 68 подпунктов |
|
|
70
|
+
| **Next.js / React** | `package.json`, `next.config.*`, поддержка FSD | 9 категорий, 55 подпунктов |
|
|
71
|
+
| **Vue / Nuxt** | `package.json`, `nuxt.config.*`, Composition API | 9 категорий, 58 подпунктов |
|
|
70
72
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 категорий, 55 подпунктов |
|
|
71
73
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 категорий, 58 подпунктов |
|
|
72
74
|
| **Node.js / Fastify** | `package.json` | 10 категорий, 62 подпункта |
|
|
73
75
|
| **Angular** | `package.json`, `angular.json` | 12 категорий, 78 подпунктов |
|
|
74
76
|
|
|
75
|
-
Автоматическое определение: язык и версия, фреймворк и версия, ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy и др.), база данных (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), пакетный менеджер (Gradle, Maven, npm, yarn, pnpm, pip, poetry), архитектура (CQRS, BFF — определяется из имён модулей), мультимодульная структура (из settings.gradle).
|
|
77
|
+
Автоматическое определение: язык и версия, фреймворк и версия, ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy и др.), база данных (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), пакетный менеджер (Gradle, Maven, npm, yarn, pnpm, pip, poetry), архитектура (CQRS, BFF — определяется из имён модулей), мультимодульная структура (из settings.gradle), монорепозиторий (Turborepo, pnpm-workspace, Lerna, npm/yarn workspaces).
|
|
76
78
|
|
|
77
79
|
**Вам не нужно ничего указывать. Всё определяется автоматически.**
|
|
78
80
|
|
|
@@ -87,7 +89,7 @@ ClaudeOS-Core создаёт документацию, которая знает
|
|
|
87
89
|
| E | DDD/Гексагональный | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
88
90
|
| C | Плоский | `controller/*.java` | `controller/UserController.java` → извлекает `user` из имени класса |
|
|
89
91
|
|
|
90
|
-
Домены только с сервисами (без контроллеров) тоже обнаруживаются через директории `service/`, `dao/`, `aggregator/`, `mapper/`, `repository/`. Пропускаются: `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2` и т.д.
|
|
92
|
+
Домены только с сервисами (без контроллеров) тоже обнаруживаются через директории `service/`, `dao/`, `aggregator/`, `facade/`, `usecase/`, `orchestrator/`, `mapper/`, `repository/`. Пропускаются: `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2` и т.д.
|
|
91
93
|
|
|
92
94
|
|
|
93
95
|
### Обнаружение доменов Kotlin мультимодульных проектов
|
|
@@ -178,7 +180,7 @@ npx claudeos-core init --lang ko # 한국어
|
|
|
178
180
|
|
|
179
181
|
> **Примечание:** Эта настройка изменяет только язык генерируемых файлов документации. Анализ кода (Pass 1–2) всегда выполняется на английском; только результат генерации (Pass 3) пишется на выбранном языке.
|
|
180
182
|
|
|
181
|
-
Это всё. Через 5–18 минут вся документация сгенерирована и готова к использованию.
|
|
183
|
+
Это всё. Через 5–18 минут вся документация сгенерирована и готова к использованию. CLI показывает время каждого Pass и общее время в баннере завершения.
|
|
182
184
|
|
|
183
185
|
### Ручная пошаговая установка
|
|
184
186
|
|
|
@@ -530,6 +532,15 @@ Use both together.
|
|
|
530
532
|
**В: Что происходит при повторном запуске?**
|
|
531
533
|
Если предыдущие результаты Pass 1/2 существуют, интерактивный промпт позволяет выбрать: **Continue** (продолжить с места остановки) или **Fresh** (удалить всё и начать заново). Используйте `--force`, чтобы пропустить промпт и всегда начинать заново. Pass 3 всегда перезапускается. Предыдущие версии можно восстановить из Master Plans.
|
|
532
534
|
|
|
535
|
+
**В: Работает ли с Turborepo / pnpm workspaces / Lerna monorepo?**
|
|
536
|
+
Да. ClaudeOS-Core определяет `turbo.json`, `pnpm-workspace.yaml`, `lerna.json` или `package.json#workspaces` и автоматически сканирует `package.json` подпакетов для обнаружения зависимостей фреймворков/ORM/БД. Сканирование доменов охватывает паттерны `apps/*/src/` и `packages/*/src/`. Запускайте из корня monorepo.
|
|
537
|
+
|
|
538
|
+
**В: Использует ли NestJS собственный шаблон или шаблон Express?**
|
|
539
|
+
NestJS использует выделенный шаблон `node-nestjs` с NestJS-специфичными категориями анализа: декораторы `@Module`, `@Injectable`, `@Controller`, Guards, Pipes, Interceptors, DI-контейнер, паттерны CQRS и `Test.createTestingModule`. Проекты Express используют отдельный шаблон `node-express`.
|
|
540
|
+
|
|
541
|
+
**В: Как насчёт проектов Vue / Nuxt?**
|
|
542
|
+
Vue/Nuxt использует выделенный шаблон `vue-nuxt`, охватывающий Composition API, `<script setup>`, defineProps/defineEmits, хранилища Pinia, `useFetch`/`useAsyncData`, серверные маршруты Nitro и `@nuxt/test-utils`. Проекты Next.js/React используют шаблон `node-nextjs`.
|
|
543
|
+
|
|
533
544
|
**В: Поддерживается ли Kotlin?**
|
|
534
545
|
Да. ClaudeOS-Core автоматически определяет Kotlin из `build.gradle.kts` или плагина kotlin в `build.gradle`. Используется специальный шаблон `kotlin-spring` с Kotlin-специфичным анализом (data class, sealed class, корутины, функции-расширения, MockK и т.д.).
|
|
535
546
|
|
|
@@ -548,50 +559,66 @@ pass-prompts/templates/
|
|
|
548
559
|
├── common/ # Общий заголовок/футер
|
|
549
560
|
├── java-spring/ # Java / Spring Boot
|
|
550
561
|
├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
|
|
551
|
-
├── node-express/ # Node.js / Express
|
|
552
|
-
├── node-
|
|
553
|
-
├── python-django/ # Python / Django (DRF)
|
|
562
|
+
├── node-express/ # Node.js / Express
|
|
563
|
+
├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
|
|
554
564
|
├── node-fastify/ # Node.js / Fastify
|
|
565
|
+
├── node-nextjs/ # Next.js / React
|
|
566
|
+
├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
|
|
555
567
|
├── angular/ # Angular
|
|
568
|
+
├── python-django/ # Python / Django (DRF)
|
|
556
569
|
└── python-fastapi/ # Python / FastAPI
|
|
557
570
|
```
|
|
558
571
|
|
|
559
|
-
`plan-installer` автоматически определяет ваш стек(и) и собирает типо-специфичные промпты. Для мульти-стек проектов генерируются отдельные `pass1-backend-prompt.md` и `pass1-frontend-prompt.md`, а `pass3-prompt.md` объединяет цели генерации обоих стеков.
|
|
572
|
+
`plan-installer` автоматически определяет ваш стек(и) и собирает типо-специфичные промпты. NestJS и Vue/Nuxt используют выделенные шаблоны с фреймворк-специфичными категориями анализа (например, `@Module`/`@Injectable`/Guards для NestJS, `<script setup>`/Pinia/useFetch для Vue). Для мульти-стек проектов генерируются отдельные `pass1-backend-prompt.md` и `pass1-frontend-prompt.md`, а `pass3-prompt.md` объединяет цели генерации обоих стеков.
|
|
560
573
|
|
|
561
574
|
---
|
|
562
575
|
|
|
563
576
|
## Поддержка Monorepo
|
|
564
577
|
|
|
565
|
-
ClaudeOS-Core
|
|
578
|
+
ClaudeOS-Core автоматически определяет JS/TS monorepo-структуры и сканирует подпакеты для обнаружения зависимостей.
|
|
566
579
|
|
|
567
|
-
|
|
580
|
+
**Поддерживаемые маркеры monorepo** (определяются автоматически):
|
|
581
|
+
- `turbo.json` (Turborepo)
|
|
582
|
+
- `pnpm-workspace.yaml` (pnpm workspaces)
|
|
583
|
+
- `lerna.json` (Lerna)
|
|
584
|
+
- `package.json#workspaces` (npm/yarn workspaces)
|
|
568
585
|
|
|
569
|
-
|
|
570
|
-
# Пример: Turborepo с apps/my-app
|
|
571
|
-
cd apps/my-app
|
|
572
|
-
npx claudeos-core init
|
|
586
|
+
**Запускайте из корня monorepo** — ClaudeOS-Core читает `apps/*/package.json` и `packages/*/package.json` для обнаружения зависимостей фреймворков/ORM/БД по всем подпакетам:
|
|
573
587
|
|
|
574
|
-
|
|
575
|
-
cd
|
|
588
|
+
```bash
|
|
589
|
+
cd my-monorepo
|
|
576
590
|
npx claudeos-core init
|
|
577
591
|
```
|
|
578
592
|
|
|
579
|
-
|
|
593
|
+
**Что обнаруживается:**
|
|
594
|
+
- Зависимости из `apps/web/package.json` (например, `next`, `react`) — frontend-стек
|
|
595
|
+
- Зависимости из `apps/api/package.json` (например, `express`, `prisma`) — backend-стек
|
|
596
|
+
- Зависимости из `packages/db/package.json` (например, `drizzle-orm`) — ORM/БД
|
|
597
|
+
- Пользовательские пути воркспейсов из `pnpm-workspace.yaml` (например, `services/*`)
|
|
580
598
|
|
|
581
|
-
|
|
599
|
+
**Сканирование доменов также охватывает monorepo-структуры:**
|
|
600
|
+
- `apps/api/src/modules/*/` и `apps/api/src/*/` для backend-доменов
|
|
601
|
+
- `apps/web/app/*/`, `apps/web/src/app/*/`, `apps/web/pages/*/` для frontend-доменов
|
|
602
|
+
- `packages/*/src/*/` для доменов общих пакетов
|
|
582
603
|
|
|
583
604
|
```
|
|
584
|
-
my-monorepo/ ←
|
|
605
|
+
my-monorepo/ ← Запускайте здесь: npx claudeos-core init
|
|
606
|
+
├── turbo.json ← Автоопределение как Turborepo
|
|
585
607
|
├── apps/
|
|
586
|
-
│ ├── web/ ←
|
|
587
|
-
│ ├──
|
|
588
|
-
│ └──
|
|
608
|
+
│ ├── web/ ← Next.js определён из apps/web/package.json
|
|
609
|
+
│ │ ├── app/dashboard/ ← Frontend-домен обнаружен
|
|
610
|
+
│ │ └── package.json ← { "dependencies": { "next": "^14" } }
|
|
611
|
+
│ └── api/ ← Express определён из apps/api/package.json
|
|
612
|
+
│ ├── src/modules/users/ ← Backend-домен обнаружен
|
|
613
|
+
│ └── package.json ← { "dependencies": { "express": "^4" } }
|
|
589
614
|
├── packages/
|
|
590
|
-
│ ├──
|
|
591
|
-
│ └──
|
|
592
|
-
└── package.json ←
|
|
615
|
+
│ ├── db/ ← Drizzle определён из packages/db/package.json
|
|
616
|
+
│ └── ui/
|
|
617
|
+
└── package.json ← { "workspaces": ["apps/*", "packages/*"] }
|
|
593
618
|
```
|
|
594
619
|
|
|
620
|
+
> **Примечание:** Для Kotlin/Java monorepo мультимодульное определение использует `settings.gradle.kts` (см. [Обнаружение доменов Kotlin мультимодульных проектов](#обнаружение-доменов-kotlin-мультимодульных-проектов) выше) и не требует JS monorepo-маркеров.
|
|
621
|
+
|
|
595
622
|
## Устранение неполадок
|
|
596
623
|
|
|
597
624
|
**"claude: command not found"** — Claude Code CLI не установлен или не в PATH. Смотрите [документацию Claude Code](https://code.claude.com/docs/en/overview).
|
|
@@ -614,7 +641,7 @@ my-monorepo/ ← Не запускайте здесь (в к
|
|
|
614
641
|
|
|
615
642
|
- **Новые шаблоны стеков** — Ruby/Rails, Go/Gin, PHP/Laravel, Rust/Axum
|
|
616
643
|
- **Глубокая поддержка монорепо** — Отдельные корни подпроектов, обнаружение воркспейсов
|
|
617
|
-
- **Покрытие тестами** — Расширение набора тестов (сейчас
|
|
644
|
+
- **Покрытие тестами** — Расширение набора тестов (сейчас 256 тестов, покрывающих все сканеры, обнаружение стека, группировку доменов, парсинг планов, генерацию промптов, селекторы CLI, обнаружение monorepo и инструменты проверки)
|
|
618
645
|
|
|
619
646
|
---
|
|
620
647
|
|
package/README.vi.md
CHANGED
|
@@ -65,14 +65,16 @@ Sự khác biệt này tích lũy. 10 task/ngày × 20 phút tiết kiệm = **h
|
|
|
65
65
|
|---|---|---|
|
|
66
66
|
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 package patterns | 10 danh mục, 59 mục con |
|
|
67
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
|
|
69
|
-
| **
|
|
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 |
|
|
70
72
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 danh mục, 55 mục con |
|
|
71
73
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 danh mục, 58 mục con |
|
|
72
74
|
| **Node.js / Fastify** | `package.json` | 10 danh mục, 62 mục con |
|
|
73
75
|
| **Angular** | `package.json`, `angular.json` | 12 danh mục, 78 mục con |
|
|
74
76
|
|
|
75
|
-
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).
|
|
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).
|
|
76
78
|
|
|
77
79
|
**Bạn không cần chỉ định gì cả. Tất cả được phát hiện tự động.**
|
|
78
80
|
|
|
@@ -87,7 +89,7 @@ Tự động phát hiện: ngôn ngữ & phiên bản, framework & phiên bản,
|
|
|
87
89
|
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
88
90
|
| C | Phẳng | `controller/*.java` | `controller/UserController.java` → trích `user` từ tên class |
|
|
89
91
|
|
|
90
|
-
Các domain chỉ có service (không có controller) cũng được phát hiện qua thư mục `service/`, `dao/`, `aggregator/`, `mapper/`, `repository/`. Bỏ qua: `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2`, v.v.
|
|
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.
|
|
91
93
|
|
|
92
94
|
|
|
93
95
|
### Phát Hiện Domain Kotlin Multi-Module
|
|
@@ -178,7 +180,7 @@ npx claudeos-core init --lang ko # 한국어
|
|
|
178
180
|
|
|
179
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.
|
|
180
182
|
|
|
181
|
-
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.
|
|
183
|
+
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ị thời gian mỗi Pass và tổng thời gian trong banner hoàn thành.
|
|
182
184
|
|
|
183
185
|
### Cài Đặt Thủ Công Từng Bước
|
|
184
186
|
|
|
@@ -530,6 +532,15 @@ Hỗ trợ hoàn toàn. ClaudeOS-Core tự phát hiện cả hai stack, gắn ta
|
|
|
530
532
|
**H: Chạy lại thì sao?**
|
|
531
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.
|
|
532
534
|
|
|
535
|
+
**H: Có 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 có 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
|
+
|
|
533
544
|
**H: Có hỗ trợ Kotlin không?**
|
|
534
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.).
|
|
535
546
|
|
|
@@ -548,50 +559,66 @@ pass-prompts/templates/
|
|
|
548
559
|
├── common/ # Header/footer chung
|
|
549
560
|
├── java-spring/ # Java / Spring Boot
|
|
550
561
|
├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
|
|
551
|
-
├── node-express/ # Node.js / Express
|
|
552
|
-
├── node-
|
|
553
|
-
├── python-django/ # Python / Django (DRF)
|
|
562
|
+
├── node-express/ # Node.js / Express
|
|
563
|
+
├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
|
|
554
564
|
├── node-fastify/ # Node.js / Fastify
|
|
565
|
+
├── node-nextjs/ # Next.js / React
|
|
566
|
+
├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
|
|
555
567
|
├── angular/ # Angular
|
|
568
|
+
├── python-django/ # Python / Django (DRF)
|
|
556
569
|
└── python-fastapi/ # Python / FastAPI
|
|
557
570
|
```
|
|
558
571
|
|
|
559
|
-
`plan-installer` tự phát hiện stack của bạn, sau đó lắp ráp prompt theo loại. 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.
|
|
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.
|
|
560
573
|
|
|
561
574
|
---
|
|
562
575
|
|
|
563
576
|
## Hỗ Trợ Monorepo
|
|
564
577
|
|
|
565
|
-
ClaudeOS-Core
|
|
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.
|
|
566
579
|
|
|
567
|
-
**
|
|
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)
|
|
568
585
|
|
|
569
|
-
|
|
570
|
-
# Ví dụ: Turborepo với apps/my-app
|
|
571
|
-
cd apps/my-app
|
|
572
|
-
npx claudeos-core init
|
|
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:
|
|
573
587
|
|
|
574
|
-
|
|
575
|
-
cd
|
|
588
|
+
```bash
|
|
589
|
+
cd my-monorepo
|
|
576
590
|
npx claudeos-core init
|
|
577
591
|
```
|
|
578
592
|
|
|
579
|
-
|
|
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/*`)
|
|
580
598
|
|
|
581
|
-
**
|
|
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ẻ
|
|
582
603
|
|
|
583
604
|
```
|
|
584
|
-
my-monorepo/ ←
|
|
605
|
+
my-monorepo/ ← Chạy ở đây: npx claudeos-core init
|
|
606
|
+
├── turbo.json ← Tự động phát hiện là Turborepo
|
|
585
607
|
├── apps/
|
|
586
|
-
│ ├── web/ ←
|
|
587
|
-
│ ├──
|
|
588
|
-
│ └──
|
|
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" } }
|
|
589
614
|
├── packages/
|
|
590
|
-
│ ├──
|
|
591
|
-
│ └──
|
|
592
|
-
└── package.json ←
|
|
615
|
+
│ ├── db/ ← Drizzle phát hiện từ packages/db/package.json
|
|
616
|
+
│ └── ui/
|
|
617
|
+
└── package.json ← { "workspaces": ["apps/*", "packages/*"] }
|
|
593
618
|
```
|
|
594
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
|
+
|
|
595
622
|
## Xử Lý Sự Cố
|
|
596
623
|
|
|
597
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).
|
|
@@ -614,7 +641,7 @@ Chào đón mọi đóng góp! Các lĩnh vực cần hỗ trợ nhất:
|
|
|
614
641
|
|
|
615
642
|
- **Template stack mới** — Ruby/Rails, Go/Gin, PHP/Laravel, Rust/Axum
|
|
616
643
|
- **Hỗ trợ monorepo sâu** — Root sub-project riêng, phát hiện workspace
|
|
617
|
-
- **Độ phủ test** — Mở rộng bộ test (hiện tại
|
|
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)
|
|
618
645
|
|
|
619
646
|
---
|
|
620
647
|
|