claudeos-core 1.7.1 → 2.0.1
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 +132 -0
- package/CONTRIBUTING.md +92 -59
- package/README.de.md +465 -240
- package/README.es.md +446 -223
- package/README.fr.md +461 -238
- package/README.hi.md +485 -261
- package/README.ja.md +440 -235
- package/README.ko.md +244 -56
- package/README.md +215 -47
- package/README.ru.md +462 -238
- package/README.vi.md +454 -230
- package/README.zh-CN.md +476 -252
- package/bin/cli.js +144 -140
- package/bin/commands/init.js +549 -45
- package/bin/commands/memory.js +426 -0
- package/bin/lib/cli-utils.js +206 -143
- package/bootstrap.sh +81 -390
- package/content-validator/index.js +436 -340
- package/lib/expected-guides.js +23 -0
- package/lib/expected-outputs.js +91 -0
- package/lib/language-config.js +35 -0
- package/lib/memory-scaffold.js +1014 -0
- package/lib/plan-parser.js +153 -149
- package/lib/staged-rules.js +118 -0
- package/manifest-generator/index.js +176 -171
- package/package.json +2 -2
- package/pass-json-validator/index.js +337 -299
- package/pass-prompts/templates/common/pass3-footer.md +16 -0
- package/pass-prompts/templates/common/pass4.md +317 -0
- package/pass-prompts/templates/common/staging-override.md +26 -0
- package/plan-installer/prompt-generator.js +120 -96
- package/plan-installer/scanners/scan-frontend.js +216 -9
- package/sync-checker/index.js +133 -132
package/README.de.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# ClaudeOS-Core
|
|
2
2
|
|
|
3
|
-
**Das einzige Tool, das zuerst Ihren Quellcode liest, Stack und
|
|
3
|
+
**Das einzige Tool, das zuerst Ihren Quellcode liest, Ihren Stack und Ihre Muster mit deterministischer Analyse bestätigt und dann Claude-Code-Regeln generiert, die exakt auf Ihr Projekt zugeschnitten sind.**
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
npx claudeos-core init
|
|
7
7
|
```
|
|
8
8
|
|
|
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.
|
|
9
|
+
ClaudeOS-Core liest Ihre Codebasis, extrahiert jedes Muster, das es findet, und generiert einen vollständigen Satz von Standards, Rules, Skills und Guides, die auf _Ihr_ Projekt zugeschnitten sind. Wenn Sie danach Claude Code sagen „Erstelle ein CRUD für Bestellungen", erzeugt er Code, der exakt Ihren bestehenden Mustern entspricht.
|
|
10
10
|
|
|
11
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
|
|
|
@@ -14,45 +14,55 @@ ClaudeOS-Core liest Ihre Codebasis, extrahiert jedes Muster und generiert einen
|
|
|
14
14
|
|
|
15
15
|
## Warum ClaudeOS-Core?
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Jedes andere Claude-Code-Tool funktioniert so:
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
> **Mensch beschreibt das Projekt → LLM generiert Dokumentation**
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
ClaudeOS-Core funktioniert so:
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
> **Code analysiert Ihren Quellcode → Code erstellt einen maßgeschneiderten Prompt → LLM generiert Dokumentation → Code verifiziert den Output**
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
Das ist kein kleiner Unterschied. Hier ist, warum das wichtig ist:
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
### Das Kernproblem: LLMs raten. Code rät nicht.
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
-
|
|
29
|
+
Wenn Sie Claude bitten, „dieses Projekt zu analysieren", **rät** er Ihren Stack, Ihr ORM, Ihre Domain-Struktur.
|
|
30
|
+
Er sieht möglicherweise `spring-boot` in Ihrer `build.gradle`, übersieht aber, dass Sie MyBatis verwenden (nicht JPA).
|
|
31
|
+
Er erkennt vielleicht ein `user/`-Verzeichnis, bemerkt aber nicht, dass Ihr Projekt layer-first-Paketierung (Pattern A) verwendet, nicht domain-first (Pattern B).
|
|
32
|
+
|
|
33
|
+
**ClaudeOS-Core rät nicht.** Bevor Claude Ihr Projekt überhaupt sieht, hat Node.js-Code bereits:
|
|
34
|
+
|
|
35
|
+
- `build.gradle` / `package.json` / `pyproject.toml` geparst und Ihren Stack, ORM, DB und Paketmanager **bestätigt**
|
|
36
|
+
- Ihre Verzeichnisstruktur gescannt und Ihre Domain-Liste mit Dateianzahl **bestätigt**
|
|
37
|
+
- Ihre Projektstruktur in eines der 5 Java-Muster, Kotlin CQRS/BFF oder Next.js App Router/FSD klassifiziert
|
|
38
|
+
- Domains in optimal dimensionierte Gruppen aufgeteilt, die in Claudes Context-Fenster passen
|
|
39
|
+
- Einen stack-spezifischen Prompt mit allen bestätigten Fakten zusammengestellt
|
|
40
|
+
|
|
41
|
+
Wenn Claude den Prompt erhält, bleibt nichts mehr zu raten. Der Stack ist bestätigt. Die Domains sind bestätigt. Das Strukturmuster ist bestätigt. Claudes einzige Aufgabe besteht darin, Dokumentation zu generieren, die diesen **bestätigten Fakten** entspricht.
|
|
34
42
|
|
|
35
43
|
### Das Ergebnis
|
|
36
44
|
|
|
37
|
-
Andere Tools
|
|
38
|
-
ClaudeOS-Core
|
|
45
|
+
Andere Tools produzieren „allgemein gute" Dokumentation.
|
|
46
|
+
ClaudeOS-Core produziert Dokumentation, die weiß, dass Ihr Projekt `ApiResponse.ok()` verwendet (nicht `ResponseEntity.success()`), dass Ihre MyBatis-XML-Mapper in `src/main/resources/mybatis/mappers/` liegen und dass Ihre Paketstruktur `com.company.module.{domain}.controller` lautet — weil es Ihren tatsächlichen Code gelesen hat.
|
|
39
47
|
|
|
40
|
-
###
|
|
48
|
+
### Vorher & Nachher
|
|
41
49
|
|
|
42
|
-
**Ohne ClaudeOS-Core
|
|
50
|
+
**Ohne ClaudeOS-Core** — Sie bitten Claude Code, ein Order-CRUD zu erstellen:
|
|
43
51
|
```
|
|
44
|
-
❌ JPA
|
|
45
|
-
❌ ResponseEntity.success() (ApiResponse.ok())
|
|
46
|
-
❌ order/controller/ (controller/order/)
|
|
47
|
-
|
|
52
|
+
❌ Verwendet JPA-Style-Repository (Ihr Projekt verwendet MyBatis)
|
|
53
|
+
❌ Erstellt ResponseEntity.success() (Ihr Wrapper ist ApiResponse.ok())
|
|
54
|
+
❌ Platziert Dateien in order/controller/ (Ihr Projekt nutzt controller/order/)
|
|
55
|
+
❌ Generiert englische Kommentare (Ihr Team schreibt deutsche Kommentare)
|
|
56
|
+
→ Sie verbringen 20 Minuten damit, jede generierte Datei zu korrigieren
|
|
48
57
|
```
|
|
49
58
|
|
|
50
|
-
**Mit ClaudeOS-Core
|
|
59
|
+
**Mit ClaudeOS-Core** — `.claude/rules/` enthält bereits Ihre bestätigten Muster:
|
|
51
60
|
```
|
|
52
|
-
✅ MyBatis
|
|
53
|
-
✅ ApiResponse.ok() (
|
|
54
|
-
✅ controller/order/ (Pattern A)
|
|
55
|
-
|
|
61
|
+
✅ Generiert MyBatis-Mapper + XML (aus build.gradle erkannt)
|
|
62
|
+
✅ Verwendet ApiResponse.ok() (aus Ihrem tatsächlichen Quellcode extrahiert)
|
|
63
|
+
✅ Platziert Dateien in controller/order/ (Pattern A durch Struktur-Scan bestätigt)
|
|
64
|
+
✅ Deutsche Kommentare (--lang de angewendet)
|
|
65
|
+
→ Der generierte Code entspricht sofort Ihren Projektkonventionen
|
|
56
66
|
```
|
|
57
67
|
|
|
58
68
|
Dieser Unterschied summiert sich. 10 Aufgaben/Tag × 20 Minuten gespart = **über 3 Stunden/Tag**.
|
|
@@ -64,7 +74,7 @@ Dieser Unterschied summiert sich. 10 Aufgaben/Tag × 20 Minuten gespart = **übe
|
|
|
64
74
|
| Stack | Erkennung | Analysetiefe |
|
|
65
75
|
|---|---|---|
|
|
66
76
|
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 Paketmuster | 10 Kategorien, 59 Unterpunkte |
|
|
67
|
-
| **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF
|
|
77
|
+
| **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF Auto-Erkennung | 12 Kategorien, 95 Unterpunkte |
|
|
68
78
|
| **Node.js / Express** | `package.json` | 9 Kategorien, 57 Unterpunkte |
|
|
69
79
|
| **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 Kategorien, 68 Unterpunkte |
|
|
70
80
|
| **Next.js / React** | `package.json`, `next.config.*`, FSD-Unterstützung | 9 Kategorien, 55 Unterpunkte |
|
|
@@ -75,10 +85,9 @@ Dieser Unterschied summiert sich. 10 Aufgaben/Tag × 20 Minuten gespart = **übe
|
|
|
75
85
|
| **Vite / React SPA** | `package.json`, `vite.config.*` | 9 Kategorien, 55 Unterpunkte |
|
|
76
86
|
| **Angular** | `package.json`, `angular.json` | 12 Kategorien, 78 Unterpunkte |
|
|
77
87
|
|
|
78
|
-
Automatisch erkannt: Sprache und Version, Framework und Version (einschließlich Vite als SPA-Framework), 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
|
|
79
|
-
|
|
80
|
-
**Sie müssen nichts angeben. Alles wird automatisch erkannt.**
|
|
88
|
+
Automatisch erkannt: Sprache und Version, Framework und Version (einschließlich Vite als SPA-Framework), 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), Multi-Modul-Struktur (aus settings.gradle), Monorepo (Turborepo, pnpm-workspace, Lerna, npm/yarn workspaces).
|
|
81
89
|
|
|
90
|
+
**Sie geben nichts an. Alles wird automatisch erkannt.**
|
|
82
91
|
|
|
83
92
|
### Java-Domain-Erkennung (5 Muster mit Fallback)
|
|
84
93
|
|
|
@@ -90,32 +99,57 @@ Automatisch erkannt: Sprache und Version, Framework und Version (einschließlich
|
|
|
90
99
|
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
91
100
|
| C | Flach | `controller/*.java` | `controller/UserController.java` → extrahiert `user` aus Klassenname |
|
|
92
101
|
|
|
93
|
-
Domains
|
|
94
|
-
|
|
102
|
+
Service-only-Domains (ohne Controller) werden ebenfalls über die Verzeichnisse `service/`, `dao/`, `aggregator/`, `facade/`, `usecase/`, `orchestrator/`, `mapper/`, `repository/` erkannt. Übersprungen: `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2` usw.
|
|
95
103
|
|
|
96
104
|
### Kotlin Multi-Modul Domain-Erkennung
|
|
97
105
|
|
|
98
|
-
Für Kotlin-Projekte mit Gradle-Multi-Modul-Struktur (z.B. CQRS-Monorepo):
|
|
106
|
+
Für Kotlin-Projekte mit Gradle-Multi-Modul-Struktur (z. B. CQRS-Monorepo):
|
|
99
107
|
|
|
100
108
|
| Schritt | Aktion | Beispiel |
|
|
101
109
|
|---|---|---|
|
|
102
|
-
| 1 | `settings.gradle.kts` nach `include()`
|
|
103
|
-
| 2 | Modultyp aus
|
|
104
|
-
| 3 | Domain aus
|
|
110
|
+
| 1 | Scan von `settings.gradle.kts` nach `include()` | Findet 14 Module |
|
|
111
|
+
| 2 | Modultyp aus dem Namen ableiten | `reservation-command-server` → Typ: `command` |
|
|
112
|
+
| 3 | Domain aus dem Modulnamen extrahieren | `reservation-command-server` → Domain: `reservation` |
|
|
105
113
|
| 4 | Gleiche Domain über Module gruppieren | `reservation-command-server` + `common-query-server` → 1 Domain |
|
|
106
|
-
| 5 | Architektur erkennen |
|
|
114
|
+
| 5 | Architektur erkennen | Besitzt `command`- + `query`-Module → CQRS |
|
|
107
115
|
|
|
108
|
-
Unterstützte Modultypen: `command`, `query`, `bff`, `integration`, `standalone`, `library`.
|
|
116
|
+
Unterstützte Modultypen: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Geteilte Bibliotheken (`shared-lib`, `integration-lib`) werden als spezielle Domains erkannt.
|
|
109
117
|
|
|
110
118
|
### Frontend-Domain-Erkennung
|
|
111
119
|
|
|
112
120
|
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
113
121
|
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
114
122
|
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
115
|
-
- **RSC/Client-Split**: Erkennt `client.tsx`-Muster, verfolgt Server
|
|
116
|
-
- **Nicht-
|
|
117
|
-
- **
|
|
118
|
-
- **
|
|
123
|
+
- **RSC/Client-Split**: Erkennt das `client.tsx`-Muster, verfolgt die Trennung von Server-/Client-Komponenten
|
|
124
|
+
- **Nicht-standardisierte verschachtelte Pfade**: Erkennt Pages, Components und FSD-Layer unter `src/*/`-Pfaden (z. B. `src/admin/pages/dashboard/`, `src/admin/components/form/`, `src/admin/features/billing/`)
|
|
125
|
+
- **Plattform-/Tier-Split-Erkennung (v2.0.0)**: Erkennt `src/{platform}/{subapp}/`-Layouts — `{platform}` kann ein Device-/Target-Keyword sein (`desktop`, `pc`, `web`, `mobile`, `mc`, `mo`, `sp`, `tablet`, `tab`, `pwa`, `tv`, `ctv`, `ott`, `watch`, `wear`) oder ein Zugriffsebenen-Keyword (`admin`, `cms`, `backoffice`, `back-office`, `portal`). Liefert pro `(platform, subapp)`-Paar eine Domain mit dem Namen `{platform}-{subapp}` und pro Domain Zählungen für Routes/Components/Layouts/Hooks. Läuft parallel für Angular, Next.js, React und Vue (Multi-Extension-Glob `{tsx,jsx,ts,js,vue}`). Erfordert ≥2 Quelldateien pro Subapp, um rauschende 1-Datei-Domains zu vermeiden.
|
|
126
|
+
- **Monorepo-Plattform-Split (v2.0.0)**: Der Plattform-Scan matched zusätzlich `{apps,packages}/*/src/{platform}/{subapp}/` (Turborepo/pnpm-Workspace mit `src/`) und `{apps,packages}/{platform}/{subapp}/` (Workspaces ohne `src/`-Wrapper).
|
|
127
|
+
- **Fallback E — routes-Datei (v2.0.0)**: Wenn primäre Scanner + Fallbacks A–D alle 0 zurückgeben, wird `**/routes/*.{tsx,jsx,ts,js,vue}` geglobbt und nach dem Parent-of-`routes`-Verzeichnisnamen gruppiert. Erfasst React-Router-File-Routing-Projekte (CRA/Vite + `react-router`), die weder Next.js-`page.tsx` noch FSD-Layouts entsprechen. Generische Parent-Namen (`src`, `app`, `pages`) werden herausgefiltert.
|
|
128
|
+
- **Config-Fallback**: Erkennt Next.js/Vite/Nuxt aus Config-Dateien, wenn nicht in `package.json` (Monorepo-Unterstützung)
|
|
129
|
+
- **Deep-Directory-Fallback**: Für React-/CRA-/Vite-/Vue-/RN-Projekte scannt `**/components/*/`, `**/views/*/`, `**/screens/*/`, `**/containers/*/`, `**/pages/*/`, `**/routes/*/`, `**/modules/*/`, `**/domains/*/` in beliebiger Tiefe
|
|
130
|
+
- **Geteilte Ignore-Listen (v2.0.0)**: Alle Scanner teilen sich `BUILD_IGNORE_DIRS` (`node_modules`, `build`, `dist`, `out`, `.next`, `.nuxt`, `.svelte-kit`, `.angular`, `.turbo`, `.cache`, `.parcel-cache`, `coverage`, `storybook-static`, `.vercel`, `.netlify`) und `TEST_FILE_IGNORE` (spec/test/stories/e2e/cy + `__snapshots__`/`__tests__`), damit Build-Outputs und Test-Fixtures die Datei-Zähler pro Domain nicht aufblähen.
|
|
131
|
+
|
|
132
|
+
### Scanner-Overrides (v2.0.0)
|
|
133
|
+
|
|
134
|
+
Legen Sie optional eine `.claudeos-scan.json` im Projekt-Root ab, um Scanner-Defaults zu erweitern, ohne das Toolkit zu editieren. Alle Felder sind **additiv** — User-Einträge erweitern die Defaults, ersetzen sie niemals:
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"frontendScan": {
|
|
139
|
+
"platformKeywords": ["kiosk"],
|
|
140
|
+
"skipSubappNames": ["legacy"],
|
|
141
|
+
"minSubappFiles": 3
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
| Feld | Default | Zweck |
|
|
147
|
+
|---|---|---|
|
|
148
|
+
| `platformKeywords` | eingebaute Liste oben | Zusätzliche `{platform}`-Keywords für den Platform-Scan (z. B. `kiosk`, `vr`, `embedded`) |
|
|
149
|
+
| `skipSubappNames` | nur strukturelle Dirs | Zusätzliche Subapp-Namen, die von der Platform-Scan-Domain-Emission ausgeschlossen werden |
|
|
150
|
+
| `minSubappFiles` | `2` | Überschreibt die Mindestdateianzahl, bevor eine Subapp zur Domain wird |
|
|
151
|
+
|
|
152
|
+
Fehlende Datei oder fehlerhaftes JSON → fällt stillschweigend auf Defaults zurück (kein Crash). Typischer Einsatz: Opt-in für eine kurze Abkürzung (`adm`, `bo`), die die eingebaute Liste als zu mehrdeutig ausschließt, oder Erhöhung von `minSubappFiles` für rauschende Monorepos.
|
|
119
153
|
|
|
120
154
|
---
|
|
121
155
|
|
|
@@ -124,7 +158,7 @@ Unterstützte Modultypen: `command`, `query`, `bff`, `integration`, `standalone`
|
|
|
124
158
|
### Voraussetzungen
|
|
125
159
|
|
|
126
160
|
- **Node.js** v18+
|
|
127
|
-
- **Claude Code CLI** (installiert
|
|
161
|
+
- **Claude Code CLI** (installiert & authentifiziert)
|
|
128
162
|
|
|
129
163
|
### Installation
|
|
130
164
|
|
|
@@ -138,56 +172,63 @@ npx claudeos-core init
|
|
|
138
172
|
npm install -g claudeos-core
|
|
139
173
|
claudeos-core init
|
|
140
174
|
|
|
141
|
-
# Option C: Projekt
|
|
175
|
+
# Option C: Projekt-devDependency
|
|
142
176
|
npm install --save-dev claudeos-core
|
|
143
177
|
npx claudeos-core init
|
|
144
178
|
|
|
145
179
|
# Option D: git clone (für Entwicklung/Beiträge)
|
|
146
180
|
git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
|
|
147
181
|
|
|
148
|
-
#
|
|
182
|
+
# Cross-Platform (PowerShell, CMD, Bash, Zsh — beliebiges Terminal)
|
|
149
183
|
node claudeos-core-tools/bin/cli.js init
|
|
150
184
|
|
|
151
|
-
#
|
|
185
|
+
# Linux/macOS (nur Bash)
|
|
152
186
|
bash claudeos-core-tools/bootstrap.sh
|
|
153
187
|
```
|
|
154
188
|
|
|
155
189
|
### Ausgabesprache (10 Sprachen)
|
|
156
190
|
|
|
157
|
-
Wenn Sie `init` ohne `--lang` ausführen, erscheint ein interaktiver
|
|
191
|
+
Wenn Sie `init` ohne `--lang` ausführen, erscheint ein interaktiver Selector — verwenden Sie Pfeiltasten oder Zahlentasten zur Auswahl:
|
|
158
192
|
|
|
159
193
|
```
|
|
160
194
|
╔══════════════════════════════════════════════════╗
|
|
161
|
-
║
|
|
195
|
+
║ Sprache der generierten Dokumente wählen ║
|
|
162
196
|
╚══════════════════════════════════════════════════╝
|
|
163
197
|
|
|
164
|
-
|
|
165
|
-
Skills, Guides) werden auf Deutsch
|
|
198
|
+
Generierte Dateien (CLAUDE.md, Standards, Rules,
|
|
199
|
+
Skills, Guides) werden auf Deutsch geschrieben.
|
|
166
200
|
|
|
167
201
|
1. en — English
|
|
168
|
-
|
|
202
|
+
2. ko — 한국어 (Korean)
|
|
203
|
+
3. zh-CN — 简体中文 (Chinese Simplified)
|
|
204
|
+
4. ja — 日本語 (Japanese)
|
|
205
|
+
5. es — Español (Spanish)
|
|
206
|
+
6. vi — Tiếng Việt (Vietnamese)
|
|
207
|
+
7. hi — हिन्दी (Hindi)
|
|
208
|
+
8. ru — Русский (Russian)
|
|
209
|
+
9. fr — Français (French)
|
|
169
210
|
❯ 10. de — Deutsch (German)
|
|
170
211
|
|
|
171
|
-
↑↓
|
|
212
|
+
↑↓ Bewegen 1-0 Springen Enter Auswählen ESC Abbrechen
|
|
172
213
|
```
|
|
173
214
|
|
|
174
|
-
Die Beschreibung
|
|
215
|
+
Die Beschreibung ändert sich je nach Navigation zur ausgewählten Sprache. Um den Selector zu überspringen, übergeben Sie `--lang` direkt:
|
|
175
216
|
|
|
176
217
|
```bash
|
|
177
|
-
npx claudeos-core init --lang
|
|
178
|
-
npx claudeos-core init --lang
|
|
179
|
-
npx claudeos-core init --lang
|
|
218
|
+
npx claudeos-core init --lang ko # Koreanisch
|
|
219
|
+
npx claudeos-core init --lang ja # Japanisch
|
|
220
|
+
npx claudeos-core init --lang en # Englisch (Default)
|
|
180
221
|
```
|
|
181
222
|
|
|
182
|
-
> **Hinweis:** Dies
|
|
223
|
+
> **Hinweis:** Dies setzt die Sprache nur für die generierten Dokumentationsdateien. Die Code-Analyse (Pass 1–2) läuft immer auf Englisch; der generierte Output (Pass 3) wird in Ihrer gewählten Sprache geschrieben. Code-Beispiele in den generierten Dateien behalten ihre ursprüngliche Programmiersprachen-Syntax.
|
|
183
224
|
|
|
184
|
-
Das war's. Nach 5–
|
|
225
|
+
Das war's. Nach 5–20 Minuten (Pass 1×N + Pass 2 + Pass 3 + Pass 4 Memory-Scaffolding) ist die gesamte Dokumentation generiert und einsatzbereit. Die CLI zeigt einen Fortschrittsbalken mit Prozentwert, verstrichener Zeit und ETA für jeden Pass.
|
|
185
226
|
|
|
186
227
|
### Manuelle Schritt-für-Schritt-Installation
|
|
187
228
|
|
|
188
|
-
Wenn Sie volle Kontrolle über jede Phase wünschen — oder wenn die automatisierte Pipeline
|
|
229
|
+
Wenn Sie volle Kontrolle über jede Phase wünschen — oder wenn die automatisierte Pipeline an einem Schritt scheitert — können Sie jede Phase manuell ausführen. Dies ist auch nützlich, um zu verstehen, wie ClaudeOS-Core intern funktioniert.
|
|
189
230
|
|
|
190
|
-
####
|
|
231
|
+
#### Schritt 1: Klonen und Abhängigkeiten installieren
|
|
191
232
|
|
|
192
233
|
```bash
|
|
193
234
|
cd /your/project/root
|
|
@@ -196,11 +237,11 @@ git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
|
|
|
196
237
|
cd claudeos-core-tools && npm install && cd ..
|
|
197
238
|
```
|
|
198
239
|
|
|
199
|
-
####
|
|
240
|
+
#### Schritt 2: Verzeichnisstruktur erstellen
|
|
200
241
|
|
|
201
242
|
```bash
|
|
202
|
-
# Rules
|
|
203
|
-
mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
|
|
243
|
+
# Rules (v2.0.0: 60.memory hinzugefügt)
|
|
244
|
+
mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync,60.memory}
|
|
204
245
|
|
|
205
246
|
# Standards
|
|
206
247
|
mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
|
|
@@ -208,108 +249,149 @@ mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.securi
|
|
|
208
249
|
# Skills
|
|
209
250
|
mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
|
|
210
251
|
|
|
211
|
-
# Guide, Plan, Database, MCP, Generated
|
|
252
|
+
# Guide, Plan, Database, MCP, Generated, Memory (v2.0.0: memory hinzugefügt)
|
|
212
253
|
mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
|
|
213
|
-
mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
|
|
254
|
+
mkdir -p claudeos-core/{plan,database,mcp-guide,generated,memory}
|
|
214
255
|
```
|
|
215
256
|
|
|
216
|
-
####
|
|
257
|
+
#### Schritt 3: plan-installer ausführen (Projektanalyse)
|
|
217
258
|
|
|
218
|
-
|
|
259
|
+
Dies scannt Ihr Projekt, erkennt den Stack, findet Domains, teilt sie in Gruppen auf und generiert Prompts.
|
|
219
260
|
|
|
220
261
|
```bash
|
|
221
262
|
node claudeos-core-tools/plan-installer/index.js
|
|
222
263
|
```
|
|
223
264
|
|
|
224
|
-
**
|
|
225
|
-
- `project-analysis.json` — erkannter Stack, Domains, Frontend-
|
|
265
|
+
**Output (in `claudeos-core/generated/`):**
|
|
266
|
+
- `project-analysis.json` — erkannter Stack, Domains, Frontend-Infos
|
|
226
267
|
- `domain-groups.json` — Domain-Gruppen für Pass 1
|
|
227
268
|
- `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — Analyse-Prompts
|
|
228
269
|
- `pass2-prompt.md` — Merge-Prompt
|
|
229
|
-
- `pass3-prompt.md` — Generierungs-Prompt
|
|
270
|
+
- `pass3-prompt.md` — Generierungs-Prompt (umhüllt mit `staging-override.md`-Direktive — siehe Hinweis in Schritt 6)
|
|
271
|
+
- `pass4-prompt.md` — L4-Memory-Scaffolding-Prompt (v2.0.0; verwendet dasselbe `staging-override.md` für `60.memory/`-Regel-Schreibvorgänge)
|
|
230
272
|
|
|
231
273
|
Sie können diese Dateien inspizieren, um die Erkennungsgenauigkeit zu überprüfen, bevor Sie fortfahren.
|
|
232
274
|
|
|
233
|
-
####
|
|
275
|
+
#### Schritt 4: Pass 1 — Tiefe Code-Analyse (pro Domain-Gruppe)
|
|
234
276
|
|
|
235
277
|
Führen Sie Pass 1 für jede Domain-Gruppe aus. Prüfen Sie `domain-groups.json` für die Anzahl der Gruppen.
|
|
236
278
|
|
|
237
279
|
```bash
|
|
238
|
-
#
|
|
280
|
+
# Anzahl der Gruppen prüfen
|
|
239
281
|
cat claudeos-core/generated/domain-groups.json | node -e "
|
|
240
282
|
const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
|
|
241
283
|
g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
|
|
242
284
|
"
|
|
243
285
|
|
|
244
|
-
#
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
286
|
+
# Pass 1 für jede Gruppe ausführen (Domains und Gruppennummer ersetzen)
|
|
287
|
+
# Hinweis: v1.6.1+ verwendet Node.js String.replace() statt perl — perl
|
|
288
|
+
# wird nicht mehr benötigt, und die Replacement-Function-Semantik verhindert
|
|
289
|
+
# Regex-Injection durch $/&/$1-Zeichen, die in Domain-Namen auftauchen können.
|
|
290
|
+
#
|
|
291
|
+
# Für Gruppe 1:
|
|
292
|
+
DOMAIN_LIST="user, order, product" PASS_NUM=1 node -e "
|
|
293
|
+
const fs = require('fs');
|
|
294
|
+
const tpl = fs.readFileSync('claudeos-core/generated/pass1-backend-prompt.md','utf-8');
|
|
295
|
+
const out = tpl
|
|
296
|
+
.replace(/\{\{DOMAIN_GROUP\}\}/g, () => process.env.DOMAIN_LIST)
|
|
297
|
+
.replace(/\{\{PASS_NUM\}\}/g, () => process.env.PASS_NUM);
|
|
298
|
+
process.stdout.write(out);
|
|
299
|
+
" | claude -p --dangerously-skip-permissions
|
|
300
|
+
|
|
301
|
+
# Für Gruppe 2 (falls vorhanden):
|
|
302
|
+
DOMAIN_LIST="payment, system, delivery" PASS_NUM=2 node -e "
|
|
303
|
+
const fs = require('fs');
|
|
304
|
+
const tpl = fs.readFileSync('claudeos-core/generated/pass1-backend-prompt.md','utf-8');
|
|
305
|
+
const out = tpl
|
|
306
|
+
.replace(/\{\{DOMAIN_GROUP\}\}/g, () => process.env.DOMAIN_LIST)
|
|
307
|
+
.replace(/\{\{PASS_NUM\}\}/g, () => process.env.PASS_NUM);
|
|
308
|
+
process.stdout.write(out);
|
|
309
|
+
" | claude -p --dangerously-skip-permissions
|
|
310
|
+
|
|
311
|
+
# Für Frontend-Gruppen pass1-backend-prompt.md → pass1-frontend-prompt.md tauschen
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**Verifikation:** `ls claudeos-core/generated/pass1-*.json` sollte eine JSON-Datei pro Gruppe zeigen.
|
|
315
|
+
|
|
316
|
+
#### Schritt 5: Pass 2 — Analyseergebnisse zusammenführen
|
|
249
317
|
|
|
250
|
-
|
|
318
|
+
```bash
|
|
319
|
+
cat claudeos-core/generated/pass2-prompt.md \
|
|
320
|
+
| claude -p --dangerously-skip-permissions
|
|
251
321
|
```
|
|
252
322
|
|
|
253
|
-
**
|
|
323
|
+
**Verifikation:** `claudeos-core/generated/pass2-merged.json` sollte existieren und 9+ Top-Level-Keys enthalten.
|
|
254
324
|
|
|
255
|
-
####
|
|
325
|
+
#### Schritt 6: Pass 3 — Gesamte Dokumentation generieren
|
|
256
326
|
|
|
257
327
|
```bash
|
|
258
|
-
cat claudeos-core/generated/
|
|
328
|
+
cat claudeos-core/generated/pass3-prompt.md \
|
|
259
329
|
| claude -p --dangerously-skip-permissions
|
|
260
330
|
```
|
|
261
331
|
|
|
262
|
-
**
|
|
332
|
+
**Verifikation:** `CLAUDE.md` sollte im Projekt-Root existieren, und der Marker `claudeos-core/generated/pass3-complete.json` sollte geschrieben sein.
|
|
333
|
+
|
|
334
|
+
> **Hinweis (v2.0.0):** Pass 3 schreibt Rule-Dateien zuerst in `claudeos-core/generated/.staged-rules/`, weil die Sensitive-Path-Policy von Claude Code direkte Schreibzugriffe auf `.claude/` blockiert. Die automatisierte Pipeline (`npx claudeos-core init`) verschiebt sie automatisch. Wenn Sie diesen Schritt manuell ausführen, müssen Sie den Staging-Baum selbst verschieben: `mv claudeos-core/generated/.staged-rules/* .claude/rules/` (Unterpfade erhalten).
|
|
263
335
|
|
|
264
|
-
####
|
|
336
|
+
#### Schritt 7: Pass 4 — Memory-Scaffolding
|
|
265
337
|
|
|
266
338
|
```bash
|
|
267
|
-
cat claudeos-core/generated/
|
|
339
|
+
cat claudeos-core/generated/pass4-prompt.md \
|
|
268
340
|
| claude -p --dangerously-skip-permissions
|
|
269
341
|
```
|
|
270
342
|
|
|
271
|
-
**
|
|
343
|
+
**Verifikation:** `claudeos-core/memory/` sollte 4 Dateien enthalten (`decision-log.md`, `failure-patterns.md`, `compaction.md`, `auto-rule-update.md`), `.claude/rules/60.memory/` sollte 4 Rule-Dateien enthalten, `claudeos-core/plan/50.memory-master.md` sollte existieren, und `CLAUDE.md` sollte nun einen angehängten Abschnitt `## Memory (L4)` haben. Marker: `claudeos-core/generated/pass4-memory.json`.
|
|
272
344
|
|
|
273
|
-
|
|
345
|
+
> **Hinweis:** Wenn `claude -p` fehlschlägt oder `pass4-prompt.md` fehlt, fällt die automatisierte Pipeline auf ein statisches Scaffold über `lib/memory-scaffold.js` zurück (mit Claude-getriebener Übersetzung, wenn `--lang` nicht-englisch ist). Der statische Fallback läuft nur innerhalb von `npx claudeos-core init` — der manuelle Modus erfordert, dass Pass 4 erfolgreich ist.
|
|
346
|
+
|
|
347
|
+
#### Schritt 8: Verifikations-Tools ausführen
|
|
274
348
|
|
|
275
349
|
```bash
|
|
276
|
-
# Metadaten generieren (vor anderen
|
|
350
|
+
# Metadaten generieren (vor anderen Checks erforderlich)
|
|
277
351
|
node claudeos-core-tools/manifest-generator/index.js
|
|
278
352
|
|
|
279
|
-
# Alle
|
|
353
|
+
# Alle Checks ausführen
|
|
280
354
|
node claudeos-core-tools/health-checker/index.js
|
|
281
355
|
|
|
282
|
-
# Oder einzelne
|
|
283
|
-
node claudeos-core-tools/plan-validator/index.js --check # Plan ↔
|
|
284
|
-
node claudeos-core-tools/sync-checker/index.js #
|
|
285
|
-
node claudeos-core-tools/content-validator/index.js #
|
|
286
|
-
node claudeos-core-tools/pass-json-validator/index.js # JSON
|
|
356
|
+
# Oder einzelne Checks ausführen:
|
|
357
|
+
node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ Disk-Konsistenz
|
|
358
|
+
node claudeos-core-tools/sync-checker/index.js # Nicht registrierte/verwaiste Dateien
|
|
359
|
+
node claudeos-core-tools/content-validator/index.js # Dateiqualitäts-Checks (inkl. memory/-Sektion [9/9])
|
|
360
|
+
node claudeos-core-tools/pass-json-validator/index.js # Pass-1–4-JSON + Completion-Marker-Checks
|
|
287
361
|
```
|
|
288
362
|
|
|
289
|
-
####
|
|
363
|
+
#### Schritt 9: Ergebnisse überprüfen
|
|
290
364
|
|
|
291
365
|
```bash
|
|
366
|
+
# Generierte Dateien zählen
|
|
292
367
|
find .claude claudeos-core -type f | grep -v node_modules | grep -v '/generated/' | wc -l
|
|
368
|
+
|
|
369
|
+
# CLAUDE.md prüfen
|
|
293
370
|
head -30 CLAUDE.md
|
|
371
|
+
|
|
372
|
+
# Eine Standard-Datei prüfen
|
|
373
|
+
cat claudeos-core/standard/00.core/01.project-overview.md | head -20
|
|
374
|
+
|
|
375
|
+
# Rules prüfen
|
|
294
376
|
ls .claude/rules/*/
|
|
295
377
|
```
|
|
296
378
|
|
|
297
|
-
> **Tipp:** Wenn ein Schritt fehlschlägt, können Sie nur diesen Schritt erneut ausführen. Pass
|
|
379
|
+
> **Tipp:** Wenn ein Schritt fehlschlägt, können Sie das Problem beheben und nur diesen Schritt erneut ausführen. Pass-1/2-Ergebnisse sind gecacht — wenn `pass1-N.json` oder `pass2-merged.json` bereits existiert, überspringt die automatisierte Pipeline diese. Verwenden Sie `npx claudeos-core init --force`, um vorherige Ergebnisse zu löschen und neu zu beginnen.
|
|
298
380
|
|
|
299
|
-
### Nutzung
|
|
381
|
+
### Nutzung beginnen
|
|
300
382
|
|
|
301
383
|
```
|
|
302
|
-
# In Claude Code — einfach natürlich
|
|
303
|
-
"Erstelle ein CRUD für die
|
|
304
|
-
"Füge eine
|
|
305
|
-
"
|
|
384
|
+
# In Claude Code — einfach natürlich fragen:
|
|
385
|
+
"Erstelle ein CRUD für die order-Domain"
|
|
386
|
+
"Füge eine User-Authentifizierungs-API hinzu"
|
|
387
|
+
"Refactore diesen Code, um den Projektmustern zu entsprechen"
|
|
306
388
|
|
|
307
389
|
# Claude Code referenziert automatisch Ihre generierten Standards, Rules und Skills.
|
|
308
390
|
```
|
|
309
391
|
|
|
310
392
|
---
|
|
311
393
|
|
|
312
|
-
##
|
|
394
|
+
## Wie es funktioniert — 4-Pass-Pipeline
|
|
313
395
|
|
|
314
396
|
```
|
|
315
397
|
npx claudeos-core init
|
|
@@ -317,40 +399,48 @@ npx claudeos-core init
|
|
|
317
399
|
├── [1] npm install ← Abhängigkeiten (~10s)
|
|
318
400
|
├── [2] Verzeichnisstruktur ← Ordner erstellen (~1s)
|
|
319
401
|
├── [3] plan-installer (Node.js) ← Projekt-Scan (~5s)
|
|
320
|
-
│ ├──
|
|
321
|
-
│ ├──
|
|
322
|
-
│ ├──
|
|
323
|
-
│ └── Stack-spezifische Prompts
|
|
402
|
+
│ ├── Auto-Erkennung des Stacks (multi-stack-fähig)
|
|
403
|
+
│ ├── Domain-Liste extrahieren (getaggt: backend/frontend)
|
|
404
|
+
│ ├── In Domain-Gruppen aufteilen (pro Typ)
|
|
405
|
+
│ └── Stack-spezifische Prompts wählen (pro Typ)
|
|
324
406
|
│
|
|
325
|
-
├── [4] Pass 1 × N (claude -p) ←
|
|
326
|
-
│ ├── ⚙️ Backend-Gruppen →
|
|
327
|
-
│ └── 🎨 Frontend-Gruppen →
|
|
407
|
+
├── [4] Pass 1 × N (claude -p) ← Tiefe Code-Analyse (~2-8min)
|
|
408
|
+
│ ├── ⚙️ Backend-Gruppen → backend-spezifischer Prompt
|
|
409
|
+
│ └── 🎨 Frontend-Gruppen → frontend-spezifischer Prompt
|
|
328
410
|
│
|
|
329
|
-
├── [5] Pass 2 × 1 (claude -p) ← Analyse
|
|
330
|
-
│ └── ALLE Pass-1-Ergebnisse
|
|
411
|
+
├── [5] Pass 2 × 1 (claude -p) ← Analyse-Merge (~1min)
|
|
412
|
+
│ └── Konsolidiert ALLE Pass-1-Ergebnisse (Backend + Frontend)
|
|
331
413
|
│
|
|
332
|
-
├── [6] Pass 3 × 1 (claude -p) ← Alles generieren (~3-
|
|
414
|
+
├── [6] Pass 3 × 1 (claude -p) ← Alles generieren (~3-5min)
|
|
333
415
|
│ └── Kombinierter Prompt (Backend- + Frontend-Ziele)
|
|
334
416
|
│
|
|
335
|
-
|
|
417
|
+
├── [7] Pass 4 × 1 (claude -p) ← Memory-Scaffolding (~30s)
|
|
418
|
+
│ ├── Seeding von memory/ (decision-log, failure-patterns, …)
|
|
419
|
+
│ ├── 60.memory/-Regeln generieren
|
|
420
|
+
│ ├── "Memory (L4)"-Sektion an CLAUDE.md anhängen
|
|
421
|
+
│ └── 50.memory-master.md-Plan erstellen
|
|
422
|
+
│
|
|
423
|
+
└── [8] Verifikation ← Health-Checker läuft automatisch
|
|
336
424
|
```
|
|
337
425
|
|
|
338
|
-
### Warum
|
|
426
|
+
### Warum 4 Passes?
|
|
427
|
+
|
|
428
|
+
**Pass 1** ist der einzige Pass, der Ihren Quellcode liest. Er wählt repräsentative Dateien pro Domain und extrahiert Muster über 55–95 Analyse-Kategorien (pro Stack). Bei großen Projekten läuft Pass 1 mehrfach — einmal pro Domain-Gruppe. In Multi-Stack-Projekten (z. B. Java-Backend + React-Frontend) verwenden Backend- und Frontend-Domains **unterschiedliche Analyse-Prompts**, die auf jeden Stack zugeschnitten sind.
|
|
339
429
|
|
|
340
|
-
**Pass
|
|
430
|
+
**Pass 2** führt alle Pass-1-Ergebnisse zu einer einheitlichen Analyse zusammen: gemeinsame Muster (100 % geteilt), Mehrheitsmuster (50 %+ geteilt), domain-spezifische Muster, Anti-Patterns nach Schweregrad und Cross-Cutting-Concerns (Naming, Security, DB, Testing, Logging, Performance). Backend- und Frontend-Ergebnisse werden zusammengeführt.
|
|
341
431
|
|
|
342
|
-
**Pass
|
|
432
|
+
**Pass 3** nimmt die zusammengeführte Analyse und generiert das gesamte Datei-Ökosystem (CLAUDE.md, Rules, Standards, Skills, Guides). Er liest niemals den Quellcode — nur das Analyse-JSON. Im Multi-Stack-Modus kombiniert der Generierungs-Prompt Backend- und Frontend-Ziele, sodass beide Standard-Sätze in einem Durchgang generiert werden.
|
|
343
433
|
|
|
344
|
-
**Pass
|
|
434
|
+
**Pass 4** baut die L4-Memory-Schicht auf: persistente Team-Wissensdateien (decision-log, failure-patterns, Compaction-Policy, auto-rule-update) plus die `60.memory/`-Regeln, die zukünftigen Sessions mitteilen, wann und wie diese Dateien gelesen/geschrieben werden sollen. Die Memory-Schicht ist das, was Claude Code erlaubt, Lehren über Sessions hinweg anzusammeln, anstatt sie jedes Mal neu zu entdecken. Wenn `--lang` nicht-englisch ist, wird der statische Fallback-Inhalt über Claude übersetzt, bevor er geschrieben wird.
|
|
345
435
|
|
|
346
436
|
---
|
|
347
437
|
|
|
348
|
-
##
|
|
438
|
+
## Struktur der generierten Dateien
|
|
349
439
|
|
|
350
440
|
```
|
|
351
441
|
your-project/
|
|
352
442
|
│
|
|
353
|
-
├── CLAUDE.md ← Claude
|
|
443
|
+
├── CLAUDE.md ← Claude-Code-Einstiegspunkt
|
|
354
444
|
│
|
|
355
445
|
├── .claude/
|
|
356
446
|
│ └── rules/ ← Glob-getriggerte Regeln
|
|
@@ -359,197 +449,307 @@ your-project/
|
|
|
359
449
|
│ ├── 20.frontend/
|
|
360
450
|
│ ├── 30.security-db/
|
|
361
451
|
│ ├── 40.infra/
|
|
362
|
-
│
|
|
452
|
+
│ ├── 50.sync/ ← Sync-Erinnerungs-Regeln
|
|
453
|
+
│ └── 60.memory/ ← L4-Memory-On-Demand-Scope-Regeln (v2.0.0)
|
|
363
454
|
│
|
|
364
455
|
├── claudeos-core/ ← Hauptausgabeverzeichnis
|
|
365
|
-
│ ├── generated/ ← Analyse-JSON + dynamische Prompts
|
|
366
|
-
│ ├──
|
|
456
|
+
│ ├── generated/ ← Analyse-JSON + dynamische Prompts + Pass-Marker (gitignore)
|
|
457
|
+
│ │ ├── project-analysis.json ← Stack-Infos (multi-stack-fähig)
|
|
458
|
+
│ │ ├── domain-groups.json ← Gruppen mit type: backend/frontend
|
|
459
|
+
│ │ ├── pass1-backend-prompt.md ← Backend-Analyse-Prompt
|
|
460
|
+
│ │ ├── pass1-frontend-prompt.md ← Frontend-Analyse-Prompt (falls erkannt)
|
|
461
|
+
│ │ ├── pass2-prompt.md ← Merge-Prompt
|
|
462
|
+
│ │ ├── pass3-prompt.md ← Generierungs-Prompt (kombiniert)
|
|
463
|
+
│ │ ├── pass4-prompt.md ← Memory-Scaffolding-Prompt (v2.0.0)
|
|
464
|
+
│ │ ├── pass3-complete.json ← Pass-3-Completion-Marker (beim Resume überspringen)
|
|
465
|
+
│ │ ├── pass4-memory.json ← Pass-4-Completion-Marker (beim Resume überspringen)
|
|
466
|
+
│ │ ├── .i18n-cache-<lang>.json ← Übersetzungs-Cache (nicht-englisches `--lang`)
|
|
467
|
+
│ │ └── .staged-rules/ ← Transientes Staging-Verzeichnis für `.claude/rules/`-Schreibvorgänge (auto-verschoben + bereinigt)
|
|
468
|
+
│ ├── standard/ ← Coding-Standards (15–19 Dateien)
|
|
469
|
+
│ │ ├── 00.core/ ← Overview, Architektur, Naming
|
|
470
|
+
│ │ ├── 10.backend-api/ ← API-Muster (stack-spezifisch)
|
|
471
|
+
│ │ ├── 20.frontend-ui/ ← Frontend-Muster (falls erkannt)
|
|
472
|
+
│ │ ├── 30.security-db/ ← Security, DB-Schema, Utilities
|
|
473
|
+
│ │ ├── 40.infra/ ← Config, Logging, CI/CD
|
|
474
|
+
│ │ ├── 50.verification/ ← Build-Verifikation, Testing
|
|
475
|
+
│ │ └── 90.optional/ ← Optionale Konventionen (stack-spezifische Extras)
|
|
367
476
|
│ ├── skills/ ← CRUD-Scaffolding-Skills
|
|
368
|
-
│ ├── guide/ ← Onboarding, FAQ,
|
|
369
|
-
│ ├── plan/ ← Master
|
|
370
|
-
│ ├── database/ ← DB-Schema,
|
|
371
|
-
│
|
|
477
|
+
│ ├── guide/ ← Onboarding, FAQ, Troubleshooting (9 Dateien)
|
|
478
|
+
│ ├── plan/ ← Master-Pläne (Backup/Restore)
|
|
479
|
+
│ ├── database/ ← DB-Schema, Migration-Guide
|
|
480
|
+
│ ├── mcp-guide/ ← MCP-Server-Integrations-Guide
|
|
481
|
+
│ └── memory/ ← L4: Team-Wissen (4 Dateien) — committen
|
|
482
|
+
│ ├── decision-log.md ← „Warum" hinter Design-Entscheidungen
|
|
483
|
+
│ ├── failure-patterns.md ← Wiederkehrende Fehler & Fixes (Auto-Score — `npx claudeos-core memory score`)
|
|
484
|
+
│ ├── compaction.md ← 4-Stage-Compaction-Strategie (`npx claudeos-core memory compact` ausführen)
|
|
485
|
+
│ └── auto-rule-update.md ← Rule-Verbesserungs-Vorschläge (`npx claudeos-core memory propose-rules`)
|
|
372
486
|
│
|
|
373
487
|
└── claudeos-core-tools/ ← Dieses Toolkit (nicht ändern)
|
|
374
488
|
```
|
|
375
489
|
|
|
376
|
-
Jede Standard-Datei enthält
|
|
490
|
+
Jede Standard-Datei enthält ✅-korrekte Beispiele, ❌-fehlerhafte Beispiele und eine Regel-Zusammenfassungstabelle — alles aus Ihren tatsächlichen Code-Mustern abgeleitet, nicht aus generischen Templates.
|
|
491
|
+
|
|
492
|
+
### Gitignore-Empfehlungen
|
|
493
|
+
|
|
494
|
+
**Committen** (Team-Wissen — zum Teilen gedacht):
|
|
495
|
+
- `CLAUDE.md` — Claude-Code-Einstiegspunkt
|
|
496
|
+
- `.claude/rules/**` — automatisch geladene Regeln
|
|
497
|
+
- `claudeos-core/standard/**`, `skills/**`, `guide/**`, `database/**`, `mcp-guide/**`, `plan/**` — generierte Dokumentation
|
|
498
|
+
- `claudeos-core/memory/**` — Entscheidungshistorie, Failure-Patterns, Rule-Vorschläge
|
|
499
|
+
|
|
500
|
+
**NICHT committen** (regenerierbare Build-Artefakte):
|
|
501
|
+
|
|
502
|
+
```gitignore
|
|
503
|
+
# ClaudeOS-Core — generierte Analyse & Übersetzungs-Cache
|
|
504
|
+
claudeos-core/generated/
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
Das `generated/`-Verzeichnis enthält Analyse-JSON (`pass1-*.json`, `pass2-merged.json`), Prompts (`pass1/2/3/4-prompt.md`), Pass-Completion-Marker (`pass3-complete.json`, `pass4-memory.json`), Übersetzungs-Cache (`.i18n-cache-<lang>.json`) und das transiente Staging-Verzeichnis (`.staged-rules/`) — alles durch erneutes Ausführen von `npx claudeos-core init` wiederherstellbar.
|
|
377
508
|
|
|
378
509
|
---
|
|
379
510
|
|
|
380
|
-
##
|
|
511
|
+
## Auto-Scaling nach Projektgröße
|
|
381
512
|
|
|
382
|
-
| Größe |
|
|
513
|
+
| Größe | Domains | Pass-1-Läufe | Gesamt `claude -p` | Gesch. Zeit |
|
|
383
514
|
|---|---|---|---|---|
|
|
384
|
-
| Klein | 1–4 | 1 | 3 | ~5
|
|
385
|
-
| Mittel | 5–8 | 2 |
|
|
386
|
-
| Groß | 9–16 | 3–4 |
|
|
387
|
-
|
|
|
515
|
+
| Klein | 1–4 | 1 | 4 (Pass 1 + 2 + 3 + 4) | ~5–6min |
|
|
516
|
+
| Mittel | 5–8 | 2 | 5 | ~8–9min |
|
|
517
|
+
| Groß | 9–16 | 3–4 | 6–7 | ~12–13min |
|
|
518
|
+
| X-Groß | 17+ | 5+ | 8+ | ~18min+ |
|
|
388
519
|
|
|
389
|
-
Bei Multi-Stack-Projekten (z.B. Java + React) werden Backend- und Frontend-
|
|
520
|
+
Pass 4 (Memory-Scaffolding) fügt ~30s zusätzlich zu den Analyse-Passes hinzu. Bei Multi-Stack-Projekten (z. B. Java + React) werden Backend- und Frontend-Domains zusammen gezählt. Ein Projekt mit 6 Backend- + 4 Frontend-Domains = 10 gesamt, skaliert als „Groß".
|
|
390
521
|
|
|
391
522
|
---
|
|
392
523
|
|
|
393
|
-
##
|
|
524
|
+
## Verifikations-Tools
|
|
394
525
|
|
|
395
|
-
ClaudeOS-Core enthält 5
|
|
526
|
+
ClaudeOS-Core enthält 5 eingebaute Verifikations-Tools, die automatisch nach der Generierung laufen:
|
|
396
527
|
|
|
397
528
|
```bash
|
|
398
|
-
# Alle
|
|
529
|
+
# Alle Checks auf einmal ausführen (empfohlen)
|
|
399
530
|
npx claudeos-core health
|
|
400
531
|
|
|
401
532
|
# Einzelne Befehle
|
|
402
|
-
npx claudeos-core validate # Plan ↔
|
|
403
|
-
npx claudeos-core refresh #
|
|
404
|
-
npx claudeos-core restore # Plan →
|
|
533
|
+
npx claudeos-core validate # Plan ↔ Disk-Vergleich
|
|
534
|
+
npx claudeos-core refresh # Disk → Plan-Sync
|
|
535
|
+
npx claudeos-core restore # Plan → Disk-Restore
|
|
536
|
+
|
|
537
|
+
# Oder node direkt verwenden (git-clone-User)
|
|
538
|
+
node claudeos-core-tools/health-checker/index.js
|
|
539
|
+
node claudeos-core-tools/manifest-generator/index.js
|
|
540
|
+
node claudeos-core-tools/plan-validator/index.js --check
|
|
541
|
+
node claudeos-core-tools/sync-checker/index.js
|
|
405
542
|
```
|
|
406
543
|
|
|
407
544
|
| Tool | Funktion |
|
|
408
545
|
|---|---|
|
|
409
|
-
| **manifest-generator** |
|
|
410
|
-
| **plan-validator** | Vergleicht
|
|
411
|
-
| **sync-checker** | Erkennt nicht registrierte Dateien (auf
|
|
412
|
-
| **content-validator** |
|
|
413
|
-
| **pass-json-validator** | Validiert Pass-1–
|
|
546
|
+
| **manifest-generator** | Baut Metadaten-JSON (rule-manifest, sync-map, plan-manifest); indexiert 7 Verzeichnisse einschließlich `memory/` (`totalMemory` in der Summary) |
|
|
547
|
+
| **plan-validator** | Vergleicht Master-Plan-`<file>`-Blöcke mit Disk — 3 Modi: check, refresh, restore |
|
|
548
|
+
| **sync-checker** | Erkennt nicht registrierte Dateien (auf Disk, aber nicht im Plan) und verwaiste Einträge — deckt 7 Verzeichnisse ab (in v2.0.0 `memory/` hinzugefügt) |
|
|
549
|
+
| **content-validator** | 9-Sektionen-Qualitätscheck — leere Dateien, fehlende ✅/❌-Beispiele, erforderliche Sektionen plus L4-Memory-Scaffold-Integrität (decision-log-Heading-Dates, failure-pattern-Pflichtfelder, fence-aware Parsing) |
|
|
550
|
+
| **pass-json-validator** | Validiert Pass-1–4-JSON-Struktur plus die Completion-Marker `pass3-complete.json` und `pass4-memory.json` |
|
|
414
551
|
|
|
415
552
|
---
|
|
416
553
|
|
|
417
|
-
## Wie Claude Code Ihre Dokumentation
|
|
554
|
+
## Wie Claude Code Ihre Dokumentation nutzt
|
|
418
555
|
|
|
419
|
-
|
|
556
|
+
ClaudeOS-Core generiert Dokumentation, die Claude Code tatsächlich liest — hier ist wie:
|
|
420
557
|
|
|
421
|
-
###
|
|
558
|
+
### Was Claude Code automatisch liest
|
|
422
559
|
|
|
423
560
|
| Datei | Wann | Garantiert |
|
|
424
561
|
|---|---|---|
|
|
425
|
-
| `CLAUDE.md` | Bei jedem
|
|
426
|
-
| `.claude/rules/00.core/*` |
|
|
427
|
-
| `.claude/rules/10.backend/*` |
|
|
428
|
-
| `.claude/rules/
|
|
429
|
-
| `.claude/rules/
|
|
430
|
-
| `.claude/rules/
|
|
562
|
+
| `CLAUDE.md` | Bei jedem Gesprächsbeginn | Immer |
|
|
563
|
+
| `.claude/rules/00.core/*` | Wenn eine beliebige Datei editiert wird (`paths: ["**/*"]`) | Immer |
|
|
564
|
+
| `.claude/rules/10.backend/*` | Wenn eine beliebige Datei editiert wird (`paths: ["**/*"]`) | Immer |
|
|
565
|
+
| `.claude/rules/20.frontend/*` | Wenn eine Frontend-Datei editiert wird (eingeschränkt auf Component-/Page-/Style-Pfade) | Bedingt |
|
|
566
|
+
| `.claude/rules/30.security-db/*` | Wenn eine beliebige Datei editiert wird (`paths: ["**/*"]`) | Immer |
|
|
567
|
+
| `.claude/rules/40.infra/*` | Nur beim Editieren von Config/Infra-Dateien (eingeschränkte Pfade) | Bedingt |
|
|
568
|
+
| `.claude/rules/50.sync/*` | Nur beim Editieren von claudeos-core-Dateien (eingeschränkte Pfade) | Bedingt |
|
|
569
|
+
| `.claude/rules/60.memory/*` | Wenn `claudeos-core/memory/*` editiert wird (eingeschränkt auf Memory-Pfade) — weist an, **wie** die On-Demand-Memory-Schicht gelesen/geschrieben wird | Bedingt (v2.0.0) |
|
|
431
570
|
|
|
432
|
-
###
|
|
571
|
+
### Was Claude Code bei Bedarf über Rule-Referenzen liest
|
|
433
572
|
|
|
434
|
-
Jede
|
|
573
|
+
Jede Rule-Datei verlinkt über einen `## Reference`-Abschnitt auf den zugehörigen Standard. Claude liest nur den für die aktuelle Aufgabe relevanten Standard:
|
|
435
574
|
|
|
436
|
-
- `claudeos-core/standard/**` — Coding-
|
|
575
|
+
- `claudeos-core/standard/**` — Coding-Muster, ✅/❌-Beispiele, Naming-Konventionen
|
|
437
576
|
- `claudeos-core/database/**` — DB-Schema (für Queries, Mapper, Migrationen)
|
|
577
|
+
- `claudeos-core/memory/**` (v2.0.0) — L4-Team-Wissensschicht; **nicht** auto-geladen (wäre bei jedem Gespräch zu rauschend). Stattdessen teilen die `60.memory/*`-Regeln Claude *wann* diese Dateien zu lesen sind: bei Session-Start (aktuelle `decision-log.md` überfliegen + High-Importance-`failure-patterns.md`), und append-on-demand bei Entscheidungen oder wiederkehrenden Fehlern.
|
|
438
578
|
|
|
439
|
-
`00.standard-reference.md` dient als Verzeichnis
|
|
579
|
+
Die `00.standard-reference.md` dient als Verzeichnis aller Standard-Dateien, um Standards zu finden, die keine entsprechende Regel haben.
|
|
440
580
|
|
|
441
|
-
###
|
|
581
|
+
### Was Claude Code NICHT liest (spart Context)
|
|
442
582
|
|
|
443
|
-
|
|
583
|
+
Diese Ordner werden explizit über den `DO NOT Read`-Abschnitt in der Standard-Reference-Rule ausgeschlossen:
|
|
444
584
|
|
|
445
|
-
| Ordner |
|
|
585
|
+
| Ordner | Warum ausgeschlossen |
|
|
446
586
|
|---|---|
|
|
447
|
-
| `claudeos-core/plan/` | Master
|
|
448
|
-
| `claudeos-core/generated/` | Build-Metadaten
|
|
587
|
+
| `claudeos-core/plan/` | Master-Plan-Backups (~340KB). `npx claudeos-core refresh` zum Sync verwenden. |
|
|
588
|
+
| `claudeos-core/generated/` | Build-Metadaten-JSON, Prompts, Pass-Marker, Übersetzungs-Cache, `.staged-rules/`. Nicht zum Coden. |
|
|
449
589
|
| `claudeos-core/guide/` | Onboarding-Guides für Menschen. |
|
|
450
|
-
| `claudeos-core/mcp-guide/` | MCP
|
|
590
|
+
| `claudeos-core/mcp-guide/` | MCP-Server-Docs. Nicht zum Coden. |
|
|
591
|
+
| `claudeos-core/memory/` (Auto-Load) | **Auto-Load deaktiviert** by design — würde den Context bei jedem Gespräch aufblähen. Stattdessen on-demand über die `60.memory/*`-Regeln lesen (z. B. Session-Start-Scan von `failure-patterns.md`). Diese Dateien immer committen. |
|
|
451
592
|
|
|
452
593
|
---
|
|
453
594
|
|
|
454
|
-
## Täglicher
|
|
595
|
+
## Täglicher Workflow
|
|
455
596
|
|
|
456
597
|
### Nach der Installation
|
|
457
598
|
|
|
458
599
|
```
|
|
459
|
-
#
|
|
460
|
-
"Erstelle ein CRUD für die
|
|
461
|
-
"Füge eine API
|
|
462
|
-
"
|
|
600
|
+
# Claude Code einfach wie gewohnt benutzen — er referenziert Ihre Standards automatisch:
|
|
601
|
+
"Erstelle ein CRUD für die order-Domain"
|
|
602
|
+
"Füge eine User-Profile-Update-API hinzu"
|
|
603
|
+
"Refactore diesen Code, um den Projektmustern zu entsprechen"
|
|
463
604
|
```
|
|
464
605
|
|
|
465
|
-
### Nach manueller Bearbeitung
|
|
606
|
+
### Nach manueller Bearbeitung von Standards
|
|
466
607
|
|
|
467
608
|
```bash
|
|
468
|
-
# Nach
|
|
609
|
+
# Nach Bearbeitung von Standards- oder Rule-Dateien:
|
|
469
610
|
npx claudeos-core refresh
|
|
470
611
|
|
|
471
|
-
#
|
|
612
|
+
# Verifizieren, dass alles konsistent ist
|
|
472
613
|
npx claudeos-core health
|
|
473
614
|
```
|
|
474
615
|
|
|
475
|
-
### Wenn
|
|
616
|
+
### Wenn Docs beschädigt werden
|
|
476
617
|
|
|
477
618
|
```bash
|
|
478
|
-
# Alles
|
|
619
|
+
# Alles vom Master-Plan wiederherstellen
|
|
479
620
|
npx claudeos-core restore
|
|
480
621
|
```
|
|
481
622
|
|
|
623
|
+
### Memory-Schicht-Pflege (v2.0.0)
|
|
624
|
+
|
|
625
|
+
Die L4-Memory-Schicht (`claudeos-core/memory/`) sammelt Team-Wissen über Sessions hinweg. Drei CLI-Subcommands halten sie gesund:
|
|
626
|
+
|
|
627
|
+
```bash
|
|
628
|
+
# Compact: 4-Stage-Compaction-Policy anwenden (regelmäßig — z. B. monatlich)
|
|
629
|
+
npx claudeos-core memory compact
|
|
630
|
+
# Stage 1: alte Einträge zusammenfassen (>30 Tage, Body → eine Zeile)
|
|
631
|
+
# Stage 2: doppelte Headings mergen (Frequency summiert, letzter Fix behalten)
|
|
632
|
+
# Stage 3: Low-Importance + alt droppen (importance <3 UND lastSeen >60 Tage)
|
|
633
|
+
# Stage 4: 400-Zeilen-Cap pro Datei erzwingen (ältestes Low-Importance zuerst gedroppt)
|
|
634
|
+
|
|
635
|
+
# Score: failure-patterns.md-Einträge nach Importance neu ranken
|
|
636
|
+
npx claudeos-core memory score
|
|
637
|
+
# importance = round(frequency × 1.5 + recency × 5), bei 10 gecapped
|
|
638
|
+
# Ausführen nach dem Anhängen mehrerer neuer Failure-Patterns
|
|
639
|
+
|
|
640
|
+
# Propose-rules: Kandidaten für Rule-Ergänzungen aus wiederkehrenden Failures herausarbeiten
|
|
641
|
+
npx claudeos-core memory propose-rules
|
|
642
|
+
# Liest failure-patterns.md-Einträge mit frequency ≥ 3
|
|
643
|
+
# Berechnet Confidence (Sigmoid auf gewichteter Evidenz × Anker-Multiplikator)
|
|
644
|
+
# Schreibt Vorschläge nach memory/auto-rule-update.md (NICHT auto-angewendet)
|
|
645
|
+
# Confidence ≥ 0.70 verdient ernsthafte Prüfung; akzeptieren → Rule editieren + Entscheidung loggen
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
Wann in Memory schreiben (Claude macht das on-demand, aber Sie können auch manuell editieren):
|
|
649
|
+
- **`decision-log.md`** — neuen Eintrag anhängen, wenn Sie zwischen konkurrierenden Mustern wählen, eine Bibliothek auswählen, eine Team-Konvention definieren oder entscheiden, etwas NICHT zu tun. Append-only; historische Einträge niemals editieren.
|
|
650
|
+
- **`failure-patterns.md`** — beim **zweiten Auftreten** eines wiederkehrenden Fehlers oder einer nicht offensichtlichen Root-Cause anhängen. Erstmalige Fehler brauchen keinen Eintrag.
|
|
651
|
+
- `compaction.md` und `auto-rule-update.md` — werden von den CLI-Subcommands oben generiert/verwaltet; nicht von Hand editieren.
|
|
652
|
+
|
|
482
653
|
### CI/CD-Integration
|
|
483
654
|
|
|
484
655
|
```yaml
|
|
485
|
-
# GitHub
|
|
656
|
+
# GitHub-Actions-Beispiel
|
|
486
657
|
- run: npx claudeos-core validate
|
|
487
658
|
# Exit-Code 1 blockiert den PR
|
|
659
|
+
|
|
660
|
+
# Optional: monatliches Memory-Housekeeping (separater Cron-Workflow)
|
|
661
|
+
- run: npx claudeos-core memory compact
|
|
662
|
+
- run: npx claudeos-core memory score
|
|
488
663
|
```
|
|
489
664
|
|
|
490
665
|
---
|
|
491
666
|
|
|
492
|
-
##
|
|
667
|
+
## Wie unterscheidet sich das?
|
|
668
|
+
|
|
669
|
+
### vs. andere Claude-Code-Tools
|
|
493
670
|
|
|
494
671
|
| | ClaudeOS-Core | Everything Claude Code (50K+ ⭐) | Harness | specs-generator | Claude `/init` |
|
|
495
672
|
|---|---|---|---|---|---|
|
|
496
|
-
| **
|
|
497
|
-
| **
|
|
498
|
-
| **Stack
|
|
499
|
-
| **Domain
|
|
500
|
-
| **
|
|
501
|
-
| **
|
|
502
|
-
| **Output** | CLAUDE.md + Rules + Standards + Skills + Guides + Plans (40
|
|
503
|
-
| **Output
|
|
504
|
-
| **Post-
|
|
505
|
-
| **Multi-
|
|
506
|
-
| **Multi-
|
|
507
|
-
| **
|
|
673
|
+
| **Ansatz** | Code analysiert zuerst, dann LLM generiert | Vorgefertigte Config-Presets | LLM designt Agent-Teams | LLM generiert Spec-Docs | LLM schreibt CLAUDE.md |
|
|
674
|
+
| **Liest Ihren Quellcode** | ✅ Deterministische statische Analyse | ❌ | ❌ | ❌ (LLM liest) | ❌ (LLM liest) |
|
|
675
|
+
| **Stack-Erkennung** | Code bestätigt (ORM, DB, Build-Tool, Pkg-Manager) | N/V (stack-agnostisch) | LLM rät | LLM rät | LLM rät |
|
|
676
|
+
| **Domain-Erkennung** | Code bestätigt (Java 5 Muster, Kotlin CQRS, Next.js FSD) | N/V | LLM rät | N/V | N/V |
|
|
677
|
+
| **Gleiches Projekt → gleiches Ergebnis** | ✅ Deterministische Analyse | ✅ (statische Dateien) | ❌ (LLM variiert) | ❌ (LLM variiert) | ❌ (LLM variiert) |
|
|
678
|
+
| **Handhabung großer Projekte** | Domain-Gruppen-Splitting (4 Domains / 40 Dateien pro Gruppe) | N/V | Kein Splitting | Kein Splitting | Context-Window-Limit |
|
|
679
|
+
| **Output** | CLAUDE.md + Rules + Standards + Skills + Guides + Plans (40–50+ Dateien) | Agents + Skills + Commands + Hooks | Agents + Skills | 6 Spec-Dokumente | CLAUDE.md (1 Datei) |
|
|
680
|
+
| **Output-Ort** | `.claude/rules/` (auto-geladen von Claude Code) | `.claude/` diverse | `.claude/agents/` + `.claude/skills/` | `.claude/steering/` + `specs/` | `CLAUDE.md` |
|
|
681
|
+
| **Post-Generierungs-Verifikation** | ✅ 5 automatisierte Validatoren | ❌ | ❌ | ❌ | ❌ |
|
|
682
|
+
| **Multi-Language-Output** | ✅ 10 Sprachen | ❌ | ❌ | ❌ | ❌ |
|
|
683
|
+
| **Multi-Stack** | ✅ Backend + Frontend simultan | ❌ Stack-agnostisch | ❌ | ❌ | Teilweise |
|
|
684
|
+
| **Persistente Memory-Schicht** | ✅ L4 — Decision-Log + Failure-Patterns + auto-bewertete Rule-Vorschläge (v2.0.0) | ❌ | ❌ | ❌ | ❌ |
|
|
685
|
+
| **Agent-Orchestrierung** | ❌ | ✅ 28 Agents | ✅ 6 Muster | ❌ | ❌ |
|
|
686
|
+
|
|
687
|
+
### Der Schlüsselunterschied in einem Satz
|
|
508
688
|
|
|
509
|
-
|
|
689
|
+
**Andere Tools geben Claude „allgemein gute Anweisungen". ClaudeOS-Core gibt Claude „Anweisungen, die aus Ihrem tatsächlichen Code extrahiert wurden".**
|
|
510
690
|
|
|
511
|
-
|
|
691
|
+
Deshalb hört Claude Code auf, JPA-Code in Ihrem MyBatis-Projekt zu generieren,
|
|
692
|
+
hört auf, `success()` zu verwenden, wenn Ihre Codebasis `ok()` nutzt,
|
|
693
|
+
und hört auf, `user/controller/`-Verzeichnisse zu erstellen, wenn Ihr Projekt `controller/user/` verwendet.
|
|
512
694
|
|
|
513
|
-
###
|
|
695
|
+
### Ergänzend, nicht konkurrierend
|
|
514
696
|
|
|
515
|
-
ClaudeOS-Core
|
|
516
|
-
|
|
697
|
+
ClaudeOS-Core fokussiert sich auf **projektspezifische Regeln und Standards**.
|
|
698
|
+
Andere Tools fokussieren sich auf **Agent-Orchestrierung und Workflows**.
|
|
699
|
+
|
|
700
|
+
Sie können ClaudeOS-Core verwenden, um Ihre Projekt-Rules zu generieren, und darauf aufbauend ECC oder Harness für Agent-Teams und Workflow-Automatisierung. Sie lösen unterschiedliche Probleme.
|
|
517
701
|
|
|
518
702
|
---
|
|
703
|
+
|
|
519
704
|
## FAQ
|
|
520
705
|
|
|
521
|
-
**F:
|
|
522
|
-
Nein. Es
|
|
706
|
+
**F: Modifiziert es meinen Quellcode?**
|
|
707
|
+
Nein. Es erstellt nur `CLAUDE.md`, `.claude/rules/` und `claudeos-core/`. Ihr bestehender Code wird niemals modifiziert.
|
|
523
708
|
|
|
524
|
-
**F:
|
|
525
|
-
|
|
709
|
+
**F: Wie viel kostet es?**
|
|
710
|
+
Es ruft `claude -p` 4–8 Mal auf (Pass 1 × N + Pass 2 + Pass 3 + Pass 4). Das liegt im Rahmen der normalen Claude-Code-Nutzung. Wenn `--lang` nicht-englisch ist, kann der statische Fallback-Pfad einige zusätzliche `claude -p`-Aufrufe für Übersetzungen auslösen; Ergebnisse werden in `claudeos-core/generated/.i18n-cache-<lang>.json` gecacht, sodass nachfolgende Läufe sie wiederverwenden.
|
|
526
711
|
|
|
527
|
-
**F:
|
|
528
|
-
|
|
712
|
+
**F: Soll ich die generierten Dateien in Git committen?**
|
|
713
|
+
Ja, empfohlen. Ihr Team kann dieselben Claude-Code-Standards teilen. Erwägen Sie, `claudeos-core/generated/` in `.gitignore` aufzunehmen (Analyse-JSON ist regenerierbar).
|
|
529
714
|
|
|
530
|
-
**F: Was ist mit Mixed-Stack-Projekten (z.B. Java-Backend + React-Frontend)?**
|
|
531
|
-
Vollständig unterstützt. ClaudeOS-Core erkennt
|
|
715
|
+
**F: Was ist mit Mixed-Stack-Projekten (z. B. Java-Backend + React-Frontend)?**
|
|
716
|
+
Vollständig unterstützt. ClaudeOS-Core erkennt beide Stacks automatisch, taggt Domains als `backend` oder `frontend` und verwendet stack-spezifische Analyse-Prompts für jeden. Pass 2 merged alles, und Pass 3 generiert sowohl Backend- als auch Frontend-Standards in einem Pass.
|
|
532
717
|
|
|
533
|
-
**F:
|
|
534
|
-
|
|
718
|
+
**F: Funktioniert es mit Turborepo / pnpm-Workspaces / Lerna-Monorepos?**
|
|
719
|
+
Ja. ClaudeOS-Core erkennt `turbo.json`, `pnpm-workspace.yaml`, `lerna.json` oder `package.json#workspaces` und scannt automatisch Sub-Package-`package.json`-Dateien nach Framework/ORM/DB-Abhängigkeiten. Das Domain-Scanning deckt `apps/*/src/`- und `packages/*/src/`-Muster ab. Vom Monorepo-Root ausführen.
|
|
535
720
|
|
|
536
|
-
**F:
|
|
537
|
-
|
|
721
|
+
**F: Was passiert bei einem erneuten Lauf?**
|
|
722
|
+
Wenn vorherige Pass-1/2-Ergebnisse existieren, lässt Sie ein interaktiver Prompt wählen: **Continue** (von der Unterbrechungsstelle fortsetzen) oder **Fresh** (alles löschen und neu beginnen). Verwenden Sie `--force`, um den Prompt zu überspringen und immer frisch zu starten. Pass 3 läuft immer neu. Frühere Versionen können aus Master-Plänen wiederhergestellt werden.
|
|
538
723
|
|
|
539
|
-
**F: Bekommt NestJS ein eigenes Template oder
|
|
540
|
-
NestJS verwendet ein dediziertes `node-nestjs`-Template mit NestJS-spezifischen
|
|
724
|
+
**F: Bekommt NestJS ein eigenes Template oder verwendet es das Express-Template?**
|
|
725
|
+
NestJS verwendet ein dediziertes `node-nestjs`-Template mit NestJS-spezifischen Analyse-Kategorien: `@Module`-, `@Injectable`-, `@Controller`-Decorators, Guards, Pipes, Interceptors, DI-Container, CQRS-Muster und `Test.createTestingModule`. Express-Projekte verwenden das separate `node-express`-Template.
|
|
541
726
|
|
|
542
|
-
**F: Was ist mit Vue
|
|
543
|
-
Vue/Nuxt verwendet ein dediziertes `vue-nuxt`-Template, das Composition API, `<script setup>`, defineProps/defineEmits, Pinia
|
|
727
|
+
**F: Was ist mit Vue-/Nuxt-Projekten?**
|
|
728
|
+
Vue/Nuxt verwendet ein dediziertes `vue-nuxt`-Template, das Composition API, `<script setup>`, defineProps/defineEmits, Pinia-Stores, `useFetch`/`useAsyncData`, Nitro-Server-Routes und `@nuxt/test-utils` abdeckt. Next.js-/React-Projekte verwenden das `node-nextjs`-Template.
|
|
544
729
|
|
|
545
|
-
**F:
|
|
546
|
-
Ja. ClaudeOS-Core erkennt Kotlin automatisch aus `build.gradle.kts` oder dem
|
|
730
|
+
**F: Unterstützt es Kotlin?**
|
|
731
|
+
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.).
|
|
547
732
|
|
|
548
|
-
**F: Was ist mit CQRS / BFF-Architektur?**
|
|
549
|
-
|
|
733
|
+
**F: Was ist mit CQRS- / BFF-Architektur?**
|
|
734
|
+
Für Kotlin-Multi-Modul-Projekte vollständig unterstützt. ClaudeOS-Core liest `settings.gradle.kts`, erkennt Modultypen (command, query, bff, integration) aus Modulnamen und gruppiert dieselbe Domain über Command-/Query-Module. Die generierten Standards enthalten separate Regeln für Command-Controller vs. Query-Controller, BFF-/Feign-Muster und Inter-Modul-Kommunikationskonventionen.
|
|
550
735
|
|
|
551
736
|
**F: Was ist mit Gradle-Multi-Modul-Monorepos?**
|
|
552
|
-
ClaudeOS-Core scannt alle Submodule (`**/src/main/kotlin/**/*.kt`) unabhängig von der Verschachtelungstiefe. Modultypen werden aus
|
|
737
|
+
ClaudeOS-Core scannt alle Submodule (`**/src/main/kotlin/**/*.kt`) unabhängig von der Verschachtelungstiefe. Modultypen werden aus Naming-Konventionen abgeleitet (z. B. `reservation-command-server` → Domain: `reservation`, Typ: `command`). Geteilte Bibliotheken (`shared-lib`, `integration-lib`) werden ebenfalls erkannt.
|
|
738
|
+
|
|
739
|
+
**F: Was ist die L4-Memory-Schicht (v2.0.0)? Soll ich `claudeos-core/memory/` committen?**
|
|
740
|
+
Ja — `claudeos-core/memory/` **immer committen**. Es ist persistentes Team-Wissen: `decision-log.md` hält das *Warum* hinter architektonischen Entscheidungen fest (append-only), `failure-patterns.md` registriert wiederkehrende Fehler mit Importance-Scores, damit zukünftige Sessions sie vermeiden, `compaction.md` definiert die 4-Stage-Compaction-Policy, und `auto-rule-update.md` sammelt maschinell generierte Rule-Verbesserungs-Vorschläge. Anders als Rules (pfad-basiert auto-geladen) sind Memory-Dateien **on-demand** — Claude liest sie nur, wenn die `60.memory/*`-Regeln ihn dazu auffordern (z. B. Session-Start-Scan von High-Importance-Failures). Das hält Context-Kosten niedrig, während langfristiges Wissen erhalten bleibt.
|
|
741
|
+
|
|
742
|
+
**F: Was, wenn Pass 4 fehlschlägt?**
|
|
743
|
+
Die automatisierte Pipeline (`npx claudeos-core init`) hat einen statischen Fallback: Wenn `claude -p` fehlschlägt oder `pass4-prompt.md` fehlt, wird die Memory-Schicht direkt über `lib/memory-scaffold.js` aufgebaut. Wenn `--lang` nicht-englisch ist, **muss** der statische Fallback über die `claude`-CLI übersetzen — schlägt das ebenfalls fehl, bricht der Lauf mit `InitError` ab (kein stiller englischer Fallback). Erneut ausführen, wenn `claude` authentifiziert ist, oder `--lang en` verwenden, um die Übersetzung zu überspringen. Übersetzungsergebnisse werden in `claudeos-core/generated/.i18n-cache-<lang>.json` gecacht, sodass nachfolgende Läufe sie wiederverwenden.
|
|
744
|
+
|
|
745
|
+
**F: Was machen `memory compact` / `memory score` / `memory propose-rules`?**
|
|
746
|
+
Siehe den Abschnitt [Memory-Schicht-Pflege](#memory-schicht-pflege-v200) oben. Kurzfassung: `compact` führt die 4-Stage-Policy aus (alte zusammenfassen, Duplikate mergen, Low-Importance-alt droppen, 400-Zeilen-Cap erzwingen); `score` ranked `failure-patterns.md` neu nach Importance (frequency × recency); `propose-rules` bringt Kandidaten für Rule-Ergänzungen aus wiederkehrenden Failures in `auto-rule-update.md` (nicht auto-angewendet — manuell prüfen und akzeptieren/ablehnen).
|
|
747
|
+
|
|
748
|
+
**F: Warum löscht `--force` (oder „fresh"-Resume-Modus) `.claude/rules/`?**
|
|
749
|
+
v2.0.0 hat drei Pass-3-Silent-Failure-Guards hinzugefügt (Guard 3 deckt zwei Incomplete-Output-Varianten ab: H2 für `guide/` und H1 für `standard/skills/plan`). Guard 1 („partieller staged-rules-Move") und Guard 3 („unvollständiger Output — fehlende/leere Guide-Dateien oder fehlender Standard-Sentinel / leere Skills / leerer Plan") hängen nicht von bestehenden Regeln ab, aber Guard 2 („null Rules erkannt") schon — er feuert, wenn Claude die `staging-override.md`-Direktive ignoriert und direkt nach `.claude/` schreiben wollte (wo Claude Codes Sensitive-Path-Policy das blockiert). Stale-Rules aus einem früheren Lauf würden Guard 2 false-negative machen — daher wipet `--force`/`fresh` `.claude/rules/`, um eine saubere Erkennung sicherzustellen. **Manuelle Edits an Rule-Dateien gehen verloren** bei `--force`/`fresh`; vorher sichern, wenn nötig.
|
|
750
|
+
|
|
751
|
+
**F: Was ist `claudeos-core/generated/.staged-rules/` und warum existiert es?**
|
|
752
|
+
Claude Codes Sensitive-Path-Policy verweigert direkte Schreibzugriffe auf `.claude/` aus dem `claude -p`-Subprozess (selbst mit `--dangerously-skip-permissions`). v2.0.0 umgeht das, indem Pass-3/4-Prompts alle `.claude/rules/`-Schreibvorgänge auf das Staging-Verzeichnis umleiten; der Node.js-Orchestrator (nicht dieser Policy unterworfen) verschiebt den Staging-Baum dann nach jedem Pass nach `.claude/rules/`. Das ist für den Benutzer transparent — das Verzeichnis wird auto-erstellt, auto-bereinigt und auto-verschoben. Wenn ein vorheriger Lauf mitten im Move crashte, wipet der nächste Lauf das Staging-Dir vor dem Retry.
|
|
553
753
|
|
|
554
754
|
---
|
|
555
755
|
|
|
@@ -557,34 +757,36 @@ ClaudeOS-Core scannt alle Submodule (`**/src/main/kotlin/**/*.kt`) unabhängig v
|
|
|
557
757
|
|
|
558
758
|
```
|
|
559
759
|
pass-prompts/templates/
|
|
560
|
-
├── common/ # Gemeinsamer Header/Footer
|
|
760
|
+
├── common/ # Gemeinsamer Header/Footer + pass4 + staging-override
|
|
561
761
|
├── java-spring/ # Java / Spring Boot
|
|
562
762
|
├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
|
|
563
763
|
├── node-express/ # Node.js / Express
|
|
564
764
|
├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
|
|
565
765
|
├── node-fastify/ # Node.js / Fastify
|
|
566
|
-
├── node-nextjs/ # Next.js / React
|
|
766
|
+
├── node-nextjs/ # Next.js / React (App Router, RSC)
|
|
767
|
+
├── node-vite/ # Vite SPA (React, client-side routing, VITE_ env, Vitest)
|
|
567
768
|
├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
|
|
568
769
|
├── angular/ # Angular
|
|
569
770
|
├── python-django/ # Python / Django (DRF)
|
|
570
|
-
|
|
771
|
+
├── python-fastapi/ # Python / FastAPI
|
|
772
|
+
└── python-flask/ # Python / Flask (Blueprint, app factory, Jinja2)
|
|
571
773
|
```
|
|
572
774
|
|
|
573
|
-
`plan-installer` erkennt
|
|
775
|
+
`plan-installer` erkennt Ihren Stack/Ihre Stacks automatisch und setzt dann typ-spezifische Prompts zusammen. NestJS, Vue/Nuxt, Vite SPA und Flask verwenden jeweils dedizierte Templates mit framework-spezifischen Analyse-Kategorien (z. B. `@Module`/`@Injectable`/Guards für NestJS; `<script setup>`/Pinia/useFetch für Vue; Client-Side-Routing/`VITE_`-Env für Vite; Blueprint/`app.factory`/Flask-SQLAlchemy für Flask). Für Multi-Stack-Projekte werden separate `pass1-backend-prompt.md` und `pass1-frontend-prompt.md` generiert, während `pass3-prompt.md` die Generierungsziele beider Stacks kombiniert. Pass 4 verwendet unabhängig vom Stack das gemeinsame `common/pass4.md`-Template (Memory-Scaffolding).
|
|
574
776
|
|
|
575
777
|
---
|
|
576
778
|
|
|
577
779
|
## Monorepo-Unterstützung
|
|
578
780
|
|
|
579
|
-
ClaudeOS-Core erkennt
|
|
781
|
+
ClaudeOS-Core erkennt JS/TS-Monorepo-Setups automatisch und scannt Sub-Packages nach Abhängigkeiten.
|
|
580
782
|
|
|
581
|
-
**Unterstützte Monorepo-Marker** (
|
|
783
|
+
**Unterstützte Monorepo-Marker** (auto-erkannt):
|
|
582
784
|
- `turbo.json` (Turborepo)
|
|
583
|
-
- `pnpm-workspace.yaml` (pnpm
|
|
785
|
+
- `pnpm-workspace.yaml` (pnpm-Workspaces)
|
|
584
786
|
- `lerna.json` (Lerna)
|
|
585
|
-
- `package.json#workspaces` (npm
|
|
787
|
+
- `package.json#workspaces` (npm-/yarn-Workspaces)
|
|
586
788
|
|
|
587
|
-
**
|
|
789
|
+
**Vom Monorepo-Root ausführen** — ClaudeOS-Core liest `apps/*/package.json` und `packages/*/package.json`, um Framework-/ORM-/DB-Abhängigkeiten über Sub-Packages hinweg zu entdecken:
|
|
588
790
|
|
|
589
791
|
```bash
|
|
590
792
|
cd my-monorepo
|
|
@@ -592,19 +794,19 @@ npx claudeos-core init
|
|
|
592
794
|
```
|
|
593
795
|
|
|
594
796
|
**Was erkannt wird:**
|
|
595
|
-
- Abhängigkeiten aus `apps/web/package.json` (z.B. `next`, `react`) → Frontend-Stack
|
|
596
|
-
- Abhängigkeiten aus `apps/api/package.json` (z.B. `express`, `prisma`) → Backend-Stack
|
|
597
|
-
- Abhängigkeiten aus `packages/db/package.json` (z.B. `drizzle-orm`) → ORM/DB
|
|
598
|
-
- Benutzerdefinierte Workspace-Pfade aus `pnpm-workspace.yaml` (z.B. `services/*`)
|
|
797
|
+
- Abhängigkeiten aus `apps/web/package.json` (z. B. `next`, `react`) → Frontend-Stack
|
|
798
|
+
- Abhängigkeiten aus `apps/api/package.json` (z. B. `express`, `prisma`) → Backend-Stack
|
|
799
|
+
- Abhängigkeiten aus `packages/db/package.json` (z. B. `drizzle-orm`) → ORM/DB
|
|
800
|
+
- Benutzerdefinierte Workspace-Pfade aus `pnpm-workspace.yaml` (z. B. `services/*`)
|
|
599
801
|
|
|
600
802
|
**Domain-Scanning deckt auch Monorepo-Layouts ab:**
|
|
601
803
|
- `apps/api/src/modules/*/` und `apps/api/src/*/` für Backend-Domains
|
|
602
804
|
- `apps/web/app/*/`, `apps/web/src/app/*/`, `apps/web/pages/*/` für Frontend-Domains
|
|
603
|
-
- `packages/*/src/*/` für
|
|
805
|
+
- `packages/*/src/*/` für Shared-Package-Domains
|
|
604
806
|
|
|
605
807
|
```
|
|
606
808
|
my-monorepo/ ← Hier ausführen: npx claudeos-core init
|
|
607
|
-
├── turbo.json ←
|
|
809
|
+
├── turbo.json ← Als Turborepo auto-erkannt
|
|
608
810
|
├── apps/
|
|
609
811
|
│ ├── web/ ← Next.js erkannt aus apps/web/package.json
|
|
610
812
|
│ │ ├── app/dashboard/ ← Frontend-Domain erkannt
|
|
@@ -618,37 +820,60 @@ my-monorepo/ ← Hier ausführen: npx claudeos-core init
|
|
|
618
820
|
└── package.json ← { "workspaces": ["apps/*", "packages/*"] }
|
|
619
821
|
```
|
|
620
822
|
|
|
621
|
-
> **Hinweis:** Für Kotlin
|
|
823
|
+
> **Hinweis:** Für Kotlin-/Java-Monorepos verwendet die Multi-Modul-Erkennung `settings.gradle.kts` (siehe [Kotlin-Multi-Modul-Erkennung](#kotlin-multi-modul-domain-erkennung) oben) und benötigt keine JS-Monorepo-Marker.
|
|
622
824
|
|
|
623
825
|
## Fehlerbehebung
|
|
624
826
|
|
|
625
|
-
|
|
827
|
+
**„claude: command not found"** — Claude Code CLI ist nicht installiert oder nicht im PATH. Siehe [Claude-Code-Docs](https://code.claude.com/docs/en/overview).
|
|
828
|
+
|
|
829
|
+
**„npm install failed"** — Node.js-Version ist möglicherweise zu niedrig. Erfordert v18+.
|
|
830
|
+
|
|
831
|
+
**„0 domains detected"** — Ihre Projektstruktur ist möglicherweise nicht-standardisiert. Siehe die Erkennungsmuster oben für Ihren Stack.
|
|
832
|
+
|
|
833
|
+
**„0 domains detected" bei einem Kotlin-Projekt** — Stellen Sie sicher, dass Ihr Projekt `build.gradle.kts` (oder `build.gradle` mit kotlin-Plugin) im Root hat und dass Quelldateien unter `**/src/main/kotlin/` liegen. Für Multi-Modul-Projekte stellen Sie sicher, dass `settings.gradle.kts` `include()`-Statements enthält. Single-Modul-Kotlin-Projekte (ohne `settings.gradle`) werden ebenfalls unterstützt — Domains werden aus der Package-/Class-Struktur unter `src/main/kotlin/` extrahiert.
|
|
834
|
+
|
|
835
|
+
**„Language detected as java instead of kotlin"** — ClaudeOS-Core prüft zuerst die Root-`build.gradle(.kts)`, dann Submodul-Build-Dateien. Wenn die Root-Build-Datei das `java`-Plugin ohne `kotlin` verwendet, aber Submodule Kotlin verwenden, prüft das Tool als Fallback bis zu 5 Submodul-Build-Dateien. Wenn immer noch nicht erkannt, stellen Sie sicher, dass mindestens ein `build.gradle.kts` `kotlin("jvm")` oder `org.jetbrains.kotlin` enthält.
|
|
836
|
+
|
|
837
|
+
**„CQRS not detected"** — Die Architektur-Erkennung verlässt sich auf Modulnamen, die `command`- und `query`-Keywords enthalten. Wenn Ihre Module andere Namen verwenden (z. B. `write-server`, `read-server`), wird die CQRS-Architektur nicht auto-erkannt. Sie können die generierten Prompts nach dem plan-installer-Lauf manuell anpassen.
|
|
626
838
|
|
|
627
|
-
|
|
839
|
+
**„Pass 3 produced 0 rule files under .claude/rules/" (v2.0.0)** — Guard 2 hat ausgelöst: Claude hat die `staging-override.md`-Direktive ignoriert und versucht, direkt nach `.claude/` zu schreiben, wo Claude Codes Sensitive-Path-Policy Schreibvorgänge blockiert. Erneut mit `npx claudeos-core init --force` ausführen. Wenn der Fehler weiterhin auftritt, inspizieren Sie `claudeos-core/generated/pass3-prompt.md`, um zu verifizieren, dass der `staging-override.md`-Block ganz oben steht.
|
|
628
840
|
|
|
629
|
-
|
|
841
|
+
**„Pass 3 finished but N rule file(s) could not be moved from staging" (v2.0.0)** — Guard 1 hat ausgelöst: Der Staging-Move hat einen transienten Datei-Lock getroffen (typischerweise Windows-Antivirus oder ein File-Watcher). Der Marker wird NICHT geschrieben, also wird der nächste `init`-Lauf Pass 3 automatisch erneut versuchen. Einfach `npx claudeos-core init` erneut ausführen.
|
|
630
842
|
|
|
631
|
-
**„
|
|
843
|
+
**„Pass 3 produced CLAUDE.md and rules but N/9 guide files are missing or empty" (v2.0.0)** — Guard 3 (H2) hat ausgelöst: Claude hat mitten in der Antwort abgeschnitten, nachdem CLAUDE.md + Rules geschrieben waren, aber vor dem Beenden (oder Starten) des `claudeos-core/guide/`-Abschnitts (9 Dateien erwartet). Löst auch bei BOM-only- oder Whitespace-only-Dateien aus (Heading wurde geschrieben, aber der Body wurde abgeschnitten). Ohne diesen Guard würde der Completion-Marker trotzdem geschrieben, was `guide/` auf nachfolgenden Läufen dauerhaft leer lassen würde. Der Marker wird hier NICHT geschrieben, also wird der nächste `init`-Lauf Pass 3 mit denselben Pass-2-Ergebnissen erneut versuchen. Wenn es sich weiter wiederholt, mit `npx claudeos-core init --force` erneut ausführen, um von Grund auf neu zu generieren.
|
|
632
844
|
|
|
633
|
-
**„
|
|
845
|
+
**„Pass 3 finished but the following required output(s) are missing or empty" (v2.0.0)** — Guard 3 (H1) hat ausgelöst: Claude hat NACH `claudeos-core/guide/` abgeschnitten, aber vor (oder während) `claudeos-core/standard/`, `claudeos-core/skills/` oder `claudeos-core/plan/`. Anforderungen: (a) `standard/00.core/01.project-overview.md` existiert und ist nicht leer (Sentinel, der vom Pass-3-Prompt jedes Stacks geschrieben wird), (b) `skills/` hat ≥1 nicht-leere `.md`, (c) `plan/` hat ≥1 nicht-leere `.md`. `database/` und `mcp-guide/` sind bewusst ausgeschlossen (einige Stacks produzieren legitim null Dateien). Gleicher Recovery-Pfad wie Guard 3 (H2): `init` erneut ausführen, oder `--force`, wenn es weiter auftritt.
|
|
634
846
|
|
|
635
|
-
**„
|
|
847
|
+
**„pass2-merged.json exists but is malformed or incomplete (<5 top-level keys), re-running" (v2.0.0)** — Info-Log, kein Fehler. Beim Resume parsed und validiert `init` nun `pass2-merged.json` (≥5 Top-Level-Keys erforderlich, spiegelt den `INSUFFICIENT_KEYS`-Schwellenwert des `pass-json-validator`). Skelett-`{}` oder fehlerhaftes JSON aus einem vorherigen gecrashten Lauf wird automatisch gelöscht und Pass 2 läuft erneut. Keine manuelle Aktion nötig — die Pipeline heilt sich selbst. Wenn es weiter auftritt, `claudeos-core/generated/pass2-prompt.md` inspizieren und mit `--force` erneut versuchen.
|
|
848
|
+
|
|
849
|
+
**„Static fallback failed while translating to lang='ko'" (v2.0.0)** — Wenn `--lang` nicht-englisch ist, erfordern Pass 4 / statischer Fallback / Gap-Fill alle die `claude`-CLI zur Übersetzung. Wenn die Übersetzung fehlschlägt (CLI nicht authentifiziert, Netzwerk-Timeout oder strikte Validierung hat den Output abgelehnt: <40 % Länge, kaputte Code-Fences, verlorenes Frontmatter usw.), bricht der Lauf ab, anstatt still Englisch zu schreiben. Fix: Sicherstellen, dass `claude` authentifiziert ist, oder mit `--lang en` erneut ausführen, um die Übersetzung zu überspringen.
|
|
850
|
+
|
|
851
|
+
**„pass4-memory.json exists but memory/ is empty" (v2.0.0)** — Ein vorheriger Lauf hat den Marker geschrieben, aber der Benutzer (oder ein Cleanup-Skript) hat `claudeos-core/memory/` gelöscht. Die CLI erkennt diesen Stale-Marker automatisch und führt Pass 4 beim nächsten `init` erneut aus. Keine manuelle Aktion nötig.
|
|
852
|
+
|
|
853
|
+
**„pass4-memory.json exists but is malformed (missing passNum/memoryFiles) — re-running Pass 4" (v2.0.0)** — Info-Log, kein Fehler. Der Pass-4-Marker-Inhalt wird nun validiert (`passNum === 4` + nicht-leeres `memoryFiles`-Array), nicht nur seine Existenz. Ein teilweiser Claude-Fehler, der etwas wie `{"error":"timeout"}` als Marker-Body ausgibt, würde zuvor für immer als Erfolg akzeptiert; jetzt wird der Marker gelöscht und Pass 4 läuft automatisch erneut.
|
|
854
|
+
|
|
855
|
+
**„Could not delete stale pass3-complete.json / pass4-memory.json" InitError (v2.0.0)** — `init` hat einen Stale-Marker erkannt (Pass 3: CLAUDE.md wurde extern gelöscht; Pass 4: memory/ leer oder Marker-Body fehlerhaft) und versucht, ihn zu entfernen, aber der `unlinkSync`-Aufruf schlug fehl — typischerweise weil Windows-Antivirus oder ein File-Watcher (Editor, IDE-Indexer) das File-Handle hält. Zuvor wurde das still ignoriert, was die Pipeline dazu brachte, den Pass zu überspringen und den Stale-Marker wiederzuverwenden. Jetzt scheitert es laut. Fix: Editor/AV-Scanner schließen, der die Datei möglicherweise offen hält, dann `npx claudeos-core init` erneut ausführen.
|
|
856
|
+
|
|
857
|
+
**„CLAUDEOS_SKIP_TRANSLATION=1 is set but --lang='ko' requires translation" InitError (v2.0.0)** — Sie haben die Test-only-Env-Var `CLAUDEOS_SKIP_TRANSLATION=1` in Ihrer Shell gesetzt (wahrscheinlich ein Rest aus CI-/Test-Setup) UND eine nicht-englische `--lang` gewählt. Diese Env-Var short-circuit den Übersetzungs-Pfad, von dem Pass 4's statischer Fallback und Gap-Fill für nicht-englischen Output abhängen. `init` erkennt den Konflikt beim Sprachwahl-Zeitpunkt und bricht sofort ab (anstatt mitten in Pass 4 mit einem verwirrenden verschachtelten Fehler zu crashen). Fix: Entweder `unset CLAUDEOS_SKIP_TRANSLATION` vor dem Ausführen oder `npx claudeos-core init --lang en` verwenden.
|
|
636
858
|
|
|
637
859
|
---
|
|
638
860
|
|
|
639
861
|
## Mitwirken
|
|
640
862
|
|
|
641
|
-
Beiträge sind willkommen! Bereiche, in denen am meisten
|
|
863
|
+
Beiträge sind willkommen! Bereiche, in denen Hilfe am meisten benötigt wird:
|
|
864
|
+
|
|
865
|
+
- **Neue Stack-Templates** — Ruby/Rails, Go (Gin/Fiber/Echo), PHP (Laravel/Symfony), Rust (Axum/Actix), Svelte/SvelteKit, Remix
|
|
866
|
+
- **IDE-Integration** — VS-Code-Extension, IntelliJ-Plugin
|
|
867
|
+
- **CI/CD-Templates** — GitLab CI, CircleCI, Jenkins-Beispiele (GitHub Actions bereits ausgeliefert — siehe `.github/workflows/test.yml`)
|
|
868
|
+
- **Testabdeckung** — Erweiterung der Test-Suite (derzeit 489 Tests über 24 Test-Dateien, die Scanner, Stack-Erkennung, Domain-Grouping, Plan-Parsing, Prompt-Generierung, CLI-Selectors, Monorepo-Erkennung, Vite-SPA-Erkennung, Verifikations-Tools, L4-Memory-Scaffold, Pass-2-Resume-Validierung, Pass-3-Guards 1/2/3 (H1-Sentinel + H2-BOM-aware-Empty-File + strikter Stale-Marker-Unlink), Pass-4-Marker-Content-Validierung + Stale-Marker-Unlink-Striktheit, Translation-Env-Skip-Guard + Early-Fail-Fast + CI-Workflow, staged-rules-Move, lang-aware-Translation-Fallback und AI-Work-Rules-Template-Struktur abdecken)
|
|
642
869
|
|
|
643
|
-
|
|
644
|
-
- **Tiefe Monorepo-Unterstützung** — Separate Unterprojekt-Roots, Workspace-Erkennung
|
|
645
|
-
- **Testabdeckung** — Wachsende Testsuite (derzeit 269 Tests für alle Scanner, Stack-Erkennung, Domain-Gruppierung, Plan-Parsing, Prompt-Generierung, CLI-Selektoren, Monorepo-Erkennung, Verifizierungstools und Vite SPA-Erkennung)
|
|
870
|
+
Siehe [`CONTRIBUTING.md`](./CONTRIBUTING.md) für die vollständige Liste der Bereiche, den Code-Style, die Commit-Konvention und die Schritt-für-Schritt-Anleitung zum Hinzufügen eines neuen Stack-Templates.
|
|
646
871
|
|
|
647
872
|
---
|
|
648
873
|
|
|
649
874
|
## Autor
|
|
650
875
|
|
|
651
|
-
Erstellt von **claudeos-core** — [GitHub](https://github.com/claudeos-core) · [
|
|
876
|
+
Erstellt von **claudeos-core** — [GitHub](https://github.com/claudeos-core) · [E-Mail](mailto:claudeoscore@gmail.com)
|
|
652
877
|
|
|
653
878
|
## Lizenz
|
|
654
879
|
|