claudeos-core 2.3.1 → 2.4.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 +1460 -73
- package/CODE_OF_CONDUCT.md +15 -0
- package/README.de.md +321 -883
- package/README.es.md +322 -883
- package/README.fr.md +322 -883
- package/README.hi.md +322 -883
- package/README.ja.md +322 -883
- package/README.ko.md +322 -882
- package/README.md +321 -883
- package/README.ru.md +322 -885
- package/README.vi.md +322 -883
- package/README.zh-CN.md +321 -881
- package/SECURITY.md +51 -0
- package/bin/commands/init.js +570 -264
- package/content-validator/index.js +185 -12
- package/health-checker/index.js +44 -10
- package/package.json +92 -90
- package/pass-json-validator/index.js +58 -7
- package/pass-prompts/templates/angular/pass3.md +15 -14
- package/pass-prompts/templates/common/claude-md-scaffold.md +203 -20
- package/pass-prompts/templates/common/pass3-footer.md +297 -56
- package/pass-prompts/templates/common/pass3a-facts.md +48 -3
- package/pass-prompts/templates/common/pass4.md +78 -40
- package/pass-prompts/templates/java-spring/pass1.md +54 -0
- package/pass-prompts/templates/java-spring/pass3.md +20 -19
- package/pass-prompts/templates/kotlin-spring/pass1.md +45 -0
- package/pass-prompts/templates/kotlin-spring/pass3.md +24 -23
- package/pass-prompts/templates/node-express/pass3.md +18 -17
- package/pass-prompts/templates/node-fastify/pass3.md +11 -10
- package/pass-prompts/templates/node-nestjs/pass3.md +11 -10
- package/pass-prompts/templates/node-nextjs/pass3.md +18 -17
- package/pass-prompts/templates/node-vite/pass3.md +11 -10
- package/pass-prompts/templates/python-django/pass3.md +18 -17
- package/pass-prompts/templates/python-fastapi/pass3.md +18 -17
- package/pass-prompts/templates/python-flask/pass3.md +9 -8
- package/pass-prompts/templates/vue-nuxt/pass3.md +9 -8
- package/plan-installer/domain-grouper.js +45 -5
- package/plan-installer/index.js +34 -1
- package/plan-installer/pass3-context-builder.js +14 -0
- package/plan-installer/scanners/scan-frontend.js +2 -1
- package/plan-installer/scanners/scan-java.js +98 -2
- package/plan-installer/source-paths.js +242 -0
- package/plan-installer/stack-detector.js +522 -42
package/README.de.md
CHANGED
|
@@ -1,1016 +1,454 @@
|
|
|
1
1
|
# ClaudeOS-Core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/claudeos-core)
|
|
4
|
+
[](https://github.com/claudeos-core/claudeos-core/actions/workflows/test.yml)
|
|
5
|
+
[](https://github.com/claudeos-core/claudeos-core/actions/workflows/test.yml)
|
|
6
|
+
[](https://nodejs.org/)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://www.npmjs.com/package/claudeos-core)
|
|
9
|
+
|
|
10
|
+
**Generieren Sie Claude-Code-Dokumentation automatisch aus Ihrem tatsächlichen Quellcode.** Ein CLI-Tool, das Ihr Projekt statisch analysiert und anschließend eine 4-Pass-Claude-Pipeline ausführt, um `.claude/rules/`, Standards, Skills und Guides zu generieren — damit Claude Code den Konventionen _Ihres_ Projekts folgt, nicht generischen.
|
|
4
11
|
|
|
5
12
|
```bash
|
|
6
13
|
npx claudeos-core init
|
|
7
14
|
```
|
|
8
15
|
|
|
9
|
-
|
|
10
|
-
|
|
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)
|
|
16
|
+
[🇺🇸 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
17
|
|
|
13
18
|
---
|
|
14
19
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
Jedes andere Claude-Code-Tool funktioniert so:
|
|
18
|
-
|
|
19
|
-
> **Mensch beschreibt das Projekt → LLM generiert Dokumentation**
|
|
20
|
-
|
|
21
|
-
ClaudeOS-Core funktioniert so:
|
|
22
|
-
|
|
23
|
-
> **Code analysiert Ihren Quellcode → Code erstellt einen maßgeschneiderten Prompt → LLM generiert Dokumentation → Code verifiziert den Output**
|
|
24
|
-
|
|
25
|
-
Das ist kein kleiner Unterschied. Hier ist, warum das wichtig ist:
|
|
26
|
-
|
|
27
|
-
### Das Kernproblem: LLMs raten. Code rät nicht.
|
|
20
|
+
## Worum geht es?
|
|
28
21
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
Sie nutzen Claude Code. Das Tool ist clever, kennt aber **die Konventionen Ihres Projekts** nicht:
|
|
23
|
+
- Ihr Team verwendet MyBatis, aber Claude generiert JPA-Code.
|
|
24
|
+
- Ihr Wrapper heißt `ApiResponse.ok()`, aber Claude schreibt `ResponseEntity.success()`.
|
|
25
|
+
- Ihre Pakete sind `controller/order/`, aber Claude erstellt `order/controller/`.
|
|
32
26
|
|
|
33
|
-
|
|
27
|
+
So verbringen Sie viel Zeit damit, jede generierte Datei nachzubessern.
|
|
34
28
|
|
|
35
|
-
-
|
|
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
|
|
29
|
+
**ClaudeOS-Core löst das.** Es scannt Ihren tatsächlichen Quellcode, ermittelt Ihre Konventionen und schreibt einen vollständigen Satz an Regeln in `.claude/rules/` — das Verzeichnis, das Claude Code automatisch liest. Wenn Sie das nächste Mal _„Erstelle ein CRUD für Bestellungen"_ sagen, befolgt Claude Ihre Konventionen schon beim ersten Versuch.
|
|
40
30
|
|
|
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.
|
|
42
|
-
|
|
43
|
-
### Das Ergebnis
|
|
44
|
-
|
|
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.
|
|
47
|
-
|
|
48
|
-
### Vorher & Nachher
|
|
49
|
-
|
|
50
|
-
**Ohne ClaudeOS-Core** — Sie bitten Claude Code, ein Order-CRUD zu erstellen:
|
|
51
31
|
```
|
|
52
|
-
|
|
53
|
-
|
|
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
|
|
32
|
+
Vorher: Sie → Claude Code → "allgemein guter" Code → manuelle Korrekturen
|
|
33
|
+
Nachher: Sie → Claude Code → Code, der zu Ihrem Projekt passt → einsetzbar
|
|
57
34
|
```
|
|
58
35
|
|
|
59
|
-
**Mit ClaudeOS-Core** — `.claude/rules/` enthält bereits Ihre bestätigten Muster:
|
|
60
|
-
```
|
|
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
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Dieser Unterschied summiert sich. 10 Aufgaben/Tag × 20 Minuten gespart = **über 3 Stunden/Tag**.
|
|
69
|
-
|
|
70
36
|
---
|
|
71
37
|
|
|
72
|
-
##
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
38
|
+
## In einem realen Projekt sehen
|
|
39
|
+
|
|
40
|
+
Ausgeführt auf [`spring-boot-realworld-example-app`](https://github.com/gothinkster/spring-boot-realworld-example-app) — Java 11 · Spring Boot 2.6 · MyBatis · SQLite · 187 source files. Ergebnis: **75 generated files**, Gesamtdauer **53 Minuten**, alle Validatoren ✅.
|
|
41
|
+
|
|
42
|
+
<p align="center">
|
|
43
|
+
<img src="docs/assets/spring-boot-realworld-demo.gif" alt="ClaudeOS-Core init running on spring-boot-realworld-example-app — stack detection, 4-pass pipeline, validators, completion summary" width="769">
|
|
44
|
+
</p>
|
|
45
|
+
|
|
46
|
+
<details>
|
|
47
|
+
<summary><strong>📺 Terminal-Ausgabe (Textversion, zum Suchen & Kopieren)</strong></summary>
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
╔════════════════════════════════════════════════════╗
|
|
51
|
+
║ ClaudeOS-Core — Bootstrap (4-Pass) ║
|
|
52
|
+
╚════════════════════════════════════════════════════╝
|
|
53
|
+
Project root: spring-boot-realworld-example-app
|
|
54
|
+
Language: English (en)
|
|
55
|
+
|
|
56
|
+
[Phase 1] Detecting stack...
|
|
57
|
+
Language: java 11
|
|
58
|
+
Framework: spring-boot 2.6.3
|
|
59
|
+
Database: sqlite
|
|
60
|
+
ORM: mybatis
|
|
61
|
+
PackageMgr: gradle
|
|
62
|
+
|
|
63
|
+
[Phase 2] Scanning structure...
|
|
64
|
+
Backend: 2 domains
|
|
65
|
+
Total: 2 domains
|
|
66
|
+
Package: io.spring.infrastructure
|
|
67
|
+
|
|
68
|
+
[Phase 5] Active domains...
|
|
69
|
+
✅ 00.core ✅ 10.backend ⏭️ 20.frontend
|
|
70
|
+
✅ 30.security-db ✅ 40.infra
|
|
71
|
+
✅ 80.verification ✅ 90.optional
|
|
72
|
+
|
|
73
|
+
[4] Pass 1 — Deep analysis per domain group...
|
|
74
|
+
✅ pass1-1.json created (5m 34s)
|
|
75
|
+
[█████░░░░░░░░░░░░░░░] 25% (1/4)
|
|
76
|
+
|
|
77
|
+
[5] Pass 2 — Merging analysis results...
|
|
78
|
+
✅ pass2-merged.json created (4m 22s)
|
|
79
|
+
[██████████░░░░░░░░░░] 50% (2/4)
|
|
80
|
+
|
|
81
|
+
[6] Pass 3 — Generating all files...
|
|
82
|
+
🚀 Pass 3 split mode (3a → 3b → 3c → 3d-aux)
|
|
83
|
+
✅ 3a complete (2m 57s) — pass3a-facts.md (187-path allowlist)
|
|
84
|
+
✅ 3b complete (18m 49s) — CLAUDE.md + 19 standards + 20 rules
|
|
85
|
+
✅ 3c complete (12m 35s) — 13 skills + 9 guides
|
|
86
|
+
✅ 3d-aux complete (3m 18s) — database/ + mcp-guide/
|
|
87
|
+
🎉 Pass 3 split complete: 4/4 stages successful
|
|
88
|
+
[███████████████░░░░░] 75% (3/4)
|
|
89
|
+
|
|
90
|
+
[7] Pass 4 — Memory scaffolding...
|
|
91
|
+
📦 Pass 4 staged-rules: 6 rule files moved to .claude/rules/
|
|
92
|
+
✅ Pass 4 complete (5m)
|
|
93
|
+
📋 Gap-fill: all 12 expected files already present
|
|
94
|
+
[████████████████████] 100% (4/4)
|
|
95
|
+
|
|
96
|
+
╔═══════════════════════════════════════╗
|
|
97
|
+
║ ClaudeOS-Core — Health Checker ║
|
|
98
|
+
╚═══════════════════════════════════════╝
|
|
99
|
+
✅ plan-validator pass
|
|
100
|
+
✅ sync-checker pass
|
|
101
|
+
✅ content-validator pass
|
|
102
|
+
✅ pass-json-validator pass
|
|
103
|
+
✅ All systems operational
|
|
104
|
+
|
|
105
|
+
[Lint] ✅ CLAUDE.md structure valid (25 checks)
|
|
106
|
+
[Content] ✅ All content validation passed
|
|
107
|
+
Total: 0 advisories, 0 notes
|
|
108
|
+
|
|
109
|
+
╔════════════════════════════════════════════════════╗
|
|
110
|
+
║ ✅ ClaudeOS-Core — Complete ║
|
|
111
|
+
║ Files created: 75 ║
|
|
112
|
+
║ Domains analyzed: 1 group ║
|
|
113
|
+
║ L4 scaffolded: memory + rules ║
|
|
114
|
+
║ Output language: English ║
|
|
115
|
+
║ Total time: 53m 8s ║
|
|
116
|
+
╚════════════════════════════════════════════════════╝
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
</details>
|
|
120
|
+
|
|
121
|
+
<details>
|
|
122
|
+
<summary><strong>📄 Was in Ihrer <code>CLAUDE.md</code> landet (echter Auszug)</strong></summary>
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
## 4. Core Architecture
|
|
126
|
+
|
|
127
|
+
### Core Patterns
|
|
128
|
+
|
|
129
|
+
- **Hexagonal ports & adapters**: domain ports live in `io.spring.core.{aggregate}`
|
|
130
|
+
and are implemented by `io.spring.infrastructure.repository.MyBatis{Aggregate}Repository`.
|
|
131
|
+
The domain layer has zero MyBatis imports.
|
|
132
|
+
- **CQRS-lite read/write split (same DB)**: write side goes through repository ports
|
|
133
|
+
+ entities; read side is a separate `readservice` package whose `@Mapper`
|
|
134
|
+
interfaces return `*Data` DTOs directly (no entity hydration).
|
|
135
|
+
- **No aggregator/orchestrator layer**: multi-source orchestration happens inside
|
|
136
|
+
application services (e.g., `ArticleQueryService`); there is no `*Aggregator`
|
|
137
|
+
class in the codebase.
|
|
138
|
+
- **Application-supplied UUIDs**: entity constructors assign their own UUID; PK is
|
|
139
|
+
passed via `#{user.id}` on INSERT. The global
|
|
140
|
+
`mybatis.configuration.use-generated-keys=true` flag is dead config
|
|
141
|
+
(auto-increment is unused).
|
|
142
|
+
- **JWT HS512 authentication**: `io.spring.infrastructure.service.DefaultJwtService`
|
|
143
|
+
is the sole token subject in/out; `io.spring.api.security.JwtTokenFilter`
|
|
144
|
+
extracts the token at the servlet layer.
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Hinweis: Jede der obigen Aussagen basiert auf dem tatsächlichen Quellcode — Klassennamen, Paketpfade, Konfigurationsschlüssel und auch das Dead-Config-Flag werden vom Scanner extrahiert, bevor Claude die Datei schreibt.
|
|
148
|
+
|
|
149
|
+
</details>
|
|
150
|
+
|
|
151
|
+
<details>
|
|
152
|
+
<summary><strong>🛡️ Eine real automatisch geladene Regel (<code>.claude/rules/10.backend/03.data-access-rules.md</code>)</strong></summary>
|
|
153
|
+
|
|
154
|
+
````markdown
|
|
98
155
|
---
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
| Stack | Erkennung | Analysetiefe |
|
|
103
|
-
|---|---|---|
|
|
104
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 Paketmuster | 10 Kategorien, 59 Unterpunkte |
|
|
105
|
-
| **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF Auto-Erkennung | 12 Kategorien, 95 Unterpunkte |
|
|
106
|
-
| **Node.js / Express** | `package.json` | 9 Kategorien, 57 Unterpunkte |
|
|
107
|
-
| **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 Kategorien, 68 Unterpunkte |
|
|
108
|
-
| **Next.js / React** | `package.json`, `next.config.*`, FSD-Unterstützung | 9 Kategorien, 55 Unterpunkte |
|
|
109
|
-
| **Vue / Nuxt** | `package.json`, `nuxt.config.*`, Composition API | 9 Kategorien, 58 Unterpunkte |
|
|
110
|
-
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 Kategorien, 55 Unterpunkte |
|
|
111
|
-
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 Kategorien, 58 Unterpunkte |
|
|
112
|
-
| **Node.js / Fastify** | `package.json` | 10 Kategorien, 62 Unterpunkte |
|
|
113
|
-
| **Vite / React SPA** | `package.json`, `vite.config.*` | 9 Kategorien, 55 Unterpunkte |
|
|
114
|
-
| **Angular** | `package.json`, `angular.json` | 12 Kategorien, 78 Unterpunkte |
|
|
115
|
-
|
|
116
|
-
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), **Laufzeitkonfiguration aus `.env.example`** (v2.2.0 — extrahiert port/host/API-target aus über 16 Konventions-Variablennamen in den Frameworks Vite · Next.js · Nuxt · Angular · Node · Python).
|
|
117
|
-
|
|
118
|
-
**Sie geben nichts an. Alles wird automatisch erkannt.**
|
|
119
|
-
|
|
120
|
-
### `.env`-basierte Laufzeitkonfiguration (v2.2.0)
|
|
121
|
-
|
|
122
|
-
v2.2.0 fügt `lib/env-parser.js` hinzu, damit die generierte `CLAUDE.md` widerspiegelt, was das Projekt tatsächlich deklariert, statt Framework-Defaults.
|
|
123
|
-
|
|
124
|
-
- **Suchreihenfolge**: `.env.example` (kanonisch, committet) → `.env.local.example` → `.env.sample` → `.env.template` → `.env` → `.env.local` → `.env.development`. Die `.example`-Variante gewinnt, weil sie die entwickler-neutrale Shape-of-Truth ist, nicht die lokalen Overrides eines einzelnen Contributors.
|
|
125
|
-
- **Erkannte Port-Variablen-Konventionen**: `VITE_PORT` / `VITE_DEV_PORT` / `VITE_DESKTOP_PORT` / `NEXT_PUBLIC_PORT` / `NUXT_PORT` / `NG_PORT` / `APP_PORT` / `SERVER_PORT` / `HTTP_PORT` / `DEV_PORT` / `FLASK_RUN_PORT` / `UVICORN_PORT` / `DJANGO_PORT` / generisches `PORT`. Framework-spezifische Namen gewinnen gegenüber dem generischen `PORT`, wenn beide vorhanden sind.
|
|
126
|
-
- **Host & API-Target**: `VITE_DEV_HOST` / `VITE_API_TARGET` / `NEXT_PUBLIC_API_URL` / `NUXT_PUBLIC_API_BASE` / `BACKEND_URL` / `PROXY_TARGET` usw.
|
|
127
|
-
- **Priorität**: Spring Boots `application.yml` `server.port` gewinnt weiterhin (framework-native Config), dann der in `.env` deklarierte Port, dann der Framework-Default (Vite 5173, Next.js 3000, Django 8000 usw.) als letzte Rückfall-Option.
|
|
128
|
-
- **Redaction sensibler Variablen**: Werte von Variablen, die den Mustern `PASSWORD` / `SECRET` / `TOKEN` / `API_KEY` / `ACCESS_KEY` / `PRIVATE_KEY` / `CREDENTIAL` / `JWT_SECRET` / `CLIENT_SECRET` / `SESSION_SECRET` / `BEARER` / `SALT` entsprechen, werden durch `***REDACTED***` ersetzt, bevor sie einen nachgelagerten Generator erreichen. Defense-in-Depth gegen versehentlich committed Secrets in `.env.example`. `DATABASE_URL` ist explizit auf der Allowlist für die Stack-Detector-DB-Identifikations-Back-Compat.
|
|
129
|
-
|
|
130
|
-
### Java-Domain-Erkennung (5 Muster mit Fallback)
|
|
131
|
-
|
|
132
|
-
| Priorität | Muster | Struktur | Beispiel |
|
|
133
|
-
|---|---|---|---|
|
|
134
|
-
| A | Layer-first | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
135
|
-
| B | Domain-first | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
136
|
-
| D | Modul-Präfix | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
137
|
-
| E | DDD/Hexagonal | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
138
|
-
| C | Flach | `controller/*.java` | `controller/UserController.java` → extrahiert `user` aus Klassenname |
|
|
139
|
-
|
|
140
|
-
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.
|
|
141
|
-
|
|
142
|
-
### Kotlin Multi-Modul Domain-Erkennung
|
|
143
|
-
|
|
144
|
-
Für Kotlin-Projekte mit Gradle-Multi-Modul-Struktur (z. B. CQRS-Monorepo):
|
|
145
|
-
|
|
146
|
-
| Schritt | Aktion | Beispiel |
|
|
147
|
-
|---|---|---|
|
|
148
|
-
| 1 | Scan von `settings.gradle.kts` nach `include()` | Findet 14 Module |
|
|
149
|
-
| 2 | Modultyp aus dem Namen ableiten | `reservation-command-server` → Typ: `command` |
|
|
150
|
-
| 3 | Domain aus dem Modulnamen extrahieren | `reservation-command-server` → Domain: `reservation` |
|
|
151
|
-
| 4 | Gleiche Domain über Module gruppieren | `reservation-command-server` + `common-query-server` → 1 Domain |
|
|
152
|
-
| 5 | Architektur erkennen | Besitzt `command`- + `query`-Module → CQRS |
|
|
153
|
-
|
|
154
|
-
Unterstützte Modultypen: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Geteilte Bibliotheken (`shared-lib`, `integration-lib`) werden als spezielle Domains erkannt.
|
|
155
|
-
|
|
156
|
-
### Frontend-Domain-Erkennung
|
|
157
|
-
|
|
158
|
-
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
159
|
-
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
160
|
-
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
161
|
-
- **RSC/Client-Split**: Erkennt das `client.tsx`-Muster, verfolgt die Trennung von Server-/Client-Komponenten
|
|
162
|
-
- **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/`)
|
|
163
|
-
- **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.
|
|
164
|
-
- **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).
|
|
165
|
-
- **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.
|
|
166
|
-
- **Config-Fallback**: Erkennt Next.js/Vite/Nuxt aus Config-Dateien, wenn nicht in `package.json` (Monorepo-Unterstützung)
|
|
167
|
-
- **Deep-Directory-Fallback**: Für React-/CRA-/Vite-/Vue-/RN-Projekte scannt `**/components/*/`, `**/views/*/`, `**/screens/*/`, `**/containers/*/`, `**/pages/*/`, `**/routes/*/`, `**/modules/*/`, `**/domains/*/` in beliebiger Tiefe
|
|
168
|
-
- **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.
|
|
169
|
-
|
|
170
|
-
### Scanner-Overrides (v2.0.0)
|
|
171
|
-
|
|
172
|
-
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:
|
|
173
|
-
|
|
174
|
-
```json
|
|
175
|
-
{
|
|
176
|
-
"frontendScan": {
|
|
177
|
-
"platformKeywords": ["kiosk"],
|
|
178
|
-
"skipSubappNames": ["legacy"],
|
|
179
|
-
"minSubappFiles": 3
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
| Feld | Default | Zweck |
|
|
185
|
-
|---|---|---|
|
|
186
|
-
| `platformKeywords` | eingebaute Liste oben | Zusätzliche `{platform}`-Keywords für den Platform-Scan (z. B. `kiosk`, `vr`, `embedded`) |
|
|
187
|
-
| `skipSubappNames` | nur strukturelle Dirs | Zusätzliche Subapp-Namen, die von der Platform-Scan-Domain-Emission ausgeschlossen werden |
|
|
188
|
-
| `minSubappFiles` | `2` | Überschreibt die Mindestdateianzahl, bevor eine Subapp zur Domain wird |
|
|
189
|
-
|
|
190
|
-
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.
|
|
191
|
-
|
|
156
|
+
paths:
|
|
157
|
+
- "**/*"
|
|
192
158
|
---
|
|
193
159
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
### Voraussetzungen
|
|
160
|
+
# Data Access Rules
|
|
197
161
|
|
|
198
|
-
-
|
|
199
|
-
-
|
|
162
|
+
## XML-only SQL
|
|
163
|
+
- Every SQL statement lives in `src/main/resources/mapper/*.xml`.
|
|
164
|
+
NO `@Select` / `@Insert` / `@Update` / `@Delete` annotations on `@Mapper` methods.
|
|
165
|
+
- Each `@Mapper` interface has exactly one XML file at
|
|
166
|
+
`src/main/resources/mapper/{InterfaceName}.xml`.
|
|
167
|
+
- `<mapper namespace="...">` MUST be the fully qualified Java interface name.
|
|
168
|
+
The single existing exception is `TransferData.xml` (free-form `transfer.data`).
|
|
200
169
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
# Option A: npx (empfohlen — keine Installation nötig)
|
|
207
|
-
npx claudeos-core init
|
|
170
|
+
## Dynamic SQL
|
|
171
|
+
- `<if>` predicates MUST guard both null and empty:
|
|
172
|
+
`<if test="X != null and X != ''">`. Empty-only is the existing HIGH-severity bug pattern.
|
|
173
|
+
- Prefer `LIMIT n OFFSET m` over MySQL-style `LIMIT m, n`.
|
|
208
174
|
|
|
209
|
-
|
|
210
|
-
npm install -g claudeos-core
|
|
211
|
-
claudeos-core init
|
|
175
|
+
## Examples
|
|
212
176
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
# Linux/macOS (nur Bash)
|
|
224
|
-
bash claudeos-core-tools/bootstrap.sh
|
|
177
|
+
✅ Correct:
|
|
178
|
+
```xml
|
|
179
|
+
<update id="update">
|
|
180
|
+
UPDATE articles
|
|
181
|
+
<set>
|
|
182
|
+
<if test="article.title != null and article.title != ''">title = #{article.title},</if>
|
|
183
|
+
updated_at = #{article.updatedAt}
|
|
184
|
+
</set>
|
|
185
|
+
WHERE id = #{article.id}
|
|
186
|
+
</update>
|
|
225
187
|
```
|
|
226
188
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
```
|
|
232
|
-
╔══════════════════════════════════════════════════╗
|
|
233
|
-
║ Sprache der generierten Dokumente wählen ║
|
|
234
|
-
╚══════════════════════════════════════════════════╝
|
|
235
|
-
|
|
236
|
-
Generierte Dateien (CLAUDE.md, Standards, Rules,
|
|
237
|
-
Skills, Guides) werden auf Deutsch geschrieben.
|
|
238
|
-
|
|
239
|
-
1. en — English
|
|
240
|
-
2. ko — 한국어 (Korean)
|
|
241
|
-
3. zh-CN — 简体中文 (Chinese Simplified)
|
|
242
|
-
4. ja — 日本語 (Japanese)
|
|
243
|
-
5. es — Español (Spanish)
|
|
244
|
-
6. vi — Tiếng Việt (Vietnamese)
|
|
245
|
-
7. hi — हिन्दी (Hindi)
|
|
246
|
-
8. ru — Русский (Russian)
|
|
247
|
-
9. fr — Français (French)
|
|
248
|
-
❯ 10. de — Deutsch (German)
|
|
249
|
-
|
|
250
|
-
↑↓ Bewegen 1-0 Springen Enter Auswählen ESC Abbrechen
|
|
189
|
+
❌ Incorrect:
|
|
190
|
+
```xml
|
|
191
|
+
<mapper namespace="article.mapper"> <!-- NO — namespace MUST be FQCN -->
|
|
251
192
|
```
|
|
193
|
+
````
|
|
252
194
|
|
|
253
|
-
|
|
195
|
+
Der Glob `paths: ["**/*"]` bedeutet, dass Claude Code diese Regel automatisch lädt, sobald Sie eine beliebige Datei im Projekt bearbeiten. Die ✅/❌-Beispiele stammen direkt aus den tatsächlichen Konventionen und bestehenden Bug-Mustern dieser Codebasis.
|
|
254
196
|
|
|
255
|
-
|
|
256
|
-
npx claudeos-core init --lang ko # Koreanisch
|
|
257
|
-
npx claudeos-core init --lang ja # Japanisch
|
|
258
|
-
npx claudeos-core init --lang en # Englisch (Default)
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
> **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.
|
|
262
|
-
|
|
263
|
-
Das war's. Nach 10 Minuten (kleines Projekt) bis 2 Stunden (60+-Domain-Monorepo) ist die gesamte Dokumentation generiert und einsatzbereit. Die CLI zeigt einen Fortschrittsbalken mit Prozentwert, verstrichener Zeit und ETA für jeden Pass. Siehe [Auto-Scaling nach Projektgröße](#auto-scaling-nach-projektgröße) für detaillierte Zeiten je nach Projektgröße.
|
|
264
|
-
|
|
265
|
-
### Manuelle Schritt-für-Schritt-Installation
|
|
266
|
-
|
|
267
|
-
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.
|
|
268
|
-
|
|
269
|
-
#### Schritt 1: Klonen und Abhängigkeiten installieren
|
|
270
|
-
|
|
271
|
-
```bash
|
|
272
|
-
cd /your/project/root
|
|
273
|
-
|
|
274
|
-
git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
|
|
275
|
-
cd claudeos-core-tools && npm install && cd ..
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
#### Schritt 2: Verzeichnisstruktur erstellen
|
|
279
|
-
|
|
280
|
-
```bash
|
|
281
|
-
# Rules (v2.0.0: 60.memory hinzugefügt)
|
|
282
|
-
mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync,60.memory}
|
|
283
|
-
|
|
284
|
-
# Standards
|
|
285
|
-
mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
|
|
286
|
-
|
|
287
|
-
# Skills
|
|
288
|
-
mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
|
|
289
|
-
|
|
290
|
-
# Guide, Database, MCP, Generated, Memory (v2.0.0: memory hinzugefügt; v2.1.0: plan entfernt)
|
|
291
|
-
mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
|
|
292
|
-
mkdir -p claudeos-core/{database,mcp-guide,generated,memory}
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
> **Hinweis zu v2.1.0:** Das Verzeichnis `claudeos-core/plan/` wird nicht mehr angelegt. Die Master-Plan-Generierung wurde entfernt, weil Master Plans ein internes Backup waren, das Claude Code zur Laufzeit nie liest, und ihre Aggregation `Prompt is too long`-Fehler auslöste. Verwenden Sie `git` für Backup/Restore.
|
|
296
|
-
|
|
297
|
-
#### Schritt 3: plan-installer ausführen (Projektanalyse)
|
|
298
|
-
|
|
299
|
-
Dies scannt Ihr Projekt, erkennt den Stack, findet Domains, teilt sie in Gruppen auf und generiert Prompts.
|
|
300
|
-
|
|
301
|
-
```bash
|
|
302
|
-
node claudeos-core-tools/plan-installer/index.js
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
**Output (in `claudeos-core/generated/`):**
|
|
306
|
-
- `project-analysis.json` — erkannter Stack, Domains, Frontend-Infos
|
|
307
|
-
- `domain-groups.json` — Domain-Gruppen für Pass 1
|
|
308
|
-
- `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — Analyse-Prompts
|
|
309
|
-
- `pass2-prompt.md` — Merge-Prompt
|
|
310
|
-
- `pass3-prompt.md` — Pass-3-Prompt-Template mit vorangestelltem Phase-1-Block „Read Once, Extract Facts" (Rules A–E). Die automatisierte Pipeline teilt Pass 3 zur Laufzeit in mehrere Stages auf; dieses Template wird jeder Stage zugeführt.
|
|
311
|
-
- `pass3-context.json` — schlanke Projekt-Zusammenfassung (< 5 KB, nach Pass 2 erstellt), die Pass-3-Prompts gegenüber der vollen `pass2-merged.json` bevorzugen (v2.1.0)
|
|
312
|
-
- `pass4-prompt.md` — L4-Memory-Scaffolding-Prompt (v2.0.0; verwendet dasselbe `staging-override.md` für `60.memory/`-Rule-Schreibvorgänge)
|
|
313
|
-
|
|
314
|
-
Sie können diese Dateien inspizieren, um die Erkennungsgenauigkeit zu überprüfen, bevor Sie fortfahren.
|
|
315
|
-
|
|
316
|
-
#### Schritt 4: Pass 1 — Tiefe Code-Analyse (pro Domain-Gruppe)
|
|
317
|
-
|
|
318
|
-
Führen Sie Pass 1 für jede Domain-Gruppe aus. Prüfen Sie `domain-groups.json` für die Anzahl der Gruppen.
|
|
319
|
-
|
|
320
|
-
```bash
|
|
321
|
-
# Anzahl der Gruppen prüfen
|
|
322
|
-
cat claudeos-core/generated/domain-groups.json | node -e "
|
|
323
|
-
const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
|
|
324
|
-
g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
|
|
325
|
-
"
|
|
326
|
-
|
|
327
|
-
# Pass 1 für jede Gruppe ausführen (Domains und Gruppennummer ersetzen)
|
|
328
|
-
# Hinweis: v1.6.1+ verwendet Node.js String.replace() statt perl — perl
|
|
329
|
-
# wird nicht mehr benötigt, und die Replacement-Function-Semantik verhindert
|
|
330
|
-
# Regex-Injection durch $/&/$1-Zeichen, die in Domain-Namen auftauchen können.
|
|
331
|
-
#
|
|
332
|
-
# Für Gruppe 1:
|
|
333
|
-
DOMAIN_LIST="user, order, product" PASS_NUM=1 node -e "
|
|
334
|
-
const fs = require('fs');
|
|
335
|
-
const tpl = fs.readFileSync('claudeos-core/generated/pass1-backend-prompt.md','utf-8');
|
|
336
|
-
const out = tpl
|
|
337
|
-
.replace(/\{\{DOMAIN_GROUP\}\}/g, () => process.env.DOMAIN_LIST)
|
|
338
|
-
.replace(/\{\{PASS_NUM\}\}/g, () => process.env.PASS_NUM);
|
|
339
|
-
process.stdout.write(out);
|
|
340
|
-
" | claude -p --dangerously-skip-permissions
|
|
341
|
-
|
|
342
|
-
# Für Gruppe 2 (falls vorhanden):
|
|
343
|
-
DOMAIN_LIST="payment, system, delivery" PASS_NUM=2 node -e "
|
|
344
|
-
const fs = require('fs');
|
|
345
|
-
const tpl = fs.readFileSync('claudeos-core/generated/pass1-backend-prompt.md','utf-8');
|
|
346
|
-
const out = tpl
|
|
347
|
-
.replace(/\{\{DOMAIN_GROUP\}\}/g, () => process.env.DOMAIN_LIST)
|
|
348
|
-
.replace(/\{\{PASS_NUM\}\}/g, () => process.env.PASS_NUM);
|
|
349
|
-
process.stdout.write(out);
|
|
350
|
-
" | claude -p --dangerously-skip-permissions
|
|
351
|
-
|
|
352
|
-
# Für Frontend-Gruppen pass1-backend-prompt.md → pass1-frontend-prompt.md tauschen
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
**Verifikation:** `ls claudeos-core/generated/pass1-*.json` sollte eine JSON-Datei pro Gruppe zeigen.
|
|
356
|
-
|
|
357
|
-
#### Schritt 5: Pass 2 — Analyseergebnisse zusammenführen
|
|
358
|
-
|
|
359
|
-
```bash
|
|
360
|
-
cat claudeos-core/generated/pass2-prompt.md \
|
|
361
|
-
| claude -p --dangerously-skip-permissions
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
**Verifikation:** `claudeos-core/generated/pass2-merged.json` sollte existieren und 9+ Top-Level-Keys enthalten.
|
|
365
|
-
|
|
366
|
-
#### Schritt 6: Pass 3 — Gesamte Dokumentation generieren (aufgeteilt in mehrere Stages)
|
|
367
|
-
|
|
368
|
-
**Hinweis zu v2.1.0:** Pass 3 wird von der automatisierten Pipeline **immer im Split-Mode** ausgeführt. Jede Stage ist ein separater `claude -p`-Aufruf mit frischem Context-Fenster, sodass Output-Akkumulations-Overflows unabhängig von der Projektgröße strukturell unmöglich sind. Das `pass3-prompt.md`-Template wird pro Stage mit einer `STAGE:`-Direktive assembliert, die Claude anweist, welche Teilmenge der Dateien zu emittieren ist. Für den manuellen Modus ist der einfachste Weg immer noch, das volle Template zuzuführen und Claude alles in einem Aufruf generieren zu lassen — aber das ist nur für kleine Projekte (≤5 Domains) zuverlässig. Für größere Projekte verwenden Sie `npx claudeos-core init`, damit der Split-Runner die Stage-Orchestrierung übernimmt.
|
|
369
|
-
|
|
370
|
-
**Single-Call-Modus (nur kleine Projekte, ≤5 Domains):**
|
|
371
|
-
|
|
372
|
-
```bash
|
|
373
|
-
cat claudeos-core/generated/pass3-prompt.md \
|
|
374
|
-
| claude -p --dangerously-skip-permissions
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
**Stage-für-Stage-Modus (empfohlen für alle Projektgrößen):**
|
|
378
|
-
|
|
379
|
-
Die automatisierte Pipeline führt diese Stages aus. Die Stage-Liste lautet:
|
|
197
|
+
</details>
|
|
380
198
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
| `3a` | `pass3a-facts.md` (5–10 KB destillierte Fact Sheet) | Liest `pass2-merged.json` einmal; spätere Stages referenzieren diese Datei |
|
|
384
|
-
| `3b-core` | `CLAUDE.md`, gemeinsame `standard/`, gemeinsame `.claude/rules/` | Projektübergreifende Dateien; kein domain-spezifischer Output |
|
|
385
|
-
| `3b-1..N` | Domain-spezifische `standard/60.domains/*.md` + Domain-Rules | Batch von ≤15 Domains pro Stage (automatisch geteilt ab 16 Domains) |
|
|
386
|
-
| `3c-core` | `guide/` (9 Dateien), `skills/00.shared/MANIFEST.md`, `skills/*/`-Orchestratoren | Geteilte Skills und alle nutzerorientierten Guides |
|
|
387
|
-
| `3c-1..N` | Domain-Sub-Skills unter `skills/20.frontend-page/scaffold-page-feature/` | Batch von ≤15 Domains pro Stage |
|
|
388
|
-
| `3d-aux` | `database/`, `mcp-guide/` | Fixe Größe, unabhängig von der Domain-Anzahl |
|
|
389
|
-
|
|
390
|
-
Für ein 1–15-Domain-Projekt expandiert das zu 4 Stages (`3a`, `3b-core`, `3c-core`, `3d-aux` — keine Batch-Unterteilung). Für 16–30 Domains sind es 8 Stages (`3b` und `3c` jeweils in 2 Batches unterteilt). Siehe [Auto-Scaling nach Projektgröße](#auto-scaling-nach-projektgröße) für die vollständige Tabelle.
|
|
391
|
-
|
|
392
|
-
**Verifikation:** `CLAUDE.md` sollte im Projekt-Root existieren, und der Marker `claudeos-core/generated/pass3-complete.json` sollte geschrieben sein. Im Split-Mode enthält der Marker `mode: "split"` und ein `groupsCompleted`-Array, das jede abgeschlossene Stage auflistet — die Partial-Marker-Logik verwendet das, um nach einem Crash von der richtigen Stage aus fortzusetzen, anstatt von `3a` neu zu starten (was die Token-Kosten verdoppeln würde).
|
|
393
|
-
|
|
394
|
-
> **Staging-Hinweis:** 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 übernimmt das Verschieben nach jeder Stage automatisch. Wenn Sie eine Stage manuell ausführen, müssen Sie den Staging-Baum selbst verschieben: `mv claudeos-core/generated/.staged-rules/* .claude/rules/` (Unterpfade erhalten).
|
|
199
|
+
<details>
|
|
200
|
+
<summary><strong>🧠 Ein automatisch generierter <code>decision-log.md</code>-Seed (echter Auszug)</strong></summary>
|
|
395
201
|
|
|
396
|
-
|
|
202
|
+
```markdown
|
|
203
|
+
## 2026-04-26 — CQRS-lite read/write split inside the persistence layer
|
|
397
204
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
205
|
+
- **Context:** Writes go through `core.*Repository` port → `MyBatis*Repository`
|
|
206
|
+
adapter → `io.spring.infrastructure.mybatis.mapper.{Aggregate}Mapper`.
|
|
207
|
+
Reads bypass the domain port: application service →
|
|
208
|
+
`io.spring.infrastructure.mybatis.readservice.{Concept}ReadService` directly,
|
|
209
|
+
returning flat `*Data` DTOs from `io.spring.application.data.*`.
|
|
210
|
+
- **Options considered:** Single repository surface returning hydrated entities
|
|
211
|
+
for both reads and writes.
|
|
212
|
+
- **Decision:** Same database, two `@Mapper` packages — `mapper/` (write side,
|
|
213
|
+
operates on core entities) and `readservice/` (read side, returns `*Data` DTOs).
|
|
214
|
+
Read DTOs avoid entity hydration overhead.
|
|
215
|
+
- **Consequences:** Reads are NOT routed through the domain port — this is
|
|
216
|
+
intentional, not a bug. Application services may inject both a `*Repository`
|
|
217
|
+
(writes) and one or more `*ReadService` interfaces (reads) at the same time.
|
|
218
|
+
Do NOT add hydrate-then-map glue in the read path.
|
|
401
219
|
```
|
|
402
220
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
> **v2.1.0 Gap-Fill:** Pass 4 stellt zudem sicher, dass `claudeos-core/skills/00.shared/MANIFEST.md` existiert. Wenn Pass 3c die Datei ausgelassen hat (möglich bei skill-spärlichen Projekten, weil die Stack-`pass3.md`-Templates `MANIFEST.md` unter den Generierungszielen listen, aber nicht als REQUIRED markieren), erzeugt das Gap-Fill einen minimalen Stub, damit `.claude/rules/50.sync/02.skills-sync.md` (v2.2.0-Pfad — die Anzahl der Sync-Regeln wurde von 3 auf 2 reduziert, was `03` war, ist jetzt `02`) stets ein gültiges Referenzziel hat. Idempotent: wird übersprungen, wenn die Datei bereits echten Inhalt hat (>20 Zeichen).
|
|
221
|
+
Pass 4 befüllt `decision-log.md` mit den aus `pass2-merged.json` extrahierten Architekturentscheidungen, damit zukünftige Sessions sich daran erinnern, _warum_ die Codebasis so aussieht, wie sie aussieht — nicht nur _wie_ sie aussieht.
|
|
406
222
|
|
|
407
|
-
>
|
|
223
|
+
</details>
|
|
408
224
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
```bash
|
|
412
|
-
# Metadaten generieren (vor anderen Checks erforderlich)
|
|
413
|
-
node claudeos-core-tools/manifest-generator/index.js
|
|
414
|
-
|
|
415
|
-
# Alle Checks ausführen
|
|
416
|
-
node claudeos-core-tools/health-checker/index.js
|
|
225
|
+
---
|
|
417
226
|
|
|
418
|
-
|
|
419
|
-
node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ Disk-Konsistenz
|
|
420
|
-
node claudeos-core-tools/sync-checker/index.js # Nicht registrierte/verwaiste Dateien
|
|
421
|
-
node claudeos-core-tools/content-validator/index.js # Dateiqualitäts-Checks (inkl. memory/-Sektion [9/9])
|
|
422
|
-
node claudeos-core-tools/pass-json-validator/index.js # Pass-1–4-JSON + Completion-Marker-Checks
|
|
423
|
-
```
|
|
227
|
+
## Quick Start
|
|
424
228
|
|
|
425
|
-
|
|
229
|
+
**Voraussetzungen:** Node.js 18+, [Claude Code](https://docs.anthropic.com/en/docs/claude-code) installiert und authentifiziert.
|
|
426
230
|
|
|
427
231
|
```bash
|
|
428
|
-
#
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
# CLAUDE.md prüfen
|
|
432
|
-
head -30 CLAUDE.md
|
|
433
|
-
|
|
434
|
-
# Eine Standard-Datei prüfen
|
|
435
|
-
cat claudeos-core/standard/00.core/01.project-overview.md | head -20
|
|
436
|
-
|
|
437
|
-
# Rules prüfen
|
|
438
|
-
ls .claude/rules/*/
|
|
439
|
-
```
|
|
232
|
+
# 1. In das Projekt-Root wechseln
|
|
233
|
+
cd my-spring-boot-project
|
|
440
234
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
### Nutzung beginnen
|
|
444
|
-
|
|
445
|
-
```
|
|
446
|
-
# In Claude Code — einfach natürlich fragen:
|
|
447
|
-
"Erstelle ein CRUD für die order-Domain"
|
|
448
|
-
"Füge eine User-Authentifizierungs-API hinzu"
|
|
449
|
-
"Refactore diesen Code, um den Projektmustern zu entsprechen"
|
|
450
|
-
|
|
451
|
-
# Claude Code referenziert automatisch Ihre generierten Standards, Rules und Skills.
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
---
|
|
455
|
-
|
|
456
|
-
## Wie es funktioniert — 4-Pass-Pipeline
|
|
457
|
-
|
|
458
|
-
```
|
|
235
|
+
# 2. init ausführen (analysiert den Code und bittet Claude, die Regeln zu schreiben)
|
|
459
236
|
npx claudeos-core init
|
|
460
|
-
│
|
|
461
|
-
├── [1] npm install ← Abhängigkeiten (~10s)
|
|
462
|
-
├── [2] Verzeichnisstruktur ← Ordner erstellen (~1s)
|
|
463
|
-
├── [3] plan-installer (Node.js) ← Projekt-Scan (~5s)
|
|
464
|
-
│ ├── Auto-Erkennung des Stacks (multi-stack-fähig)
|
|
465
|
-
│ ├── Domain-Liste extrahieren (getaggt: backend/frontend)
|
|
466
|
-
│ ├── In Domain-Gruppen aufteilen (pro Typ)
|
|
467
|
-
│ ├── pass3-context.json erstellen (schlanke Zusammenfassung, v2.1.0)
|
|
468
|
-
│ └── Stack-spezifische Prompts wählen (pro Typ)
|
|
469
|
-
│
|
|
470
|
-
├── [4] Pass 1 × N (claude -p) ← Tiefe Code-Analyse (~2-8min)
|
|
471
|
-
│ ├── ⚙️ Backend-Gruppen → backend-spezifischer Prompt
|
|
472
|
-
│ └── 🎨 Frontend-Gruppen → frontend-spezifischer Prompt
|
|
473
|
-
│
|
|
474
|
-
├── [5] Pass 2 × 1 (claude -p) ← Analyse-Merge (~1min)
|
|
475
|
-
│ └── Konsolidiert ALLE Pass-1-Ergebnisse zu pass2-merged.json
|
|
476
|
-
│
|
|
477
|
-
├── [6] Pass 3 (Split-Mode, v2.1.0) ← Alles generieren
|
|
478
|
-
│ │
|
|
479
|
-
│ ├── 3a × 1 (claude -p) ← Fakten-Extraktion (~5-10min)
|
|
480
|
-
│ │ └── pass2-merged.json einmal lesen → pass3a-facts.md
|
|
481
|
-
│ │
|
|
482
|
-
│ ├── 3b-core × 1 (claude -p) ← CLAUDE.md + gemeinsame standard/rules
|
|
483
|
-
│ ├── 3b-1..N × N (claude -p) ← Domain-Standards/-Rules (≤15 Domains/Batch)
|
|
484
|
-
│ │
|
|
485
|
-
│ ├── 3c-core × 1 (claude -p) ← Guides + geteilte Skills + MANIFEST.md
|
|
486
|
-
│ ├── 3c-1..N × N (claude -p) ← Domain-Sub-Skills (≤15 Domains/Batch)
|
|
487
|
-
│ │
|
|
488
|
-
│ └── 3d-aux × 1 (claude -p) ← database/ + mcp-guide/-Stubs
|
|
489
|
-
│
|
|
490
|
-
├── [7] Pass 4 × 1 (claude -p) ← Memory-Scaffolding (~30s-5min)
|
|
491
|
-
│ ├── Seeding von memory/ (decision-log, failure-patterns, …)
|
|
492
|
-
│ ├── 60.memory/-Regeln generieren
|
|
493
|
-
│ ├── "Memory (L4)"-Sektion an CLAUDE.md anhängen
|
|
494
|
-
│ └── Gap-Fill: skills/00.shared/MANIFEST.md sicherstellen (v2.1.0)
|
|
495
|
-
│
|
|
496
|
-
└── [8] Verifikation ← Health-Checker läuft automatisch
|
|
497
|
-
```
|
|
498
|
-
|
|
499
|
-
### Warum 4 Passes?
|
|
500
|
-
|
|
501
|
-
**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.
|
|
502
|
-
|
|
503
|
-
**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.
|
|
504
|
-
|
|
505
|
-
**Pass 3** (Split-Mode, v2.1.0) nimmt die zusammengeführte Analyse und generiert das gesamte Datei-Ökosystem (CLAUDE.md, Rules, Standards, Skills, Guides) über mehrere sequenzielle `claude -p`-Aufrufe. Die zentrale Einsicht: Output-Akkumulations-Overflow ist nicht aus der Input-Größe vorhersagbar — Single-Call-Pass-3 funktionierte auf 2-Domain-Projekten einwandfrei und scheiterte bei ca. 5 Domains zuverlässig, wobei die Fehler-Grenze davon abhing, wie ausführlich jede Datei ausfiel. Split-Mode umgeht das strukturell — jede Stage startet mit einem frischen Context-Fenster und schreibt eine beschränkte Teilmenge von Dateien. Datei-übergreifende Konsistenz (der Hauptvorteil des Single-Call-Ansatzes) bleibt durch `pass3a-facts.md` erhalten, eine 5–10 KB große destillierte Fact Sheet, die jede spätere Stage referenziert.
|
|
506
237
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
- **Rule A** — Referenziere die Fact-Tabelle; lies `pass2-merged.json` nicht erneut.
|
|
510
|
-
- **Rule B** — Idempotentes Datei-Schreiben (überspringe, wenn das Ziel mit echtem Inhalt existiert), macht Pass 3 nach Unterbrechungen sicher wiederausführbar.
|
|
511
|
-
- **Rule C** — Datei-übergreifende Konsistenz über die Fact-Tabelle als Single Source of Truth erzwungen.
|
|
512
|
-
- **Rule D** — Output-Knappheit: eine Zeile (`[WRITE]`/`[SKIP]`) zwischen Datei-Schreibvorgängen, keine Wiederholung der Fact-Tabelle, kein Echoing des Datei-Inhalts.
|
|
513
|
-
- **Rule E** — Batch-Idempotenz-Prüfung: ein `Glob` zu PHASE-2-Beginn statt Per-Target-`Read`-Aufrufe.
|
|
514
|
-
|
|
515
|
-
In **v2.2.0** bettet Pass 3 zusätzlich ein deterministisches CLAUDE.md-Scaffold (`pass-prompts/templates/common/claude-md-scaffold.md`) inline in den Prompt ein. Dies fixiert die Titel und die Reihenfolge der 8 obersten Abschnitte, sodass die generierte `CLAUDE.md` nicht mehr zwischen Projekten drifted, während der Inhalt jedes Abschnitts sich weiterhin an jedes Projekt anpasst. Der neue `.env`-Parser des Stack-Detectors (`lib/env-parser.js`) liefert `stack.envInfo` an den Prompt, sodass Port/Host/API-Target-Zeilen mit dem übereinstimmen, was das Projekt tatsächlich deklariert, statt mit Framework-Defaults.
|
|
516
|
-
|
|
517
|
-
**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. v2.1.0 fügt ein Gap-Fill für `skills/00.shared/MANIFEST.md` hinzu, falls Pass 3c es ausgelassen hat.
|
|
518
|
-
|
|
519
|
-
---
|
|
238
|
+
# 3. Fertig. Claude Code öffnen und loslegen — Ihre Regeln sind bereits geladen.
|
|
239
|
+
```
|
|
520
240
|
|
|
521
|
-
|
|
241
|
+
**Was Sie nach Abschluss von `init` erhalten:**
|
|
522
242
|
|
|
523
243
|
```
|
|
524
244
|
your-project/
|
|
525
|
-
│
|
|
526
|
-
├── CLAUDE.md ← Claude-Code-Einstiegspunkt (deterministische 8-Abschnitt-Struktur, v2.2.0)
|
|
527
|
-
│
|
|
528
245
|
├── .claude/
|
|
529
|
-
│ └── rules/
|
|
530
|
-
│ ├── 00.core/
|
|
531
|
-
│ ├── 10.backend/
|
|
532
|
-
│ ├── 20.frontend/
|
|
533
|
-
│ ├── 30.security-db/
|
|
534
|
-
│ ├── 40.infra/
|
|
535
|
-
│ ├── 50.sync/
|
|
536
|
-
│
|
|
537
|
-
│
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
│
|
|
541
|
-
│ │ ├──
|
|
542
|
-
│ │ ├──
|
|
543
|
-
│ │ ├──
|
|
544
|
-
│ │ ├──
|
|
545
|
-
│ │ ├──
|
|
546
|
-
│ │ ├──
|
|
547
|
-
│ │ ├──
|
|
548
|
-
│ │
|
|
549
|
-
│
|
|
550
|
-
│
|
|
551
|
-
│
|
|
552
|
-
│
|
|
553
|
-
│
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
│ │ ├── 00.core/ ← Overview, Architektur, Naming
|
|
559
|
-
│ │ ├── 10.backend-api/ ← API-Muster (stack-spezifisch)
|
|
560
|
-
│ │ ├── 20.frontend-ui/ ← Frontend-Muster (falls erkannt)
|
|
561
|
-
│ │ ├── 30.security-db/ ← Security, DB-Schema, Utilities
|
|
562
|
-
│ │ ├── 40.infra/ ← Config, Logging, CI/CD
|
|
563
|
-
│ │ ├── 50.verification/ ← Build-Verifikation, Testing
|
|
564
|
-
│ │ ├── 60.domains/ ← Pro-Domain-Standards (von Pass 3b-N geschrieben, v2.1.0)
|
|
565
|
-
│ │ └── 90.optional/ ← Optionale Konventionen (stack-spezifische Extras)
|
|
566
|
-
│ ├── skills/ ← CRUD-/Page-Scaffolding-Skills
|
|
567
|
-
│ │ └── 00.shared/MANIFEST.md ← Single Source of Truth für registrierte Skills
|
|
568
|
-
│ ├── guide/ ← Onboarding, FAQ, Troubleshooting (9 Dateien)
|
|
569
|
-
│ ├── database/ ← DB-Schema, Migration-Guide
|
|
570
|
-
│ ├── mcp-guide/ ← MCP-Server-Integrations-Guide
|
|
571
|
-
│ └── memory/ ← L4: Team-Wissen (4 Dateien) — committen
|
|
572
|
-
│ ├── decision-log.md ← „Warum" hinter Design-Entscheidungen
|
|
573
|
-
│ ├── failure-patterns.md ← Wiederkehrende Fehler & Fixes (Auto-Score — `npx claudeos-core memory score`)
|
|
574
|
-
│ ├── compaction.md ← 4-Stage-Compaction-Strategie (`npx claudeos-core memory compact` ausführen)
|
|
575
|
-
│ └── auto-rule-update.md ← Rule-Verbesserungs-Vorschläge (`npx claudeos-core memory propose-rules`)
|
|
576
|
-
│
|
|
577
|
-
└── claudeos-core-tools/ ← Dieses Toolkit (nicht ändern)
|
|
578
|
-
```
|
|
579
|
-
|
|
580
|
-
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.
|
|
581
|
-
|
|
582
|
-
> **Hinweis zu v2.1.0:** `claudeos-core/plan/` wird nicht mehr generiert. Master Plans waren ein internes Backup, das Claude Code zur Laufzeit nicht konsumierte, und ihre Aggregation in Pass 3 war eine primäre Ursache für Output-Akkumulations-Overflows. Verwenden Sie stattdessen `git` für Backup/Restore. Projekte, die von v2.0.x upgraden, können ein bestehendes `claudeos-core/plan/`-Verzeichnis bedenkenlos löschen.
|
|
583
|
-
|
|
584
|
-
### Gitignore-Empfehlungen
|
|
585
|
-
|
|
586
|
-
**Committen** (Team-Wissen — zum Teilen gedacht):
|
|
587
|
-
- `CLAUDE.md` — Claude-Code-Einstiegspunkt
|
|
588
|
-
- `.claude/rules/**` — automatisch geladene Regeln
|
|
589
|
-
- `claudeos-core/standard/**`, `skills/**`, `guide/**`, `database/**`, `mcp-guide/**`, `plan/**` — generierte Dokumentation
|
|
590
|
-
- `claudeos-core/memory/**` — Entscheidungshistorie, Failure-Patterns, Rule-Vorschläge
|
|
591
|
-
|
|
592
|
-
**NICHT committen** (regenerierbare Build-Artefakte):
|
|
593
|
-
|
|
594
|
-
```gitignore
|
|
595
|
-
# ClaudeOS-Core — generierte Analyse & Übersetzungs-Cache
|
|
596
|
-
claudeos-core/generated/
|
|
597
|
-
```
|
|
598
|
-
|
|
599
|
-
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.
|
|
246
|
+
│ └── rules/ ← Auto-loaded by Claude Code
|
|
247
|
+
│ ├── 00.core/ (general rules — naming, architecture)
|
|
248
|
+
│ ├── 10.backend/ (backend stack rules, if any)
|
|
249
|
+
│ ├── 20.frontend/ (frontend stack rules, if any)
|
|
250
|
+
│ ├── 30.security-db/ (security & DB conventions)
|
|
251
|
+
│ ├── 40.infra/ (env, logging, CI/CD)
|
|
252
|
+
│ ├── 50.sync/ (doc-sync reminders — rules only)
|
|
253
|
+
│ ├── 60.memory/ (memory rules — Pass 4, rules only)
|
|
254
|
+
│ ├── 70.domains/{type}/ (per-domain rules, type = backend|frontend)
|
|
255
|
+
│ └── 80.verification/ (testing strategy + build verification reminders)
|
|
256
|
+
├── claudeos-core/
|
|
257
|
+
│ ├── standard/ ← Reference docs (mirror category structure)
|
|
258
|
+
│ │ ├── 00.core/ (project overview, architecture, naming)
|
|
259
|
+
│ │ ├── 10.backend/ (backend reference — if backend stack)
|
|
260
|
+
│ │ ├── 20.frontend/ (frontend reference — if frontend stack)
|
|
261
|
+
│ │ ├── 30.security-db/ (security & DB reference)
|
|
262
|
+
│ │ ├── 40.infra/ (env / logging / CI-CD reference)
|
|
263
|
+
│ │ ├── 70.domains/{type}/ (per-domain reference)
|
|
264
|
+
│ │ ├── 80.verification/ (build / startup / testing reference — standard only)
|
|
265
|
+
│ │ └── 90.optional/ (stack-specific extras — standard only)
|
|
266
|
+
│ ├── skills/ (reusable patterns Claude can apply)
|
|
267
|
+
│ ├── guide/ (how-to guides for common tasks)
|
|
268
|
+
│ ├── database/ (schema overview, migration guide)
|
|
269
|
+
│ ├── mcp-guide/ (MCP integration notes)
|
|
270
|
+
│ └── memory/ (decision log, failure patterns, compaction)
|
|
271
|
+
└── CLAUDE.md (the index Claude reads first)
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Kategorien, die zwischen `rules/` und `standard/` denselben Zahlen-Präfix teilen, repräsentieren denselben konzeptuellen Bereich (z. B. `10.backend` rules ↔ `10.backend` standards). Nur in `rules/` vorhandene Kategorien: `50.sync` (Doc-Sync-Erinnerungen) und `60.memory` (Pass 4 Memory). Nur in `standard/` vorhandene Kategorie: `90.optional` (stackspezifische Ergänzungen ohne Durchsetzung). Alle übrigen Präfixe (`00`, `10`, `20`, `30`, `40`, `70`, `80`) tauchen sowohl in `rules/` als auch in `standard/` auf. Claude Code kennt jetzt Ihr Projekt.
|
|
600
275
|
|
|
601
276
|
---
|
|
602
277
|
|
|
603
|
-
##
|
|
278
|
+
## Für wen ist das?
|
|
604
279
|
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
|
608
|
-
|
|
609
|
-
|
|
|
610
|
-
| Mittel | 5–15 | 4 | 8–9 | ~25–45 min |
|
|
611
|
-
| Groß | 16–30 | **8** (3b, 3c jeweils in 2 Batches aufgeteilt) | 11–12 | **~60–105 min** |
|
|
612
|
-
| X-Groß | 31–45 | 10 | 13–14 | ~100–150 min |
|
|
613
|
-
| XX-Groß | 46–60 | 12 | 15–16 | ~150–200 min |
|
|
614
|
-
| XXX-Groß | 61+ | 14+ | 17+ | 200 min+ |
|
|
615
|
-
|
|
616
|
-
Stage-Anzahl-Formel (bei aktivierter Batch-Teilung): `1 (3a) + 1 (3b-core) + N (3b-1..N) + 1 (3c-core) + N (3c-1..N) + 1 (3d-aux) = 2N + 4`, wobei `N = ceil(totalDomains / 15)`.
|
|
280
|
+
| Sie sind... | Das hilft Ihnen dabei... |
|
|
281
|
+
|---|---|
|
|
282
|
+
| **Solo-Entwickler**, der ein neues Projekt mit Claude Code beginnt | Die Phase „Claude meine Konventionen beibringen" komplett überspringen |
|
|
283
|
+
| **Team-Lead**, der gemeinsame Standards pflegt | Die mühsame Arbeit, `.claude/rules/` aktuell zu halten, automatisieren |
|
|
284
|
+
| **Bereits ein Claude-Code-Nutzer**, der das Korrigieren generierten Codes leid ist | Claude IHRE Muster befolgen lassen, nicht „allgemein gute" |
|
|
617
285
|
|
|
618
|
-
|
|
286
|
+
**Nicht passend, wenn:** Sie ein One-Size-Fits-All-Preset-Bundle aus Agents/Skills/Rules wollen, das ohne Scan-Schritt am ersten Tag funktioniert (siehe [docs/de/comparison.md](docs/de/comparison.md), wo was hinpasst), oder Ihr Projekt noch nicht zu einem der [unterstützten Stacks](#supported-stacks) passt.
|
|
619
287
|
|
|
620
288
|
---
|
|
621
289
|
|
|
622
|
-
##
|
|
623
|
-
|
|
624
|
-
ClaudeOS-Core enthält 5 eingebaute Verifikations-Tools, die automatisch nach der Generierung laufen:
|
|
290
|
+
## Wie funktioniert das?
|
|
625
291
|
|
|
626
|
-
|
|
627
|
-
# Alle Checks auf einmal ausführen (empfohlen)
|
|
628
|
-
npx claudeos-core health
|
|
292
|
+
ClaudeOS-Core kehrt den üblichen Claude-Code-Workflow um:
|
|
629
293
|
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
npx claudeos-core restore # Plan → Disk-Restore
|
|
634
|
-
|
|
635
|
-
# Oder node direkt verwenden (git-clone-User)
|
|
636
|
-
node claudeos-core-tools/health-checker/index.js
|
|
637
|
-
node claudeos-core-tools/manifest-generator/index.js
|
|
638
|
-
node claudeos-core-tools/plan-validator/index.js --check
|
|
639
|
-
node claudeos-core-tools/sync-checker/index.js
|
|
294
|
+
```
|
|
295
|
+
Üblich: Sie beschreiben das Projekt → Claude rät den Stack → Claude schreibt Docs
|
|
296
|
+
Hier: Code liest Ihren Stack → Code übergibt bestätigte Fakten an Claude → Claude schreibt Docs aus Fakten
|
|
640
297
|
```
|
|
641
298
|
|
|
642
|
-
|
|
643
|
-
|---|---|
|
|
644
|
-
| **manifest-generator** | Baut Metadaten-JSON (`rule-manifest.json`, `sync-map.json`, initialisiert `stale-report.json`); indexiert 7 Verzeichnisse einschließlich `memory/` (`totalMemory` in der Summary). v2.1.0: `plan-manifest.json` wird nicht mehr generiert, da Master Plans entfernt wurden. |
|
|
645
|
-
| **plan-validator** | Validiert Master-Plan-`<file>`-Blöcke gegen die Disk für Projekte, die noch ein `claudeos-core/plan/` besitzen (Legacy-Upgrade-Fall). v2.1.0: überspringt die Emission von `plan-sync-status.json`, wenn `plan/` fehlt oder leer ist — `stale-report.json` hält dennoch einen bestandenen No-op fest. |
|
|
646
|
-
| **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). Beendet sich sauber, wenn `sync-map.json` keine Mappings hat (v2.1.0-Default-Zustand). |
|
|
647
|
-
| **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) |
|
|
648
|
-
| **pass-json-validator** | Validiert Pass-1–4-JSON-Struktur plus die Completion-Marker `pass3-complete.json` (Split-Mode-Shape, v2.1.0) und `pass4-memory.json` |
|
|
649
|
-
|
|
650
|
-
---
|
|
651
|
-
|
|
652
|
-
## Wie Claude Code Ihre Dokumentation nutzt
|
|
653
|
-
|
|
654
|
-
ClaudeOS-Core generiert Dokumentation, die Claude Code tatsächlich liest — hier ist wie:
|
|
655
|
-
|
|
656
|
-
### Was Claude Code automatisch liest
|
|
299
|
+
Die Kernidee: **Ein Node.js-Scanner liest zuerst Ihren Quellcode** (deterministisch, ohne KI), danach schreibt eine 4-Pass-Claude-Pipeline die Dokumentation, eingeschränkt durch das, was der Scanner gefunden hat. Claude kann keine Pfade oder Frameworks erfinden, die in Ihrem Code nicht tatsächlich existieren.
|
|
657
300
|
|
|
658
|
-
|
|
659
|
-
|---|---|---|
|
|
660
|
-
| `CLAUDE.md` | Bei jedem Gesprächsbeginn | Immer |
|
|
661
|
-
| `.claude/rules/00.core/*` | Wenn eine beliebige Datei editiert wird (`paths: ["**/*"]`) | Immer |
|
|
662
|
-
| `.claude/rules/10.backend/*` | Wenn eine beliebige Datei editiert wird (`paths: ["**/*"]`) | Immer |
|
|
663
|
-
| `.claude/rules/20.frontend/*` | Wenn eine Frontend-Datei editiert wird (eingeschränkt auf Component-/Page-/Style-Pfade) | Bedingt |
|
|
664
|
-
| `.claude/rules/30.security-db/*` | Wenn eine beliebige Datei editiert wird (`paths: ["**/*"]`) | Immer |
|
|
665
|
-
| `.claude/rules/40.infra/*` | Nur beim Editieren von Config/Infra-Dateien (eingeschränkte Pfade) | Bedingt |
|
|
666
|
-
| `.claude/rules/50.sync/*` | Nur beim Editieren von claudeos-core-Dateien (eingeschränkte Pfade) | Bedingt |
|
|
667
|
-
| `.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) |
|
|
301
|
+
Die vollständige Architektur finden Sie in [docs/de/architecture.md](docs/de/architecture.md).
|
|
668
302
|
|
|
669
|
-
|
|
303
|
+
---
|
|
670
304
|
|
|
671
|
-
|
|
305
|
+
## Supported Stacks
|
|
672
306
|
|
|
673
|
-
|
|
674
|
-
- `claudeos-core/database/**` — DB-Schema (für Queries, Mapper, Migrationen)
|
|
675
|
-
- `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.
|
|
307
|
+
12 Stacks, die automatisch aus Ihren Projektdateien erkannt werden:
|
|
676
308
|
|
|
677
|
-
|
|
309
|
+
**Backend:** Java/Spring Boot · Kotlin/Spring Boot · Node/Express · Node/Fastify · Node/NestJS · Python/Django · Python/FastAPI · Python/Flask
|
|
678
310
|
|
|
679
|
-
|
|
311
|
+
**Frontend:** Node/Next.js · Node/Vite · Angular · Vue/Nuxt
|
|
680
312
|
|
|
681
|
-
|
|
313
|
+
Multi-Stack-Projekte (z. B. Spring-Boot-Backend + Next.js-Frontend) funktionieren ohne weitere Konfiguration.
|
|
682
314
|
|
|
683
|
-
|
|
684
|
-
|---|---|
|
|
685
|
-
| `claudeos-core/plan/` | Master-Plan-Backups aus Legacy-Projekten (v2.0.x und älter). Wird in v2.1.0 nicht generiert. Falls vorhanden, lädt Claude Code es nicht automatisch — nur Read-on-Demand. |
|
|
686
|
-
| `claudeos-core/generated/` | Build-Metadaten-JSON, Prompts, Pass-Marker, Übersetzungs-Cache, `.staged-rules/`. Nicht zum Coden. |
|
|
687
|
-
| `claudeos-core/guide/` | Onboarding-Guides für Menschen. |
|
|
688
|
-
| `claudeos-core/mcp-guide/` | MCP-Server-Docs. Nicht zum Coden. |
|
|
689
|
-
| `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. |
|
|
315
|
+
Erkennungsregeln und welche Fakten jeder Scanner extrahiert, finden Sie in [docs/de/stacks.md](docs/de/stacks.md).
|
|
690
316
|
|
|
691
317
|
---
|
|
692
318
|
|
|
693
319
|
## Täglicher Workflow
|
|
694
320
|
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
```
|
|
698
|
-
# Claude Code einfach wie gewohnt benutzen — er referenziert Ihre Standards automatisch:
|
|
699
|
-
"Erstelle ein CRUD für die order-Domain"
|
|
700
|
-
"Füge eine User-Profile-Update-API hinzu"
|
|
701
|
-
"Refactore diesen Code, um den Projektmustern zu entsprechen"
|
|
702
|
-
```
|
|
703
|
-
|
|
704
|
-
### Nach manueller Bearbeitung von Standards
|
|
321
|
+
Drei Befehle decken etwa 95 % der Nutzung ab:
|
|
705
322
|
|
|
706
323
|
```bash
|
|
707
|
-
#
|
|
708
|
-
npx claudeos-core
|
|
709
|
-
|
|
710
|
-
# Verifizieren, dass alles konsistent ist
|
|
711
|
-
npx claudeos-core health
|
|
712
|
-
```
|
|
324
|
+
# Erstmaliger Aufruf in einem Projekt
|
|
325
|
+
npx claudeos-core init
|
|
713
326
|
|
|
714
|
-
|
|
327
|
+
# Nachdem Sie Standards oder Rules manuell bearbeitet haben
|
|
328
|
+
npx claudeos-core lint
|
|
715
329
|
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
# mehr generiert werden). Committen Sie Ihre generierten Dokumente
|
|
719
|
-
# regelmäßig, damit Sie einzelne Dateien zurücksetzen können, ohne
|
|
720
|
-
# neu zu generieren:
|
|
721
|
-
git checkout HEAD -- .claude/rules/ claudeos-core/
|
|
722
|
-
|
|
723
|
-
# Legacy (v2.0.x-Projekte mit noch vorhandenem claudeos-core/plan/):
|
|
724
|
-
npx claudeos-core restore
|
|
330
|
+
# Health-Check (vor Commits oder in CI ausführen)
|
|
331
|
+
npx claudeos-core health
|
|
725
332
|
```
|
|
726
333
|
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
Die L4-Memory-Schicht (`claudeos-core/memory/`) sammelt Team-Wissen über Sessions hinweg. Drei CLI-Subcommands halten sie gesund:
|
|
334
|
+
Zwei weitere für die Wartung der Memory-Schicht:
|
|
730
335
|
|
|
731
336
|
```bash
|
|
732
|
-
#
|
|
337
|
+
# Failure-Patterns-Log verdichten (regelmäßig ausführen)
|
|
733
338
|
npx claudeos-core memory compact
|
|
734
|
-
# Stage 1: alte Einträge zusammenfassen (>30 Tage, Body → eine Zeile)
|
|
735
|
-
# Stage 2: doppelte Headings mergen (Frequency summiert, letzter Fix behalten)
|
|
736
|
-
# Stage 3: Low-Importance + alt droppen (importance <3 UND lastSeen >60 Tage)
|
|
737
|
-
# Stage 4: 400-Zeilen-Cap pro Datei erzwingen (ältestes Low-Importance zuerst gedroppt)
|
|
738
|
-
|
|
739
|
-
# Score: failure-patterns.md-Einträge nach Importance neu ranken
|
|
740
|
-
npx claudeos-core memory score
|
|
741
|
-
# importance = round(frequency × 1.5 + recency × 5), bei 10 gecapped
|
|
742
|
-
# Ausführen nach dem Anhängen mehrerer neuer Failure-Patterns
|
|
743
339
|
|
|
744
|
-
#
|
|
340
|
+
# Häufige Failure-Patterns zu Vorschlagsregeln hochstufen
|
|
745
341
|
npx claudeos-core memory propose-rules
|
|
746
|
-
# Liest failure-patterns.md-Einträge mit frequency ≥ 3
|
|
747
|
-
# Berechnet Confidence (Sigmoid auf gewichteter Evidenz × Anker-Multiplikator)
|
|
748
|
-
# Schreibt Vorschläge nach memory/auto-rule-update.md (NICHT auto-angewendet)
|
|
749
|
-
# Confidence ≥ 0.70 verdient ernsthafte Prüfung; akzeptieren → Rule editieren + Entscheidung loggen
|
|
750
|
-
|
|
751
|
-
# v2.1.0: `memory --help` leitet jetzt zur Subcommand-Hilfe weiter (zuvor wurde die Top-Level-Hilfe angezeigt)
|
|
752
|
-
npx claudeos-core memory --help
|
|
753
342
|
```
|
|
754
343
|
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
Wann in Memory schreiben (Claude macht das on-demand, aber Sie können auch manuell editieren):
|
|
758
|
-
- **`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.
|
|
759
|
-
- **`failure-patterns.md`** — beim **zweiten Auftreten** eines wiederkehrenden Fehlers oder einer nicht offensichtlichen Root-Cause anhängen. Erstmalige Fehler brauchen keinen Eintrag.
|
|
760
|
-
- `compaction.md` und `auto-rule-update.md` — werden von den CLI-Subcommands oben generiert/verwaltet; nicht von Hand editieren.
|
|
761
|
-
|
|
762
|
-
### CI/CD-Integration
|
|
763
|
-
|
|
764
|
-
```yaml
|
|
765
|
-
# GitHub-Actions-Beispiel
|
|
766
|
-
- run: npx claudeos-core validate
|
|
767
|
-
# Exit-Code 1 blockiert den PR
|
|
768
|
-
|
|
769
|
-
# Optional: monatliches Memory-Housekeeping (separater Cron-Workflow)
|
|
770
|
-
- run: npx claudeos-core memory compact
|
|
771
|
-
- run: npx claudeos-core memory score
|
|
772
|
-
```
|
|
773
|
-
|
|
774
|
-
---
|
|
775
|
-
|
|
776
|
-
## Wie unterscheidet sich das?
|
|
777
|
-
|
|
778
|
-
### vs. andere Claude-Code-Tools
|
|
779
|
-
|
|
780
|
-
| | ClaudeOS-Core | Everything Claude Code (50K+ ⭐) | Harness | specs-generator | Claude `/init` |
|
|
781
|
-
|---|---|---|---|---|---|
|
|
782
|
-
| **Ansatz** | Code analysiert zuerst, dann LLM generiert | Vorgefertigte Config-Presets | LLM designt Agent-Teams | LLM generiert Spec-Docs | LLM schreibt CLAUDE.md |
|
|
783
|
-
| **Liest Ihren Quellcode** | ✅ Deterministische statische Analyse | ❌ | ❌ | ❌ (LLM liest) | ❌ (LLM liest) |
|
|
784
|
-
| **Stack-Erkennung** | Code bestätigt (ORM, DB, Build-Tool, Pkg-Manager) | N/V (stack-agnostisch) | LLM rät | LLM rät | LLM rät |
|
|
785
|
-
| **Domain-Erkennung** | Code bestätigt (Java 5 Muster, Kotlin CQRS, Next.js FSD) | N/V | LLM rät | N/V | N/V |
|
|
786
|
-
| **Gleiches Projekt → gleiches Ergebnis** | ✅ Deterministische Analyse | ✅ (statische Dateien) | ❌ (LLM variiert) | ❌ (LLM variiert) | ❌ (LLM variiert) |
|
|
787
|
-
| **Handhabung großer Projekte** | Domain-Gruppen-Splitting (4 Domains / 40 Dateien pro Gruppe) | N/V | Kein Splitting | Kein Splitting | Context-Window-Limit |
|
|
788
|
-
| **Output** | CLAUDE.md + Rules + Standards + Skills + Guides + Plans (40–50+ Dateien) | Agents + Skills + Commands + Hooks | Agents + Skills | 6 Spec-Dokumente | CLAUDE.md (1 Datei) |
|
|
789
|
-
| **Output-Ort** | `.claude/rules/` (auto-geladen von Claude Code) | `.claude/` diverse | `.claude/agents/` + `.claude/skills/` | `.claude/steering/` + `specs/` | `CLAUDE.md` |
|
|
790
|
-
| **Post-Generierungs-Verifikation** | ✅ 5 automatisierte Validatoren | ❌ | ❌ | ❌ | ❌ |
|
|
791
|
-
| **Multi-Language-Output** | ✅ 10 Sprachen | ❌ | ❌ | ❌ | ❌ |
|
|
792
|
-
| **Multi-Stack** | ✅ Backend + Frontend simultan | ❌ Stack-agnostisch | ❌ | ❌ | Teilweise |
|
|
793
|
-
| **Persistente Memory-Schicht** | ✅ L4 — Decision-Log + Failure-Patterns + auto-bewertete Rule-Vorschläge (v2.0.0) | ❌ | ❌ | ❌ | ❌ |
|
|
794
|
-
| **Agent-Orchestrierung** | ❌ | ✅ 28 Agents | ✅ 6 Muster | ❌ | ❌ |
|
|
795
|
-
|
|
796
|
-
### Der Schlüsselunterschied in einem Satz
|
|
797
|
-
|
|
798
|
-
**Andere Tools geben Claude „allgemein gute Anweisungen". ClaudeOS-Core gibt Claude „Anweisungen, die aus Ihrem tatsächlichen Code extrahiert wurden".**
|
|
799
|
-
|
|
800
|
-
Deshalb hört Claude Code auf, JPA-Code in Ihrem MyBatis-Projekt zu generieren,
|
|
801
|
-
hört auf, `success()` zu verwenden, wenn Ihre Codebasis `ok()` nutzt,
|
|
802
|
-
und hört auf, `user/controller/`-Verzeichnisse zu erstellen, wenn Ihr Projekt `controller/user/` verwendet.
|
|
803
|
-
|
|
804
|
-
### Ergänzend, nicht konkurrierend
|
|
805
|
-
|
|
806
|
-
ClaudeOS-Core fokussiert sich auf **projektspezifische Regeln und Standards**.
|
|
807
|
-
Andere Tools fokussieren sich auf **Agent-Orchestrierung und Workflows**.
|
|
808
|
-
|
|
809
|
-
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.
|
|
344
|
+
Die vollständigen Optionen jedes Befehls finden Sie in [docs/de/commands.md](docs/de/commands.md).
|
|
810
345
|
|
|
811
346
|
---
|
|
812
347
|
|
|
813
|
-
##
|
|
814
|
-
|
|
815
|
-
**F: Modifiziert es meinen Quellcode?**
|
|
816
|
-
Nein. Es erstellt nur `CLAUDE.md`, `.claude/rules/` und `claudeos-core/`. Ihr bestehender Code wird niemals modifiziert.
|
|
817
|
-
|
|
818
|
-
**F: Wie viel kostet es?**
|
|
819
|
-
Es ruft `claude -p` mehrfach über die 4 Passes hinweg auf. Im v2.1.0-Split-Mode expandiert allein Pass 3 je nach Projektgröße in 4–14+ Stages (siehe [Auto-Scaling](#auto-scaling-nach-projektgröße)). Ein typisches kleines Projekt (1–15 Domains) verwendet insgesamt 8–9 `claude -p`-Aufrufe; ein 18-Domain-Projekt 11; ein 60-Domain-Projekt 15–17. Jede Stage läuft mit einem frischen Context-Fenster — die Token-Kosten pro Aufruf sind sogar niedriger als beim früheren Single-Call-Pass-3, weil keine Stage den gesamten Datei-Baum in einem Context halten muss. 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. Das liegt im Rahmen der normalen Claude-Code-Nutzung.
|
|
820
|
-
|
|
821
|
-
**F: Was ist der Pass-3-Split-Mode und warum wurde er in v2.1.0 eingeführt?**
|
|
822
|
-
Vor v2.1.0 führte Pass 3 einen einzigen `claude -p`-Aufruf aus, der den gesamten generierten Datei-Baum (`CLAUDE.md`, Standards, Rules, Skills, Guides — typischerweise 30–60 Dateien) in einer Antwort ausgeben musste. Das funktionierte bei kleinen Projekten, traf aber bei ca. 5 Domains zuverlässig auf `Prompt is too long`-Output-Akkumulations-Fehler. Der Fehler war nicht aus der Input-Größe vorhersagbar — er hing davon ab, wie ausführlich jede generierte Datei ausfiel, und konnte dasselbe Projekt intermittierend treffen. Der Split-Mode umgeht das Problem strukturell: Pass 3 wird in sequenzielle Stages aufgeteilt (`3a` → `3b-core` → `3b-N` → `3c-core` → `3c-N` → `3d-aux`), jede ein separater `claude -p`-Aufruf mit frischem Context-Fenster. Die Konsistenz über Stages hinweg wird durch `pass3a-facts.md` erhalten, eine 5–10 KB große destillierte Fact Sheet, die jede spätere Stage referenziert, anstatt `pass2-merged.json` erneut zu lesen. Der `pass3-complete.json`-Marker trägt ein `groupsCompleted`-Array, sodass ein Crash während `3c-2` ab `3c-2` fortgesetzt wird (nicht ab `3a`), was doppelte Token-Kosten vermeidet.
|
|
823
|
-
**F: Soll ich die generierten Dateien in Git committen?**
|
|
824
|
-
Ja, empfohlen. Ihr Team kann dieselben Claude-Code-Standards teilen. Erwägen Sie, `claudeos-core/generated/` in `.gitignore` aufzunehmen (Analyse-JSON ist regenerierbar).
|
|
825
|
-
|
|
826
|
-
**F: Was ist mit Mixed-Stack-Projekten (z. B. Java-Backend + React-Frontend)?**
|
|
827
|
-
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 über seine Split-Stages hinweg — Backend-Domains landen in manchen 3b/3c-Batches, Frontend-Domains in anderen, wobei alle dieselbe `pass3a-facts.md` für Konsistenz referenzieren.
|
|
828
|
-
|
|
829
|
-
**F: Funktioniert es mit Turborepo / pnpm-Workspaces / Lerna-Monorepos?**
|
|
830
|
-
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.
|
|
831
|
-
|
|
832
|
-
**F: Was passiert bei einem erneuten Lauf?**
|
|
833
|
-
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. Im v2.1.0-Split-Mode funktioniert der Pass-3-Resume auf Stage-Granularität — wenn der Lauf während `3c-2` crashte, setzt das nächste `init` ab `3c-2` fort, anstatt von `3a` neu zu starten (was die Token-Kosten verdoppeln würde). Der `pass3-complete.json`-Marker hält `mode: "split"` plus ein `groupsCompleted`-Array fest, um diese Logik zu steuern.
|
|
834
|
-
|
|
835
|
-
**F: Bekommt NestJS ein eigenes Template oder verwendet es das Express-Template?**
|
|
836
|
-
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.
|
|
837
|
-
|
|
838
|
-
**F: Was ist mit Vue-/Nuxt-Projekten?**
|
|
839
|
-
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.
|
|
840
|
-
|
|
841
|
-
**F: Unterstützt es Kotlin?**
|
|
842
|
-
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.).
|
|
843
|
-
|
|
844
|
-
**F: Was ist mit CQRS- / BFF-Architektur?**
|
|
845
|
-
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.
|
|
846
|
-
|
|
847
|
-
**F: Was ist mit Gradle-Multi-Modul-Monorepos?**
|
|
848
|
-
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.
|
|
849
|
-
|
|
850
|
-
**F: Was ist die L4-Memory-Schicht (v2.0.0)? Soll ich `claudeos-core/memory/` committen?**
|
|
851
|
-
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.
|
|
852
|
-
|
|
853
|
-
**F: Was, wenn Pass 4 fehlschlägt?**
|
|
854
|
-
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.
|
|
348
|
+
## Was unterscheidet das hier
|
|
855
349
|
|
|
856
|
-
|
|
857
|
-
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).
|
|
350
|
+
Die meisten Claude-Code-Dokumentationstools generieren aus einer Beschreibung (Sie sagen es dem Tool, das Tool sagt es Claude). ClaudeOS-Core generiert aus Ihrem tatsächlichen Quellcode (das Tool liest, das Tool sagt Claude, was bestätigt ist, Claude schreibt nur das Bestätigte).
|
|
858
351
|
|
|
859
|
-
|
|
860
|
-
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`). Guard 1 („partieller staged-rules-Move") und Guard 3 („unvollständiger Output — fehlende/leere Guide-Dateien oder fehlender Standard-Sentinel / leere Skills") 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. (Hinweis zu v2.1.0: Guard 3 H1 prüft `plan/` nicht mehr, da Master Plans nicht mehr generiert werden.)
|
|
352
|
+
Drei konkrete Konsequenzen:
|
|
861
353
|
|
|
862
|
-
**
|
|
863
|
-
|
|
354
|
+
1. **Deterministische Stack-Erkennung.** Gleiches Projekt + gleicher Code = gleiche Ausgabe. Kein „Claude hat dieses Mal anders gewürfelt."
|
|
355
|
+
2. **Keine erfundenen Pfade.** Der Pass-3-Prompt nennt explizit jeden zulässigen Quellpfad; Claude kann keine Pfade zitieren, die nicht existieren.
|
|
356
|
+
3. **Multi-Stack-fähig.** Backend- und Frontend-Domänen verwenden im selben Lauf unterschiedliche Analyse-Prompts.
|
|
864
357
|
|
|
865
|
-
**
|
|
866
|
-
Ja für kleine Projekte (≤5 Domains) — die Single-Call-Manual-Anweisungen in [Schritt 6](#schritt-6-pass-3--gesamte-dokumentation-generieren-aufgeteilt-in-mehrere-stages) funktionieren weiterhin. Für größere Projekte sollten Sie `npx claudeos-core init` verwenden, weil der Split-Runner die Stage-für-Stage-Ausführung mit frischen Contexts orchestriert, die Batch-Unterteilung ab 16 Domains übernimmt, die korrekte `pass3-complete.json`-Marker-Form (`mode: "split"` + `groupsCompleted`) schreibt und staged-rules zwischen Stages verschiebt. Diese Orchestrierung händisch nachzubauen ist möglich, aber mühsam. Wenn Sie einen Grund haben, Stages manuell auszuführen (z. B. Debugging einer bestimmten Stage), können Sie `pass3-prompt.md` mit der passenden `STAGE:`-Direktive templaten und direkt an `claude -p` füttern — denken Sie aber daran, `.staged-rules/` nach jeder Stage zu verschieben und den Marker selbst zu aktualisieren.
|
|
867
|
-
|
|
868
|
-
**F: Mein Projekt wird von v2.0.x upgegradet und hat ein bestehendes `claudeos-core/plan/`-Verzeichnis. Was soll ich tun?**
|
|
869
|
-
Nichts erforderlich — v2.1.0-Tools ignorieren `plan/`, wenn es fehlt oder leer ist, und `plan-validator` handhabt Legacy-Projekte mit gefüllten `plan/`-Verzeichnissen weiterhin aus Abwärtskompatibilitätsgründen. Sie können `claudeos-core/plan/` bedenkenlos löschen, wenn Sie die Master-Plan-Backups nicht brauchen (die Git-History ist ohnehin das bessere Backup). Wenn Sie `plan/` behalten, aktualisiert `npx claudeos-core init` es nicht — neue Inhalte werden in v2.1.0 nicht mehr in Master Plans aggregiert. Die Verifikations-Tools handhaben beide Fälle sauber.
|
|
358
|
+
Einen seitlichen Scope-Vergleich mit anderen Tools finden Sie in [docs/de/comparison.md](docs/de/comparison.md). Der Vergleich beschreibt **was jedes Tool tut**, nicht **welches besser ist** — die meisten ergänzen sich.
|
|
870
359
|
|
|
871
360
|
---
|
|
872
361
|
|
|
873
|
-
##
|
|
874
|
-
|
|
875
|
-
```
|
|
876
|
-
pass-prompts/templates/
|
|
877
|
-
├── common/ # gemeinsame header/footer + pass4 + staging-override + CLAUDE.md scaffold (v2.2.0)
|
|
878
|
-
│ ├── header.md # Rolle + Ausgabeformat-Direktive (alle Passes)
|
|
879
|
-
│ ├── pass3-footer.md # Post-Pass-3 health-check-Anweisung + 5 CRITICAL Guardrail-Blöcke (v2.2.0)
|
|
880
|
-
│ ├── pass3-phase1.md # „Read Once, Extract Facts"-Block mit Rules A-E (v2.1.0)
|
|
881
|
-
│ ├── pass4.md # Memory-Scaffolding-Prompt (v2.0.0)
|
|
882
|
-
│ ├── staging-override.md # Leitet .claude/rules/**-Schreibvorgänge auf .staged-rules/** um (v2.0.0)
|
|
883
|
-
│ ├── claude-md-scaffold.md # Deterministische 8-Abschnitt-CLAUDE.md-Vorlage (v2.2.0)
|
|
884
|
-
│ └── lang-instructions.json # Ausgabedirektiven pro Sprache (10 Sprachen)
|
|
885
|
-
├── java-spring/ # Java / Spring Boot
|
|
886
|
-
├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
|
|
887
|
-
├── node-express/ # Node.js / Express
|
|
888
|
-
├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
|
|
889
|
-
├── node-fastify/ # Node.js / Fastify
|
|
890
|
-
├── node-nextjs/ # Next.js / React (App Router, RSC)
|
|
891
|
-
├── node-vite/ # Vite SPA (React, client-side routing, VITE_ env, Vitest)
|
|
892
|
-
├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
|
|
893
|
-
├── angular/ # Angular
|
|
894
|
-
├── python-django/ # Python / Django (DRF)
|
|
895
|
-
├── python-fastapi/ # Python / FastAPI
|
|
896
|
-
└── python-flask/ # Python / Flask (Blueprint, app factory, Jinja2)
|
|
897
|
-
```
|
|
898
|
-
|
|
899
|
-
`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. In v2.1.0 wird dem Pass-3-Template `common/pass3-phase1.md` (der „Read Once, Extract Facts"-Block mit Rules A–E) vorangestellt, bevor es pro Split-Mode-Stage zugeschnitten wird. Pass 4 verwendet unabhängig vom Stack das gemeinsame `common/pass4.md`-Template (Memory-Scaffolding).
|
|
900
|
-
|
|
901
|
-
**In v2.2.0** bettet der Pass-3-Prompt zusätzlich `common/claude-md-scaffold.md` (die deterministische 8-Abschnitt-CLAUDE.md-Vorlage) inline zwischen dem phase1-Block und dem stack-spezifischen Körper ein — dies fixiert die Abschnittsstruktur, sodass generierte CLAUDE.md nicht zwischen Projekten abweichen, während der Inhalt weiterhin projektspezifisch angepasst wird. Vorlagen werden **English-first** geschrieben; die Sprachinjektion aus `lang-instructions.json` weist das LLM an, Abschnittstitel und Fließtext zum Emit-Zeitpunkt in die Zielausgabesprache zu übersetzen.
|
|
902
|
-
|
|
903
|
-
---
|
|
362
|
+
## Verifikation (nach der Generierung)
|
|
904
363
|
|
|
905
|
-
|
|
364
|
+
Nachdem Claude die Docs geschrieben hat, verifiziert Code sie. Fünf separate Validatoren:
|
|
906
365
|
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
- `
|
|
911
|
-
|
|
912
|
-
- `
|
|
913
|
-
- `
|
|
366
|
+
| Validator | Was er prüft | Aufruf durch |
|
|
367
|
+
|---|---|---|
|
|
368
|
+
| `claude-md-validator` | Strukturelle Invarianten von CLAUDE.md (8 Sektionen, sprachunabhängig) | `claudeos-core lint` |
|
|
369
|
+
| `content-validator` | Behauptete Pfade existieren wirklich; Manifest-Konsistenz | `health` (advisory) |
|
|
370
|
+
| `pass-json-validator` | Pass-1/2/3/4-Ausgaben sind wohlgeformtes JSON | `health` (warn) |
|
|
371
|
+
| `plan-validator` | Gespeicherter Plan stimmt mit der Festplatte überein | `health` (fail-on-error) |
|
|
372
|
+
| `sync-checker` | Festplattendateien stimmen mit `sync-map.json`-Registrierungen überein (Erkennung verwaister/nicht registrierter Einträge) | `health` (fail-on-error) |
|
|
914
373
|
|
|
915
|
-
|
|
374
|
+
Ein `health-checker` orchestriert die vier Laufzeit-Validatoren mit drei Schweregrad-Stufen (fail / warn / advisory) und beendet sich mit dem passenden Code für CI. `claude-md-validator` läuft separat über den `lint`-Befehl, weil strukturelle Drift ein Re-init-Signal ist und keine weiche Warnung. Jederzeit ausführbar:
|
|
916
375
|
|
|
917
376
|
```bash
|
|
918
|
-
|
|
919
|
-
npx claudeos-core init
|
|
920
|
-
```
|
|
921
|
-
|
|
922
|
-
**Was erkannt wird:**
|
|
923
|
-
- Abhängigkeiten aus `apps/web/package.json` (z. B. `next`, `react`) → Frontend-Stack
|
|
924
|
-
- Abhängigkeiten aus `apps/api/package.json` (z. B. `express`, `prisma`) → Backend-Stack
|
|
925
|
-
- Abhängigkeiten aus `packages/db/package.json` (z. B. `drizzle-orm`) → ORM/DB
|
|
926
|
-
- Benutzerdefinierte Workspace-Pfade aus `pnpm-workspace.yaml` (z. B. `services/*`)
|
|
927
|
-
|
|
928
|
-
**Domain-Scanning deckt auch Monorepo-Layouts ab:**
|
|
929
|
-
- `apps/api/src/modules/*/` und `apps/api/src/*/` für Backend-Domains
|
|
930
|
-
- `apps/web/app/*/`, `apps/web/src/app/*/`, `apps/web/pages/*/` für Frontend-Domains
|
|
931
|
-
- `packages/*/src/*/` für Shared-Package-Domains
|
|
932
|
-
|
|
933
|
-
```
|
|
934
|
-
my-monorepo/ ← Hier ausführen: npx claudeos-core init
|
|
935
|
-
├── turbo.json ← Als Turborepo auto-erkannt
|
|
936
|
-
├── apps/
|
|
937
|
-
│ ├── web/ ← Next.js erkannt aus apps/web/package.json
|
|
938
|
-
│ │ ├── app/dashboard/ ← Frontend-Domain erkannt
|
|
939
|
-
│ │ └── package.json ← { "dependencies": { "next": "^14" } }
|
|
940
|
-
│ └── api/ ← Express erkannt aus apps/api/package.json
|
|
941
|
-
│ ├── src/modules/users/ ← Backend-Domain erkannt
|
|
942
|
-
│ └── package.json ← { "dependencies": { "express": "^4" } }
|
|
943
|
-
├── packages/
|
|
944
|
-
│ ├── db/ ← Drizzle erkannt aus packages/db/package.json
|
|
945
|
-
│ └── ui/
|
|
946
|
-
└── package.json ← { "workspaces": ["apps/*", "packages/*"] }
|
|
377
|
+
npx claudeos-core health
|
|
947
378
|
```
|
|
948
379
|
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
## Fehlerbehebung
|
|
952
|
-
|
|
953
|
-
**„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).
|
|
380
|
+
Die Prüfungen jedes Validators im Detail finden Sie in [docs/de/verification.md](docs/de/verification.md).
|
|
954
381
|
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
**„0 domains detected"** — Ihre Projektstruktur ist möglicherweise nicht-standardisiert. Siehe die Erkennungsmuster oben für Ihren Stack.
|
|
958
|
-
|
|
959
|
-
**„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.
|
|
382
|
+
---
|
|
960
383
|
|
|
961
|
-
|
|
384
|
+
## Memory Layer (optional, für lang laufende Projekte)
|
|
962
385
|
|
|
963
|
-
|
|
386
|
+
Seit v2.0 schreibt ClaudeOS-Core einen `claudeos-core/memory/`-Ordner mit vier Dateien:
|
|
964
387
|
|
|
965
|
-
|
|
388
|
+
- `decision-log.md` — append-only-Historie „warum wir X statt Y gewählt haben"
|
|
389
|
+
- `failure-patterns.md` — wiederkehrende Fehler mit Frequenz-/Wichtigkeitswerten
|
|
390
|
+
- `compaction.md` — wie Memory mit der Zeit automatisch verdichtet wird
|
|
391
|
+
- `auto-rule-update.md` — Muster, die zu neuen Regeln werden sollten
|
|
966
392
|
|
|
967
|
-
|
|
393
|
+
Sie können `npx claudeos-core memory propose-rules` ausführen, um Claude die jüngsten Failure-Patterns prüfen und neue Regeln vorschlagen zu lassen.
|
|
968
394
|
|
|
969
|
-
|
|
395
|
+
Das Memory-Modell und seinen Lebenszyklus beschreibt [docs/de/memory-layer.md](docs/de/memory-layer.md).
|
|
970
396
|
|
|
971
|
-
|
|
397
|
+
---
|
|
972
398
|
|
|
973
|
-
|
|
399
|
+
## FAQ
|
|
974
400
|
|
|
975
|
-
|
|
401
|
+
**F: Brauche ich einen Claude-API-Key?**
|
|
402
|
+
A: Nein. ClaudeOS-Core nutzt Ihre vorhandene Claude-Code-Installation — es leitet Prompts an `claude -p` auf Ihrem Rechner weiter. Keine zusätzlichen Konten.
|
|
976
403
|
|
|
977
|
-
|
|
404
|
+
**F: Überschreibt das meine bestehende CLAUDE.md oder `.claude/rules/`?**
|
|
405
|
+
A: Erstaufruf in einem frischen Projekt: Es legt sie an. Wiederaufruf ohne `--force` bewahrt Ihre Änderungen — Pass-Marker des vorherigen Laufs werden erkannt und die Passes übersprungen. Wiederaufruf mit `--force` löscht alles und generiert neu (Ihre Änderungen gehen verloren — genau das bedeutet `--force`). Siehe [docs/de/safety.md](docs/de/safety.md).
|
|
978
406
|
|
|
979
|
-
|
|
407
|
+
**F: Mein Stack wird nicht unterstützt. Kann ich einen hinzufügen?**
|
|
408
|
+
A: Ja. Neue Stacks brauchen ~3 Prompt-Templates und einen Domain-Scanner. Den 8-Schritte-Leitfaden finden Sie in [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
980
409
|
|
|
981
|
-
|
|
410
|
+
**F: Wie generiere ich Docs auf Deutsch (oder einer anderen Sprache)?**
|
|
411
|
+
A: `npx claudeos-core init --lang de`. 10 Sprachen werden unterstützt: en, ko, ja, zh-CN, es, vi, hi, ru, fr, de.
|
|
982
412
|
|
|
983
|
-
|
|
413
|
+
**F: Funktioniert das mit Monorepos?**
|
|
414
|
+
A: Ja — Turborepo (`turbo.json`), pnpm-Workspaces (`pnpm-workspace.yaml`), Lerna (`lerna.json`) und npm/yarn-Workspaces (`package.json#workspaces`) werden vom Stack-Detector erkannt. Jede App erhält ihre eigene Analyse. Andere Monorepo-Layouts (z. B. NX) werden nicht spezifisch erkannt, aber die generischen Muster `apps/*/` und `packages/*/` werden trotzdem von den stackspezifischen Scannern erfasst.
|
|
984
415
|
|
|
985
|
-
|
|
416
|
+
**F: Was, wenn Claude Code Regeln generiert, mit denen ich nicht einverstanden bin?**
|
|
417
|
+
A: Bearbeiten Sie sie direkt. Führen Sie dann `npx claudeos-core lint` aus, um zu prüfen, ob CLAUDE.md noch strukturell gültig ist. Ihre Änderungen bleiben bei späteren `init`-Aufrufen (ohne `--force`) erhalten — der Resume-Mechanismus überspringt Passes, deren Marker existieren.
|
|
986
418
|
|
|
987
|
-
|
|
419
|
+
**F: Wo melde ich Bugs?**
|
|
420
|
+
A: [GitHub Issues](https://github.com/claudeos-core/claudeos-core/issues). Sicherheitsprobleme bitte in [SECURITY.md](SECURITY.md) nachlesen.
|
|
988
421
|
|
|
989
|
-
|
|
422
|
+
---
|
|
990
423
|
|
|
991
|
-
|
|
424
|
+
## Documentation
|
|
992
425
|
|
|
993
|
-
|
|
426
|
+
| Thema | Lesen Sie |
|
|
427
|
+
|---|---|
|
|
428
|
+
| Wie die 4-Pass-Pipeline funktioniert (tiefer als das Diagramm) | [docs/de/architecture.md](docs/de/architecture.md) |
|
|
429
|
+
| Visuelle Diagramme (Mermaid) der Architektur | [docs/de/diagrams.md](docs/de/diagrams.md) |
|
|
430
|
+
| Stack-Erkennung — wonach jeder Scanner sucht | [docs/de/stacks.md](docs/de/stacks.md) |
|
|
431
|
+
| Memory Layer — Decision Logs und Failure Patterns | [docs/de/memory-layer.md](docs/de/memory-layer.md) |
|
|
432
|
+
| Alle 5 Validatoren im Detail | [docs/de/verification.md](docs/de/verification.md) |
|
|
433
|
+
| Jeder CLI-Befehl und jede Option | [docs/de/commands.md](docs/de/commands.md) |
|
|
434
|
+
| Manuelle Installation (ohne `npx`) | [docs/de/manual-installation.md](docs/de/manual-installation.md) |
|
|
435
|
+
| Scanner-Overrides — `.claudeos-scan.json` | [docs/de/advanced-config.md](docs/de/advanced-config.md) |
|
|
436
|
+
| Sicherheit: Was bei Re-init erhalten bleibt | [docs/de/safety.md](docs/de/safety.md) |
|
|
437
|
+
| Vergleich mit ähnlichen Tools (Scope, nicht Qualität) | [docs/de/comparison.md](docs/de/comparison.md) |
|
|
438
|
+
| Fehler und Wiederherstellung | [docs/de/troubleshooting.md](docs/de/troubleshooting.md) |
|
|
994
439
|
|
|
995
440
|
---
|
|
996
441
|
|
|
997
442
|
## Mitwirken
|
|
998
443
|
|
|
999
|
-
Beiträge
|
|
444
|
+
Beiträge willkommen — Stack-Unterstützung hinzufügen, Prompts verbessern, Bugs beheben. Siehe [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
1000
445
|
|
|
1001
|
-
|
|
1002
|
-
- **IDE-Integration** — VS-Code-Extension, IntelliJ-Plugin
|
|
1003
|
-
- **CI/CD-Templates** — GitLab CI, CircleCI, Jenkins-Beispiele (GitHub Actions bereits ausgeliefert — siehe `.github/workflows/test.yml`)
|
|
1004
|
-
- **Testabdeckung** — Erweiterung der Test-Suite (derzeit 602 Tests über 30 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-3-Split-Mode-Batch-Unterteilung, Pass-3-Partial-Marker-Resume (v2.1.0), Pass-4-Marker-Content-Validierung + Stale-Marker-Unlink-Striktheit + scaffoldSkillsManifest-Gap-Fill (v2.1.0), Translation-Env-Skip-Guard + Early-Fail-Fast + CI-Workflow, staged-rules-Move, lang-aware-Translation-Fallback, Master-Plan-Removal-Regressions-Suite (v2.1.0), Memory-Score/Compact-Formatting-Regression (v2.1.0) und AI-Work-Rules-Template-Struktur und `.env`-Parser Port/Host/API-Target-Extraktion + Redaction sensibler Variablen (v2.2.0) abdecken)
|
|
446
|
+
Verhaltenskodex und Sicherheitsrichtlinie finden Sie in [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) und [SECURITY.md](SECURITY.md).
|
|
1005
447
|
|
|
1006
|
-
|
|
448
|
+
## License
|
|
1007
449
|
|
|
1008
|
-
|
|
450
|
+
[ISC](LICENSE) — frei für jede Nutzung, einschließlich kommerziell.
|
|
1009
451
|
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
Erstellt von **claudeos-core** — [GitHub](https://github.com/claudeos-core) · [E-Mail](mailto:claudeoscore@gmail.com)
|
|
1013
|
-
|
|
1014
|
-
## Lizenz
|
|
452
|
+
---
|
|
1015
453
|
|
|
1016
|
-
|
|
454
|
+
<sub>Mit Sorgfalt gebaut von [@claudeos-core](https://github.com/claudeos-core). Wenn Ihnen das Tool Zeit gespart hat, hält ein ⭐ auf GitHub die Sichtbarkeit aufrecht.</sub>
|