claudeos-core 1.0.6 → 1.1.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 +24 -0
- package/CONTRIBUTING.md +8 -2
- package/README.de.md +23 -2
- package/README.es.md +23 -2
- package/README.fr.md +23 -2
- package/README.hi.md +23 -2
- package/README.ja.md +21 -0
- package/README.ko.md +22 -2
- package/README.md +22 -2
- package/README.ru.md +23 -2
- package/README.vi.md +23 -2
- package/README.zh-CN.md +21 -0
- package/bin/cli.js +26 -12
- package/package.json +1 -1
- package/pass-prompts/templates/common/header.md +2 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.0] — 2026-04
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **Java 5-pattern domain detection** (A→B/D→E→C fallback):
|
|
7
|
+
- A: `controller/{domain}/` (layer-first)
|
|
8
|
+
- B: `{domain}/controller/` (domain-first)
|
|
9
|
+
- C: `controller/*.java` (flat, extract from class name)
|
|
10
|
+
- D: `{module}/{domain}/controller/` (module prefix, auto-upgrade on name conflict)
|
|
11
|
+
- E: `{domain}/adapter/in/web/` (DDD/hexagonal)
|
|
12
|
+
- **Service-only domain detection**: Domains without controllers (e.g., `core/delivery/service/`) are now detected
|
|
13
|
+
- **Frontend FSD support**: `features/*/`, `widgets/*/`, `entities/*/` (Feature-Sliced Design)
|
|
14
|
+
- **RSC/Client component detection**: Counts `client.tsx` files, tracks RSC+Client split pattern per domain
|
|
15
|
+
- **Config file fallback**: Detect Next.js/Vite/Nuxt from config files when framework not in package.json (monorepo support)
|
|
16
|
+
- **Windows glob compatibility**: Direct file scan fallback for Java and Frontend when glob patterns fail on Windows
|
|
17
|
+
- **Pipe-based prompt delivery**: Write prompt to temp file and pipe to `claude -p` to bypass Windows 8191-char command-line limit
|
|
18
|
+
- **8 language READMEs**: Chinese, Japanese, Spanish, Vietnamese, Hindi, Russian, French, German
|
|
19
|
+
- **Monorepo Support section** in all 10 READMEs (Turborepo, Nx, Lerna, pnpm workspaces)
|
|
20
|
+
- **Cross-language navigation links** in all READMEs (Korean last position)
|
|
21
|
+
- **Skip filters**: API version paths (`v1`, `v2`), module prefixes (`front`, `admin`, `back`) excluded from domain detection
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- `frontend` variable reference before initialization (RSC stats)
|
|
25
|
+
- npm bin path warning (`npm pkg fix`)
|
|
26
|
+
|
|
3
27
|
## [1.0.0] — 2025
|
|
4
28
|
|
|
5
29
|
### Added
|
package/CONTRIBUTING.md
CHANGED
|
@@ -5,9 +5,15 @@ Thank you for your interest in contributing! Here's how you can help.
|
|
|
5
5
|
## Areas Where Help Is Needed
|
|
6
6
|
|
|
7
7
|
- **New stack templates** — Ruby/Rails, Go/Gin, PHP/Laravel, Rust/Axum
|
|
8
|
-
- **
|
|
8
|
+
- **IDE integration** — VS Code extension, IntelliJ plugin
|
|
9
9
|
- **Test coverage** — Unit tests for verification tools
|
|
10
|
-
- **
|
|
10
|
+
- **CI/CD templates** — GitHub Actions, GitLab CI integration examples
|
|
11
|
+
- **Custom template authoring** — User-defined pass1/pass2/pass3 templates
|
|
12
|
+
|
|
13
|
+
## What's Already Done (no longer needed)
|
|
14
|
+
|
|
15
|
+
- ~~Monorepo deep support~~ — Implemented (Turborepo, Nx, Lerna, pnpm workspaces)
|
|
16
|
+
- ~~Localization~~ — 10 languages available (EN, KO, ZH-CN, JA, ES, VI, HI, RU, FR, DE)
|
|
11
17
|
|
|
12
18
|
## How to Contribute
|
|
13
19
|
|
package/README.de.md
CHANGED
|
@@ -33,9 +33,9 @@ Gesamtzeit: **5–18 Minuten**, abhängig von der Projektgröße. Null manuelle
|
|
|
33
33
|
|
|
34
34
|
| Stack | Erkennung | Analysetiefe |
|
|
35
35
|
|---|---|---|
|
|
36
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml
|
|
36
|
+
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 Paketmuster | 10 Kategorien, 59 Unterpunkte |
|
|
37
37
|
| **Node.js / Express / NestJS** | `package.json` | 9 Kategorien, 57 Unterpunkte |
|
|
38
|
-
| **Next.js / React / Vue** | `package.json`
|
|
38
|
+
| **Next.js / React / Vue** | `package.json`, `next.config.*`, FSD-Unterstützung | 9 Kategorien, 55 Unterpunkte |
|
|
39
39
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 Kategorien, 55 Unterpunkte |
|
|
40
40
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 Kategorien, 58 Unterpunkte |
|
|
41
41
|
|
|
@@ -43,6 +43,27 @@ Automatisch erkannt: Sprache und Version, Framework und Version, ORM (MyBatis, J
|
|
|
43
43
|
|
|
44
44
|
**Sie müssen nichts angeben. Alles wird automatisch erkannt.**
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
### Java-Domain-Erkennung (5 Muster mit Fallback)
|
|
48
|
+
|
|
49
|
+
| Priorität | Muster | Struktur | Beispiel |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| A | Layer-first | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
52
|
+
| B | Domain-first | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
53
|
+
| D | Modul-Präfix | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
54
|
+
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
55
|
+
| C | Flach | `controller/*.java` | `controller/UserController.java` → extrahiert `user` aus Klassenname |
|
|
56
|
+
|
|
57
|
+
Domains nur mit Services (ohne Controller) werden ebenfalls erkannt. Übersprungen: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2` usw.
|
|
58
|
+
|
|
59
|
+
### Frontend-Domain-Erkennung
|
|
60
|
+
|
|
61
|
+
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
62
|
+
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
63
|
+
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
64
|
+
- **RSC/Client-Split**: Erkennt `client.tsx`-Muster, verfolgt Server/Client-Trennung
|
|
65
|
+
- **Config-Fallback**: Erkennt Next.js/Vite/Nuxt aus Config-Dateien (Monorepo-Unterstützung)
|
|
66
|
+
|
|
46
67
|
---
|
|
47
68
|
|
|
48
69
|
## Schnellstart
|
package/README.es.md
CHANGED
|
@@ -33,9 +33,9 @@ Tiempo total: **5–18 minutos**, según el tamaño del proyecto. Cero configura
|
|
|
33
33
|
|
|
34
34
|
| Stack | Detección | Profundidad de Análisis |
|
|
35
35
|
|---|---|---|
|
|
36
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml
|
|
36
|
+
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 patrones de paquete | 10 categorías, 59 sub-ítems |
|
|
37
37
|
| **Node.js / Express / NestJS** | `package.json` | 9 categorías, 57 sub-ítems |
|
|
38
|
-
| **Next.js / React / Vue** | `package.json`
|
|
38
|
+
| **Next.js / React / Vue** | `package.json`, `next.config.*`, soporte FSD | 9 categorías, 55 sub-ítems |
|
|
39
39
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 categorías, 55 sub-ítems |
|
|
40
40
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 categorías, 58 sub-ítems |
|
|
41
41
|
|
|
@@ -43,6 +43,27 @@ Detección automática: lenguaje y versión, framework y versión, ORM (MyBatis,
|
|
|
43
43
|
|
|
44
44
|
**No necesitas especificar nada. Todo se detecta automáticamente.**
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
### Detección de Dominios Java (5 patrones con fallback)
|
|
48
|
+
|
|
49
|
+
| Prioridad | Patrón | Estructura | Ejemplo |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| A | Capa primero | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
52
|
+
| B | Dominio primero | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
53
|
+
| D | Prefijo de módulo | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
54
|
+
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
55
|
+
| C | Plano | `controller/*.java` | `controller/UserController.java` → extrae `user` del nombre de clase |
|
|
56
|
+
|
|
57
|
+
Los dominios solo con servicios (sin controladores) también se detectan. Se omiten: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2`, etc.
|
|
58
|
+
|
|
59
|
+
### Detección de Dominios Frontend
|
|
60
|
+
|
|
61
|
+
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
62
|
+
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
63
|
+
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
64
|
+
- **RSC/Client split**: Detecta patrón `client.tsx`, rastrea separación Server/Client
|
|
65
|
+
- **Config fallback**: Detecta Next.js/Vite/Nuxt desde archivos de configuración (soporte monorepo)
|
|
66
|
+
|
|
46
67
|
---
|
|
47
68
|
|
|
48
69
|
## Inicio Rápido
|
package/README.fr.md
CHANGED
|
@@ -33,9 +33,9 @@ Temps total : **5–18 minutes**, selon la taille du projet. Zéro configuration
|
|
|
33
33
|
|
|
34
34
|
| Stack | Détection | Profondeur d'Analyse |
|
|
35
35
|
|---|---|---|
|
|
36
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml
|
|
36
|
+
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 patterns de paquets | 10 catégories, 59 sous-éléments |
|
|
37
37
|
| **Node.js / Express / NestJS** | `package.json` | 9 catégories, 57 sous-éléments |
|
|
38
|
-
| **Next.js / React / Vue** | `package.json`
|
|
38
|
+
| **Next.js / React / Vue** | `package.json`, `next.config.*`, support FSD | 9 catégories, 55 sous-éléments |
|
|
39
39
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 catégories, 55 sous-éléments |
|
|
40
40
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 catégories, 58 sous-éléments |
|
|
41
41
|
|
|
@@ -43,6 +43,27 @@ Détection automatique : langage et version, framework et version, ORM (MyBatis,
|
|
|
43
43
|
|
|
44
44
|
**Vous n'avez rien à spécifier. Tout est détecté automatiquement.**
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
### Détection des Domaines Java (5 patterns avec fallback)
|
|
48
|
+
|
|
49
|
+
| Priorité | Pattern | Structure | Exemple |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| A | Couche d'abord | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
52
|
+
| B | Domaine d'abord | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
53
|
+
| D | Préfixe module | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
54
|
+
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
55
|
+
| C | Plat | `controller/*.java` | `controller/UserController.java` → extrait `user` du nom de classe |
|
|
56
|
+
|
|
57
|
+
Les domaines sans contrôleurs (service uniquement) sont aussi détectés. Ignorés : `common`, `config`, `util`, `front`, `admin`, `v1`, `v2`, etc.
|
|
58
|
+
|
|
59
|
+
### Détection des Domaines Frontend
|
|
60
|
+
|
|
61
|
+
- **App Router** : `app/{domain}/page.tsx` (Next.js)
|
|
62
|
+
- **Pages Router** : `pages/{domain}/index.tsx`
|
|
63
|
+
- **FSD (Feature-Sliced Design)** : `features/*/`, `widgets/*/`, `entities/*/`
|
|
64
|
+
- **RSC/Client split** : Détecte le pattern `client.tsx`, suit la séparation Server/Client
|
|
65
|
+
- **Fallback config** : Détecte Next.js/Vite/Nuxt depuis les fichiers de config (support monorepo)
|
|
66
|
+
|
|
46
67
|
---
|
|
47
68
|
|
|
48
69
|
## Démarrage Rapide
|
package/README.hi.md
CHANGED
|
@@ -33,9 +33,9 @@ ClaudeOS-Core पूरी प्रक्रिया को ऑटोमेट
|
|
|
33
33
|
|
|
34
34
|
| स्टैक | डिटेक्शन | विश्लेषण गहराई |
|
|
35
35
|
|---|---|---|
|
|
36
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml
|
|
36
|
+
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 पैकेज पैटर्न | 10 कैटेगरी, 59 सब-आइटम |
|
|
37
37
|
| **Node.js / Express / NestJS** | `package.json` | 9 कैटेगरी, 57 सब-आइटम |
|
|
38
|
-
| **Next.js / React / Vue** | `package.json`
|
|
38
|
+
| **Next.js / React / Vue** | `package.json`, `next.config.*`, FSD सपोर्ट | 9 कैटेगरी, 55 सब-आइटम |
|
|
39
39
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 कैटेगरी, 55 सब-आइटम |
|
|
40
40
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 कैटेगरी, 58 सब-आइटम |
|
|
41
41
|
|
|
@@ -43,6 +43,27 @@ ClaudeOS-Core पूरी प्रक्रिया को ऑटोमेट
|
|
|
43
43
|
|
|
44
44
|
**आपको कुछ भी स्पेसिफाई करने की ज़रूरत नहीं। सब कुछ ऑटोमैटिकली डिटेक्ट होता है।**
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
### Java डोमेन डिटेक्शन (5 पैटर्न, फॉलबैक के साथ)
|
|
48
|
+
|
|
49
|
+
| प्राथमिकता | पैटर्न | संरचना | उदाहरण |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| A | लेयर-फर्स्ट | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
52
|
+
| B | डोमेन-फर्स्ट | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
53
|
+
| D | मॉड्यूल प्रीफ़िक्स | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
54
|
+
| E | DDD/हेक्सागोनल | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
55
|
+
| C | फ्लैट | `controller/*.java` | `controller/UserController.java` → क्लास नाम से `user` एक्सट्रैक्ट |
|
|
56
|
+
|
|
57
|
+
बिना Controller वाले सर्विस-ओनली डोमेन भी डिटेक्ट होते हैं। स्किप: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2` आदि।
|
|
58
|
+
|
|
59
|
+
### फ्रंटएंड डोमेन डिटेक्शन
|
|
60
|
+
|
|
61
|
+
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
62
|
+
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
63
|
+
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
64
|
+
- **RSC/Client split**: `client.tsx` पैटर्न डिटेक्ट, Server/Client कम्पोनेंट सेपरेशन ट्रैक
|
|
65
|
+
- **Config fallback**: `package.json` में न होने पर भी config फ़ाइलों से Next.js/Vite/Nuxt डिटेक्ट (monorepo सपोर्ट)
|
|
66
|
+
|
|
46
67
|
---
|
|
47
68
|
|
|
48
69
|
## क्विक स्टार्ट
|
package/README.ja.md
CHANGED
|
@@ -43,6 +43,27 @@ ClaudeOS-Core がプロセス全体を自動化します:
|
|
|
43
43
|
|
|
44
44
|
**何も指定する必要はありません。すべて自動検出されます。**
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
### Java ドメイン検出(5パターン、フォールバック付き)
|
|
48
|
+
|
|
49
|
+
| 優先度 | パターン | 構造 | 例 |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| A | レイヤー優先 | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
52
|
+
| B | ドメイン優先 | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
53
|
+
| D | モジュールプレフィックス | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
54
|
+
| E | DDD/ヘキサゴナル | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
55
|
+
| C | フラット | `controller/*.java` | `controller/UserController.java` → クラス名から `user` を抽出 |
|
|
56
|
+
|
|
57
|
+
Controller のないサービスのみのドメインも検出されます。スキップ:`common`、`config`、`util`、`front`、`admin`、`v1`、`v2` など。
|
|
58
|
+
|
|
59
|
+
### フロントエンドドメイン検出
|
|
60
|
+
|
|
61
|
+
- **App Router**:`app/{domain}/page.tsx`(Next.js)
|
|
62
|
+
- **Pages Router**:`pages/{domain}/index.tsx`
|
|
63
|
+
- **FSD(Feature-Sliced Design)**:`features/*/`、`widgets/*/`、`entities/*/`
|
|
64
|
+
- **RSC/Client分離**:`client.tsx` パターンを検出、サーバー/クライアントコンポーネントの分離を追跡
|
|
65
|
+
- **設定ファイルフォールバック**:`package.json` になくても設定ファイルから Next.js/Vite/Nuxt を検出(monorepo対応)
|
|
66
|
+
|
|
46
67
|
---
|
|
47
68
|
|
|
48
69
|
## クイックスタート
|
package/README.ko.md
CHANGED
|
@@ -53,9 +53,9 @@ Claude Code generates code that **matches your existing patterns 100%**.
|
|
|
53
53
|
|
|
54
54
|
| 스택 / Stack | 감지 기준 / Detection | 분석 대상 / Analysis Targets |
|
|
55
55
|
|---|---|---|
|
|
56
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml
|
|
56
|
+
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5가지 패키지 패턴 | Controller, Service, Repository/Mapper, DTO, Entity, MyBatis XML, JPA |
|
|
57
57
|
| **Node.js / Express / NestJS** | `package.json` (express, @nestjs/core) | Router, Controller, Service, Repository, DTO, Middleware |
|
|
58
|
-
| **Next.js / React / Vue** | `package.json`
|
|
58
|
+
| **Next.js / React / Vue** | `package.json`, `next.config.*`, FSD 지원 | Pages, Components, Hooks, Data Fetching, State Management |
|
|
59
59
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` (django) | Views, Serializers, Models, Admin, Celery Tasks |
|
|
60
60
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` (fastapi) | Routers, Pydantic Schemas, SQLAlchemy Models, Depends |
|
|
61
61
|
|
|
@@ -70,6 +70,26 @@ Claude Code generates code that **matches your existing patterns 100%**.
|
|
|
70
70
|
**스택을 직접 지정할 필요 없습니다. 자동으로 감지합니다.**
|
|
71
71
|
**You don't need to specify the stack. It's detected automatically.**
|
|
72
72
|
|
|
73
|
+
### Java 도메인 감지 (5가지 패턴, 폴백 포함)
|
|
74
|
+
|
|
75
|
+
| 우선순위 | 패턴 | 구조 | 예시 |
|
|
76
|
+
|---|---|---|---|
|
|
77
|
+
| A | 레이어 우선 | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
78
|
+
| B | 도메인 우선 | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
79
|
+
| D | 모듈 접두사 | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
80
|
+
| E | DDD/헥사고날 | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
81
|
+
| C | 플랫 | `controller/*.java` | `controller/UserController.java` → 클래스명에서 `user` 추출 |
|
|
82
|
+
|
|
83
|
+
Controller 없는 서비스 전용 도메인도 감지됩니다. 스킵: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2` 등.
|
|
84
|
+
|
|
85
|
+
### 프론트엔드 도메인 감지
|
|
86
|
+
|
|
87
|
+
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
88
|
+
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
89
|
+
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
90
|
+
- **RSC/Client 분리**: `client.tsx` 패턴 감지, Server/Client 컴포넌트 분리 추적
|
|
91
|
+
- **설정 파일 폴백**: `package.json`에 없어도 `next.config.*`, `vite.config.*` 등에서 감지 (모노레포 지원)
|
|
92
|
+
|
|
73
93
|
---
|
|
74
94
|
|
|
75
95
|
## ✅ 사전 요구사항 / Prerequisites
|
package/README.md
CHANGED
|
@@ -33,9 +33,9 @@ Total time: **5–18 minutes**, depending on project size. Zero manual configura
|
|
|
33
33
|
|
|
34
34
|
| Stack | Detection | Analysis Depth |
|
|
35
35
|
|---|---|---|
|
|
36
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml
|
|
36
|
+
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 package patterns | 10 categories, 59 sub-items |
|
|
37
37
|
| **Node.js / Express / NestJS** | `package.json` | 9 categories, 57 sub-items |
|
|
38
|
-
| **Next.js / React / Vue** | `package.json`
|
|
38
|
+
| **Next.js / React / Vue** | `package.json`, `next.config.*`, FSD support | 9 categories, 55 sub-items |
|
|
39
39
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 categories, 55 sub-items |
|
|
40
40
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 categories, 58 sub-items |
|
|
41
41
|
|
|
@@ -43,6 +43,26 @@ Auto-detected: language & version, framework & version, ORM (MyBatis, JPA, Prism
|
|
|
43
43
|
|
|
44
44
|
**You don't specify anything. It's all detected automatically.**
|
|
45
45
|
|
|
46
|
+
### Java Domain Detection (5 patterns with fallback)
|
|
47
|
+
|
|
48
|
+
| Priority | Pattern | Structure | Example |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
| A | Layer-first | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
51
|
+
| B | Domain-first | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
52
|
+
| D | Module prefix | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
53
|
+
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
54
|
+
| C | Flat | `controller/*.java` | `controller/UserController.java` → extracts `user` from class name |
|
|
55
|
+
|
|
56
|
+
Service-only domains (without controllers) are also detected. Skips: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2`, etc.
|
|
57
|
+
|
|
58
|
+
### Frontend Domain Detection
|
|
59
|
+
|
|
60
|
+
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
61
|
+
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
62
|
+
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
63
|
+
- **RSC/Client split**: Detects `client.tsx` pattern, tracks Server/Client component separation
|
|
64
|
+
- **Config fallback**: Detects Next.js/Vite/Nuxt from config files when not in `package.json` (monorepo support)
|
|
65
|
+
|
|
46
66
|
---
|
|
47
67
|
|
|
48
68
|
## Quick Start
|
package/README.ru.md
CHANGED
|
@@ -33,9 +33,9 @@ ClaudeOS-Core автоматизирует весь процесс:
|
|
|
33
33
|
|
|
34
34
|
| Стек | Обнаружение | Глубина анализа |
|
|
35
35
|
|---|---|---|
|
|
36
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml
|
|
36
|
+
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 паттернов пакетов | 10 категорий, 59 подпунктов |
|
|
37
37
|
| **Node.js / Express / NestJS** | `package.json` | 9 категорий, 57 подпунктов |
|
|
38
|
-
| **Next.js / React / Vue** | `package.json`
|
|
38
|
+
| **Next.js / React / Vue** | `package.json`, `next.config.*`, поддержка FSD | 9 категорий, 55 подпунктов |
|
|
39
39
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 категорий, 55 подпунктов |
|
|
40
40
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 категорий, 58 подпунктов |
|
|
41
41
|
|
|
@@ -43,6 +43,27 @@ ClaudeOS-Core автоматизирует весь процесс:
|
|
|
43
43
|
|
|
44
44
|
**Вам не нужно ничего указывать. Всё определяется автоматически.**
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
### Обнаружение Java-доменов (5 паттернов с фолбэком)
|
|
48
|
+
|
|
49
|
+
| Приоритет | Паттерн | Структура | Пример |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| A | Слой-первый | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
52
|
+
| B | Домен-первый | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
53
|
+
| D | Модуль-префикс | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
54
|
+
| E | DDD/Гексагональный | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
55
|
+
| C | Плоский | `controller/*.java` | `controller/UserController.java` → извлекает `user` из имени класса |
|
|
56
|
+
|
|
57
|
+
Домены только с сервисами (без контроллеров) тоже обнаруживаются. Пропускаются: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2` и т.д.
|
|
58
|
+
|
|
59
|
+
### Обнаружение фронтенд-доменов
|
|
60
|
+
|
|
61
|
+
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
62
|
+
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
63
|
+
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
64
|
+
- **RSC/Client разделение**: Обнаружение паттерна `client.tsx`, отслеживание разделения Server/Client
|
|
65
|
+
- **Фолбэк конфигурации**: Обнаружение Next.js/Vite/Nuxt из конфиг-файлов (поддержка monorepo)
|
|
66
|
+
|
|
46
67
|
---
|
|
47
68
|
|
|
48
69
|
## Быстрый старт
|
package/README.vi.md
CHANGED
|
@@ -33,9 +33,9 @@ Tổng thời gian: **5–18 phút**, tùy thuộc vào quy mô dự án. Không
|
|
|
33
33
|
|
|
34
34
|
| Stack | Phát Hiện | Độ Sâu Phân Tích |
|
|
35
35
|
|---|---|---|
|
|
36
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml
|
|
36
|
+
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 package patterns | 10 danh mục, 59 mục con |
|
|
37
37
|
| **Node.js / Express / NestJS** | `package.json` | 9 danh mục, 57 mục con |
|
|
38
|
-
| **Next.js / React / Vue** | `package.json`
|
|
38
|
+
| **Next.js / React / Vue** | `package.json`, `next.config.*`, hỗ trợ FSD | 9 danh mục, 55 mục con |
|
|
39
39
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 danh mục, 55 mục con |
|
|
40
40
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 danh mục, 58 mục con |
|
|
41
41
|
|
|
@@ -43,6 +43,27 @@ Tự động phát hiện: ngôn ngữ & phiên bản, framework & phiên bản,
|
|
|
43
43
|
|
|
44
44
|
**Bạn không cần chỉ định gì cả. Tất cả được phát hiện tự động.**
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
### Phát Hiện Domain Java (5 pattern với fallback)
|
|
48
|
+
|
|
49
|
+
| Ưu tiên | Pattern | Cấu trúc | Ví dụ |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| A | Layer trước | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
52
|
+
| B | Domain trước | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
53
|
+
| D | Module prefix | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
54
|
+
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
55
|
+
| C | Phẳng | `controller/*.java` | `controller/UserController.java` → trích `user` từ tên class |
|
|
56
|
+
|
|
57
|
+
Các domain chỉ có service (không có controller) cũng được phát hiện. Bỏ qua: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2`, v.v.
|
|
58
|
+
|
|
59
|
+
### Phát Hiện Domain Frontend
|
|
60
|
+
|
|
61
|
+
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
62
|
+
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
63
|
+
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
64
|
+
- **RSC/Client split**: Phát hiện pattern `client.tsx`, theo dõi tách Server/Client
|
|
65
|
+
- **Config fallback**: Phát hiện Next.js/Vite/Nuxt từ file config (hỗ trợ monorepo)
|
|
66
|
+
|
|
46
67
|
---
|
|
47
68
|
|
|
48
69
|
## Bắt Đầu Nhanh
|
package/README.zh-CN.md
CHANGED
|
@@ -43,6 +43,27 @@ ClaudeOS-Core 将整个过程自动化:
|
|
|
43
43
|
|
|
44
44
|
**你不需要指定任何内容,一切自动检测。**
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
### Java 域检测(5种模式自动回退)
|
|
48
|
+
|
|
49
|
+
| 优先级 | 模式 | 结构 | 示例 |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| A | 层优先 | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
52
|
+
| B | 域优先 | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
53
|
+
| D | 模块前缀 | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
54
|
+
| E | DDD/六角形 | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
55
|
+
| C | 扁平 | `controller/*.java` | `controller/UserController.java` → 从类名提取 `user` |
|
|
56
|
+
|
|
57
|
+
无 Controller 的纯 Service 域也会被检测。跳过:`common`、`config`、`util`、`front`、`admin`、`v1`、`v2` 等。
|
|
58
|
+
|
|
59
|
+
### 前端域检测
|
|
60
|
+
|
|
61
|
+
- **App Router**:`app/{domain}/page.tsx`(Next.js)
|
|
62
|
+
- **Pages Router**:`pages/{domain}/index.tsx`
|
|
63
|
+
- **FSD(功能切片设计)**:`features/*/`、`widgets/*/`、`entities/*/`
|
|
64
|
+
- **RSC/Client 分离**:检测 `client.tsx` 模式,追踪服务端/客户端组件分离
|
|
65
|
+
- **配置文件回退**:从配置文件检测 Next.js/Vite/Nuxt(monorepo 支持)
|
|
66
|
+
|
|
46
67
|
---
|
|
47
68
|
|
|
48
69
|
## 快速开始
|
package/bin/cli.js
CHANGED
|
@@ -54,6 +54,29 @@ function run(cmd, options = {}) {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
// claude -p 실행: 프롬프트를 파일에 저장 후 파이프로 전달 (Windows 8191자 제한 우회)
|
|
58
|
+
function runClaudePrompt(prompt, options = {}) {
|
|
59
|
+
const tmpFile = path.join(GENERATED_DIR, "_tmp_prompt.md");
|
|
60
|
+
fs.writeFileSync(tmpFile, prompt, "utf-8");
|
|
61
|
+
try {
|
|
62
|
+
const catCmd = process.platform === "win32" ? "type" : "cat";
|
|
63
|
+
const escaped = escapeShellArg(tmpFile);
|
|
64
|
+
const cmd = `${catCmd} ${escaped} | claude -p --dangerously-skip-permissions`;
|
|
65
|
+
execSync(cmd, {
|
|
66
|
+
cwd: options.cwd || PROJECT_ROOT,
|
|
67
|
+
stdio: "inherit",
|
|
68
|
+
encoding: "utf-8",
|
|
69
|
+
shell: true,
|
|
70
|
+
});
|
|
71
|
+
return true;
|
|
72
|
+
} catch (e) {
|
|
73
|
+
if (options.ignoreError) return false;
|
|
74
|
+
throw e;
|
|
75
|
+
} finally {
|
|
76
|
+
try { fs.unlinkSync(tmpFile); } catch {}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
57
80
|
function ensureDir(dir) {
|
|
58
81
|
if (!fs.existsSync(dir)) {
|
|
59
82
|
fs.mkdirSync(dir, { recursive: true });
|
|
@@ -197,10 +220,7 @@ async function cmdInit() {
|
|
|
197
220
|
.replace(/\{\{PASS_NUM\}\}/g, String(i));
|
|
198
221
|
prompt = injectProjectRoot(prompt);
|
|
199
222
|
|
|
200
|
-
const ok =
|
|
201
|
-
`claude -p ${escapeShellArg(prompt)} --dangerously-skip-permissions`,
|
|
202
|
-
{ ignoreError: true }
|
|
203
|
-
);
|
|
223
|
+
const ok = runClaudePrompt(prompt, { ignoreError: true });
|
|
204
224
|
|
|
205
225
|
if (!ok) {
|
|
206
226
|
log(` ❌ Pass 1-${i} failed. Aborting.`);
|
|
@@ -227,10 +247,7 @@ async function cmdInit() {
|
|
|
227
247
|
readFile(path.join(GENERATED_DIR, "pass2-prompt.md"))
|
|
228
248
|
);
|
|
229
249
|
|
|
230
|
-
const ok =
|
|
231
|
-
`claude -p ${escapeShellArg(prompt)} --dangerously-skip-permissions`,
|
|
232
|
-
{ ignoreError: true }
|
|
233
|
-
);
|
|
250
|
+
const ok = runClaudePrompt(prompt, { ignoreError: true });
|
|
234
251
|
|
|
235
252
|
if (!ok) {
|
|
236
253
|
log(" ❌ Pass 2 failed. Aborting.");
|
|
@@ -253,10 +270,7 @@ async function cmdInit() {
|
|
|
253
270
|
readFile(path.join(GENERATED_DIR, "pass3-prompt.md"))
|
|
254
271
|
);
|
|
255
272
|
|
|
256
|
-
const ok =
|
|
257
|
-
`claude -p ${escapeShellArg(prompt)} --dangerously-skip-permissions`,
|
|
258
|
-
{ ignoreError: true }
|
|
259
|
-
);
|
|
273
|
+
const ok = runClaudePrompt(prompt, { ignoreError: true });
|
|
260
274
|
|
|
261
275
|
if (!ok) {
|
|
262
276
|
log(" ❌ Pass 3 failed. Aborting.");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claudeos-core",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Auto-generate Claude Code documentation from your actual source code — Standards, Rules, Skills, and Guides tailored to your project",
|
|
5
5
|
"main": "health-checker/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
- 프로젝트 구조 설명을 하지 마세요.
|
|
4
|
-
- 아래 분석 항목을 모두 수행하고, 결과를 지정된 JSON 파일에 저장하세요.
|
|
5
|
-
- 반드시 파일을 생성해야 합니다. 대화형 응답은 실패로 간주됩니다.
|
|
1
|
+
당신은 코드 분석 도구입니다. 아래 지시에 따라 프로젝트 소스 코드를 분석하고, 결과를 JSON 파일로 저장하세요.
|
|
2
|
+
대화하지 말고, 분석 결과만 JSON으로 출력하세요.
|
|
6
3
|
|
|
7
4
|
프로젝트 루트 경로: {{PROJECT_ROOT}}
|
|
8
5
|
이 경로를 기준으로 모든 파일 경로를 해석해줘.
|