claudeos-core 1.0.7 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +84 -1
- package/CONTRIBUTING.md +15 -4
- package/README.de.md +187 -11
- package/README.es.md +187 -11
- package/README.fr.md +187 -11
- package/README.hi.md +187 -11
- package/README.ja.md +186 -10
- package/README.ko.md +331 -364
- package/README.md +200 -11
- package/README.ru.md +187 -11
- package/README.vi.md +188 -12
- package/README.zh-CN.md +186 -10
- package/bin/cli.js +183 -61
- package/bootstrap.sh +128 -21
- package/content-validator/index.js +131 -60
- package/health-checker/index.js +29 -23
- package/import-linter/index.js +14 -8
- package/manifest-generator/index.js +26 -20
- package/package.json +84 -75
- package/pass-json-validator/index.js +92 -70
- package/pass-prompts/templates/common/header.md +4 -4
- package/pass-prompts/templates/common/lang-instructions.json +27 -0
- package/pass-prompts/templates/common/pass3-footer.md +2 -3
- package/pass-prompts/templates/java-spring/pass1.md +84 -81
- package/pass-prompts/templates/java-spring/pass2.md +66 -66
- package/pass-prompts/templates/java-spring/pass3.md +60 -60
- package/pass-prompts/templates/kotlin-spring/pass1.md +172 -0
- package/pass-prompts/templates/kotlin-spring/pass2.md +109 -0
- package/pass-prompts/templates/kotlin-spring/pass3.md +98 -0
- package/pass-prompts/templates/node-express/pass1.md +73 -73
- package/pass-prompts/templates/node-express/pass2.md +66 -66
- package/pass-prompts/templates/node-express/pass3.md +53 -53
- package/pass-prompts/templates/node-nextjs/pass1.md +68 -68
- package/pass-prompts/templates/node-nextjs/pass2.md +61 -61
- package/pass-prompts/templates/node-nextjs/pass3.md +48 -48
- package/pass-prompts/templates/python-django/pass1.md +78 -78
- package/pass-prompts/templates/python-django/pass2.md +69 -69
- package/pass-prompts/templates/python-django/pass3.md +45 -45
- package/pass-prompts/templates/python-fastapi/pass1.md +76 -76
- package/pass-prompts/templates/python-fastapi/pass2.md +67 -67
- package/pass-prompts/templates/python-fastapi/pass3.md +45 -45
- package/plan-installer/index.js +623 -97
- package/plan-validator/index.js +54 -23
- package/sync-checker/index.js +25 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,89 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [1.
|
|
3
|
+
## [1.2.0] — 2026-04-01
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **Multi-language output (i18n)** — `--lang` parameter selects output language for all generated files
|
|
7
|
+
- 10 languages supported: en, ko, zh-CN, ja, es, vi, hi, ru, fr, de
|
|
8
|
+
- Analysis (Pass 1-2) remains in English; generated files (Pass 3) are in selected language
|
|
9
|
+
- Interactive language selection when `--lang` is omitted
|
|
10
|
+
- Language instruction injected into Pass 3 prompt via `lang-instructions.json` template
|
|
11
|
+
- Code syntax, JSON keys, frontmatter keys stay in English; only documentation text is localized
|
|
12
|
+
- `project-analysis.json` now includes `lang` field
|
|
13
|
+
- `content-validator` updated with language-aware section keyword validation (10 languages)
|
|
14
|
+
- `pass-json-validator` now validates and displays `lang` field
|
|
15
|
+
- `bootstrap.sh` supports `--lang` parameter with interactive fallback
|
|
16
|
+
- **Kotlin / Spring Boot support** — Dedicated `kotlin-spring` template (pass1/pass2/pass3)
|
|
17
|
+
- Kotlin-specific analysis: data class, sealed class, coroutines, extension functions, MockK, Kotest, kotlin-logging
|
|
18
|
+
- 12 analysis categories, 95 sub-items in Pass 1 (vs Java's 10/59)
|
|
19
|
+
- 14 merge categories in Pass 2 (vs Java's 12)
|
|
20
|
+
- 14 CRUD scaffold sub-skills in Pass 3 (vs Java's 8)
|
|
21
|
+
- **CQRS architecture auto-detection** — Detects `command`/`query`/`bff`/`integration` from module names in `settings.gradle(.kts)`
|
|
22
|
+
- **BFF (Backend For Frontend) analysis** — Feign Client patterns, response composition, error propagation, inter-module communication
|
|
23
|
+
- **Gradle multi-module monorepo scanning** — `**/src/main/kotlin/**/*.kt` across all submodules, regardless of nesting depth
|
|
24
|
+
- **Module type classification** — command, query, bff, integration, standalone, library
|
|
25
|
+
- **Domain grouping across modules** — Same domain in Command + Query modules merged into single domain for analysis
|
|
26
|
+
- **Shared query module resolution** — `common-query-server` and similar shared query modules are redistributed to actual domains (Pattern A: package-based, Pattern B: class-name-based extraction)
|
|
27
|
+
- **VO (Value Object) pattern support** — DTO vs VO distinction, value class VO, immutability rules, VO location analysis
|
|
28
|
+
- **Aggregate / Aggregate Root pattern support** — DDD aggregate boundary definition, Aggregate Root identification, repository-per-aggregate, domain event publishing, inter-aggregate references
|
|
29
|
+
- **Aggregator service pattern support** — Aggregator vs BFF distinction, internal service aggregation analysis
|
|
30
|
+
- **Shared library detection** — `shared-lib`, `integration-lib`, `*-lib` detected as special domains
|
|
31
|
+
- **`build.gradle.kts` support** — Kotlin DSL build files detected alongside Groovy DSL
|
|
32
|
+
- **Submodule Kotlin fallback** — If root build file doesn't have Kotlin plugin, checks up to 5 submodule build files
|
|
33
|
+
- **Installation options expanded** — Added `npm install -g` and `npm install --save-dev` options in all 10 READMEs
|
|
34
|
+
- **Manual step-by-step installation** — 8-step guide added to all 10 READMEs
|
|
35
|
+
- **Full English localization** — All JS comments, console messages, pass prompts, and bootstrap.sh translated to English
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
- `detectStack()` refactored: unified `build.gradle` / `build.gradle.kts` detection path
|
|
39
|
+
- `selectTemplates()` now routes `kotlin` → `kotlin-spring` before Java fallback
|
|
40
|
+
- `plan-validator` output file renamed `plan-manifest.json` → `plan-sync-status.json` (avoids overwriting manifest-generator output)
|
|
41
|
+
- `sync-checker` exit code: now exits 1 only for orphaned files (actual breakage), exits 0 for unregistered files (informational)
|
|
42
|
+
- `import-linter` now scans `database/` and `mcp-guide/` directories (aligned with other tools)
|
|
43
|
+
- `import-graph.json` now includes imports from all 6 directories (was rules/ only)
|
|
44
|
+
- Java `DTO/Entity` analysis category renamed to `DTO/VO/Entity` with VO pattern support added
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
- **Security**: Eliminated shell pipe command injection in `cli.js` (`runClaudePrompt` now uses stdin `input` option)
|
|
48
|
+
- **Security**: Fixed Perl code injection in `bootstrap.sh` (domain list now passed via `$ENV{}`)
|
|
49
|
+
- **Security**: Added Bash version guard in `bootstrap.sh` (prevents silent failure when run with `sh`)
|
|
50
|
+
- **Security**: Windows `escapeShellArg` now handles `%`, `^`, `&`, `|`, `<`, `>`, `!` metacharacters
|
|
51
|
+
- **Kotlin single-module fallback**: Projects without `settings.gradle` or `servers/` directory now detect domains from `src/main/kotlin/` (previously returned 0 domains)
|
|
52
|
+
- **plan-validator `--execute`**: Now creates `.bak` backup before overwriting files
|
|
53
|
+
- **Spring Boot version detection**: Added 3 regex patterns for modern Gradle DSL (`plugins {}`, `platform()`)
|
|
54
|
+
- **Port detection**: Now matches only `server.port` (was matching any `port:` including database/Redis ports)
|
|
55
|
+
- **Nested code fence handling**: `plan-validator` now tracks nesting depth to avoid false closing fence detection
|
|
56
|
+
- **stale-report.json crash**: All 4 tools now wrap `JSON.parse` in try/catch (prevents cascade crash on corrupted file)
|
|
57
|
+
- **package.json parse error**: `detectStack()` now catches malformed `package.json` instead of crashing
|
|
58
|
+
- **Module path prefix overlap**: Kotlin module scan appends `/` to prevent `reservation` matching `reservation-ext`
|
|
59
|
+
- **Acronym class names**: `resolveSharedQueryDomains` now handles `IAM`, `BFF` style names
|
|
60
|
+
- `.gitignore`: Added `.env*` pattern, removed redundant entry
|
|
61
|
+
|
|
62
|
+
## [1.1.0] — 2026-04-01
|
|
63
|
+
|
|
64
|
+
### Added
|
|
65
|
+
- **Java 5-pattern domain detection** (A→B/D→E→C fallback):
|
|
66
|
+
- A: `controller/{domain}/` (layer-first)
|
|
67
|
+
- B: `{domain}/controller/` (domain-first)
|
|
68
|
+
- C: `controller/*.java` (flat, extract from class name)
|
|
69
|
+
- D: `{module}/{domain}/controller/` (module prefix, auto-upgrade on name conflict)
|
|
70
|
+
- E: `{domain}/adapter/in/web/` (DDD/hexagonal)
|
|
71
|
+
- **Service-only domain detection**: Domains without controllers (e.g., `core/delivery/service/`) are now detected
|
|
72
|
+
- **Frontend FSD support**: `features/*/`, `widgets/*/`, `entities/*/` (Feature-Sliced Design)
|
|
73
|
+
- **RSC/Client component detection**: Counts `client.tsx` files, tracks RSC+Client split pattern per domain
|
|
74
|
+
- **Config file fallback**: Detect Next.js/Vite/Nuxt from config files when framework not in package.json (monorepo support)
|
|
75
|
+
- **Windows glob compatibility**: Direct file scan fallback for Java and Frontend when glob patterns fail on Windows
|
|
76
|
+
- **Stdin-based prompt delivery**: Pass prompt via `execSync` `input` option to `claude -p` (no shell pipe, no temp file — secure and cross-platform)
|
|
77
|
+
- **8 language READMEs**: Chinese, Japanese, Spanish, Vietnamese, Hindi, Russian, French, German
|
|
78
|
+
- **Monorepo Support section** in all 10 READMEs (Turborepo, Nx, Lerna, pnpm workspaces)
|
|
79
|
+
- **Cross-language navigation links** in all READMEs (Korean last position)
|
|
80
|
+
- **Skip filters**: API version paths (`v1`, `v2`), module prefixes (`front`, `admin`, `back`) excluded from domain detection
|
|
81
|
+
|
|
82
|
+
### Fixed
|
|
83
|
+
- `frontend` variable reference before initialization (RSC stats)
|
|
84
|
+
- npm bin path warning (`npm pkg fix`)
|
|
85
|
+
|
|
86
|
+
## [1.0.0] — 2025-12-01
|
|
4
87
|
|
|
5
88
|
### Added
|
|
6
89
|
- 3-Pass pipeline: Deep analysis → Merge → Generate
|
package/CONTRIBUTING.md
CHANGED
|
@@ -5,9 +5,16 @@ 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)
|
|
17
|
+
- ~~Kotlin / Spring Boot~~ — Implemented with CQRS, BFF, and multi-module monorepo support
|
|
11
18
|
|
|
12
19
|
## How to Contribute
|
|
13
20
|
|
|
@@ -21,11 +28,15 @@ Thank you for your interest in contributing! Here's how you can help.
|
|
|
21
28
|
|
|
22
29
|
## Adding a New Stack Template
|
|
23
30
|
|
|
31
|
+
See `kotlin-spring/` as a reference implementation — it shows how to add CQRS/multi-module awareness on top of the standard 3-pass structure.
|
|
32
|
+
|
|
24
33
|
1. Create a new directory under `pass-prompts/templates/your-stack/`
|
|
25
34
|
2. Add `pass1.md`, `pass2.md`, `pass3.md` following the existing template structure
|
|
26
|
-
3. Update `
|
|
35
|
+
3. Update `detectStack()` in `plan-installer/index.js` to detect the new language/framework
|
|
27
36
|
4. Update `scanStructure()` to detect the new stack's domains
|
|
28
|
-
5. Update `
|
|
37
|
+
5. Update `selectTemplates()` in `plan-installer/index.js` to route to the new template
|
|
38
|
+
6. Update `README.md` Supported Stacks table
|
|
39
|
+
7. Add FAQ and Troubleshooting entries for the new stack
|
|
29
40
|
|
|
30
41
|
## Code Style
|
|
31
42
|
|
package/README.de.md
CHANGED
|
@@ -8,7 +8,7 @@ npx claudeos-core init
|
|
|
8
8
|
|
|
9
9
|
ClaudeOS-Core liest Ihre Codebasis, extrahiert jedes Muster und generiert einen vollständigen Satz von Standards, Rules, Skills und Guides, die auf _Ihr_ Projekt zugeschnitten sind. Danach, wenn Sie Claude Code sagen „Erstelle ein CRUD für Bestellungen", erzeugt es Code, der exakt Ihren bestehenden Mustern entspricht.
|
|
10
10
|
|
|
11
|
-
[🇺🇸 English](./README.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇪🇸 Español](./README.es.md) · [🇻🇳 Tiếng Việt](./README.vi.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇷🇺 Русский](./README.ru.md) · [🇫🇷 Français](./README.fr.md)
|
|
11
|
+
[🇺🇸 English](./README.md) · [🇰🇷 한국어](./README.ko.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇪🇸 Español](./README.es.md) · [🇻🇳 Tiếng Việt](./README.vi.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇷🇺 Русский](./README.ru.md) · [🇫🇷 Français](./README.fr.md)
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -22,7 +22,7 @@ ClaudeOS-Core automatisiert den gesamten Prozess:
|
|
|
22
22
|
|
|
23
23
|
1. **Scannt** Ihr Projekt — erkennt automatisch Stack, Domänen, ORM, Datenbank, Paketmanager
|
|
24
24
|
2. **Analysiert** Ihren Quellcode tiefgehend — Controller-Muster, Service-Schichten, Namenskonventionen, Fehlerbehandlung, Sicherheit, Tests und 50+ Kategorien
|
|
25
|
-
3. **Generiert** ein vollständiges Dokumentationsökosystem — `CLAUDE.md`, Standards (15–
|
|
25
|
+
3. **Generiert** ein vollständiges Dokumentationsökosystem — `CLAUDE.md`, Standards (15–19 Dateien), Rules, Skills, Guides (9 Dateien), Master Plans, DB-Dokumentation und MCP-Leitfaden
|
|
26
26
|
4. **Validiert** alles — 6 integrierte Verifizierungstools gewährleisten Konsistenz
|
|
27
27
|
|
|
28
28
|
Gesamtzeit: **5–18 Minuten**, abhängig von der Projektgröße. Null manuelle Konfiguration.
|
|
@@ -33,16 +33,53 @@ 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
|
+
| **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 Kategorien, 95 Unterpunkte |
|
|
37
38
|
| **Node.js / Express / NestJS** | `package.json` | 9 Kategorien, 57 Unterpunkte |
|
|
38
|
-
| **Next.js / React / Vue** | `package.json`
|
|
39
|
+
| **Next.js / React / Vue** | `package.json`, `next.config.*`, FSD-Unterstützung | 9 Kategorien, 55 Unterpunkte |
|
|
39
40
|
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 Kategorien, 55 Unterpunkte |
|
|
40
41
|
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 Kategorien, 58 Unterpunkte |
|
|
41
42
|
|
|
42
|
-
Automatisch erkannt: Sprache und Version, Framework und Version, ORM (MyBatis, JPA, Prisma, TypeORM, SQLAlchemy usw.), Datenbank (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), Paketmanager (Gradle, Maven, npm, yarn, pnpm, pip, poetry).
|
|
43
|
+
Automatisch erkannt: Sprache und Version, Framework und Version, ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy usw.), Datenbank (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), Paketmanager (Gradle, Maven, npm, yarn, pnpm, pip, poetry), Architektur (CQRS, BFF — aus Modulnamen erkannt), Multi-Modul-Struktur (aus settings.gradle).
|
|
43
44
|
|
|
44
45
|
**Sie müssen nichts angeben. Alles wird automatisch erkannt.**
|
|
45
46
|
|
|
47
|
+
|
|
48
|
+
### Java-Domain-Erkennung (5 Muster mit Fallback)
|
|
49
|
+
|
|
50
|
+
| Priorität | Muster | Struktur | Beispiel |
|
|
51
|
+
|---|---|---|---|
|
|
52
|
+
| A | Layer-first | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
53
|
+
| B | Domain-first | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
54
|
+
| D | Modul-Präfix | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
55
|
+
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
56
|
+
| C | Flach | `controller/*.java` | `controller/UserController.java` → extrahiert `user` aus Klassenname |
|
|
57
|
+
|
|
58
|
+
Domains nur mit Services (ohne Controller) werden ebenfalls erkannt. Übersprungen: `common`, `config`, `util`, `front`, `admin`, `v1`, `v2` usw.
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### Kotlin Multi-Modul Domain-Erkennung
|
|
62
|
+
|
|
63
|
+
Für Kotlin-Projekte mit Gradle-Multi-Modul-Struktur (z.B. CQRS-Monorepo):
|
|
64
|
+
|
|
65
|
+
| Schritt | Aktion | Beispiel |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| 1 | `settings.gradle.kts` nach `include()` scannen | 14 Module gefunden |
|
|
68
|
+
| 2 | Modultyp aus Name erkennen | `reservation-command-server` → Typ: `command` |
|
|
69
|
+
| 3 | Domain aus Modulname extrahieren | `reservation-command-server` → Domain: `reservation` |
|
|
70
|
+
| 4 | Gleiche Domain über Module gruppieren | `reservation-command-server` + `common-query-server` → 1 Domain |
|
|
71
|
+
| 5 | Architektur erkennen | Hat `command` + `query` Module → CQRS |
|
|
72
|
+
|
|
73
|
+
Unterstützte Modultypen: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Gemeinsame Bibliotheken (`shared-lib`, `integration-lib`) werden als spezielle Domains erkannt.
|
|
74
|
+
|
|
75
|
+
### Frontend-Domain-Erkennung
|
|
76
|
+
|
|
77
|
+
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
78
|
+
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
79
|
+
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
80
|
+
- **RSC/Client-Split**: Erkennt `client.tsx`-Muster, verfolgt Server/Client-Trennung
|
|
81
|
+
- **Config-Fallback**: Erkennt Next.js/Vite/Nuxt aus Config-Dateien (Monorepo-Unterstützung)
|
|
82
|
+
|
|
46
83
|
---
|
|
47
84
|
|
|
48
85
|
## Schnellstart
|
|
@@ -57,16 +94,138 @@ Automatisch erkannt: Sprache und Version, Framework und Version, ORM (MyBatis, J
|
|
|
57
94
|
```bash
|
|
58
95
|
cd /your/project/root
|
|
59
96
|
|
|
60
|
-
# Option A: npx (empfohlen)
|
|
97
|
+
# Option A: npx (empfohlen — keine Installation nötig)
|
|
61
98
|
npx claudeos-core init
|
|
62
99
|
|
|
63
|
-
# Option B:
|
|
100
|
+
# Option B: globale Installation
|
|
101
|
+
npm install -g claudeos-core
|
|
102
|
+
claudeos-core init
|
|
103
|
+
|
|
104
|
+
# Option C: Projekt devDependency
|
|
105
|
+
npm install --save-dev claudeos-core
|
|
106
|
+
npx claudeos-core init
|
|
107
|
+
|
|
108
|
+
# Option D: git clone (für Entwicklung/Beiträge)
|
|
64
109
|
git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
|
|
65
110
|
bash claudeos-core-tools/bootstrap.sh
|
|
66
111
|
```
|
|
67
112
|
|
|
68
113
|
Das war's. Nach 5–18 Minuten ist die gesamte Dokumentation generiert und einsatzbereit.
|
|
69
114
|
|
|
115
|
+
### Manuelle Schritt-für-Schritt-Installation
|
|
116
|
+
|
|
117
|
+
Wenn Sie volle Kontrolle über jede Phase wünschen — oder wenn die automatisierte Pipeline bei einem Schritt fehlschlägt — können Sie jede Stufe manuell ausführen. Dies ist auch nützlich, um die interne Funktionsweise von ClaudeOS-Core zu verstehen.
|
|
118
|
+
|
|
119
|
+
#### Step 1: Klonen und Abhängigkeiten installieren
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
cd /your/project/root
|
|
123
|
+
|
|
124
|
+
git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
|
|
125
|
+
cd claudeos-core-tools && npm install && cd ..
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### Step 2: Verzeichnisstruktur erstellen
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Rules
|
|
132
|
+
mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
|
|
133
|
+
|
|
134
|
+
# Standards
|
|
135
|
+
mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
|
|
136
|
+
|
|
137
|
+
# Skills
|
|
138
|
+
mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
|
|
139
|
+
|
|
140
|
+
# Guide, Plan, Database, MCP, Generated
|
|
141
|
+
mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
|
|
142
|
+
mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
#### Step 3: plan-installer ausführen (Projektanalyse)
|
|
146
|
+
|
|
147
|
+
Scannt Ihr Projekt, erkennt den Stack, findet Domains, teilt sie in Gruppen auf und generiert Prompts.
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
node claudeos-core-tools/plan-installer/index.js
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Ausgabe (`claudeos-core/generated/`):**
|
|
154
|
+
- `project-analysis.json` — erkannter Stack, Domains, Frontend-Info
|
|
155
|
+
- `domain-groups.json` — Domain-Gruppen für Pass 1
|
|
156
|
+
- `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — Analyse-Prompts
|
|
157
|
+
- `pass2-prompt.md` — Merge-Prompt
|
|
158
|
+
- `pass3-prompt.md` — Generierungs-Prompt
|
|
159
|
+
|
|
160
|
+
Sie können diese Dateien inspizieren, um die Erkennungsgenauigkeit zu überprüfen, bevor Sie fortfahren.
|
|
161
|
+
|
|
162
|
+
#### Step 4: Pass 1 — Tiefgehende Code-Analyse pro Domain-Gruppe
|
|
163
|
+
|
|
164
|
+
Führen Sie Pass 1 für jede Domain-Gruppe aus. Prüfen Sie `domain-groups.json` für die Anzahl der Gruppen.
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# Check groups
|
|
168
|
+
cat claudeos-core/generated/domain-groups.json | node -e "
|
|
169
|
+
const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
|
|
170
|
+
g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
|
|
171
|
+
"
|
|
172
|
+
|
|
173
|
+
# Run Pass 1 for group 1:
|
|
174
|
+
cat claudeos-core/generated/pass1-backend-prompt.md \
|
|
175
|
+
| sed "s/{{DOMAIN_GROUP}}/user, order, product/g" \
|
|
176
|
+
| sed "s/{{PASS_NUM}}/1/g" \
|
|
177
|
+
| claude -p --dangerously-skip-permissions
|
|
178
|
+
|
|
179
|
+
# For frontend groups, use pass1-frontend-prompt.md instead
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Prüfen:** `ls claudeos-core/generated/pass1-*.json` sollte pro Gruppe eine JSON zeigen.
|
|
183
|
+
|
|
184
|
+
#### Step 5: Pass 2 — Analyseergebnisse zusammenführen
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
cat claudeos-core/generated/pass2-prompt.md \
|
|
188
|
+
| claude -p --dangerously-skip-permissions
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Prüfen:** `claudeos-core/generated/pass2-merged.json` sollte existieren mit 9+ Top-Level-Schlüsseln.
|
|
192
|
+
|
|
193
|
+
#### Step 6: Pass 3 — Gesamte Dokumentation generieren
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
cat claudeos-core/generated/pass3-prompt.md \
|
|
197
|
+
| claude -p --dangerously-skip-permissions
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**Prüfen:** `CLAUDE.md` sollte im Projekt-Root existieren.
|
|
201
|
+
|
|
202
|
+
#### Step 7: Verifizierungstools ausführen
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
# Metadaten generieren (vor anderen Prüfungen erforderlich)
|
|
206
|
+
node claudeos-core-tools/manifest-generator/index.js
|
|
207
|
+
|
|
208
|
+
# Alle Prüfungen ausführen
|
|
209
|
+
node claudeos-core-tools/health-checker/index.js
|
|
210
|
+
|
|
211
|
+
# Oder einzelne Prüfungen ausführen:
|
|
212
|
+
node claudeos-core-tools/import-linter/index.js # @import validation
|
|
213
|
+
node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ disk
|
|
214
|
+
node claudeos-core-tools/sync-checker/index.js # Sync status
|
|
215
|
+
node claudeos-core-tools/content-validator/index.js # Content quality
|
|
216
|
+
node claudeos-core-tools/pass-json-validator/index.js # JSON format
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
#### Step 8: Ergebnisse überprüfen
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
find .claude claudeos-core -type f | grep -v node_modules | wc -l
|
|
223
|
+
head -30 CLAUDE.md
|
|
224
|
+
ls .claude/rules/*/
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
> **Tipp:** Wenn ein Schritt fehlschlägt, können Sie nur diesen Schritt erneut ausführen. Pass 1/2-Ergebnisse werden gecacht — wenn `pass1-N.json` oder `pass2-merged.json` bereits existiert, überspringt die automatisierte Pipeline sie. Löschen Sie die Datei, um eine erneute Ausführung zu erzwingen.
|
|
228
|
+
|
|
70
229
|
### Nutzung starten
|
|
71
230
|
|
|
72
231
|
```
|
|
@@ -108,7 +267,7 @@ npx claudeos-core init
|
|
|
108
267
|
|
|
109
268
|
### Warum 3 Passes?
|
|
110
269
|
|
|
111
|
-
**Pass 1** ist der einzige Pass, der Ihren Quellcode liest. Er wählt repräsentative Dateien pro Domäne aus und extrahiert Muster über 55–
|
|
270
|
+
**Pass 1** ist der einzige Pass, der Ihren Quellcode liest. Er wählt repräsentative Dateien pro Domäne aus und extrahiert Muster über 55–95 Analysekategorien (pro Stack). Bei großen Projekten wird Pass 1 mehrfach ausgeführt — einmal pro Domänengruppe. In Multi-Stack-Projekten (z.B. Java-Backend + React-Frontend) verwenden Backend und Frontend **unterschiedliche Analyse-Prompts**, die auf jeden Stack zugeschnitten sind.
|
|
112
271
|
|
|
113
272
|
**Pass 2** führt alle Pass-1-Ergebnisse zu einer einheitlichen Analyse zusammen: gemeinsame Muster (100% geteilt), Mehrheitsmuster (50%+ geteilt), domänenspezifische Muster, Anti-Muster nach Schweregrad und Querschnittsthemen (Benennung, Sicherheit, DB, Tests, Logging, Performance).
|
|
114
273
|
|
|
@@ -134,7 +293,7 @@ your-project/
|
|
|
134
293
|
│
|
|
135
294
|
├── claudeos-core/ ← Hauptausgabeverzeichnis
|
|
136
295
|
│ ├── generated/ ← Analyse-JSON + dynamische Prompts
|
|
137
|
-
│ ├── standard/ ← Code-Standards (15-
|
|
296
|
+
│ ├── standard/ ← Code-Standards (15-19 Dateien)
|
|
138
297
|
│ ├── skills/ ← CRUD-Scaffolding-Skills
|
|
139
298
|
│ ├── guide/ ← Onboarding, FAQ, Fehlerbehebung (9 Dateien)
|
|
140
299
|
│ ├── plan/ ← Master Plans (Backup/Wiederherstellung)
|
|
@@ -228,9 +387,10 @@ npx claudeos-core restore
|
|
|
228
387
|
|
|
229
388
|
| | ClaudeOS-Core | SuperClaude | Manuelle CLAUDE.md | Generische Skills |
|
|
230
389
|
|---|---|---|---|---|
|
|
231
|
-
| **Liest Ihren Code** | ✅ Tiefenanalyse (55–
|
|
390
|
+
| **Liest Ihren Code** | ✅ Tiefenanalyse (55–95 Kategorien) | ❌ Verhaltensinjektion | ❌ Manuelles Schreiben | ❌ Vorgefertigte Vorlagen |
|
|
232
391
|
| **Projektspezifische Ausgabe** | ✅ Jede Datei spiegelt Ihre Muster wider | ❌ Generische Befehle | Teilweise | ❌ Einheitsgröße |
|
|
233
392
|
| **Multi-Stack** | ✅ Auto-Erkennung + separate Analyse | ❌ Stack-agnostisch | Manuell | Variiert |
|
|
393
|
+
| **Kotlin + CQRS/BFF** | ✅ Multi-Modul, Command/Query-Trennung | ❌ | ❌ | ❌ |
|
|
234
394
|
| **Selbstverifizierung** | ✅ 6 Validierungstools | ❌ | ❌ | ❌ |
|
|
235
395
|
| **Backup / Wiederherstellung** | ✅ Master Plan System | ❌ | ❌ | ❌ |
|
|
236
396
|
| **Einrichtungszeit** | ~5–18 Min (automatisch) | ~5 Min (manuelle Konfig) | Stunden–Tage | ~5 Min |
|
|
@@ -254,6 +414,15 @@ Vollständig unterstützt. ClaudeOS-Core erkennt automatisch beide Stacks, taggt
|
|
|
254
414
|
**F: Was passiert bei erneutem Ausführen?**
|
|
255
415
|
Pass 1/2 werden übersprungen, wenn ihr JSON bereits existiert. Pass 3 wird immer erneut ausgeführt. Frühere Versionen können aus Master Plans wiederhergestellt werden.
|
|
256
416
|
|
|
417
|
+
**F: Wird Kotlin unterstützt?**
|
|
418
|
+
Ja. ClaudeOS-Core erkennt Kotlin automatisch aus `build.gradle.kts` oder dem Kotlin-Plugin in `build.gradle`. Es verwendet ein dediziertes `kotlin-spring`-Template mit Kotlin-spezifischer Analyse (Data Classes, Sealed Classes, Coroutines, Extension Functions, MockK usw.).
|
|
419
|
+
|
|
420
|
+
**F: Was ist mit CQRS / BFF-Architektur?**
|
|
421
|
+
Vollständig unterstützt für Kotlin-Multi-Modul-Projekte. ClaudeOS-Core liest `settings.gradle.kts`, erkennt Modultypen (command, query, bff, integration) aus den Modulnamen und gruppiert dieselbe Domäne über Command/Query-Module. Die generierten Standards enthalten separate Regeln für Command-Controller vs. Query-Controller, BFF/Feign-Patterns und Inter-Modul-Kommunikationskonventionen.
|
|
422
|
+
|
|
423
|
+
**F: Was ist mit Gradle-Multi-Modul-Monorepos?**
|
|
424
|
+
ClaudeOS-Core scannt alle Submodule (`**/src/main/kotlin/**/*.kt`) unabhängig von der Verschachtelungstiefe. Modultypen werden aus Namenskonventionen abgeleitet (z.B. `reservation-command-server` → Domäne: `reservation`, Typ: `command`). Gemeinsame Bibliotheken (`shared-lib`, `integration-lib`) werden ebenfalls erkannt.
|
|
425
|
+
|
|
257
426
|
---
|
|
258
427
|
|
|
259
428
|
## Template-Struktur
|
|
@@ -262,6 +431,7 @@ Pass 1/2 werden übersprungen, wenn ihr JSON bereits existiert. Pass 3 wird imme
|
|
|
262
431
|
pass-prompts/templates/
|
|
263
432
|
├── common/ # Gemeinsamer Header/Footer
|
|
264
433
|
├── java-spring/ # Java / Spring Boot
|
|
434
|
+
├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
|
|
265
435
|
├── node-express/ # Node.js / Express / NestJS
|
|
266
436
|
├── node-nextjs/ # Next.js / React / Vue
|
|
267
437
|
├── python-django/ # Python / Django (DRF)
|
|
@@ -313,7 +483,13 @@ my-monorepo/ ← Nicht hier ausführen (Root hat keine Framew
|
|
|
313
483
|
|
|
314
484
|
**"npm install failed"** — Node.js-Version könnte zu niedrig sein. v18+ erforderlich.
|
|
315
485
|
|
|
316
|
-
**"0 domains detected"** — Ihre Projektstruktur könnte nicht standardmäßig sein. Siehe die Erkennungsmuster in der [koreanischen Dokumentation](./README.ko.md
|
|
486
|
+
**"0 domains detected"** — Ihre Projektstruktur könnte nicht standardmäßig sein. Siehe die Erkennungsmuster in der [koreanischen Dokumentation](./README.ko.md#트러블슈팅) für Ihren Stack.
|
|
487
|
+
|
|
488
|
+
**„0 Domains erkannt" bei Kotlin-Projekt** — Stellen Sie sicher, dass `build.gradle.kts` (oder `build.gradle` mit Kotlin-Plugin) im Projektstamm existiert und Quelldateien unter `**/src/main/kotlin/` liegen. Bei Multi-Modul-Projekten muss `settings.gradle.kts` `include()`-Anweisungen enthalten. Einzelmodul-Kotlin-Projekte (ohne `settings.gradle`) werden ebenfalls unterstützt — Domänen werden aus der Paket-/Klassenstruktur unter `src/main/kotlin/` extrahiert.
|
|
489
|
+
|
|
490
|
+
**„Sprache als java statt kotlin erkannt"** — ClaudeOS-Core prüft zuerst die Root-`build.gradle(.kts)`, dann Submodul-Build-Dateien. Stellen Sie sicher, dass mindestens eine `kotlin("jvm")` oder `org.jetbrains.kotlin` enthält.
|
|
491
|
+
|
|
492
|
+
**„CQRS nicht erkannt"** — Die Architekturerkennung basiert auf den Schlüsselwörtern `command` und `query` in Modulnamen. Wenn Ihre Module andere Bezeichnungen verwenden, können Sie die generierten Prompts nach dem plan-installer manuell anpassen.
|
|
317
493
|
|
|
318
494
|
---
|
|
319
495
|
|