claudeos-core 2.4.0 → 2.4.2
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 +74 -3
- package/README.de.md +253 -195
- package/README.es.md +242 -184
- package/README.fr.md +240 -182
- package/README.hi.md +248 -190
- package/README.ja.md +247 -189
- package/README.ko.md +220 -162
- package/README.md +163 -105
- package/README.ru.md +254 -196
- package/README.vi.md +250 -192
- package/README.zh-CN.md +252 -194
- package/package.json +1 -1
package/README.de.md
CHANGED
|
@@ -7,44 +7,40 @@
|
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
[](https://www.npmjs.com/package/claudeos-core)
|
|
9
9
|
|
|
10
|
-
**
|
|
10
|
+
**Ein CLI, das `CLAUDE.md` und `.claude/rules/` direkt aus dem Quellcode deines Projekts erzeugt. Bei gleichem Input liefert es immer das gleiche Output. Unter der Haube arbeiten ein Node.js-Scanner, eine 4-Pass-Pipeline mit Claude und fünf Validatoren zusammen. 12 Stacks, 10 Sprachen, und es erfindet keine Pfade, die im Code nicht existieren.**
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
13
|
npx claudeos-core init
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
+
Läuft auf [**12 Stacks**](#supported-stacks), inklusive Monorepos. Ein Befehl reicht, ohne Konfiguration. Bricht ein Lauf ab, kannst du nahtlos fortsetzen, und mehrfaches Ausführen bleibt sicher.
|
|
17
|
+
|
|
16
18
|
[🇺🇸 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)
|
|
17
19
|
|
|
18
20
|
---
|
|
19
21
|
|
|
20
|
-
##
|
|
22
|
+
## Was ist das?
|
|
21
23
|
|
|
22
|
-
|
|
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/`.
|
|
24
|
+
Claude Code greift bei jeder neuen Session auf die Standardwerte des jeweiligen Frameworks zurück. Dein Team setzt **MyBatis** ein, Claude schreibt trotzdem JPA. Euer Wrapper heißt `ApiResponse.ok()`, Claude tippt aber `ResponseEntity.success()`. Eure Pakete sind layer-first organisiert, generiert wird trotzdem domain-first. Per Hand geschriebene `.claude/rules/` lösen das Problem zwar, doch sobald sich der Code weiterentwickelt, driften die Regeln davon weg.
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
**ClaudeOS-Core erzeugt diese Regeln deterministisch neu, direkt aus dem Quellcode.** Zuerst liest ein Node.js-Scanner alles aus: Stack, ORM, Paket-Layout und Dateipfade. Anschließend schreibt eine 4-Pass-Pipeline mit Claude den kompletten Dokumentensatz: `CLAUDE.md`, die automatisch geladenen `.claude/rules/`, dazu Standards und Skills. Eine explizite Pfad-Allowlist hält das LLM dabei in der Spur, aus ihr kann es nicht ausbrechen. Fünf Validatoren prüfen das Ergebnis, bevor es ausgeliefert wird.
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
Das Resultat: Bei gleichem Input bekommst du byte-identische Ausgabe, in jeder der 10 Sprachen, ohne erfundene Pfade. (Details findest du weiter unten unter [Was es anders macht](#was-es-anders-macht).)
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
Vorher: Sie → Claude Code → "allgemein guter" Code → manuelle Korrekturen
|
|
33
|
-
Nachher: Sie → Claude Code → Code, der zu Ihrem Projekt passt → einsetzbar
|
|
34
|
-
```
|
|
30
|
+
Für langlebige Projekte legt das Tool außerdem einen separaten [Memory Layer](#memory-layer-optional-für-langlebige-projekte) an.
|
|
35
31
|
|
|
36
32
|
---
|
|
37
33
|
|
|
38
|
-
##
|
|
34
|
+
## Auf einem echten Projekt sehen
|
|
39
35
|
|
|
40
|
-
|
|
36
|
+
Hier ein Lauf auf [`spring-boot-realworld-example-app`](https://github.com/gothinkster/spring-boot-realworld-example-app): Java 11, Spring Boot 2.6, MyBatis, SQLite und 187 Quelldateien. Ergebnis: **75 generierte Dateien**, Gesamtdauer **53 Minuten**, alle Validatoren grün.
|
|
41
37
|
|
|
42
38
|
<p align="center">
|
|
43
39
|
<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
40
|
</p>
|
|
45
41
|
|
|
46
42
|
<details>
|
|
47
|
-
<summary><strong
|
|
43
|
+
<summary><strong>Terminalausgabe (Textfassung, zum Suchen und Kopieren)</strong></summary>
|
|
48
44
|
|
|
49
45
|
```text
|
|
50
46
|
╔════════════════════════════════════════════════════╗
|
|
@@ -79,18 +75,18 @@ Ausgeführt auf [`spring-boot-realworld-example-app`](https://github.com/gothink
|
|
|
79
75
|
[██████████░░░░░░░░░░] 50% (2/4)
|
|
80
76
|
|
|
81
77
|
[6] Pass 3 — Generating all files...
|
|
82
|
-
|
|
78
|
+
Pass 3 split mode (3a → 3b → 3c → 3d-aux)
|
|
83
79
|
✅ 3a complete (2m 57s) — pass3a-facts.md (187-path allowlist)
|
|
84
80
|
✅ 3b complete (18m 49s) — CLAUDE.md + 19 standards + 20 rules
|
|
85
81
|
✅ 3c complete (12m 35s) — 13 skills + 9 guides
|
|
86
82
|
✅ 3d-aux complete (3m 18s) — database/ + mcp-guide/
|
|
87
|
-
|
|
83
|
+
Pass 3 split complete: 4/4 stages successful
|
|
88
84
|
[███████████████░░░░░] 75% (3/4)
|
|
89
85
|
|
|
90
86
|
[7] Pass 4 — Memory scaffolding...
|
|
91
|
-
|
|
87
|
+
Pass 4 staged-rules: 6 rule files moved to .claude/rules/
|
|
92
88
|
✅ Pass 4 complete (5m)
|
|
93
|
-
|
|
89
|
+
Gap-fill: all 12 expected files already present
|
|
94
90
|
[████████████████████] 100% (4/4)
|
|
95
91
|
|
|
96
92
|
╔═══════════════════════════════════════╗
|
|
@@ -119,37 +115,45 @@ Ausgeführt auf [`spring-boot-realworld-example-app`](https://github.com/gothink
|
|
|
119
115
|
</details>
|
|
120
116
|
|
|
121
117
|
<details>
|
|
122
|
-
<summary><strong
|
|
118
|
+
<summary><strong>Was tatsächlich in deiner <code>CLAUDE.md</code> landet (echter Auszug, Section 1 + 2)</strong></summary>
|
|
123
119
|
|
|
124
120
|
```markdown
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
121
|
+
# CLAUDE.md — spring-boot-realworld-example-app
|
|
122
|
+
|
|
123
|
+
> Reference implementation of the RealWorld backend specification on
|
|
124
|
+
> Java 11 + Spring Boot 2.6, exposing both REST and GraphQL endpoints
|
|
125
|
+
> over a hexagonal MyBatis persistence layer.
|
|
126
|
+
|
|
127
|
+
#### 1. Role Definition
|
|
128
|
+
|
|
129
|
+
As the senior developer for this repository, you are responsible for
|
|
130
|
+
writing, modifying, and reviewing code. Responses must be written in English.
|
|
131
|
+
A Java Spring Boot REST + GraphQL API server organized around a hexagonal
|
|
132
|
+
(ports & adapters) architecture, with a CQRS-lite read/write split inside
|
|
133
|
+
an XML-driven MyBatis persistence layer and JWT-based authentication.
|
|
134
|
+
|
|
135
|
+
#### 2. Project Overview
|
|
136
|
+
|
|
137
|
+
| Item | Value |
|
|
138
|
+
|---|---|
|
|
139
|
+
| Language | Java 11 |
|
|
140
|
+
| Framework | Spring Boot 2.6.3 |
|
|
141
|
+
| Build Tool | Gradle (Groovy DSL) |
|
|
142
|
+
| Persistence | MyBatis 3 via `mybatis-spring-boot-starter:2.2.2` (no JPA) |
|
|
143
|
+
| Database | SQLite (`org.xerial:sqlite-jdbc:3.36.0.3`) — `dev.db` (default), `:memory:` (test) |
|
|
144
|
+
| Migration | Flyway — single baseline `V1__create_tables.sql` |
|
|
145
|
+
| API Style | REST (`io.spring.api.*`) + GraphQL via Netflix DGS `:4.9.21` |
|
|
146
|
+
| Authentication | JWT HS512 (`jjwt-api:0.11.2`) + Spring Security `PasswordEncoder` |
|
|
147
|
+
| Server Port | 8080 (default) |
|
|
148
|
+
| Test Stack | JUnit Jupiter 5, Mockito, AssertJ, rest-assured, spring-mock-mvc |
|
|
145
149
|
```
|
|
146
150
|
|
|
147
|
-
|
|
151
|
+
Sämtliche Werte in dieser Tabelle stammen aus dem Code selbst: die exakten Dependency-Koordinaten, der Dateiname `dev.db`, der Migrationsname `V1__create_tables.sql` und auch das "no JPA". Der Scanner liest sie aus `build.gradle`, `application.properties` und dem Source-Tree, bevor Claude die Datei überhaupt anfasst. Geraten wird hier nichts.
|
|
148
152
|
|
|
149
153
|
</details>
|
|
150
154
|
|
|
151
155
|
<details>
|
|
152
|
-
<summary><strong
|
|
156
|
+
<summary><strong>Eine echte, automatisch geladene Rule (<code>.claude/rules/10.backend/01.controller-rules.md</code>)</strong></summary>
|
|
153
157
|
|
|
154
158
|
````markdown
|
|
155
159
|
---
|
|
@@ -157,298 +161,352 @@ paths:
|
|
|
157
161
|
- "**/*"
|
|
158
162
|
---
|
|
159
163
|
|
|
160
|
-
|
|
164
|
+
#### Controller Rules
|
|
165
|
+
|
|
166
|
+
##### REST (`io.spring.api.*`)
|
|
161
167
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
-
|
|
168
|
-
|
|
168
|
+
- Controllers are the SOLE response wrapper for HTTP — no aggregator/facade above them.
|
|
169
|
+
Return `ResponseEntity<?>` or a body Spring serializes via `JacksonCustomizations`.
|
|
170
|
+
- Each controller method calls exactly ONE application service method. Multi-source
|
|
171
|
+
composition lives in the application service.
|
|
172
|
+
- Controllers MUST NOT import `io.spring.infrastructure.*`. No direct `@Mapper` access.
|
|
173
|
+
- Validate command-param arguments with `@Valid`. Custom JSR-303 constraints live under
|
|
174
|
+
`io.spring.application.{aggregate}.*`.
|
|
175
|
+
- Resolve the current user via `@AuthenticationPrincipal User`.
|
|
176
|
+
- Let exceptions propagate to `io.spring.api.exception.CustomizeExceptionHandler`
|
|
177
|
+
(`@ControllerAdvice`). Do NOT `try/catch` business exceptions inside the controller.
|
|
169
178
|
|
|
170
|
-
|
|
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`.
|
|
179
|
+
##### GraphQL (`io.spring.graphql.*`)
|
|
174
180
|
|
|
175
|
-
|
|
181
|
+
- DGS components (`@DgsComponent`) are the sole GraphQL response wrappers.
|
|
182
|
+
Use `@DgsQuery` / `@DgsData` / `@DgsMutation`.
|
|
183
|
+
- Resolve the current user via `io.spring.graphql.SecurityUtil.getCurrentUser()`.
|
|
184
|
+
|
|
185
|
+
##### Examples
|
|
176
186
|
|
|
177
187
|
✅ Correct:
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
188
|
+
```java
|
|
189
|
+
@PostMapping
|
|
190
|
+
public ResponseEntity<?> createArticle(@AuthenticationPrincipal User user,
|
|
191
|
+
@Valid @RequestBody NewArticleParam param) {
|
|
192
|
+
Article article = articleCommandService.createArticle(param, user);
|
|
193
|
+
ArticleData data = articleQueryService.findById(article.getId(), user)
|
|
194
|
+
.orElseThrow(ResourceNotFoundException::new);
|
|
195
|
+
return ResponseEntity.ok(Map.of("article", data));
|
|
196
|
+
}
|
|
187
197
|
```
|
|
188
198
|
|
|
189
199
|
❌ Incorrect:
|
|
190
|
-
```
|
|
191
|
-
|
|
200
|
+
```java
|
|
201
|
+
@PostMapping
|
|
202
|
+
public ResponseEntity<?> create(@RequestBody NewArticleParam p) {
|
|
203
|
+
try {
|
|
204
|
+
articleCommandService.createArticle(p, currentUser);
|
|
205
|
+
} catch (Exception e) { // NO — let CustomizeExceptionHandler handle it
|
|
206
|
+
return ResponseEntity.status(500).body(e.getMessage()); // NO — leaks raw message
|
|
207
|
+
}
|
|
208
|
+
return ResponseEntity.ok().build();
|
|
209
|
+
}
|
|
192
210
|
```
|
|
193
211
|
````
|
|
194
212
|
|
|
195
|
-
Der Glob `paths: ["**/*"]`
|
|
213
|
+
Der Glob `paths: ["**/*"]` sorgt dafür, dass Claude Code diese Rule lädt, sobald du irgendeine Datei im Projekt bearbeitest. Jeder Klassenname, jeder Paketpfad und jeder Exception-Handler in der Rule kommt unverändert aus dem gescannten Quellcode. Auch der reale `CustomizeExceptionHandler` und `JacksonCustomizations` des Projekts tauchen genau so auf, wie sie tatsächlich existieren.
|
|
196
214
|
|
|
197
215
|
</details>
|
|
198
216
|
|
|
199
217
|
<details>
|
|
200
|
-
<summary><strong
|
|
218
|
+
<summary><strong>Ein automatisch erzeugter Seed für <code>decision-log.md</code> (echter Auszug)</strong></summary>
|
|
201
219
|
|
|
202
220
|
```markdown
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
- **Context:**
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
`
|
|
209
|
-
|
|
210
|
-
- **Options considered:**
|
|
211
|
-
|
|
212
|
-
- **Decision:**
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
- **Consequences:**
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
221
|
+
#### 2026-04-26 — Hexagonal ports & adapters with MyBatis-only persistence
|
|
222
|
+
|
|
223
|
+
- **Context:** `io.spring.core.*` exposes `*Repository` ports (e.g.,
|
|
224
|
+
`io.spring.core.article.ArticleRepository`) implemented by
|
|
225
|
+
`io.spring.infrastructure.repository.MyBatis*Repository` adapters.
|
|
226
|
+
The domain layer has zero `org.springframework.*` /
|
|
227
|
+
`org.apache.ibatis.*` / `io.spring.infrastructure.*` imports.
|
|
228
|
+
- **Options considered:** JPA/Hibernate, Spring Data, MyBatis-Plus
|
|
229
|
+
`BaseMapper`. None adopted.
|
|
230
|
+
- **Decision:** MyBatis 3 (`mybatis-spring-boot-starter:2.2.2`) with
|
|
231
|
+
hand-written XML statements under `src/main/resources/mapper/*.xml`.
|
|
232
|
+
Hexagonal port/adapter wiring keeps the domain framework-free.
|
|
233
|
+
- **Consequences:** Every SQL lives in XML — `@Select`/`@Insert`/`@Update`/`@Delete`
|
|
234
|
+
annotations are forbidden. New aggregates require both a
|
|
235
|
+
`core.{aggregate}.{Aggregate}Repository` port AND a
|
|
236
|
+
`MyBatis{Aggregate}Repository` adapter; introducing a JPA repository would
|
|
237
|
+
split the persistence model.
|
|
219
238
|
```
|
|
220
239
|
|
|
221
|
-
Pass 4
|
|
240
|
+
Pass 4 füllt `decision-log.md` mit den Architekturentscheidungen aus `pass2-merged.json`. Spätere Sessions wissen dadurch nicht nur, *wie* die Codebasis aussieht, sondern auch, *warum* sie so aussieht. Jede erwogene Option ("JPA/Hibernate", "MyBatis-Plus") und jede Konsequenz lässt sich direkt im Dependency-Block der `build.gradle` nachvollziehen.
|
|
222
241
|
|
|
223
242
|
</details>
|
|
224
243
|
|
|
225
244
|
---
|
|
226
245
|
|
|
227
|
-
##
|
|
246
|
+
## Getestet auf
|
|
247
|
+
|
|
248
|
+
ClaudeOS-Core wird mit Referenz-Benchmarks auf realen OSS-Projekten ausgeliefert. Hast du es selbst auf einem öffentlichen Repo laufen lassen, [eröffne gern ein Issue](https://github.com/claudeos-core/claudeos-core/issues). Wir nehmen den Eintrag dann in diese Tabelle auf.
|
|
249
|
+
|
|
250
|
+
| Projekt | Stack | Scanned → Generated | Status |
|
|
251
|
+
|---|---|---|---|
|
|
252
|
+
| [`spring-boot-realworld-example-app`](https://github.com/gothinkster/spring-boot-realworld-example-app) | Java 11 · Spring Boot 2.6 · MyBatis · SQLite | 187 → 75 files | ✅ alle 5 Validatoren bestanden |
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Schnellstart
|
|
228
257
|
|
|
229
|
-
**Voraussetzungen:** Node.js 18
|
|
258
|
+
**Voraussetzungen:** Node.js 18 oder neuer und ein installiertes, authentifiziertes [Claude Code](https://docs.anthropic.com/en/docs/claude-code).
|
|
230
259
|
|
|
231
260
|
```bash
|
|
232
|
-
# 1. In
|
|
261
|
+
# 1. In den Projekt-Root wechseln
|
|
233
262
|
cd my-spring-boot-project
|
|
234
263
|
|
|
235
|
-
# 2. init
|
|
264
|
+
# 2. init starten (analysiert deinen Code und lässt Claude die Rules schreiben)
|
|
236
265
|
npx claudeos-core init
|
|
237
266
|
|
|
238
|
-
# 3. Fertig. Claude Code
|
|
267
|
+
# 3. Fertig. Öffne Claude Code und leg los — die Rules sind bereits geladen.
|
|
239
268
|
```
|
|
240
269
|
|
|
241
|
-
|
|
270
|
+
Nach Abschluss von `init` findest du folgende Struktur vor:
|
|
242
271
|
|
|
243
272
|
```
|
|
244
273
|
your-project/
|
|
245
274
|
├── .claude/
|
|
246
|
-
│ └── rules/ ←
|
|
247
|
-
│ ├── 00.core/ (
|
|
248
|
-
│ ├── 10.backend/ (
|
|
249
|
-
│ ├── 20.frontend/ (
|
|
250
|
-
│ ├── 30.security-db/ (
|
|
251
|
-
│ ├── 40.infra/ (env,
|
|
252
|
-
│ ├── 50.sync/ (
|
|
253
|
-
│ ├── 60.memory/ (
|
|
254
|
-
│ ├── 70.domains/{type}/ (
|
|
255
|
-
│ └── 80.verification/ (
|
|
275
|
+
│ └── rules/ ← wird von Claude Code automatisch geladen
|
|
276
|
+
│ ├── 00.core/ (allgemeine Rules: Naming, Architektur)
|
|
277
|
+
│ ├── 10.backend/ (Backend-Stack-Rules, falls vorhanden)
|
|
278
|
+
│ ├── 20.frontend/ (Frontend-Stack-Rules, falls vorhanden)
|
|
279
|
+
│ ├── 30.security-db/ (Konventionen für Security und Datenbank)
|
|
280
|
+
│ ├── 40.infra/ (env, Logging, CI/CD)
|
|
281
|
+
│ ├── 50.sync/ (Hinweise zur Doc-Synchronisation, nur in rules)
|
|
282
|
+
│ ├── 60.memory/ (Memory-Rules aus Pass 4, nur in rules)
|
|
283
|
+
│ ├── 70.domains/{type}/ (Rules pro Domäne, type = backend|frontend)
|
|
284
|
+
│ └── 80.verification/ (Teststrategie und Hinweise zur Build-Verifikation)
|
|
256
285
|
├── claudeos-core/
|
|
257
|
-
│ ├── standard/ ←
|
|
258
|
-
│ │ ├── 00.core/ (
|
|
259
|
-
│ │ ├── 10.backend/ (
|
|
260
|
-
│ │ ├── 20.frontend/ (
|
|
261
|
-
│ │ ├── 30.security-db/ (
|
|
262
|
-
│ │ ├── 40.infra/ (env /
|
|
263
|
-
│ │ ├── 70.domains/{type}/ (
|
|
264
|
-
│ │ ├── 80.verification/ (
|
|
265
|
-
│ │ └── 90.optional/ (stack-
|
|
266
|
-
│ ├── skills/ (
|
|
267
|
-
│ ├── guide/ (
|
|
268
|
-
│ ├── database/ (
|
|
269
|
-
│ ├── mcp-guide/ (
|
|
270
|
-
│ └── memory/ (
|
|
271
|
-
└── CLAUDE.md (
|
|
286
|
+
│ ├── standard/ ← Referenzdokumente, gespiegelt zur Kategoriestruktur
|
|
287
|
+
│ │ ├── 00.core/ (Projektübersicht, Architektur, Naming)
|
|
288
|
+
│ │ ├── 10.backend/ (Backend-Referenz, sofern Backend-Stack vorhanden)
|
|
289
|
+
│ │ ├── 20.frontend/ (Frontend-Referenz, sofern Frontend-Stack vorhanden)
|
|
290
|
+
│ │ ├── 30.security-db/ (Referenz für Security und Datenbank)
|
|
291
|
+
│ │ ├── 40.infra/ (env / Logging / CI-CD-Referenz)
|
|
292
|
+
│ │ ├── 70.domains/{type}/ (Referenz pro Domäne)
|
|
293
|
+
│ │ ├── 80.verification/ (Referenz zu Build, Startup, Tests, nur in standard)
|
|
294
|
+
│ │ └── 90.optional/ (stack-spezifische Extras, nur in standard)
|
|
295
|
+
│ ├── skills/ (wiederverwendbare Patterns, die Claude anwenden kann)
|
|
296
|
+
│ ├── guide/ (How-to-Guides für gängige Aufgaben)
|
|
297
|
+
│ ├── database/ (Schema-Übersicht, Migrationsleitfaden)
|
|
298
|
+
│ ├── mcp-guide/ (Notizen zur MCP-Integration)
|
|
299
|
+
│ └── memory/ (Decision-Log, Failure-Patterns, Compaction)
|
|
300
|
+
└── CLAUDE.md (der Index, den Claude zuerst liest)
|
|
272
301
|
```
|
|
273
302
|
|
|
274
|
-
Kategorien
|
|
303
|
+
Kategorien mit demselben Nummern-Präfix in `rules/` und `standard/` decken denselben Themenbereich ab. So gehören etwa die Rules unter `10.backend` zu den Standards unter `10.backend`. Nur in `rules/` existieren `50.sync` (Hinweise zur Doc-Synchronisation) und `60.memory` (Memory aus Pass 4). Nur in `standard/` liegt `90.optional` (stack-spezifische Extras ohne Enforcement). Alle übrigen Präfixe (`00`, `10`, `20`, `30`, `40`, `70`, `80`) tauchen in BEIDEN Bäumen auf. Damit kennt Claude Code dein Projekt.
|
|
275
304
|
|
|
276
305
|
---
|
|
277
306
|
|
|
278
307
|
## Für wen ist das?
|
|
279
308
|
|
|
280
|
-
|
|
|
309
|
+
| Rolle | Schmerzpunkt, der wegfällt |
|
|
281
310
|
|---|---|
|
|
282
|
-
| **Solo-Entwickler**, der ein neues Projekt mit Claude Code
|
|
283
|
-
| **Team-Lead**, der gemeinsame Standards
|
|
284
|
-
| **
|
|
311
|
+
| **Solo-Entwickler**, der ein neues Projekt mit Claude Code startet | "Claude in jeder Session die eigenen Konventionen erklären" entfällt komplett. `CLAUDE.md` und die `.claude/rules/` mit acht Kategorien entstehen in einem einzigen Durchlauf. |
|
|
312
|
+
| **Team-Lead**, der gemeinsame Standards über mehrere Repos pflegt | `.claude/rules/` driften, sobald jemand Pakete umbenennt, das ORM tauscht oder den Response-Wrapper anpasst. ClaudeOS-Core synchronisiert deterministisch nach. Gleicher Input liefert byte-identisches Output, also kein Diff-Rauschen. |
|
|
313
|
+
| **Du nutzt Claude Code bereits**, hast aber genug davon, generierten Code immer wieder zu reparieren | Falscher Response-Wrapper, falsches Paket-Layout, JPA, obwohl ihr MyBatis fahrt, verstreute `try/catch`-Blöcke trotz zentraler Middleware. Der Scanner liest die echten Konventionen aus, und jeder Claude-Pass läuft gegen eine explizite Pfad-Allowlist. |
|
|
314
|
+
| **Onboarding in ein neues Repo** (Bestandsprojekt, neues Team) | Einmal `init` im Repo ausführen, und du hast eine lebendige Architekturkarte: Stack-Tabelle in der CLAUDE.md, Rules pro Layer mit ✅/❌-Beispielen, dazu ein Decision-Log mit dem "Warum" hinter den großen Entscheidungen wie JPA gegen MyBatis oder REST gegen GraphQL. Fünf Dateien lesen schlägt 5.000 Quelldateien wälzen. |
|
|
315
|
+
| **Du arbeitest auf Koreanisch, Japanisch, Chinesisch oder in 7 weiteren Sprachen** | Die meisten Rule-Generatoren für Claude Code beherrschen nur Englisch. ClaudeOS-Core schreibt das vollständige Set in **10 Sprachen** (`en/ko/ja/zh-CN/es/vi/hi/ru/fr/de`). Die strukturelle Validierung bleibt dabei byte-identisch: Der `claude-md-validator` urteilt unabhängig von der Ausgabesprache gleich. |
|
|
316
|
+
| **Du arbeitest in einem Monorepo** (Turborepo, pnpm/yarn-Workspaces, Lerna) | Backend- und Frontend-Domänen werden in einem Lauf mit getrennten Prompts analysiert. `apps/*/` und `packages/*/` durchläuft das Tool automatisch, und die Rules pro Stack landen unter `70.domains/{type}/`. |
|
|
317
|
+
| **Beitrag zu OSS oder einfach Experimentieren** | Die Ausgabe ist gitignore-freundlich: `claudeos-core/` ist dein lokales Arbeitsverzeichnis, ausgeliefert werden nur `CLAUDE.md` und `.claude/`. Bricht ein Lauf ab, kannst du fortsetzen. Erneutes Ausführen ist idempotent, und manuelle Edits an Rules überleben ohne `--force`. |
|
|
285
318
|
|
|
286
|
-
**Nicht passend, wenn
|
|
319
|
+
**Nicht passend, wenn** du ein One-size-fits-all-Bundle aus Agents, Skills und Rules erwartest, das ohne Scan-Schritt sofort einsatzfähig ist (welches Tool wozu passt, beleuchtet [docs/de/comparison.md](docs/de/comparison.md)). Ebenfalls unpassend, wenn dein Projekt zu keinem der [unterstützten Stacks](#supported-stacks) gehört oder du nur eine einzelne `CLAUDE.md` brauchst. Im letzten Fall reicht das eingebaute `claude /init`; ein zusätzliches Tool zu installieren lohnt sich nicht.
|
|
287
320
|
|
|
288
321
|
---
|
|
289
322
|
|
|
290
|
-
## Wie funktioniert
|
|
323
|
+
## Wie funktioniert es?
|
|
291
324
|
|
|
292
|
-
ClaudeOS-Core
|
|
325
|
+
ClaudeOS-Core dreht den üblichen Claude-Code-Workflow um:
|
|
293
326
|
|
|
294
327
|
```
|
|
295
|
-
Üblich:
|
|
296
|
-
Hier: Code
|
|
328
|
+
Üblich: You describe project → Claude guesses your stack → Claude writes docs
|
|
329
|
+
Hier: Code reads your stack → Code passes confirmed facts to Claude → Claude writes docs from facts
|
|
297
330
|
```
|
|
298
331
|
|
|
299
|
-
Die
|
|
332
|
+
Die Pipeline läuft in **drei Phasen**; vor und nach dem LLM-Aufruf übernimmt jeweils Code:
|
|
333
|
+
|
|
334
|
+
**1. Step A — Scanner (deterministisch, ohne LLM).** Ein Node.js-Scanner durchläuft den Projekt-Root, liest `package.json`, `build.gradle`, `pom.xml` und `pyproject.toml`, parst `.env*`-Dateien und maskiert dabei sensible Variablen wie `PASSWORD/SECRET/TOKEN/JWT_SECRET/...`. Anschließend klassifiziert er das Architekturmuster (5 Java-Patterns A/B/C/D/E, Kotlin CQRS oder Multi-Module, Next.js App- gegenüber Pages-Router, FSD, Components-Pattern), erkennt Domänen und baut eine explizite Allowlist aller tatsächlich existierenden Quellpfade. Das Ergebnis landet in `project-analysis.json`, der Single Source of Truth für alles, was danach kommt.
|
|
335
|
+
|
|
336
|
+
**2. Step B — 4-Pass-Pipeline mit Claude (gebunden an die Fakten aus Step A).**
|
|
337
|
+
- **Pass 1** liest pro Domain-Gruppe repräsentative Dateien und extrahiert dort jeweils etwa 50 bis 100 Konventionen: Response-Wrapper, Logging-Bibliotheken, Error-Handling, Naming-Konventionen, Test-Patterns. Der Pass läuft einmal pro Domain-Gruppe (`max 4 domains, 40 files per group`), dadurch läuft der Kontext nie über.
|
|
338
|
+
- **Pass 2** fasst alle Domain-Analysen zu einem projektweiten Bild zusammen. Bei Widersprüchen gewinnt jeweils die dominante Konvention.
|
|
339
|
+
- **Pass 3** schreibt `CLAUDE.md`, `.claude/rules/`, `claudeos-core/standard/`, Skills und Guides. Der Pass ist in Stages aufgeteilt (`3a` Facts → `3b-core/3b-N` Rules und Standards → `3c-core/3c-N` Skills und Guides → `3d-aux` Database und MCP-Guide), damit jeder Stage-Prompt ins Kontextfenster des LLM passt, auch bei großer `pass2-merged.json`. Hat ein Projekt mindestens 16 Domänen, werden 3b und 3c zusätzlich in Batches mit höchstens 15 Domänen unterteilt.
|
|
340
|
+
- **Pass 4** legt den L4-Memory-Layer an (`decision-log.md`, `failure-patterns.md`, `compaction.md`, `auto-rule-update.md`) und ergänzt die universellen Scaffold-Rules. Pass 4 darf `CLAUDE.md` **unter keinen Umständen verändern**. Maßgeblich bleibt Section 8 aus Pass 3.
|
|
341
|
+
|
|
342
|
+
**3. Step C — Verifikation (deterministisch, ohne LLM).** Fünf Validatoren prüfen das Ergebnis:
|
|
343
|
+
- `claude-md-validator` führt 25 strukturelle Checks an `CLAUDE.md` durch (8 Sections, H3/H4-Counts, Eindeutigkeit der Memory-Dateien, T1-Invariante für die kanonischen Headings). Der Validator ist sprachunabhängig und liefert unabhängig von `--lang` dasselbe Urteil.
|
|
344
|
+
- `content-validator` deckt 10 inhaltliche Checks ab. Dazu zählen die Pfad-Verifikation (`STALE_PATH` fängt erfundene `src/...`-Referenzen ab) und die Erkennung von MANIFEST-Drift.
|
|
345
|
+
- `pass-json-validator` prüft die JSON-Wohlgeformtheit der Pässe 1, 2, 3 und 4 sowie die stack-abhängige Section-Anzahl.
|
|
346
|
+
- `plan-validator` deckt die Konsistenz zwischen Plan und Disk ab. Der Validator ist Legacy und ist seit v2.1.0 weitgehend ein No-op.
|
|
347
|
+
- `sync-checker` prüft über sieben getrackte Verzeichnisse hinweg, ob Disk und `sync-map.json` übereinstimmen.
|
|
348
|
+
|
|
349
|
+
Die drei Severity-Stufen `fail`, `warn` und `advisory` sorgen dafür, dass Warnings die CI nicht wegen LLM-Halluzinationen blockieren, die du selbst beheben kannst.
|
|
300
350
|
|
|
301
|
-
Die
|
|
351
|
+
Die zentrale Invariante, die alles zusammenhält: **Claude darf nur Pfade zitieren, die im Code tatsächlich existieren**, weil Step A eine endliche Allowlist übergibt. Versucht das LLM trotzdem, etwas zu erfinden (selten, aber bei manchen Seeds zu beobachten), fängt Step C es ab, bevor die Docs ausgeliefert werden.
|
|
352
|
+
|
|
353
|
+
Pro-Pass-Details, Marker-basiertes Resume, der Staged-Rules-Workaround für die `.claude/`-Sperre in Claude Code und die Interna der Stack-Erkennung stehen in [docs/de/architecture.md](docs/de/architecture.md).
|
|
302
354
|
|
|
303
355
|
---
|
|
304
356
|
|
|
305
357
|
## Supported Stacks
|
|
306
358
|
|
|
307
|
-
12 Stacks,
|
|
359
|
+
12 Stacks, automatisch aus deinen Projektdateien erkannt:
|
|
308
360
|
|
|
309
361
|
**Backend:** Java/Spring Boot · Kotlin/Spring Boot · Node/Express · Node/Fastify · Node/NestJS · Python/Django · Python/FastAPI · Python/Flask
|
|
310
362
|
|
|
311
363
|
**Frontend:** Node/Next.js · Node/Vite · Angular · Vue/Nuxt
|
|
312
364
|
|
|
313
|
-
Multi-Stack-Projekte
|
|
365
|
+
Auch Multi-Stack-Projekte funktionieren ohne Zusatzaufwand, etwa ein Spring-Boot-Backend zusammen mit einem Next.js-Frontend.
|
|
314
366
|
|
|
315
|
-
Erkennungsregeln und
|
|
367
|
+
Erkennungsregeln und die Felder, die jeder Scanner extrahiert, beschreibt [docs/de/stacks.md](docs/de/stacks.md).
|
|
316
368
|
|
|
317
369
|
---
|
|
318
370
|
|
|
319
371
|
## Täglicher Workflow
|
|
320
372
|
|
|
321
|
-
Drei Befehle decken
|
|
373
|
+
Drei Befehle decken rund 95 Prozent aller Anwendungsfälle ab:
|
|
322
374
|
|
|
323
375
|
```bash
|
|
324
|
-
#
|
|
376
|
+
# Erstmals auf einem Projekt
|
|
325
377
|
npx claudeos-core init
|
|
326
378
|
|
|
327
|
-
#
|
|
379
|
+
# Nach manuellen Änderungen an Standards oder Rules
|
|
328
380
|
npx claudeos-core lint
|
|
329
381
|
|
|
330
|
-
# Health-Check (vor Commits oder in CI
|
|
382
|
+
# Health-Check (vor Commits oder in der CI)
|
|
331
383
|
npx claudeos-core health
|
|
332
384
|
```
|
|
333
385
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
```bash
|
|
337
|
-
# Failure-Patterns-Log verdichten (regelmäßig ausführen)
|
|
338
|
-
npx claudeos-core memory compact
|
|
339
|
-
|
|
340
|
-
# Häufige Failure-Patterns zu Vorschlagsregeln hochstufen
|
|
341
|
-
npx claudeos-core memory propose-rules
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
Die vollständigen Optionen jedes Befehls finden Sie in [docs/de/commands.md](docs/de/commands.md).
|
|
386
|
+
Die vollständigen Optionen pro Befehl listet [docs/de/commands.md](docs/de/commands.md). Die Memory-Layer-Befehle (`memory compact`, `memory propose-rules`) beschreibt der Abschnitt [Memory Layer](#memory-layer-optional-für-langlebige-projekte) weiter unten.
|
|
345
387
|
|
|
346
388
|
---
|
|
347
389
|
|
|
348
|
-
## Was
|
|
390
|
+
## Was es anders macht
|
|
349
391
|
|
|
350
|
-
Die meisten Claude
|
|
392
|
+
Die meisten Documentation-Tools für Claude Code generieren aus einer Beschreibung: Du erzählst dem Tool, was zu tun ist, und das Tool sagt es Claude weiter. ClaudeOS-Core geht direkt vom Quellcode aus. Erst liest das Tool, dann reicht es nur die bestätigten Fakten an Claude durch, und Claude schreibt ausschließlich darüber.
|
|
351
393
|
|
|
352
|
-
|
|
394
|
+
Daraus folgen drei konkrete Effekte:
|
|
353
395
|
|
|
354
|
-
1. **Deterministische Stack-Erkennung.** Gleiches Projekt
|
|
355
|
-
2. **Keine erfundenen Pfade.** Der Pass-3-Prompt
|
|
356
|
-
3. **Multi-Stack-fähig.** Backend- und Frontend-Domänen verwenden im selben Lauf
|
|
396
|
+
1. **Deterministische Stack-Erkennung.** Gleiches Projekt plus gleicher Code ergibt gleiche Ausgabe. Es gibt kein "diesmal hat Claude anders gewürfelt".
|
|
397
|
+
2. **Keine erfundenen Pfade.** Der Pass-3-Prompt führt jeden erlaubten Quellpfad explizit auf, deshalb kann Claude nichts zitieren, was im Code nicht existiert.
|
|
398
|
+
3. **Multi-Stack-fähig.** Backend- und Frontend-Domänen verwenden im selben Lauf jeweils eigene Analyse-Prompts.
|
|
357
399
|
|
|
358
|
-
Einen
|
|
400
|
+
Einen Side-by-Side-Vergleich zum Scope anderer Tools liefert [docs/de/comparison.md](docs/de/comparison.md). Es geht dort um **was jedes Tool tut**, nicht um **welches besser ist**. Die meisten ergänzen sich gegenseitig.
|
|
359
401
|
|
|
360
402
|
---
|
|
361
403
|
|
|
362
|
-
## Verifikation (nach
|
|
404
|
+
## Verifikation (nach Generierung)
|
|
363
405
|
|
|
364
|
-
|
|
406
|
+
Sobald Claude die Docs geschrieben hat, übernimmt wieder der Code und prüft sie. Fünf separate Validatoren stehen bereit:
|
|
365
407
|
|
|
366
|
-
| Validator |
|
|
408
|
+
| Validator | Prüfgegenstand | Ausgeführt von |
|
|
367
409
|
|---|---|---|
|
|
368
|
-
| `claude-md-validator` |
|
|
369
|
-
| `content-validator` |
|
|
370
|
-
| `pass-json-validator` | Pass
|
|
371
|
-
| `plan-validator` |
|
|
372
|
-
| `sync-checker` |
|
|
410
|
+
| `claude-md-validator` | strukturelle Invarianten der CLAUDE.md (8 Sections, sprachunabhängig) | `claudeos-core lint` |
|
|
411
|
+
| `content-validator` | Pfadangaben existieren tatsächlich; Konsistenz des Manifests | `health` (advisory) |
|
|
412
|
+
| `pass-json-validator` | Ausgaben aus Pass 1 / 2 / 3 / 4 sind wohlgeformtes JSON | `health` (warn) |
|
|
413
|
+
| `plan-validator` | gespeicherter Plan stimmt mit dem Stand auf der Disk überein | `health` (fail-on-error) |
|
|
414
|
+
| `sync-checker` | Dateien auf der Disk passen zu den Einträgen in `sync-map.json` (Erkennung von verwaisten oder unregistrierten Dateien) | `health` (fail-on-error) |
|
|
373
415
|
|
|
374
|
-
Ein `health-checker` orchestriert die vier
|
|
416
|
+
Ein `health-checker` orchestriert die vier Runtime-Validatoren in den drei Severity-Stufen fail, warn und advisory und liefert einen für die CI passenden Exit-Code zurück. Den `claude-md-validator` startest du separat über den `lint`-Befehl, denn struktureller Drift ist keine weiche Warnung, sondern ein Signal für ein Re-Init. Du kannst den Check jederzeit auslösen:
|
|
375
417
|
|
|
376
418
|
```bash
|
|
377
419
|
npx claudeos-core health
|
|
378
420
|
```
|
|
379
421
|
|
|
380
|
-
|
|
422
|
+
Was jeder einzelne Validator im Detail prüft, beschreibt [docs/de/verification.md](docs/de/verification.md).
|
|
381
423
|
|
|
382
424
|
---
|
|
383
425
|
|
|
384
|
-
## Memory Layer (optional, für
|
|
426
|
+
## Memory Layer (optional, für langlebige Projekte)
|
|
385
427
|
|
|
386
|
-
|
|
428
|
+
Über die Scaffolding-Pipeline hinaus legt ClaudeOS-Core einen `claudeos-core/memory/`-Ordner an, sobald der Projektkontext über eine einzelne Session hinaus tragen soll. Der Layer ist optional. Wenn dir `CLAUDE.md` plus Rules genügen, kannst du ihn ignorieren.
|
|
387
429
|
|
|
388
|
-
|
|
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
|
|
430
|
+
Vier Dateien, alle von Pass 4 geschrieben:
|
|
392
431
|
|
|
393
|
-
|
|
432
|
+
- `decision-log.md`: Append-only-Log nach dem Muster "warum X statt Y", geseedet aus `pass2-merged.json`.
|
|
433
|
+
- `failure-patterns.md`: wiederkehrende Fehler mit Frequenz- und Importance-Scores.
|
|
434
|
+
- `compaction.md`: wie der Memory-Bereich im Lauf der Zeit automatisch komprimiert wird.
|
|
435
|
+
- `auto-rule-update.md`: Patterns, die später eigene Rules werden sollten.
|
|
394
436
|
|
|
395
|
-
|
|
437
|
+
Zwei Befehle pflegen diesen Layer auf Dauer:
|
|
438
|
+
|
|
439
|
+
```bash
|
|
440
|
+
# Failure-Patterns-Log komprimieren (regelmäßig ausführen)
|
|
441
|
+
npx claudeos-core memory compact
|
|
442
|
+
|
|
443
|
+
# Häufige Failure-Patterns zu Rule-Vorschlägen befördern
|
|
444
|
+
npx claudeos-core memory propose-rules
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
Memory-Modell und Lifecycle erläutert [docs/de/memory-layer.md](docs/de/memory-layer.md).
|
|
396
448
|
|
|
397
449
|
---
|
|
398
450
|
|
|
399
451
|
## FAQ
|
|
400
452
|
|
|
401
453
|
**F: Brauche ich einen Claude-API-Key?**
|
|
402
|
-
A: Nein. ClaudeOS-Core
|
|
454
|
+
A: Nein. ClaudeOS-Core greift auf deine bestehende Claude-Code-Installation zurück und schickt Prompts an `claude -p` auf deinem Rechner. Zusätzliche Accounts sind nicht nötig.
|
|
403
455
|
|
|
404
|
-
**F: Überschreibt das meine
|
|
405
|
-
A:
|
|
456
|
+
**F: Überschreibt das Tool meine vorhandene CLAUDE.md oder die `.claude/rules/`?**
|
|
457
|
+
A: Beim ersten Lauf auf einem frischen Projekt werden sie angelegt. Ohne `--force` bleiben deine Edits beim erneuten Ausführen erhalten, weil das Tool die Pass-Marker des vorherigen Laufs erkennt und die jeweiligen Pässe überspringt. Mit `--force` wird alles gelöscht und neu erzeugt, deine Änderungen gehen dabei verloren. Genau das ist die Bedeutung von `--force`. Mehr dazu in [docs/de/safety.md](docs/de/safety.md).
|
|
406
458
|
|
|
407
|
-
**F: Mein Stack wird nicht unterstützt. Kann ich einen
|
|
408
|
-
A: Ja.
|
|
459
|
+
**F: Mein Stack wird nicht unterstützt. Kann ich einen ergänzen?**
|
|
460
|
+
A: Ja. Für einen neuen Stack brauchst du etwa drei Prompt-Templates und einen Domain-Scanner. Den 8-Schritt-Leitfaden findest du in [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
409
461
|
|
|
410
|
-
**F: Wie
|
|
411
|
-
A: `npx claudeos-core init --lang de`. 10 Sprachen
|
|
462
|
+
**F: Wie erzeuge ich Docs auf Deutsch (oder in einer anderen Sprache)?**
|
|
463
|
+
A: Über `npx claudeos-core init --lang de`. Unterstützt sind 10 Sprachen: en, ko, ja, zh-CN, es, vi, hi, ru, fr, de.
|
|
412
464
|
|
|
413
465
|
**F: Funktioniert das mit Monorepos?**
|
|
414
|
-
A: Ja
|
|
466
|
+
A: Ja. Der Stack-Detector erkennt Turborepo (`turbo.json`), pnpm-Workspaces (`pnpm-workspace.yaml`), Lerna (`lerna.json`) sowie npm- und yarn-Workspaces (`package.json#workspaces`). Jede App bekommt ihre eigene Analyse. Andere Monorepo-Layouts wie NX werden nicht eigens erkannt, doch die generischen Patterns `apps/*/` und `packages/*/` greifen die Stack-Scanner trotzdem auf.
|
|
415
467
|
|
|
416
|
-
**F: Was, wenn Claude Code
|
|
417
|
-
A:
|
|
468
|
+
**F: Was, wenn Claude Code Rules schreibt, mit denen ich nicht einverstanden bin?**
|
|
469
|
+
A: Bearbeite sie direkt. Anschließend lässt du `npx claudeos-core lint` laufen, um zu prüfen, ob die CLAUDE.md weiterhin strukturell gültig ist. Bei späteren `init`-Läufen ohne `--force` bleiben deine Änderungen erhalten, denn der Resume-Mechanismus überspringt jeden Pass, dessen Marker bereits existiert.
|
|
418
470
|
|
|
419
471
|
**F: Wo melde ich Bugs?**
|
|
420
|
-
A: [GitHub Issues](https://github.com/claudeos-core/claudeos-core/issues).
|
|
472
|
+
A: Über die [GitHub Issues](https://github.com/claudeos-core/claudeos-core/issues). Sicherheitsrelevante Themen behandelt [SECURITY.md](SECURITY.md).
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
476
|
+
## Wenn das Zeit gespart hat
|
|
477
|
+
|
|
478
|
+
Ein ⭐ auf GitHub erhöht die Sichtbarkeit des Projekts und hilft anderen, es zu finden. Issues, PRs und Beiträge zu Stack-Templates sind alle willkommen. Details stehen in [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
421
479
|
|
|
422
480
|
---
|
|
423
481
|
|
|
424
|
-
##
|
|
482
|
+
## Dokumentation
|
|
425
483
|
|
|
426
|
-
| Thema |
|
|
484
|
+
| Thema | Hier nachlesen |
|
|
427
485
|
|---|---|
|
|
428
486
|
| Wie die 4-Pass-Pipeline funktioniert (tiefer als das Diagramm) | [docs/de/architecture.md](docs/de/architecture.md) |
|
|
429
|
-
| Visuelle Diagramme (Mermaid)
|
|
487
|
+
| Visuelle Diagramme der Architektur (Mermaid) | [docs/de/diagrams.md](docs/de/diagrams.md) |
|
|
430
488
|
| Stack-Erkennung — wonach jeder Scanner sucht | [docs/de/stacks.md](docs/de/stacks.md) |
|
|
431
|
-
| Memory Layer — Decision
|
|
489
|
+
| Memory Layer — Decision-Logs und Failure-Patterns | [docs/de/memory-layer.md](docs/de/memory-layer.md) |
|
|
432
490
|
| Alle 5 Validatoren im Detail | [docs/de/verification.md](docs/de/verification.md) |
|
|
433
|
-
|
|
|
491
|
+
| Sämtliche CLI-Befehle und ihre Optionen | [docs/de/commands.md](docs/de/commands.md) |
|
|
434
492
|
| Manuelle Installation (ohne `npx`) | [docs/de/manual-installation.md](docs/de/manual-installation.md) |
|
|
435
493
|
| Scanner-Overrides — `.claudeos-scan.json` | [docs/de/advanced-config.md](docs/de/advanced-config.md) |
|
|
436
|
-
| Sicherheit:
|
|
437
|
-
| Vergleich mit ähnlichen Tools (Scope,
|
|
438
|
-
| Fehler und
|
|
494
|
+
| Sicherheit: was bei einem Re-Init erhalten bleibt | [docs/de/safety.md](docs/de/safety.md) |
|
|
495
|
+
| Vergleich mit ähnlichen Tools (Scope, keine Qualitätsbewertung) | [docs/de/comparison.md](docs/de/comparison.md) |
|
|
496
|
+
| Fehler und Recovery | [docs/de/troubleshooting.md](docs/de/troubleshooting.md) |
|
|
439
497
|
|
|
440
498
|
---
|
|
441
499
|
|
|
442
500
|
## Mitwirken
|
|
443
501
|
|
|
444
|
-
Beiträge willkommen
|
|
502
|
+
Beiträge sind willkommen, sei es durch zusätzliche Stack-Unterstützung, bessere Prompts oder Bugfixes. Details stehen in [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
445
503
|
|
|
446
|
-
Verhaltenskodex und Sicherheitsrichtlinie
|
|
504
|
+
Verhaltenskodex und Sicherheitsrichtlinie liegen in [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) und [SECURITY.md](SECURITY.md).
|
|
447
505
|
|
|
448
|
-
##
|
|
506
|
+
## Lizenz
|
|
449
507
|
|
|
450
|
-
[ISC](LICENSE)
|
|
508
|
+
[ISC License](LICENSE). Frei für jeden Einsatzzweck, einschließlich kommerzieller Nutzung. © 2025–2026 ClaudeOS-Core contributors.
|
|
451
509
|
|
|
452
510
|
---
|
|
453
511
|
|
|
454
|
-
<sub>
|
|
512
|
+
<sub>Gepflegt vom Team [claudeos-core](https://github.com/claudeos-core). Issues und PRs landen unter <https://github.com/claudeos-core/claudeos-core>.</sub>
|