@noyrax/documentation-system-plugin 1.0.4-beta.3 → 1.0.4-beta.4

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.
Files changed (197) hide show
  1. package/out/cache/ast-cache.js +69 -0
  2. package/out/cache/ast-cache.js.map +1 -0
  3. package/out/cache/dependencies-cache.js +73 -0
  4. package/out/cache/dependencies-cache.js.map +1 -0
  5. package/out/cache/output-cache.js +69 -0
  6. package/out/cache/output-cache.js.map +1 -0
  7. package/out/cache/signature-cache.js +60 -0
  8. package/out/cache/signature-cache.js.map +1 -0
  9. package/out/cli/generate-cli.js +341 -0
  10. package/out/cli/generate-cli.js.map +1 -0
  11. package/out/cli/scan-cli.js +157 -0
  12. package/out/cli/scan-cli.js.map +1 -0
  13. package/out/cli/validate-cli.js +258 -0
  14. package/out/cli/validate-cli.js.map +1 -0
  15. package/out/core/async.js +38 -0
  16. package/out/core/async.js.map +1 -0
  17. package/out/core/consolidation.js +230 -0
  18. package/out/core/consolidation.js.map +1 -0
  19. package/out/core/git.js +48 -0
  20. package/out/core/git.js.map +1 -0
  21. package/out/core/language-detection.js +29 -0
  22. package/out/core/language-detection.js.map +1 -0
  23. package/out/core/scanner.js +180 -0
  24. package/out/core/scanner.js.map +1 -0
  25. package/out/core/signature-formatter.js +162 -0
  26. package/out/core/signature-formatter.js.map +1 -0
  27. package/out/core/symbol-classifier.js +96 -0
  28. package/out/core/symbol-classifier.js.map +1 -0
  29. package/out/core/symbols.js +24 -0
  30. package/out/core/symbols.js.map +1 -0
  31. package/out/drift/index.js +28 -0
  32. package/out/drift/index.js.map +1 -0
  33. package/out/extension.js +984 -0
  34. package/out/extension.js.map +1 -0
  35. package/out/generator/adr-linker.js +216 -0
  36. package/out/generator/adr-linker.js.map +1 -0
  37. package/out/generator/change-report.js +124 -0
  38. package/out/generator/change-report.js.map +1 -0
  39. package/out/generator/dependency-graph.js +98 -0
  40. package/out/generator/dependency-graph.js.map +1 -0
  41. package/out/generator/index.js +117 -0
  42. package/out/generator/index.js.map +1 -0
  43. package/out/generator/module-doc.js +438 -0
  44. package/out/generator/module-doc.js.map +1 -0
  45. package/out/generator/system-metadata.js +202 -0
  46. package/out/generator/system-metadata.js.map +1 -0
  47. package/out/index/index.js +161 -0
  48. package/out/index/index.js.map +1 -0
  49. package/out/logging/index.js +24 -0
  50. package/out/logging/index.js.map +1 -0
  51. package/out/parsers/dependencies.js +126 -0
  52. package/out/parsers/dependencies.js.map +1 -0
  53. package/out/parsers/json-yaml.js +121 -0
  54. package/out/parsers/json-yaml.js.map +1 -0
  55. package/out/parsers/python.js +160 -0
  56. package/out/parsers/python.js.map +1 -0
  57. package/out/parsers/ts-js.js +598 -0
  58. package/out/parsers/ts-js.js.map +1 -0
  59. package/out/parsers/types.js +3 -0
  60. package/out/parsers/types.js.map +1 -0
  61. package/out/ui/commands-provider.js +91 -0
  62. package/out/ui/commands-provider.js.map +1 -0
  63. package/out/ui/status-bar.js +85 -0
  64. package/out/ui/status-bar.js.map +1 -0
  65. package/out/validator/index.js +185 -0
  66. package/out/validator/index.js.map +1 -0
  67. package/out/validator/signature-matching.js +261 -0
  68. package/out/validator/signature-matching.js.map +1 -0
  69. package/out/validator/status.js +38 -0
  70. package/out/validator/status.js.map +1 -0
  71. package/package.json +9 -1
  72. package/.vscodeignore +0 -41
  73. package/MCP_SERVER_SETUP.md +0 -371
  74. package/assets/icon.svg +0 -27
  75. package/docs/LINKEDIN_ANTWORT_SEQUENZDIAGRAMME.md +0 -190
  76. package/docs/SEQUENZDIAGRAMM_BEWEIS.md +0 -469
  77. package/docs/SEQUENZDIAGRAMM_VALIDATE_FLOW.md +0 -282
  78. package/docs/adr/001-signatur-abweichung-fix.md +0 -54
  79. package/docs/adr/002-file-specific-validation-1.0.1.md +0 -45
  80. package/docs/adr/003-documentation-generation-bugs.md +0 -134
  81. package/docs/adr/004-validator-signature-matching-fix.md +0 -121
  82. package/docs/adr/005-validator-generic-simplification-tightening.md +0 -35
  83. package/docs/adr/006-parser-variable-type-extraction.md +0 -33
  84. package/docs/adr/007-ts-parser-load-libs-for-accurate-types.md +0 -31
  85. package/docs/adr/008-dependencies-cache-phase1.md +0 -133
  86. package/docs/adr/009-consolidation-union-logic-phase1-2.md +0 -147
  87. package/docs/adr/010-extension-union-integration-phase1-3-and-phase2.md +0 -179
  88. package/docs/adr/011-module-doc-change-tracking-phase3.md +0 -190
  89. package/docs/adr/012-git-deletions-change-report-phase4.md +0 -235
  90. package/docs/adr/013-system-functionality-fixes.md +0 -279
  91. package/docs/adr/014-rules-migration-und-mcp-integration.md +0 -113
  92. package/docs/adr/015-global-agent-package.md +0 -158
  93. package/docs/adr/016-produktisierung-docguard.md +0 -193
  94. package/docs/adr/017-signature-matching-optional-fields.md +0 -128
  95. package/docs/adr/018-rebranding-docguard-to-noyrax.md +0 -109
  96. package/docs/adr/019-system-schwachstellen-analyse-und-fixes.md +0 -204
  97. package/docs/adr/020-api-doc-tiefe-und-signatureformatter.md +0 -74
  98. package/docs/adr/021-semantic-api-docs-and-symbol-classifier.md +0 -125
  99. package/docs/adr/022-semantic-class-and-constants-rendering.md +0 -82
  100. package/docs/adr/023-adr-verknuepfung-modul-doku.md +0 -54
  101. package/docs/adr/024-cursor-rules-mehrdimensionaler-raum.md +0 -230
  102. package/docs/adr/025-mcp-tools-scan-validate-cli-bridge.md +0 -202
  103. package/docs/adr/026-reality-driven-development-system.md +0 -173
  104. package/docs/adr/027-scanner-excludes-and-union-logic-fix.md +0 -189
  105. package/docs/adr/028-src-coverage-union-resync.md +0 -124
  106. package/docs/adr/029-parser-flow-kopplung-und-sync-drift-modi.md +0 -102
  107. package/docs/adr/030-dependency-import-symbol-names-preservation.md +0 -123
  108. package/docs/adr/031-generate-cli-vollstaendige-dokumentation.md +0 -99
  109. package/docs/adr/032-windows-optimized-verification-scripts.md +0 -165
  110. package/docs/adr/036-enhanced-dependency-metadata.md +0 -190
  111. package/docs/adr/TEMPLATE.md +0 -76
  112. package/docs/index/symbols.jsonl +0 -78
  113. package/docs/modules/action__action.yml.md +0 -50
  114. package/docs/modules/documentation.config.schema.json.md +0 -37
  115. package/docs/modules/mcp__package.json.md +0 -130
  116. package/docs/modules/mcp__src__resources__docs.ts.md +0 -94
  117. package/docs/modules/mcp__src__server.ts.md +0 -15
  118. package/docs/modules/mcp__src__tools__drift.ts.md +0 -114
  119. package/docs/modules/mcp__src__tools__impact.ts.md +0 -130
  120. package/docs/modules/mcp__src__tools__scan.ts.md +0 -75
  121. package/docs/modules/mcp__src__tools__validate.ts.md +0 -116
  122. package/docs/modules/mcp__src__tools__verify-adrs.ts.md +0 -106
  123. package/docs/modules/mcp__tsconfig.json.md +0 -22
  124. package/docs/modules/package.json.md +0 -130
  125. package/docs/modules/packages__doc-system-agent__examples__basic-project__package.json.md +0 -43
  126. package/docs/modules/packages__doc-system-agent__examples__basic-project__src__calculator.ts.md +0 -81
  127. package/docs/modules/packages__doc-system-agent__package.json.md +0 -154
  128. package/docs/modules/packages__doc-system-agent__src__cli__index.ts.md +0 -8
  129. package/docs/modules/packages__doc-system-agent__src__cli__init.ts.md +0 -93
  130. package/docs/modules/packages__doc-system-agent__src__cli__update.ts.md +0 -113
  131. package/docs/modules/packages__doc-system-agent__src__constants.ts.md +0 -29
  132. package/docs/modules/packages__doc-system-agent__src__index.ts.md +0 -234
  133. package/docs/modules/packages__doc-system-agent__src__mcp__resources__docs.ts.md +0 -94
  134. package/docs/modules/packages__doc-system-agent__src__mcp__server.ts.md +0 -17
  135. package/docs/modules/packages__doc-system-agent__src__mcp__tools__drift.ts.md +0 -38
  136. package/docs/modules/packages__doc-system-agent__src__mcp__tools__impact.ts.md +0 -75
  137. package/docs/modules/packages__doc-system-agent__src__mcp__tools__scan.ts.md +0 -23
  138. package/docs/modules/packages__doc-system-agent__src__mcp__tools__validate.ts.md +0 -23
  139. package/docs/modules/packages__doc-system-agent__src__mcp__tools__verify-adrs.ts.md +0 -106
  140. package/docs/modules/packages__doc-system-agent__src__mcp__types.ts.md +0 -355
  141. package/docs/modules/packages__doc-system-agent__tsconfig.json.md +0 -22
  142. package/docs/modules/scripts__verify-adrs.js.md +0 -97
  143. package/docs/modules/scripts__verify-architecture.js.md +0 -93
  144. package/docs/modules/scripts__verify-imports.js.md +0 -114
  145. package/docs/modules/src____tests____setup.ts.md +0 -8
  146. package/docs/modules/src____tests____signature-formatter.test.ts.md +0 -16
  147. package/docs/modules/src____tests____snapshot-doc-generation.test.ts.md +0 -8
  148. package/docs/modules/src____tests____symbol-classifier.test.ts.md +0 -16
  149. package/docs/modules/src__cache__ast-cache.ts.md +0 -91
  150. package/docs/modules/src__cache__dependencies-cache.ts.md +0 -89
  151. package/docs/modules/src__cache__output-cache.ts.md +0 -91
  152. package/docs/modules/src__cache__signature-cache.ts.md +0 -76
  153. package/docs/modules/src__cli__generate-cli.ts.md +0 -130
  154. package/docs/modules/src__cli__scan-cli.ts.md +0 -99
  155. package/docs/modules/src__cli__validate-cli.ts.md +0 -144
  156. package/docs/modules/src__core__async.ts.md +0 -18
  157. package/docs/modules/src__core__consolidation.ts.md +0 -157
  158. package/docs/modules/src__core__git.ts.md +0 -35
  159. package/docs/modules/src__core__language-detection.ts.md +0 -31
  160. package/docs/modules/src__core__scanner.ts.md +0 -100
  161. package/docs/modules/src__core__signature-formatter.ts.md +0 -232
  162. package/docs/modules/src__core__symbol-classifier.ts.md +0 -178
  163. package/docs/modules/src__core__symbols.ts.md +0 -31
  164. package/docs/modules/src__drift__index.ts.md +0 -53
  165. package/docs/modules/src__extension.ts.md +0 -418
  166. package/docs/modules/src__generator__adr-linker.ts.md +0 -154
  167. package/docs/modules/src__generator__change-report.ts.md +0 -85
  168. package/docs/modules/src__generator__dependency-graph.ts.md +0 -63
  169. package/docs/modules/src__generator__index.ts.md +0 -40
  170. package/docs/modules/src__generator__module-doc.ts.md +0 -242
  171. package/docs/modules/src__index__index.ts.md +0 -159
  172. package/docs/modules/src__logging__index.ts.md +0 -87
  173. package/docs/modules/src__parsers__dependencies.ts.md +0 -69
  174. package/docs/modules/src__parsers__json-yaml.ts.md +0 -96
  175. package/docs/modules/src__parsers__python.ts.md +0 -73
  176. package/docs/modules/src__parsers__ts-js.ts.md +0 -48
  177. package/docs/modules/src__parsers__types.ts.md +0 -117
  178. package/docs/modules/src__ui__commands-provider.ts.md +0 -70
  179. package/docs/modules/src__ui__status-bar.ts.md +0 -79
  180. package/docs/modules/src__validator__index.ts.md +0 -211
  181. package/docs/modules/src__validator__signature-matching.ts.md +0 -209
  182. package/docs/modules/src__validator__status.ts.md +0 -72
  183. package/docs/modules/test-mcp-resources.js.md +0 -27
  184. package/docs/modules/tsconfig.json.md +0 -22
  185. package/docs/system/CHANGE_REPORT.md +0 -26
  186. package/docs/system/DEPENDENCIES.md +0 -403
  187. package/docs/system/DEPENDENCY_GRAPH.md +0 -336
  188. package/docs/system/NAVIGATION_SPACE_ANALYSIS.md +0 -244
  189. package/docs/system/NPX_CACHE_FIX.md +0 -85
  190. package/docs/system/NPX_LOCAL_USAGE.md +0 -66
  191. package/docs/system/PLUGIN_ECOSYSTEM_STATUS.md +0 -465
  192. package/docs/system/PLUGIN_UPDATE_GUIDE.md +0 -212
  193. package/docs/system/RULES_UPDATE_GUIDE.md +0 -182
  194. package/docs/system/SYSTEM_ANALYSIS.md +0 -947
  195. package/docs/system/SYSTEM_METADATA.json +0 -37
  196. package/documentation.config.schema.json +0 -77
  197. 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
-