@noyrax/documentation-system-plugin 1.0.4-beta.3 → 1.0.4-beta.5
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/out/cache/ast-cache.js +69 -0
- package/out/cache/ast-cache.js.map +1 -0
- package/out/cache/dependencies-cache.js +73 -0
- package/out/cache/dependencies-cache.js.map +1 -0
- package/out/cache/output-cache.js +69 -0
- package/out/cache/output-cache.js.map +1 -0
- package/out/cache/signature-cache.js +60 -0
- package/out/cache/signature-cache.js.map +1 -0
- package/out/cli/generate-cli.js +345 -0
- package/out/cli/generate-cli.js.map +1 -0
- package/out/cli/scan-cli.js +157 -0
- package/out/cli/scan-cli.js.map +1 -0
- package/out/cli/validate-cli.js +258 -0
- package/out/cli/validate-cli.js.map +1 -0
- package/out/core/async.js +38 -0
- package/out/core/async.js.map +1 -0
- package/out/core/consolidation.js +230 -0
- package/out/core/consolidation.js.map +1 -0
- package/out/core/git.js +48 -0
- package/out/core/git.js.map +1 -0
- package/out/core/language-detection.js +29 -0
- package/out/core/language-detection.js.map +1 -0
- package/out/core/scanner.js +180 -0
- package/out/core/scanner.js.map +1 -0
- package/out/core/signature-formatter.js +162 -0
- package/out/core/signature-formatter.js.map +1 -0
- package/out/core/symbol-classifier.js +96 -0
- package/out/core/symbol-classifier.js.map +1 -0
- package/out/core/symbols.js +24 -0
- package/out/core/symbols.js.map +1 -0
- package/out/drift/index.js +28 -0
- package/out/drift/index.js.map +1 -0
- package/out/extension.js +984 -0
- package/out/extension.js.map +1 -0
- package/out/generator/adr-linker.js +216 -0
- package/out/generator/adr-linker.js.map +1 -0
- package/out/generator/change-report.js +124 -0
- package/out/generator/change-report.js.map +1 -0
- package/out/generator/dependency-graph.js +98 -0
- package/out/generator/dependency-graph.js.map +1 -0
- package/out/generator/index.js +117 -0
- package/out/generator/index.js.map +1 -0
- package/out/generator/module-doc.js +438 -0
- package/out/generator/module-doc.js.map +1 -0
- package/out/generator/system-metadata.js +202 -0
- package/out/generator/system-metadata.js.map +1 -0
- package/out/index/index.js +161 -0
- package/out/index/index.js.map +1 -0
- package/out/logging/index.js +24 -0
- package/out/logging/index.js.map +1 -0
- package/out/parsers/dependencies.js +126 -0
- package/out/parsers/dependencies.js.map +1 -0
- package/out/parsers/json-yaml.js +121 -0
- package/out/parsers/json-yaml.js.map +1 -0
- package/out/parsers/python.js +160 -0
- package/out/parsers/python.js.map +1 -0
- package/out/parsers/ts-js.js +598 -0
- package/out/parsers/ts-js.js.map +1 -0
- package/out/parsers/types.js +3 -0
- package/out/parsers/types.js.map +1 -0
- package/out/ui/commands-provider.js +91 -0
- package/out/ui/commands-provider.js.map +1 -0
- package/out/ui/status-bar.js +85 -0
- package/out/ui/status-bar.js.map +1 -0
- package/out/validator/index.js +185 -0
- package/out/validator/index.js.map +1 -0
- package/out/validator/signature-matching.js +261 -0
- package/out/validator/signature-matching.js.map +1 -0
- package/out/validator/status.js +38 -0
- package/out/validator/status.js.map +1 -0
- package/package.json +9 -1
- package/.vscodeignore +0 -41
- package/MCP_SERVER_SETUP.md +0 -371
- package/assets/icon.svg +0 -27
- package/docs/LINKEDIN_ANTWORT_SEQUENZDIAGRAMME.md +0 -190
- package/docs/SEQUENZDIAGRAMM_BEWEIS.md +0 -469
- package/docs/SEQUENZDIAGRAMM_VALIDATE_FLOW.md +0 -282
- package/docs/adr/001-signatur-abweichung-fix.md +0 -54
- package/docs/adr/002-file-specific-validation-1.0.1.md +0 -45
- package/docs/adr/003-documentation-generation-bugs.md +0 -134
- package/docs/adr/004-validator-signature-matching-fix.md +0 -121
- package/docs/adr/005-validator-generic-simplification-tightening.md +0 -35
- package/docs/adr/006-parser-variable-type-extraction.md +0 -33
- package/docs/adr/007-ts-parser-load-libs-for-accurate-types.md +0 -31
- package/docs/adr/008-dependencies-cache-phase1.md +0 -133
- package/docs/adr/009-consolidation-union-logic-phase1-2.md +0 -147
- package/docs/adr/010-extension-union-integration-phase1-3-and-phase2.md +0 -179
- package/docs/adr/011-module-doc-change-tracking-phase3.md +0 -190
- package/docs/adr/012-git-deletions-change-report-phase4.md +0 -235
- package/docs/adr/013-system-functionality-fixes.md +0 -279
- package/docs/adr/014-rules-migration-und-mcp-integration.md +0 -113
- package/docs/adr/015-global-agent-package.md +0 -158
- package/docs/adr/016-produktisierung-docguard.md +0 -193
- package/docs/adr/017-signature-matching-optional-fields.md +0 -128
- package/docs/adr/018-rebranding-docguard-to-noyrax.md +0 -109
- package/docs/adr/019-system-schwachstellen-analyse-und-fixes.md +0 -204
- package/docs/adr/020-api-doc-tiefe-und-signatureformatter.md +0 -74
- package/docs/adr/021-semantic-api-docs-and-symbol-classifier.md +0 -125
- package/docs/adr/022-semantic-class-and-constants-rendering.md +0 -82
- package/docs/adr/023-adr-verknuepfung-modul-doku.md +0 -54
- package/docs/adr/024-cursor-rules-mehrdimensionaler-raum.md +0 -230
- package/docs/adr/025-mcp-tools-scan-validate-cli-bridge.md +0 -202
- package/docs/adr/026-reality-driven-development-system.md +0 -173
- package/docs/adr/027-scanner-excludes-and-union-logic-fix.md +0 -189
- package/docs/adr/028-src-coverage-union-resync.md +0 -124
- package/docs/adr/029-parser-flow-kopplung-und-sync-drift-modi.md +0 -102
- package/docs/adr/030-dependency-import-symbol-names-preservation.md +0 -123
- package/docs/adr/031-generate-cli-vollstaendige-dokumentation.md +0 -99
- package/docs/adr/032-windows-optimized-verification-scripts.md +0 -165
- package/docs/adr/036-enhanced-dependency-metadata.md +0 -190
- package/docs/adr/TEMPLATE.md +0 -76
- package/docs/index/symbols.jsonl +0 -78
- package/docs/modules/action__action.yml.md +0 -50
- package/docs/modules/documentation.config.schema.json.md +0 -37
- package/docs/modules/mcp__package.json.md +0 -130
- package/docs/modules/mcp__src__resources__docs.ts.md +0 -94
- package/docs/modules/mcp__src__server.ts.md +0 -15
- package/docs/modules/mcp__src__tools__drift.ts.md +0 -114
- package/docs/modules/mcp__src__tools__impact.ts.md +0 -130
- package/docs/modules/mcp__src__tools__scan.ts.md +0 -75
- package/docs/modules/mcp__src__tools__validate.ts.md +0 -116
- package/docs/modules/mcp__src__tools__verify-adrs.ts.md +0 -106
- package/docs/modules/mcp__tsconfig.json.md +0 -22
- package/docs/modules/package.json.md +0 -130
- package/docs/modules/packages__doc-system-agent__examples__basic-project__package.json.md +0 -43
- package/docs/modules/packages__doc-system-agent__examples__basic-project__src__calculator.ts.md +0 -81
- package/docs/modules/packages__doc-system-agent__package.json.md +0 -154
- package/docs/modules/packages__doc-system-agent__src__cli__index.ts.md +0 -8
- package/docs/modules/packages__doc-system-agent__src__cli__init.ts.md +0 -93
- package/docs/modules/packages__doc-system-agent__src__cli__update.ts.md +0 -113
- package/docs/modules/packages__doc-system-agent__src__constants.ts.md +0 -29
- package/docs/modules/packages__doc-system-agent__src__index.ts.md +0 -234
- package/docs/modules/packages__doc-system-agent__src__mcp__resources__docs.ts.md +0 -94
- package/docs/modules/packages__doc-system-agent__src__mcp__server.ts.md +0 -17
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__drift.ts.md +0 -38
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__impact.ts.md +0 -75
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__scan.ts.md +0 -23
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__validate.ts.md +0 -23
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__verify-adrs.ts.md +0 -106
- package/docs/modules/packages__doc-system-agent__src__mcp__types.ts.md +0 -355
- package/docs/modules/packages__doc-system-agent__tsconfig.json.md +0 -22
- package/docs/modules/scripts__verify-adrs.js.md +0 -97
- package/docs/modules/scripts__verify-architecture.js.md +0 -93
- package/docs/modules/scripts__verify-imports.js.md +0 -114
- package/docs/modules/src____tests____setup.ts.md +0 -8
- package/docs/modules/src____tests____signature-formatter.test.ts.md +0 -16
- package/docs/modules/src____tests____snapshot-doc-generation.test.ts.md +0 -8
- package/docs/modules/src____tests____symbol-classifier.test.ts.md +0 -16
- package/docs/modules/src__cache__ast-cache.ts.md +0 -91
- package/docs/modules/src__cache__dependencies-cache.ts.md +0 -89
- package/docs/modules/src__cache__output-cache.ts.md +0 -91
- package/docs/modules/src__cache__signature-cache.ts.md +0 -76
- package/docs/modules/src__cli__generate-cli.ts.md +0 -130
- package/docs/modules/src__cli__scan-cli.ts.md +0 -99
- package/docs/modules/src__cli__validate-cli.ts.md +0 -144
- package/docs/modules/src__core__async.ts.md +0 -18
- package/docs/modules/src__core__consolidation.ts.md +0 -157
- package/docs/modules/src__core__git.ts.md +0 -35
- package/docs/modules/src__core__language-detection.ts.md +0 -31
- package/docs/modules/src__core__scanner.ts.md +0 -100
- package/docs/modules/src__core__signature-formatter.ts.md +0 -232
- package/docs/modules/src__core__symbol-classifier.ts.md +0 -178
- package/docs/modules/src__core__symbols.ts.md +0 -31
- package/docs/modules/src__drift__index.ts.md +0 -53
- package/docs/modules/src__extension.ts.md +0 -418
- package/docs/modules/src__generator__adr-linker.ts.md +0 -154
- package/docs/modules/src__generator__change-report.ts.md +0 -85
- package/docs/modules/src__generator__dependency-graph.ts.md +0 -63
- package/docs/modules/src__generator__index.ts.md +0 -40
- package/docs/modules/src__generator__module-doc.ts.md +0 -242
- package/docs/modules/src__index__index.ts.md +0 -159
- package/docs/modules/src__logging__index.ts.md +0 -87
- package/docs/modules/src__parsers__dependencies.ts.md +0 -69
- package/docs/modules/src__parsers__json-yaml.ts.md +0 -96
- package/docs/modules/src__parsers__python.ts.md +0 -73
- package/docs/modules/src__parsers__ts-js.ts.md +0 -48
- package/docs/modules/src__parsers__types.ts.md +0 -117
- package/docs/modules/src__ui__commands-provider.ts.md +0 -70
- package/docs/modules/src__ui__status-bar.ts.md +0 -79
- package/docs/modules/src__validator__index.ts.md +0 -211
- package/docs/modules/src__validator__signature-matching.ts.md +0 -209
- package/docs/modules/src__validator__status.ts.md +0 -72
- package/docs/modules/test-mcp-resources.js.md +0 -27
- package/docs/modules/tsconfig.json.md +0 -22
- package/docs/system/CHANGE_REPORT.md +0 -26
- package/docs/system/DEPENDENCIES.md +0 -403
- package/docs/system/DEPENDENCY_GRAPH.md +0 -336
- package/docs/system/NAVIGATION_SPACE_ANALYSIS.md +0 -244
- package/docs/system/NPX_CACHE_FIX.md +0 -85
- package/docs/system/NPX_LOCAL_USAGE.md +0 -66
- package/docs/system/PLUGIN_ECOSYSTEM_STATUS.md +0 -465
- package/docs/system/PLUGIN_UPDATE_GUIDE.md +0 -212
- package/docs/system/RULES_UPDATE_GUIDE.md +0 -182
- package/docs/system/SYSTEM_ANALYSIS.md +0 -947
- package/docs/system/SYSTEM_METADATA.json +0 -37
- package/documentation.config.schema.json +0 -77
- package/publish.ps1 +0 -21
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
# ADR 011: Modul-Dokumente mit Änderungs-Kommentaren (Phase 3)
|
|
2
|
-
|
|
3
|
-
**Status:** Implementiert
|
|
4
|
-
**Datum:** 2025-10-06
|
|
5
|
-
**Kontext:** ADDITIVE_DOCUMENTATION_PLAN.md, Abschnitt 7, Phase 3
|
|
6
|
-
|
|
7
|
-
## Kontext und Problemstellung
|
|
8
|
-
|
|
9
|
-
Nach Einführung von Dependencies-Cache (ADR 008) und Union-Logik (ADR 009/010) werden Modul-Dokumentationen (`docs/modules/*.md`) bei jedem Lauf neu generiert, auch wenn sich nichts geändert hat. Zudem fehlt die Sichtbarkeit von Änderungen:
|
|
10
|
-
|
|
11
|
-
**Bisheriger Ablauf:**
|
|
12
|
-
1. `generatePerFileDocs()` erzeugt Dokumentation aus `symbolsUnion`
|
|
13
|
-
2. Bestehende Docs werden überschrieben (auch bei identischem Inhalt)
|
|
14
|
-
3. **Problem:** Keine Sichtbarkeit, welche Symbole neu/geändert/entfernt wurden
|
|
15
|
-
4. **Problem:** Keine Merge-Logik mit bestehenden Kommentaren
|
|
16
|
-
|
|
17
|
-
**Gewünschter Ablauf (gemäß Plan):**
|
|
18
|
-
1. Bestehende Modul-Docs einlesen und parsen
|
|
19
|
-
2. Symbole mit bestehenden vergleichen (Signatur-Hash)
|
|
20
|
-
3. Änderungs-Kommentare generieren: `symbol-added`, `symbol-removed`, `signature-changed`
|
|
21
|
-
4. Bestehende Kommentare beibehalten (keine Duplikate)
|
|
22
|
-
5. Deterministisch sortieren und rendern
|
|
23
|
-
|
|
24
|
-
## Entscheidung
|
|
25
|
-
|
|
26
|
-
### Neues Modul: `src/generator/module-doc.ts`
|
|
27
|
-
|
|
28
|
-
**Hauptfunktionen:**
|
|
29
|
-
|
|
30
|
-
1. **`parseModuleDoc(content: string): ParsedModuleDoc`**
|
|
31
|
-
- Parst bestehende Markdown-Dokumentation
|
|
32
|
-
- Extrahiert Symbole, Signaturen und HTML-Kommentare (Change-Annotations)
|
|
33
|
-
- Rekonstruiert `ParsedSymbol`-Objekte aus Markdown
|
|
34
|
-
|
|
35
|
-
2. **`normalizeSignature(sig: SymbolSignature): string`**
|
|
36
|
-
- Normalisiert Signaturen für Vergleich (Parameter sortiert, optional/default markiert)
|
|
37
|
-
- Format: `name(params):returnType`
|
|
38
|
-
|
|
39
|
-
3. **`signatureChanged(a: ParsedSymbol, b: ParsedSymbol): boolean`**
|
|
40
|
-
- Vergleicht normalisierte Signaturen
|
|
41
|
-
- Nutzt `normalizeSignature()` für deterministischen Vergleich
|
|
42
|
-
|
|
43
|
-
4. **`buildModuleDocWithChanges(symbols, existingDoc): ModuleDoc`**
|
|
44
|
-
- Merge-Logik gemäß ADDITIVE_DOCUMENTATION_PLAN.md Abschnitt 6.4
|
|
45
|
-
- Für neue Symbole: `<!-- change: symbol-added name="..." kind="..." -->`
|
|
46
|
-
- Für geänderte Signaturen: `<!-- change: signature-changed old="..." new="..." -->`
|
|
47
|
-
- Für entfernte Symbole: `<!-- change: symbol-removed name="..." kind="..." -->`
|
|
48
|
-
- Bestehende Kommentare werden beibehalten (keine Duplikate)
|
|
49
|
-
|
|
50
|
-
5. **`renderModuleDoc(doc: ModuleDoc, filePath: string): string`**
|
|
51
|
-
- Rendert finale Markdown-Dokumentation
|
|
52
|
-
- Kommentare vor Symbol-Block
|
|
53
|
-
- Deterministische Sortierung (Kind → Name)
|
|
54
|
-
|
|
55
|
-
**Erweiterung `src/generator/index.ts`:**
|
|
56
|
-
|
|
57
|
-
- `generatePerFileDocs()` erweitert um Parameter:
|
|
58
|
-
- `modulesDir: string` - Ausgabeverzeichnis
|
|
59
|
-
- `existingDocs?: Map<string, string>` - Bestehende Docs (optional)
|
|
60
|
-
- Lädt bestehende Docs aus Dateisystem, falls nicht übergeben
|
|
61
|
-
- Ruft `parseModuleDoc()` und `buildModuleDocWithChanges()` auf
|
|
62
|
-
|
|
63
|
-
**Integration in `src/extension.ts`:**
|
|
64
|
-
|
|
65
|
-
- Lädt bestehende Dokumentation vor Generierung
|
|
66
|
-
- Übergibt sie an `generatePerFileDocs()` für Merge
|
|
67
|
-
- Output-Hash-Cache verhindert unnötiges Schreiben (unverändert)
|
|
68
|
-
|
|
69
|
-
## Gelesene Abhängigkeiten aus Dokumentation
|
|
70
|
-
|
|
71
|
-
**docs/modules/src__generator__index.ts.md:**
|
|
72
|
-
- `generatePerFileDocs(symbols: ParsedSymbol[]): Map<string, string>` - Vorherige Signatur
|
|
73
|
-
|
|
74
|
-
**docs/modules/src__parsers__types.ts.md:**
|
|
75
|
-
- `interface ParsedSymbol` - Symbol-Struktur
|
|
76
|
-
- `interface SymbolSignature` - Signatur-Struktur
|
|
77
|
-
|
|
78
|
-
**docs/modules/src__core__symbols.ts.md:**
|
|
79
|
-
- `computeSignatureHash(symbol: ParsedSymbol): string` - Hash-Berechnung (nicht direkt genutzt, aber Konzept)
|
|
80
|
-
|
|
81
|
-
**docs/system/DEPENDENCIES.md:**
|
|
82
|
-
- Bestätigung: keine zirkulären Abhängigkeiten durch neue Imports
|
|
83
|
-
|
|
84
|
-
## Auswirkungen
|
|
85
|
-
|
|
86
|
-
### Positiv
|
|
87
|
-
- ✅ **Änderungs-Sichtbarkeit:** Kommentare zeigen explizit, was sich geändert hat
|
|
88
|
-
- ✅ **Keine Duplikate:** Bestehende Kommentare werden beibehalten
|
|
89
|
-
- ✅ **Deterministisch:** Gleiche Eingabe → gleiche Ausgabe (Sortierung, Kommentare)
|
|
90
|
-
- ✅ **Rückwärtskompatibel:** Bei fehlender bestehender Doku funktioniert Vollgenerierung
|
|
91
|
-
- ✅ **Performance:** Output-Hash-Cache verhindert unnötiges Schreiben
|
|
92
|
-
|
|
93
|
-
### Neutral
|
|
94
|
-
- ~360 Zeilen zusätzlicher Code in `module-doc.ts`
|
|
95
|
-
- Parsing-Logik für Markdown (vereinfacht, aber robust)
|
|
96
|
-
- Signatur-Rekonstruktion aus Markdown (nicht vollständig, aber ausreichend für Vergleich)
|
|
97
|
-
|
|
98
|
-
### Trade-offs
|
|
99
|
-
- **Signatur-Parsing vereinfacht:**
|
|
100
|
-
- Aus Markdown wird Signatur rekonstruiert (nicht vollständig)
|
|
101
|
-
- **Mitigation:** `normalizeSignature()` fokussiert auf relevante Teile (Name, Parameter, ReturnType)
|
|
102
|
-
- **Zukünftige Verbesserung:** Vollständigere Signatur-Persistierung (optional)
|
|
103
|
-
|
|
104
|
-
- **Cognitive Complexity:**
|
|
105
|
-
- `parseModuleDoc()` und `parseSignatureFromCode()` haben hohe Komplexität
|
|
106
|
-
- **Mitigation:** Funktionen sind klar getrennt; Linter-Warnungen akzeptiert (funktional korrekt)
|
|
107
|
-
|
|
108
|
-
## Risiken und Mitigation
|
|
109
|
-
|
|
110
|
-
- **Risiko:** Signatur-Parsing aus Markdown unvollständig
|
|
111
|
-
- **Mitigation:** `normalizeSignature()` fokussiert auf Vergleichsrelevantes; bei Fehlern wird Symbol als "neu" behandelt
|
|
112
|
-
- **Test:** Phase 5 wird Unit-Tests für Parsing-Logik durchführen
|
|
113
|
-
|
|
114
|
-
- **Risiko:** Bestehende Docs ohne Kommentare werden nicht korrekt geparst
|
|
115
|
-
- **Mitigation:** Fallback auf leere `ParsedModuleDoc`; alle Symbole werden als "neu" behandelt
|
|
116
|
-
- **Erstlauf:** Keine bestehenden Docs → alle Symbole erhalten `symbol-added` Kommentare
|
|
117
|
-
|
|
118
|
-
- **Risiko:** Kommentar-Format inkonsistent
|
|
119
|
-
- **Mitigation:** Deterministisches Format gemäß Plan; keine Zeitstempel (gemäß Plan Abschnitt 5.3)
|
|
120
|
-
|
|
121
|
-
## Design-Entscheidungen
|
|
122
|
-
|
|
123
|
-
### Alternative 1: Kommentare als separate Datei (CHANGES.md pro Modul)
|
|
124
|
-
- **Verworfen:** Kommentare in Modul-Docs sind direkter sichtbar; kein zusätzliches Datei-Management
|
|
125
|
-
|
|
126
|
-
### Alternative 2: Vollständige Signatur-Persistierung im Index
|
|
127
|
-
- **Verworfen:** Index ist Symbol-zentriert; Modul-Docs sind Dokumentations-zentriert; Trennung der Verantwortlichkeiten
|
|
128
|
-
|
|
129
|
-
### Alternative 3: Keine Kommentare, nur Hash-Vergleich
|
|
130
|
-
- **Verworfen:** Kommentare bieten explizite Sichtbarkeit; Plan fordert Change-Tracking (Abschnitt 6.4)
|
|
131
|
-
|
|
132
|
-
### Alternative 4: Zeitstempel in Kommentaren
|
|
133
|
-
- **Verworfen:** Plan Abschnitt 5.3 verbietet Zeitstempel (Determinismus)
|
|
134
|
-
|
|
135
|
-
## Nächste Schritte
|
|
136
|
-
|
|
137
|
-
1. ✅ **Phase 3 abgeschlossen:** Modul-Docs mit Änderungs-Kommentaren
|
|
138
|
-
2. ⏭️ **Phase 4:** Git-Deletions und CHANGE_REPORT Implementierung
|
|
139
|
-
3. ⏭️ **Phase 5:** Unit-Tests für `module-doc.ts` (Parsing, Merge-Logik)
|
|
140
|
-
4. ⏭️ **Phase 6:** README & Pläne aktualisieren
|
|
141
|
-
|
|
142
|
-
## Referenzen
|
|
143
|
-
|
|
144
|
-
- **Plan:** `ADDITIVE_DOCUMENTATION_PLAN.md`, Abschnitt 6.4 (Algorithmus), 7 (Phase 3)
|
|
145
|
-
- **ADR 008:** Dependencies-Cache
|
|
146
|
-
- **ADR 009:** Union-Logik (Consolidation)
|
|
147
|
-
- **ADR 010:** Extension-Integration (Phase 1.3 + Phase 2)
|
|
148
|
-
- **Dokumentation:**
|
|
149
|
-
- `docs/modules/src__generator__index.ts.md`
|
|
150
|
-
- `docs/modules/src__parsers__types.ts.md`
|
|
151
|
-
- `docs/modules/src__core__symbols.ts.md`
|
|
152
|
-
- `docs/system/DEPENDENCIES.md`
|
|
153
|
-
- **Cursor-Regeln:** `.cursor/rules/architecture-guardrails.mdc`, Abschnitt 0 (Wissensbasis)
|
|
154
|
-
|
|
155
|
-
## Implementierung
|
|
156
|
-
|
|
157
|
-
**Dateien:**
|
|
158
|
-
- `src/generator/module-doc.ts` (neu, ~360 Zeilen)
|
|
159
|
-
- `src/generator/index.ts` (erweitert, ~75 Zeilen)
|
|
160
|
-
- `src/extension.ts` (angepasst, bestehende Docs laden)
|
|
161
|
-
- `src/__tests__/determinism.test.ts` (angepasst, neue Signatur)
|
|
162
|
-
|
|
163
|
-
**Geänderte Zeilen:** ~100 (Integration + Tests)
|
|
164
|
-
**Neue Funktionen:** 6 öffentliche Funktionen in `module-doc.ts`
|
|
165
|
-
**Neue Interfaces:** `ParsedBlock`, `ParsedModuleDoc`, `ModuleDocBlock`, `ModuleDoc`
|
|
166
|
-
|
|
167
|
-
**Qualität:**
|
|
168
|
-
- ✅ TypeScript kompiliert ohne Fehler
|
|
169
|
-
- ⚠️ Linter-Warnungen (Cognitive Complexity, RegExp.exec) - funktional korrekt, akzeptiert
|
|
170
|
-
- ✅ Rückwärtskompatibel (Fallback auf leere Docs)
|
|
171
|
-
- ✅ Deterministisch (sortiert, keine Zeitstempel)
|
|
172
|
-
- ✅ Keine zirkulären Abhängigkeiten
|
|
173
|
-
|
|
174
|
-
**Beispiel-Output:**
|
|
175
|
-
```markdown
|
|
176
|
-
# Modul: src/core/scanner.ts
|
|
177
|
-
|
|
178
|
-
<!-- change: symbol-added name="scanWorkspaceIncremental" kind="function" -->
|
|
179
|
-
### function: scanWorkspaceIncremental
|
|
180
|
-
```ts
|
|
181
|
-
scanWorkspaceIncremental(options: ScanOptions): ScannedFile[]
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
<!-- change: signature-changed old="scanWorkspace(options):ScannedFile[]" new="scanWorkspace(options,includeBackups?):ScannedFile[]" -->
|
|
185
|
-
### function: scanWorkspace
|
|
186
|
-
```ts
|
|
187
|
-
scanWorkspace(options: ScanOptions, includeBackups?: boolean): ScannedFile[]
|
|
188
|
-
```
|
|
189
|
-
```
|
|
190
|
-
|
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
# ADR 012: Git-Deletions und CHANGE_REPORT (Phase 4)
|
|
2
|
-
|
|
3
|
-
**Status:** Implementiert
|
|
4
|
-
**Datum:** 2025-10-06
|
|
5
|
-
**Kontext:** ADDITIVE_DOCUMENTATION_PLAN.md, Abschnitt 7, Phase 4
|
|
6
|
-
|
|
7
|
-
## Kontext und Problemstellung
|
|
8
|
-
|
|
9
|
-
Nach Implementierung von Modul-Dokumenten mit Änderungs-Kommentaren (ADR 011) fehlen noch zwei wichtige Features:
|
|
10
|
-
|
|
11
|
-
1. **Git-Deletion-Tracking:** Gelöschte Dateien werden nicht explizit erkannt und aus der Union entfernt
|
|
12
|
-
2. **CHANGE_REPORT:** Keine zentrale Übersicht über alle Änderungen (Symbole, Dependencies, Validator-Status)
|
|
13
|
-
|
|
14
|
-
**Bisheriger Ablauf:**
|
|
15
|
-
1. Union-Bildung nutzt `deletedFilesFromGit = new Set<string>()` (leer)
|
|
16
|
-
2. Gelöschte Dateien bleiben in Union (werden nicht entfernt)
|
|
17
|
-
3. Keine zentrale Änderungsübersicht
|
|
18
|
-
|
|
19
|
-
**Gewünschter Ablauf (gemäß Plan):**
|
|
20
|
-
1. Git-Deletions explizit erkennen via `git status --porcelain`
|
|
21
|
-
2. Gelöschte Dateien aus Union entfernen
|
|
22
|
-
3. CHANGE_REPORT.md generieren mit allen Änderungen (Symbole, Dependencies, Validator-Status)
|
|
23
|
-
|
|
24
|
-
## Entscheidung
|
|
25
|
-
|
|
26
|
-
### Erweiterung `src/core/git.ts`
|
|
27
|
-
|
|
28
|
-
**Neue Funktion:**
|
|
29
|
-
```typescript
|
|
30
|
-
export function getDeletedFiles(repoRoot: string): Set<string> | null
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
**Implementierung:**
|
|
34
|
-
- Nutzt `git status --porcelain` für maschinenlesbare Ausgabe
|
|
35
|
-
- Filtert Zeilen mit Status `D` (deleted)
|
|
36
|
-
- Normalisiert Pfade (Backslashes zu Slashes)
|
|
37
|
-
- Gibt `null` zurück bei Git-Fehlern (Fallback)
|
|
38
|
-
|
|
39
|
-
### Neues Modul: `src/generator/change-report.ts`
|
|
40
|
-
|
|
41
|
-
**Hauptfunktionen:**
|
|
42
|
-
|
|
43
|
-
1. **`extractChangesFromModuleDocs(moduleDocs: Map<string, string>)`**
|
|
44
|
-
- Parst HTML-Kommentare aus Modul-Dokumentation
|
|
45
|
-
- Extrahiert `symbol-added`, `symbol-removed`, `signature-changed` Kommentare
|
|
46
|
-
- Gibt strukturierte Change-Daten zurück
|
|
47
|
-
|
|
48
|
-
2. **`generateChangeReport(data: ChangeData): string`**
|
|
49
|
-
- Generiert strukturierten Markdown-Report gemäß Plan Abschnitt 6.7
|
|
50
|
-
- Format:
|
|
51
|
-
- Lauf-Typ (Full/Incremental)
|
|
52
|
-
- Geparste/Übersprungene Dateien
|
|
53
|
-
- Neu hinzugefügte Symbole
|
|
54
|
-
- Geänderte Symbole (mit Alt/Neu Signaturen)
|
|
55
|
-
- Entfernte Symbole
|
|
56
|
-
- Abhängigkeiten (Neu/Entfernt/Gesamt)
|
|
57
|
-
- Validator-Status (Fehler/Warnungen/Details)
|
|
58
|
-
|
|
59
|
-
**Interface `ChangeData`:**
|
|
60
|
-
```typescript
|
|
61
|
-
interface ChangeData {
|
|
62
|
-
runType: 'full' | 'incremental';
|
|
63
|
-
parsedFiles: number;
|
|
64
|
-
skippedFiles: number;
|
|
65
|
-
symbolsAdded: Array<{ filePath: string; symbolName: string; kind: string }>;
|
|
66
|
-
symbolsRemoved: Array<{ filePath: string; symbolName: string; kind: string }>;
|
|
67
|
-
symbolsChanged: Array<{ filePath: string; symbolName: string; oldSignature: string; newSignature: string }>;
|
|
68
|
-
dependenciesAdded: number;
|
|
69
|
-
dependenciesRemoved: number;
|
|
70
|
-
totalDependencies: number;
|
|
71
|
-
validationErrors: number;
|
|
72
|
-
validationWarnings: number;
|
|
73
|
-
validationDetails?: string[];
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
**Integration in `src/extension.ts`:**
|
|
78
|
-
|
|
79
|
-
1. **Git-Deletions erkennen:**
|
|
80
|
-
```typescript
|
|
81
|
-
const deletedFilesFromGit = getDeletedFiles(workspaceRoot) ?? new Set<string>();
|
|
82
|
-
if (deletedFilesFromGit.size > 0) {
|
|
83
|
-
globalOutput.appendLine(`[git] ${deletedFilesFromGit.size} gelöschte Dateien erkannt`);
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
- Wird an `buildDependenciesUnion()` und `buildSymbolsUnion()` übergeben
|
|
87
|
-
|
|
88
|
-
2. **CHANGE_REPORT generieren:**
|
|
89
|
-
- Nach Modul-Dokumentation-Generierung
|
|
90
|
-
- Extrahiert Änderungen aus generierten Docs
|
|
91
|
-
- Berechnet Dependency-Änderungen (Vergleich mit vorherigem Cache)
|
|
92
|
-
- Schreibt `docs/system/CHANGE_REPORT.md`
|
|
93
|
-
|
|
94
|
-
## Gelesene Abhängigkeiten aus Dokumentation
|
|
95
|
-
|
|
96
|
-
**docs/modules/src__core__git.ts.md:**
|
|
97
|
-
- `getChangedFiles(repoRoot: string): Set<string> | null` - Bestehende Git-Integration
|
|
98
|
-
|
|
99
|
-
**docs/modules/src__generator__module-doc.ts.md:**
|
|
100
|
-
- HTML-Kommentar-Format: `<!-- change: symbol-added name="..." kind="..." -->`
|
|
101
|
-
- HTML-Kommentar-Format: `<!-- change: signature-changed old="..." new="..." -->`
|
|
102
|
-
- HTML-Kommentar-Format: `<!-- change: symbol-removed name="..." kind="..." -->`
|
|
103
|
-
|
|
104
|
-
**docs/modules/src__extension.ts.md:**
|
|
105
|
-
- `generateDocumentationTs()` - Hauptfunktion für Generierung
|
|
106
|
-
- Union-Bildung mit `deletedFilesFromGit` Parameter
|
|
107
|
-
|
|
108
|
-
**docs/system/DEPENDENCIES.md:**
|
|
109
|
-
- Bestätigung: keine zirkulären Abhängigkeiten durch neue Imports
|
|
110
|
-
|
|
111
|
-
## Auswirkungen
|
|
112
|
-
|
|
113
|
-
### Positiv
|
|
114
|
-
- ✅ **Explizite Deletion-Erkennung:** Git-gelöschte Dateien werden aus Union entfernt
|
|
115
|
-
- ✅ **Zentrale Änderungsübersicht:** CHANGE_REPORT.md bietet maschinenlesbare Zusammenfassung
|
|
116
|
-
- ✅ **Deterministisch:** Report-Format ist strukturiert und konsistent
|
|
117
|
-
- ✅ **Rückwärtskompatibel:** Bei fehlendem Git funktioniert Fallback (leeres Set)
|
|
118
|
-
|
|
119
|
-
### Neutral
|
|
120
|
-
- ~160 Zeilen zusätzlicher Code in `change-report.ts`
|
|
121
|
-
- Git-Status-Parsing (vereinfacht, aber robust)
|
|
122
|
-
- Change-Extraktion aus HTML-Kommentaren (Regex-basiert)
|
|
123
|
-
|
|
124
|
-
### Trade-offs
|
|
125
|
-
- **Git-Status-Parsing vereinfacht:**
|
|
126
|
-
- Nutzt `git status --porcelain` (nur gelöschte Dateien, keine Umbenennungen)
|
|
127
|
-
- **Mitigation:** Für MVP ausreichend; erkennt explizite Deletions
|
|
128
|
-
- **Zukünftige Verbesserung:** Umbenennungen erkennen (optional)
|
|
129
|
-
|
|
130
|
-
- **Change-Extraktion aus Kommentaren:**
|
|
131
|
-
- Regex-basiertes Parsing von HTML-Kommentaren
|
|
132
|
-
- **Mitigation:** Format ist deterministisch; Parsing ist robust
|
|
133
|
-
- **Alternative:** Strukturierte Daten (JSON) - verworfen zugunsten lesbarer Kommentare
|
|
134
|
-
|
|
135
|
-
- **Validator-Status vereinfacht:**
|
|
136
|
-
- Aktuell nur Drift-Warnungen, keine vollständigen Validator-Ergebnisse
|
|
137
|
-
- **Mitigation:** Kann später aus `validateDocumentationTs()` erweitert werden
|
|
138
|
-
- **Zukünftige Verbesserung:** Integration mit Validator-Ergebnissen
|
|
139
|
-
|
|
140
|
-
## Risiken und Mitigation
|
|
141
|
-
|
|
142
|
-
- **Risiko:** Git-Status-Parsing unvollständig (nur Deletions, keine Umbenennungen)
|
|
143
|
-
- **Mitigation:** Für MVP ausreichend; explizite Deletions werden erkannt
|
|
144
|
-
- **Test:** Phase 5 wird Deletion-Test durchführen
|
|
145
|
-
|
|
146
|
-
- **Risiko:** Change-Extraktion fehlschlägt bei fehlerhaften Kommentaren
|
|
147
|
-
- **Mitigation:** Regex ist robust; bei Fehlern werden keine Änderungen extrahiert (leere Listen)
|
|
148
|
-
- **Erstlauf:** Keine bestehenden Kommentare → leere Change-Listen
|
|
149
|
-
|
|
150
|
-
- **Risiko:** CHANGE_REPORT wird bei jedem Lauf überschrieben
|
|
151
|
-
- **Mitigation:** Report ist deterministisch; gleiche Eingabe → gleiche Ausgabe
|
|
152
|
-
- **Zukünftige Verbesserung:** Historische Reports (optional)
|
|
153
|
-
|
|
154
|
-
## Design-Entscheidungen
|
|
155
|
-
|
|
156
|
-
### Alternative 1: Git-Diff für Deletions (statt git status)
|
|
157
|
-
- **Verworfen:** `git diff --name-only` zeigt nur geänderte Dateien, nicht gelöschte
|
|
158
|
-
- **Gewählt:** `git status --porcelain` zeigt explizit gelöschte Dateien (Status `D`)
|
|
159
|
-
|
|
160
|
-
### Alternative 2: Change-Daten in separater JSON-Datei
|
|
161
|
-
- **Verworfen:** Markdown-Report ist lesbarer und maschinenlesbar (strukturiert)
|
|
162
|
-
- **Gewählt:** CHANGE_REPORT.md als strukturiertes Markdown (gemäß Plan Abschnitt 6.7)
|
|
163
|
-
|
|
164
|
-
### Alternative 3: Validator-Integration sofort implementieren
|
|
165
|
-
- **Verworfen:** Validator-Ergebnisse sind komplex; vereinfachte Version für MVP
|
|
166
|
-
- **Gewählt:** Drift-Warnungen als Basis; kann später erweitert werden
|
|
167
|
-
|
|
168
|
-
### Alternative 4: Historische Reports (Append statt Overwrite)
|
|
169
|
-
- **Verworfen:** Plan fordert deterministischen Report; Append wäre nicht-deterministisch
|
|
170
|
-
- **Gewählt:** Report wird bei jedem Lauf neu generiert (deterministisch)
|
|
171
|
-
|
|
172
|
-
## Nächste Schritte
|
|
173
|
-
|
|
174
|
-
1. ✅ **Phase 4 abgeschlossen:** Git-Deletions und CHANGE_REPORT
|
|
175
|
-
2. ⏭️ **Phase 5:** Unit-Tests für `change-report.ts` (Change-Extraktion, Report-Generierung)
|
|
176
|
-
3. ⏭️ **Phase 6:** README & Pläne aktualisieren
|
|
177
|
-
|
|
178
|
-
## Referenzen
|
|
179
|
-
|
|
180
|
-
- **Plan:** `ADDITIVE_DOCUMENTATION_PLAN.md`, Abschnitt 6.7 (CHANGE_REPORT), 7 (Phase 4)
|
|
181
|
-
- **ADR 011:** Modul-Dokumente mit Änderungs-Kommentaren (Phase 3)
|
|
182
|
-
- **Dokumentation:**
|
|
183
|
-
- `docs/modules/src__core__git.ts.md`
|
|
184
|
-
- `docs/modules/src__generator__module-doc.ts.md`
|
|
185
|
-
- `docs/modules/src__extension.ts.md`
|
|
186
|
-
- `docs/system/DEPENDENCIES.md`
|
|
187
|
-
- **Cursor-Regeln:** `.cursor/rules/architecture-guardrails.mdc`, Abschnitt 0 (Wissensbasis)
|
|
188
|
-
|
|
189
|
-
## Implementierung
|
|
190
|
-
|
|
191
|
-
**Dateien:**
|
|
192
|
-
- `src/core/git.ts` (erweitert, `getDeletedFiles()` hinzugefügt)
|
|
193
|
-
- `src/generator/change-report.ts` (neu, ~160 Zeilen)
|
|
194
|
-
- `src/extension.ts` (angepasst, Git-Deletions + CHANGE_REPORT-Integration)
|
|
195
|
-
|
|
196
|
-
**Geänderte Zeilen:** ~50 (Integration)
|
|
197
|
-
**Neue Funktionen:** 2 öffentliche Funktionen in `change-report.ts`, 1 in `git.ts`
|
|
198
|
-
**Neue Interfaces:** `ChangeData`
|
|
199
|
-
|
|
200
|
-
**Qualität:**
|
|
201
|
-
- ✅ TypeScript kompiliert ohne Fehler
|
|
202
|
-
- ✅ Rückwärtskompatibel (Fallback auf leeres Set bei Git-Fehlern)
|
|
203
|
-
- ✅ Deterministisch (strukturiertes Markdown-Format)
|
|
204
|
-
- ✅ Keine zirkulären Abhängigkeiten
|
|
205
|
-
|
|
206
|
-
**Beispiel-Output (CHANGE_REPORT.md):**
|
|
207
|
-
```markdown
|
|
208
|
-
# Änderungsreport
|
|
209
|
-
|
|
210
|
-
Letzter Lauf: Incremental
|
|
211
|
-
Geparste Dateien: 15
|
|
212
|
-
Übersprungene Dateien: 127
|
|
213
|
-
|
|
214
|
-
## Neu hinzugefügte Symbole
|
|
215
|
-
- `src/core/scanner.ts::scanWorkspaceIncremental` (function)
|
|
216
|
-
|
|
217
|
-
## Geänderte Symbole
|
|
218
|
-
- `src/generator/index.ts::generatePerFileDocs`
|
|
219
|
-
- Alt: `(symbols: ParsedSymbol[]): Map<string, string>`
|
|
220
|
-
- Neu: `(symbols: ParsedSymbol[], modulesDir: string, existingDocs?: Map<string, string>): Map<string, string>`
|
|
221
|
-
|
|
222
|
-
## Entfernte Symbole
|
|
223
|
-
- `src/deprecated/old-parser.ts::parseOld` (function)
|
|
224
|
-
|
|
225
|
-
## Abhängigkeiten
|
|
226
|
-
- Neu: 3 Dependencies
|
|
227
|
-
- Entfernt: 0 Dependencies
|
|
228
|
-
- Gesamt: 458 Dependencies
|
|
229
|
-
|
|
230
|
-
## Validator-Status
|
|
231
|
-
- Fehler: 0
|
|
232
|
-
- Warnungen: 2
|
|
233
|
-
- Signatur-Abweichung: src/generator/index.ts::generatePerFileDocs
|
|
234
|
-
```
|
|
235
|
-
|