claudeos-core 2.2.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1664 -907
- package/CONTRIBUTING.md +92 -92
- package/README.de.md +28 -0
- package/README.es.md +28 -0
- package/README.fr.md +28 -0
- package/README.hi.md +28 -0
- package/README.ja.md +28 -0
- package/README.ko.md +1014 -986
- package/README.md +1016 -987
- package/README.ru.md +28 -0
- package/README.vi.md +1015 -987
- package/README.zh-CN.md +28 -0
- package/bin/cli.js +152 -148
- package/bin/commands/init.js +1673 -1554
- package/bin/commands/lint.js +62 -0
- package/bin/commands/memory.js +438 -438
- package/bin/lib/cli-utils.js +206 -206
- package/claude-md-validator/index.js +184 -0
- package/claude-md-validator/reporter.js +66 -0
- package/claude-md-validator/structural-checks.js +528 -0
- package/content-validator/index.js +666 -441
- package/lib/expected-guides.js +23 -23
- package/lib/expected-outputs.js +90 -90
- package/lib/language-config.js +35 -35
- package/lib/memory-scaffold.js +1058 -1054
- package/lib/plan-parser.js +165 -165
- package/lib/staged-rules.js +118 -118
- package/manifest-generator/index.js +174 -174
- package/package.json +90 -87
- package/pass-json-validator/index.js +337 -337
- package/pass-prompts/templates/common/claude-md-scaffold.md +52 -10
- package/pass-prompts/templates/common/pass3-footer.md +402 -224
- package/pass-prompts/templates/common/pass3b-core-header.md +43 -0
- package/pass-prompts/templates/common/pass4.md +375 -305
- package/pass-prompts/templates/common/staging-override.md +26 -26
- package/pass-prompts/templates/node-vite/pass1.md +117 -117
- package/pass-prompts/templates/node-vite/pass2.md +78 -78
- package/pass-prompts/templates/python-flask/pass1.md +119 -119
- package/pass-prompts/templates/python-flask/pass2.md +85 -85
- package/plan-installer/domain-grouper.js +76 -76
- package/plan-installer/index.js +137 -137
- package/plan-installer/prompt-generator.js +188 -145
- package/plan-installer/scanners/scan-frontend.js +505 -473
- package/plan-installer/scanners/scan-java.js +226 -226
- package/plan-installer/scanners/scan-node.js +57 -57
- package/plan-installer/scanners/scan-python.js +85 -85
- package/plan-installer/stack-detector.js +482 -482
- package/plan-installer/structure-scanner.js +65 -65
- package/sync-checker/index.js +177 -177
package/CONTRIBUTING.md
CHANGED
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
# Contributing to ClaudeOS-Core
|
|
2
|
-
|
|
3
|
-
Thank you for your interest in contributing! Here's how you can help.
|
|
4
|
-
|
|
5
|
-
## Areas Where Help Is Needed
|
|
6
|
-
|
|
7
|
-
- **New stack templates** — Ruby/Rails, Go (Gin/Fiber/Echo), PHP (Laravel/Symfony), Rust (Axum/Actix), Svelte/SvelteKit, Remix
|
|
8
|
-
- **IDE integration** — VS Code extension, IntelliJ plugin
|
|
9
|
-
- **CI/CD templates** — GitLab CI, CircleCI, Jenkins examples (GitHub Actions already shipped — see `.github/workflows/test.yml`)
|
|
10
|
-
- **Custom template authoring** — User-defined pass1/pass2/pass3 templates for niche stacks
|
|
11
|
-
- **Verification coverage** — Additional content-validator checks, stack-specific lint rules
|
|
12
|
-
|
|
13
|
-
## What's Already Done (no longer needed)
|
|
14
|
-
|
|
15
|
-
- ~~Monorepo support~~ — Turborepo, pnpm workspaces, Lerna, npm/yarn workspaces
|
|
16
|
-
- ~~Localization~~ — 10 languages (EN, KO, ZH-CN, JA, ES, VI, HI, RU, FR, DE)
|
|
17
|
-
- ~~Kotlin / Spring Boot~~ — CQRS, BFF, multi-module support
|
|
18
|
-
- ~~Flask / FastAPI / Django dedicated templates~~ — each uses its own `pass1/2/3.md`
|
|
19
|
-
- ~~NestJS / Fastify / Vite dedicated templates~~ — no longer sharing `node-express`
|
|
20
|
-
- ~~L4 Memory layer (v2.0.0)~~ — Pass 4 + `60.memory/` rules + `memory/` files
|
|
21
|
-
- ~~GitHub Actions CI~~ — `.github/workflows/test.yml` (ubuntu × windows × macOS, Node 18/20)
|
|
22
|
-
|
|
23
|
-
## Getting Started
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
git clone https://github.com/claudeos-core/claudeos-core.git
|
|
27
|
-
cd claudeos-core
|
|
28
|
-
npm install
|
|
29
|
-
npm test # 489 tests, ~2s
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## How to Contribute
|
|
33
|
-
|
|
34
|
-
1. Fork the repository
|
|
35
|
-
2. Create a feature branch: `git checkout -b feature/your-feature`
|
|
36
|
-
3. Make your changes
|
|
37
|
-
4. Run the full test suite: `npm test`
|
|
38
|
-
5. Sanity-check on a sample project (optional): `npx . init --lang en` in a test directory
|
|
39
|
-
6. Commit: `git commit -m "feat: your feature description"`
|
|
40
|
-
7. Push: `git push origin feature/your-feature`
|
|
41
|
-
8. Open a Pull Request
|
|
42
|
-
|
|
43
|
-
## Testing
|
|
44
|
-
|
|
45
|
-
- **Runner:** built-in Node test runner (`node --test`), no Jest/Mocha dependency.
|
|
46
|
-
- **Current:** 489 tests across 24 files. CI runs the full matrix (ubuntu × windows × macOS × Node 18/20).
|
|
47
|
-
- **Offline / no `claude` CLI:** the 5 tests in `tests/lang-aware-fallback.test.js` assert that translation throws when Claude is unavailable. The test file sets `process.env.CLAUDEOS_SKIP_TRANSLATION = "1"` at module top to make this deterministic regardless of CLI availability. CI also sets it at the job level in `.github/workflows/test.yml`.
|
|
48
|
-
- **Adding new tests:** prefer a dedicated file (`tests/your-feature.test.js`). Use `os.tmpdir()` + `fs.rmSync(dir, {recursive: true, force: true})` cleanup, consistent with existing suites (see `tests/pass3-guards.test.js` for the canonical pattern).
|
|
49
|
-
- **Integration tests:** `tests/verification-tools.test.js` spawns the CLI tools against temp project fixtures — follow that pattern for any new verification tool.
|
|
50
|
-
|
|
51
|
-
## Adding a New Stack Template
|
|
52
|
-
|
|
53
|
-
Reference implementations:
|
|
54
|
-
- Simple single-stack backend: `pass-prompts/templates/python-flask/`
|
|
55
|
-
- Complex backend with architecture variants: `pass-prompts/templates/kotlin-spring/` (CQRS, multi-module)
|
|
56
|
-
- Frontend-only SPA: `pass-prompts/templates/node-vite/` (no backend, client-side routing)
|
|
57
|
-
|
|
58
|
-
**Steps:**
|
|
59
|
-
|
|
60
|
-
1. **Create template prompts** — `pass-prompts/templates/your-stack/{pass1.md, pass2.md, pass3.md}`. Follow sibling stacks for structure. Pass 4 uses shared `common/pass4.md` so you don't need a stack-specific memory prompt.
|
|
61
|
-
2. **Add a domain scanner** — `plan-installer/scanners/scan-{language}.js` exporting a function that returns `{domains, rootPackage?}`. See `scan-java.js` (5 patterns + fallback) or `scan-python.js` (framework-aware) for patterns.
|
|
62
|
-
3. **Wire scanner into dispatcher** — `plan-installer/structure-scanner.js` — add a case in `scanStructure()` for your language.
|
|
63
|
-
4. **Update stack detection** — `plan-installer/stack-detector.js` — extend `detectStack()` to identify the framework from manifest files (`package.json`, `Gemfile`, `go.mod`, etc.).
|
|
64
|
-
5. **Route to template** — `plan-installer/domain-grouper.js` — extend `selectTemplates()` to map `framework: "your-framework"` to the template directory name.
|
|
65
|
-
6. **Set active-domain categories** — `plan-installer/domain-grouper.js` — extend `determineActiveDomains()` so the right standard categories apply (backend / frontend / security-db / infra / verification).
|
|
66
|
-
7. **Add tests** — extend `tests/stack-detector.test.js`, add `tests/scan-YOUR-LANGUAGE.test.js`, extend `tests/domain-grouper.test.js`.
|
|
67
|
-
8. **Update docs** — `README.md` "Supported Stacks" table + FAQ / Troubleshooting entries + `CHANGELOG.md` entry.
|
|
68
|
-
|
|
69
|
-
## Code Style
|
|
70
|
-
|
|
71
|
-
- Node.js CommonJS (`require`/`module.exports`), no TypeScript
|
|
72
|
-
- 2-space indentation, semicolons required
|
|
73
|
-
- `const` over `let` where possible
|
|
74
|
-
- Custom `InitError` class for user-facing failures; named catch variable (`catch (_e)`) when the error is intentionally ignored
|
|
75
|
-
- Windows compatibility: normalize paths with `path.join` + `.replace(/\\/g, "/")` before passing to `glob` (backslashes break glob patterns on Windows)
|
|
76
|
-
- BOM-aware text checks: `String.prototype.trim` does NOT remove U+FEFF — use `.replace(/^\uFEFF/, "").trim()` when checking for empty content
|
|
77
|
-
|
|
78
|
-
## Commit Message Convention
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
feat: add Ruby/Rails template
|
|
82
|
-
fix: correct Vue domain scanning on Windows
|
|
83
|
-
docs: update README for new stack
|
|
84
|
-
refactor: simplify splitDomainGroups
|
|
85
|
-
test: add coverage for scan-rust.js
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
CHANGELOG entries should be written in English regardless of the output language of generated docs.
|
|
89
|
-
|
|
90
|
-
## License
|
|
91
|
-
|
|
92
|
-
By contributing, you agree that your contributions will be licensed under the ISC License.
|
|
1
|
+
# Contributing to ClaudeOS-Core
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing! Here's how you can help.
|
|
4
|
+
|
|
5
|
+
## Areas Where Help Is Needed
|
|
6
|
+
|
|
7
|
+
- **New stack templates** — Ruby/Rails, Go (Gin/Fiber/Echo), PHP (Laravel/Symfony), Rust (Axum/Actix), Svelte/SvelteKit, Remix
|
|
8
|
+
- **IDE integration** — VS Code extension, IntelliJ plugin
|
|
9
|
+
- **CI/CD templates** — GitLab CI, CircleCI, Jenkins examples (GitHub Actions already shipped — see `.github/workflows/test.yml`)
|
|
10
|
+
- **Custom template authoring** — User-defined pass1/pass2/pass3 templates for niche stacks
|
|
11
|
+
- **Verification coverage** — Additional content-validator checks, stack-specific lint rules
|
|
12
|
+
|
|
13
|
+
## What's Already Done (no longer needed)
|
|
14
|
+
|
|
15
|
+
- ~~Monorepo support~~ — Turborepo, pnpm workspaces, Lerna, npm/yarn workspaces
|
|
16
|
+
- ~~Localization~~ — 10 languages (EN, KO, ZH-CN, JA, ES, VI, HI, RU, FR, DE)
|
|
17
|
+
- ~~Kotlin / Spring Boot~~ — CQRS, BFF, multi-module support
|
|
18
|
+
- ~~Flask / FastAPI / Django dedicated templates~~ — each uses its own `pass1/2/3.md`
|
|
19
|
+
- ~~NestJS / Fastify / Vite dedicated templates~~ — no longer sharing `node-express`
|
|
20
|
+
- ~~L4 Memory layer (v2.0.0)~~ — Pass 4 + `60.memory/` rules + `memory/` files
|
|
21
|
+
- ~~GitHub Actions CI~~ — `.github/workflows/test.yml` (ubuntu × windows × macOS, Node 18/20)
|
|
22
|
+
|
|
23
|
+
## Getting Started
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
git clone https://github.com/claudeos-core/claudeos-core.git
|
|
27
|
+
cd claudeos-core
|
|
28
|
+
npm install
|
|
29
|
+
npm test # 489 tests, ~2s
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## How to Contribute
|
|
33
|
+
|
|
34
|
+
1. Fork the repository
|
|
35
|
+
2. Create a feature branch: `git checkout -b feature/your-feature`
|
|
36
|
+
3. Make your changes
|
|
37
|
+
4. Run the full test suite: `npm test`
|
|
38
|
+
5. Sanity-check on a sample project (optional): `npx . init --lang en` in a test directory
|
|
39
|
+
6. Commit: `git commit -m "feat: your feature description"`
|
|
40
|
+
7. Push: `git push origin feature/your-feature`
|
|
41
|
+
8. Open a Pull Request
|
|
42
|
+
|
|
43
|
+
## Testing
|
|
44
|
+
|
|
45
|
+
- **Runner:** built-in Node test runner (`node --test`), no Jest/Mocha dependency.
|
|
46
|
+
- **Current:** 489 tests across 24 files. CI runs the full matrix (ubuntu × windows × macOS × Node 18/20).
|
|
47
|
+
- **Offline / no `claude` CLI:** the 5 tests in `tests/lang-aware-fallback.test.js` assert that translation throws when Claude is unavailable. The test file sets `process.env.CLAUDEOS_SKIP_TRANSLATION = "1"` at module top to make this deterministic regardless of CLI availability. CI also sets it at the job level in `.github/workflows/test.yml`.
|
|
48
|
+
- **Adding new tests:** prefer a dedicated file (`tests/your-feature.test.js`). Use `os.tmpdir()` + `fs.rmSync(dir, {recursive: true, force: true})` cleanup, consistent with existing suites (see `tests/pass3-guards.test.js` for the canonical pattern).
|
|
49
|
+
- **Integration tests:** `tests/verification-tools.test.js` spawns the CLI tools against temp project fixtures — follow that pattern for any new verification tool.
|
|
50
|
+
|
|
51
|
+
## Adding a New Stack Template
|
|
52
|
+
|
|
53
|
+
Reference implementations:
|
|
54
|
+
- Simple single-stack backend: `pass-prompts/templates/python-flask/`
|
|
55
|
+
- Complex backend with architecture variants: `pass-prompts/templates/kotlin-spring/` (CQRS, multi-module)
|
|
56
|
+
- Frontend-only SPA: `pass-prompts/templates/node-vite/` (no backend, client-side routing)
|
|
57
|
+
|
|
58
|
+
**Steps:**
|
|
59
|
+
|
|
60
|
+
1. **Create template prompts** — `pass-prompts/templates/your-stack/{pass1.md, pass2.md, pass3.md}`. Follow sibling stacks for structure. Pass 4 uses shared `common/pass4.md` so you don't need a stack-specific memory prompt.
|
|
61
|
+
2. **Add a domain scanner** — `plan-installer/scanners/scan-{language}.js` exporting a function that returns `{domains, rootPackage?}`. See `scan-java.js` (5 patterns + fallback) or `scan-python.js` (framework-aware) for patterns.
|
|
62
|
+
3. **Wire scanner into dispatcher** — `plan-installer/structure-scanner.js` — add a case in `scanStructure()` for your language.
|
|
63
|
+
4. **Update stack detection** — `plan-installer/stack-detector.js` — extend `detectStack()` to identify the framework from manifest files (`package.json`, `Gemfile`, `go.mod`, etc.).
|
|
64
|
+
5. **Route to template** — `plan-installer/domain-grouper.js` — extend `selectTemplates()` to map `framework: "your-framework"` to the template directory name.
|
|
65
|
+
6. **Set active-domain categories** — `plan-installer/domain-grouper.js` — extend `determineActiveDomains()` so the right standard categories apply (backend / frontend / security-db / infra / verification).
|
|
66
|
+
7. **Add tests** — extend `tests/stack-detector.test.js`, add `tests/scan-YOUR-LANGUAGE.test.js`, extend `tests/domain-grouper.test.js`.
|
|
67
|
+
8. **Update docs** — `README.md` "Supported Stacks" table + FAQ / Troubleshooting entries + `CHANGELOG.md` entry.
|
|
68
|
+
|
|
69
|
+
## Code Style
|
|
70
|
+
|
|
71
|
+
- Node.js CommonJS (`require`/`module.exports`), no TypeScript
|
|
72
|
+
- 2-space indentation, semicolons required
|
|
73
|
+
- `const` over `let` where possible
|
|
74
|
+
- Custom `InitError` class for user-facing failures; named catch variable (`catch (_e)`) when the error is intentionally ignored
|
|
75
|
+
- Windows compatibility: normalize paths with `path.join` + `.replace(/\\/g, "/")` before passing to `glob` (backslashes break glob patterns on Windows)
|
|
76
|
+
- BOM-aware text checks: `String.prototype.trim` does NOT remove U+FEFF — use `.replace(/^\uFEFF/, "").trim()` when checking for empty content
|
|
77
|
+
|
|
78
|
+
## Commit Message Convention
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
feat: add Ruby/Rails template
|
|
82
|
+
fix: correct Vue domain scanning on Windows
|
|
83
|
+
docs: update README for new stack
|
|
84
|
+
refactor: simplify splitDomainGroups
|
|
85
|
+
test: add coverage for scan-rust.js
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
CHANGELOG entries should be written in English regardless of the output language of generated docs.
|
|
89
|
+
|
|
90
|
+
## License
|
|
91
|
+
|
|
92
|
+
By contributing, you agree that your contributions will be licensed under the ISC License.
|
package/README.de.md
CHANGED
|
@@ -69,6 +69,34 @@ Dieser Unterschied summiert sich. 10 Aufgaben/Tag × 20 Minuten gespart = **übe
|
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
+
## Qualitätssicherung nach der Generierung (v2.3.0)
|
|
73
|
+
|
|
74
|
+
Die Generierung ist nur die halbe Miete. Die andere Hälfte besteht darin, **zu wissen, dass die Ausgabe korrekt ist** — über 10 Ausgabesprachen, 11 Stack-Templates und Projekte jeder Größe hinweg. v2.3.0 fügt zwei deterministische Validatoren hinzu, die nach der Generierung laufen und nicht auf LLM-Selbstprüfungen angewiesen sind.
|
|
75
|
+
|
|
76
|
+
### `claude-md-validator` — strukturelle Invarianten
|
|
77
|
+
|
|
78
|
+
Jede generierte `CLAUDE.md` wird gegen 25 strukturelle Invarianten geprüft, die nur sprachinvariante Signale verwenden: Markdown-Syntax (`^## `, `^### `), literale Dateinamen (`decision-log.md`, `failure-patterns.md` — werden nie übersetzt), Anzahl der Abschnitte, Anzahl der Unterabschnitte pro Abschnitt und Anzahl der Tabellenzeilen. Derselbe Validator liefert Byte für Byte identische Urteile für eine `CLAUDE.md`, die in Englisch, Koreanisch, Japanisch, Vietnamesisch, Hindi, Russisch, Spanisch, Chinesisch, Französisch oder Deutsch generiert wurde.
|
|
79
|
+
|
|
80
|
+
Die sprachübergreifende Garantie wird durch Test-Fixtures in allen 10 Sprachen verifiziert, einschließlich Bad-Case-Fixtures in 6 dieser Sprachen, die identische Fehlersignaturen erzeugen. Wenn eine Invariante bei einem vietnamesischen Projekt fehlschlägt, ist die Lösung dieselbe wie bei einem deutschen Projekt.
|
|
81
|
+
|
|
82
|
+
### `content-validator [10/10]` — Prüfung von Pfadangaben und MANIFEST-Konsistenz
|
|
83
|
+
|
|
84
|
+
Liest jede in Backticks eingefasste Pfadreferenz (`src/...`, `.claude/rules/...`, `claudeos-core/skills/...`) aus allen generierten `.md`-Dateien und verifiziert sie gegen das tatsächliche Dateisystem. Fängt zwei Klassen von LLM-Fehlern ab, die bisher kein Tool erkannt hat:
|
|
85
|
+
|
|
86
|
+
- **`STALE_PATH`** — wenn Pass 3 oder Pass 4 einen plausiblen, aber nicht existierenden Pfad erfindet. Typische Fälle: Ableitung von `featureRoutePath.ts` aus einer TypeScript-Konstante namens `FEATURE_ROUTE_PATH`, obwohl die tatsächliche Datei `routePath.ts` heißt; Annahme von `src/main.tsx` nach Vite-Konvention in einem Multi-Entry-Projekt; Annahme von `src/__mocks__/handlers.ts` aus der MSW-Dokumentation, obwohl das Projekt keine Tests hat.
|
|
87
|
+
- **`MANIFEST_DRIFT`** — wenn `claudeos-core/skills/00.shared/MANIFEST.md` einen Skill registriert, den `CLAUDE.md §6` nicht erwähnt (oder umgekehrt). Erkennt das häufige Orchestrator-plus-Sub-Skills-Layout, bei dem `CLAUDE.md §6` ein Einstiegspunkt und `MANIFEST.md` das vollständige Register ist — Sub-Skills werden als über ihren übergeordneten Orchestrator abgedeckt betrachtet.
|
|
88
|
+
|
|
89
|
+
Der Validator ist gepaart mit Prompt-Time-Prävention in `pass3-footer.md` und `pass4.md`: Anti-Pattern-Blöcke dokumentieren die spezifischen Halluzinationsklassen (Parent-Directory-Präfix, Vite/MSW/Vitest/Jest/RTL-Bibliothekskonventionen), und explizite positive Guidance weist an, Regeln nach Verzeichnis zu scopen, wenn ein konkreter Dateiname nicht in `pass3a-facts.md` steht.
|
|
90
|
+
|
|
91
|
+
### Validierung auf beliebigem Projekt ausführen
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npx claudeos-core health # alle Validatoren — einzelnes Go/No-Go-Urteil
|
|
95
|
+
npx claudeos-core lint # nur strukturelle Invarianten von CLAUDE.md (beliebige Sprache)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
72
100
|
## Unterstützte Stacks
|
|
73
101
|
|
|
74
102
|
| Stack | Erkennung | Analysetiefe |
|
package/README.es.md
CHANGED
|
@@ -69,6 +69,34 @@ Esta diferencia se acumula. 10 tareas/día × 20 minutos ahorrados = **más de 3
|
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
+
## Aseguramiento de Calidad Post-Generación (v2.3.0)
|
|
73
|
+
|
|
74
|
+
La generación es solo la mitad del problema. La otra mitad es **saber que la salida es correcta** — a través de 10 idiomas de salida, 11 plantillas de stack y proyectos de cualquier tamaño. v2.3.0 añade dos validadores deterministas que se ejecutan después de la generación y no dependen de auto-verificaciones del LLM.
|
|
75
|
+
|
|
76
|
+
### `claude-md-validator` — invariantes estructurales
|
|
77
|
+
|
|
78
|
+
Cada `CLAUDE.md` generado se verifica contra 25 invariantes estructurales que usan solo señales independientes del idioma: sintaxis markdown (`^## `, `^### `), nombres de archivo literales (`decision-log.md`, `failure-patterns.md` — nunca traducidos), recuento de secciones, recuento de sub-secciones por sección y recuento de filas de tabla. El mismo validador, byte por byte, produce veredictos idénticos sobre un `CLAUDE.md` generado en inglés, coreano, japonés, vietnamita, hindi, ruso, español, chino, francés o alemán.
|
|
79
|
+
|
|
80
|
+
La garantía cross-idioma se verifica mediante fixtures de prueba en los 10 idiomas, incluyendo fixtures de casos malos en 6 de esos idiomas que producen firmas de error idénticas. Cuando un invariante falla en un proyecto en vietnamita, la solución es la misma que cuando falla en un proyecto en alemán.
|
|
81
|
+
|
|
82
|
+
### `content-validator [10/10]` — verificación de afirmaciones de ruta y consistencia de MANIFEST
|
|
83
|
+
|
|
84
|
+
Lee toda referencia de ruta entre backticks (`src/...`, `.claude/rules/...`, `claudeos-core/skills/...`) de todos los archivos `.md` generados y las verifica contra el sistema de archivos real. Captura dos clases de fallo de LLM que ninguna herramienta detectaba antes:
|
|
85
|
+
|
|
86
|
+
- **`STALE_PATH`** — cuando Pass 3 o Pass 4 inventa una ruta plausible pero inexistente. Casos típicos: inferir `featureRoutePath.ts` de una constante TypeScript llamada `FEATURE_ROUTE_PATH` cuando el archivo real es `routePath.ts`; asumir `src/main.tsx` por convención de Vite en un proyecto multi-entry; asumir `src/__mocks__/handlers.ts` por la documentación de MSW aunque el proyecto no tenga tests.
|
|
87
|
+
- **`MANIFEST_DRIFT`** — cuando `claudeos-core/skills/00.shared/MANIFEST.md` registra un skill que `CLAUDE.md §6` no menciona (o viceversa). Reconoce el layout común orchestrator + sub-skills donde `CLAUDE.md §6` es un punto de entrada y `MANIFEST.md` es el registro completo — los sub-skills se consideran cubiertos vía su orchestrator padre.
|
|
88
|
+
|
|
89
|
+
El validador se empareja con prevención en tiempo de prompt en `pass3-footer.md` y `pass4.md`: bloques de anti-patrón que documentan las clases específicas de alucinación (prefijo de directorio padre, convenciones de bibliotecas Vite/MSW/Vitest/Jest/RTL) y guía positiva explícita para definir el alcance de las reglas por directorio cuando un nombre de archivo concreto no está en `pass3a-facts.md`.
|
|
90
|
+
|
|
91
|
+
### Ejecutar validación en cualquier proyecto
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npx claudeos-core health # todos los validadores — veredicto único go/no-go
|
|
95
|
+
npx claudeos-core lint # solo invariantes estructurales de CLAUDE.md (cualquier idioma)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
72
100
|
## Stacks Soportados
|
|
73
101
|
|
|
74
102
|
| Stack | Detección | Profundidad de análisis |
|
package/README.fr.md
CHANGED
|
@@ -69,6 +69,34 @@ Cette différence se cumule. 10 tâches/jour × 20 minutes économisées = **plu
|
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
+
## Assurance qualité post-génération (v2.3.0)
|
|
73
|
+
|
|
74
|
+
La génération n'est que la moitié du problème. L'autre moitié est **savoir que la sortie est correcte** — à travers 10 langues de sortie, 11 templates de stack et des projets de toute taille. v2.3.0 ajoute deux validateurs déterministes qui s'exécutent après la génération et qui ne dépendent pas d'auto-vérifications du LLM.
|
|
75
|
+
|
|
76
|
+
### `claude-md-validator` — invariants structurels
|
|
77
|
+
|
|
78
|
+
Chaque `CLAUDE.md` généré est vérifié par rapport à 25 invariants structurels qui n'utilisent que des signaux indépendants de la langue : syntaxe markdown (`^## `, `^### `), noms de fichiers littéraux (`decision-log.md`, `failure-patterns.md` — jamais traduits), nombre de sections, nombre de sous-sections par section, nombre de lignes de table. Le même validateur, octet pour octet, produit des verdicts identiques sur un `CLAUDE.md` généré en anglais, coréen, japonais, vietnamien, hindi, russe, espagnol, chinois, français ou allemand.
|
|
79
|
+
|
|
80
|
+
La garantie cross-langue est vérifiée par des fixtures de test dans les 10 langues, y compris des fixtures bad-case dans 6 de ces langues qui produisent des signatures d'erreur identiques. Lorsqu'un invariant échoue sur un projet en vietnamien, la correction est la même que lorsqu'il échoue sur un projet en allemand.
|
|
81
|
+
|
|
82
|
+
### `content-validator [10/10]` — vérification des revendications de chemin et cohérence MANIFEST
|
|
83
|
+
|
|
84
|
+
Lit chaque référence de chemin entre backticks (`src/...`, `.claude/rules/...`, `claudeos-core/skills/...`) dans tous les fichiers `.md` générés et les vérifie contre le vrai système de fichiers. Attrape deux classes d'échecs LLM que aucun outil ne détectait auparavant :
|
|
85
|
+
|
|
86
|
+
- **`STALE_PATH`** — quand Pass 3 ou Pass 4 fabrique un chemin plausible mais inexistant. Cas typiques : déduire `featureRoutePath.ts` d'une constante TypeScript nommée `FEATURE_ROUTE_PATH` alors que le fichier réel est `routePath.ts` ; supposer `src/main.tsx` par convention Vite dans un projet multi-entry ; supposer `src/__mocks__/handlers.ts` d'après la documentation MSW même quand le projet n'a aucun test.
|
|
87
|
+
- **`MANIFEST_DRIFT`** — quand `claudeos-core/skills/00.shared/MANIFEST.md` enregistre un skill que `CLAUDE.md §6` ne mentionne pas (ou inversement). Reconnaît le layout courant orchestrator + sub-skills où `CLAUDE.md §6` est un point d'entrée et `MANIFEST.md` est le registre complet — les sub-skills sont considérés couverts via leur orchestrator parent.
|
|
88
|
+
|
|
89
|
+
Le validateur est couplé à une prévention au moment du prompt dans `pass3-footer.md` et `pass4.md` : des blocs anti-pattern documentant les classes spécifiques d'hallucination (préfixe de répertoire parent, conventions de bibliothèques Vite/MSW/Vitest/Jest/RTL) et une guidance positive explicite pour scope les règles par répertoire quand un nom de fichier concret n'est pas dans `pass3a-facts.md`.
|
|
90
|
+
|
|
91
|
+
### Exécuter la validation sur n'importe quel projet
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npx claudeos-core health # tous les validateurs — verdict go/no-go unique
|
|
95
|
+
npx claudeos-core lint # uniquement les invariants structurels de CLAUDE.md (n'importe quelle langue)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
72
100
|
## Stacks Supportés
|
|
73
101
|
|
|
74
102
|
| Stack | Détection | Profondeur d'analyse |
|
package/README.hi.md
CHANGED
|
@@ -69,6 +69,34 @@ ClaudeOS-Core ऐसा डॉक्यूमेंटेशन बनाता
|
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
+
## जेनरेशन के बाद गुणवत्ता सुनिश्चिति (v2.3.0)
|
|
73
|
+
|
|
74
|
+
जेनरेशन समस्या का सिर्फ आधा हिस्सा है। दूसरा आधा है **यह जानना कि आउटपुट सही है** — 10 आउटपुट भाषाओं में, 11 स्टैक टेम्प्लेट्स में, किसी भी आकार के प्रोजेक्ट्स में। v2.3.0 दो deterministic validators जोड़ता है जो जेनरेशन के बाद चलते हैं और LLM के स्वयं-जांच पर निर्भर नहीं करते।
|
|
75
|
+
|
|
76
|
+
### `claude-md-validator` — स्ट्रक्चरल इनवेरिएंट्स
|
|
77
|
+
|
|
78
|
+
हर जेनरेट किया गया `CLAUDE.md` 25 स्ट्रक्चरल इनवेरिएंट्स के खिलाफ चेक किया जाता है, जो केवल भाषा-निरपेक्ष सिग्नल्स का उपयोग करते हैं: markdown syntax (`^## `, `^### `), कभी अनुवादित नहीं होने वाले literal फ़ाइल नाम (`decision-log.md`, `failure-patterns.md`), section count, प्रत्येक section के sub-section count, और table-row count। यही validator, byte-by-byte, अंग्रेज़ी, कोरियाई, जापानी, वियतनामी, हिंदी, रूसी, स्पेनिश, चीनी, फ्रेंच, या जर्मन में जेनरेट किए गए `CLAUDE.md` पर समान निर्णय देता है।
|
|
79
|
+
|
|
80
|
+
Cross-language गारंटी को सभी 10 भाषाओं में test fixtures द्वारा सत्यापित किया जाता है, जिसमें उन भाषाओं में से 6 में bad-case fixtures शामिल हैं जो समान error signatures उत्पन्न करती हैं। जब एक वियतनामी प्रोजेक्ट पर invariant विफल होता है, तो fix वही है जो जर्मन प्रोजेक्ट पर विफल होने पर होता है।
|
|
81
|
+
|
|
82
|
+
### `content-validator [10/10]` — path-claim सत्यापन और MANIFEST स्थिरता
|
|
83
|
+
|
|
84
|
+
सभी जेनरेट की गई `.md` फ़ाइलों से हर backticked path reference (`src/...`, `.claude/rules/...`, `claudeos-core/skills/...`) पढ़ता है और उन्हें वास्तविक file system के खिलाफ सत्यापित करता है। दो क्लास की LLM failures पकड़ता है जो पहले कोई tool detect नहीं करता था:
|
|
85
|
+
|
|
86
|
+
- **`STALE_PATH`** — जब Pass 3 या Pass 4 एक plausible-but-nonexistent path गढ़ देता है। विशिष्ट मामले: `FEATURE_ROUTE_PATH` नामक TypeScript constant से `featureRoutePath.ts` infer करना जब वास्तविक फ़ाइल `routePath.ts` है; multi-entry प्रोजेक्ट में Vite convention से `src/main.tsx` मान लेना; प्रोजेक्ट में कोई test नहीं होने के बावजूद MSW documentation से `src/__mocks__/handlers.ts` मान लेना।
|
|
87
|
+
- **`MANIFEST_DRIFT`** — जब `claudeos-core/skills/00.shared/MANIFEST.md` एक skill रजिस्टर करता है जिसका `CLAUDE.md §6` में उल्लेख नहीं है (या इसके विपरीत)। सामान्य orchestrator + sub-skills layout को पहचानता है, जहाँ `CLAUDE.md §6` एक entry point है और `MANIFEST.md` पूर्ण registry है — sub-skills को उनके parent orchestrator के माध्यम से cover माना जाता है।
|
|
88
|
+
|
|
89
|
+
Validator को `pass3-footer.md` और `pass4.md` में prompt-time prevention के साथ जोड़ा गया है: विशिष्ट hallucination classes (parent-directory prefix, Vite/MSW/Vitest/Jest/RTL library conventions) को document करने वाले anti-pattern blocks, और स्पष्ट positive guidance कि जब `pass3a-facts.md` में एक concrete filename नहीं है, तो rule को directory-scope से scope करें।
|
|
90
|
+
|
|
91
|
+
### किसी भी प्रोजेक्ट पर validation चलाएँ
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npx claudeos-core health # सभी validators — एक single go/no-go verdict
|
|
95
|
+
npx claudeos-core lint # केवल CLAUDE.md structural invariants (किसी भी भाषा में)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
72
100
|
## सपोर्टेड स्टैक्स
|
|
73
101
|
|
|
74
102
|
| स्टैक | डिटेक्शन | विश्लेषण गहराई |
|
package/README.ja.md
CHANGED
|
@@ -69,6 +69,34 @@ ClaudeOS-Core は、プロジェクトが `ApiResponse.ok()`(`ResponseEntity.s
|
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
+
## 生成後の品質保証 (v2.3.0)
|
|
73
|
+
|
|
74
|
+
生成は問題の半分にすぎません。もう半分は **出力が正しいと分かること** です — 10 の出力言語、11 のスタックテンプレート、あらゆる規模のプロジェクトにわたって。v2.3.0 は生成後に実行され、LLM の自己チェックに依存しない決定論的な validator を 2 つ追加します。
|
|
75
|
+
|
|
76
|
+
### `claude-md-validator` — 構造的不変条件
|
|
77
|
+
|
|
78
|
+
生成されたすべての `CLAUDE.md` は、言語不変のシグナルのみを使う 25 の構造的不変条件に対して検証されます: Markdown 構文 (`^## `, `^### `)、翻訳されないリテラルファイル名 (`decision-log.md`, `failure-patterns.md`)、セクション数、セクションごとのサブセクション数、テーブル行数。同じ validator が、英語・韓国語・日本語・ベトナム語・ヒンディー語・ロシア語・スペイン語・中国語・フランス語・ドイツ語で生成された `CLAUDE.md` に対してバイト単位で同じ判定を下します。
|
|
79
|
+
|
|
80
|
+
クロス言語保証は 10 言語すべてのテスト fixture で検証されており、6 言語の不良 fixture が同一のエラーシグネチャを生成することも確認済みです。ベトナム語プロジェクトで不変条件が失敗したとき、その修正方法はドイツ語プロジェクトで失敗したときと同じです。
|
|
81
|
+
|
|
82
|
+
### `content-validator [10/10]` — パス主張検証と MANIFEST 一貫性
|
|
83
|
+
|
|
84
|
+
生成されたすべての `.md` ファイルからバッククォート付きのパス参照 (`src/...`, `.claude/rules/...`, `claudeos-core/skills/...`) を読み取り、実際のファイルシステムと照合します。これまでどのツールも検出できなかった 2 つの LLM 失敗クラスを捕捉します:
|
|
85
|
+
|
|
86
|
+
- **`STALE_PATH`** — Pass 3 または Pass 4 がもっともらしいが実在しないパスを捏造した場合。典型例: 実際のファイルが `routePath.ts` なのに TypeScript 定数 `FEATURE_ROUTE_PATH` から `featureRoutePath.ts` を推論; multi-entry プロジェクトで Vite 慣習から `src/main.tsx` を仮定; プロジェクトにテストがないのに MSW ドキュメントから `src/__mocks__/handlers.ts` を仮定。
|
|
87
|
+
- **`MANIFEST_DRIFT`** — `claudeos-core/skills/00.shared/MANIFEST.md` に登録された skill が `CLAUDE.md §6` に言及されていない (または逆)。`CLAUDE.md §6` がエントリーポイントで `MANIFEST.md` が完全なレジストリとなる orchestrator + sub-skill レイアウトを認識し、sub-skill は親 orchestrator を介して間接的にカバーされると判定します。
|
|
88
|
+
|
|
89
|
+
validator は `pass3-footer.md` と `pass4.md` の prompt-time prevention とペアになります: 特定の幻覚クラス (親ディレクトリ接頭辞、Vite/MSW/Vitest/Jest/RTL ライブラリ慣習) を文書化した anti-pattern ブロックと、`pass3a-facts.md` に具体的なファイル名がない場合はルールをディレクトリ単位でスコープするという明示的な positive guidance。
|
|
90
|
+
|
|
91
|
+
### 任意のプロジェクトで validation を実行
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npx claudeos-core health # すべての validator — 単一 go/no-go 判定
|
|
95
|
+
npx claudeos-core lint # CLAUDE.md 構造不変条件のみ (任意の言語)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
72
100
|
## 対応スタック
|
|
73
101
|
|
|
74
102
|
| スタック | 検出方法 | 分析深度 |
|