@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,33 +0,0 @@
1
- # 006 – Parser: Präzisere Typableitung für Variablen (v1.0.3)
2
-
3
- - Status: Accepted
4
- - Datum: 2025-10-02
5
- - Version: 1.0.3
6
-
7
- ## Kontext
8
- In generierten Modul-Dokumentationen wurden Variablen-Typen teils als `any` oder `{}` ausgewiesen, obwohl der Code präzisere Typen wie `Set<string>` oder `string[]` definiert (z.B. in `src/core/scanner.ts`: `DEFAULT_EXCLUDES`, `BACKUP_DIR_NAMES`, `BACKUP_FILE_SUFFIXES`).
9
-
10
- ## Entscheidung
11
- Der TypeScript-Parser (`TsJsParser`) liest Variablen-Typen nun bevorzugt aus dem `TypeNode` und fällt nur bei Bedarf auf `getType()` zurück. Der Typstring wird deterministisch normalisiert.
12
-
13
- ## Änderungen
14
- - Datei `src/parsers/ts-js.ts`:
15
- - Für Top-Level-Variablen: `decl.getTypeNode()?.getText()` → Normalisierung → Fallback `decl.getType().getText()`.
16
- - Einheitliche Normalisierung von Typstrings (Whitespace, import("...").-Präfixe).
17
-
18
- ## Auswirkungen
19
- - Doku zeigt korrekte Typen, z.B.:
20
- - `BACKUP_DIR_NAMES: Set<string>`
21
- - `BACKUP_FILE_SUFFIXES: string[]`
22
- - `DEFAULT_EXCLUDES: Set<string>`
23
- - Erhöhte Qualität und Nachvollziehbarkeit der generierten Dokumentation.
24
-
25
- ## Rollout
26
- - Bestandteil der Version 1.0.3 (VSIX).
27
- - Nach Update: „Docs: Generate Documentation“ ausführen.
28
-
29
- ## Risiken
30
- - Keine funktionalen Risiken. Minimal erhöhte String-Sensitivität bei exotischen Typen.
31
-
32
- ## Alternativen
33
- - Beibehalten der bisherigen (ungenaueren) Typableitung: verworfen zugunsten präziser Doku.
@@ -1,31 +0,0 @@
1
- # 007 – TS-Parser lädt Standard-Libs für präzise Typinferenz (v1.0.2)
2
-
3
- - Status: Accepted
4
- - Datum: 2025-10-02
5
- - Version: 1.0.2
6
-
7
- ## Kontext
8
- Variablen-Typen wurden in der Doku teils als `any` oder `{}` dargestellt, obwohl der Code präzise Typen nutzt (z.B. `Set<string>`, `string[]`). Ohne geladene Standard-Libs war die Typinferenz des TypeScript-Checkers unvollständig.
9
-
10
- ## Entscheidung
11
- Der `TsJsParser` lädt nun Standardbibliotheken und führt keine Dependency-Resolution-Skippings mehr durch. Das aktiviert eine vollständige Typinferenz für JS/TS (inkl. `Set`, `Map`, Promise, Arrays).
12
-
13
- ## Änderungen
14
- - `src/parsers/ts-js.ts` (Projekt-Setup):
15
- - `skipFileDependencyResolution: false`
16
- - `skipLoadingLibFiles: false`
17
- - `compilerOptions.lib: ["ES2020"]`
18
-
19
- ## Auswirkungen
20
- - Doku spiegelt exakte Variablen-Typen wider (z.B. `Set<string>`, `string[]`).
21
- - Validator kann Variablen-Signaturen belastbar abgleichen.
22
-
23
- ## Rollout
24
- - Bestandteil der v1.0.2 VSIX-Neuinstallation.
25
- - Nach Installation: „Docs: Generate Documentation“, dann „Docs: Validate Documentation“.
26
-
27
- ## Risiken
28
- - Leicht längere Parse-Zeit durch geladene Libs; im MVP tolerierbar.
29
-
30
- ## Alternativen
31
- - Heuristische Ableitung aus Initializern: verworfen zugunsten Checker-basierter, robuster Typen.
@@ -1,133 +0,0 @@
1
- # ADR 008: Dependencies-Cache für additive Generierung (Phase 1.1)
2
-
3
- **Status:** Implementiert
4
- **Datum:** 2025-10-06
5
- **Kontext:** ADDITIVE_DOCUMENTATION_PLAN.md, Abschnitt 7, Phase 1
6
-
7
- ## Kontext und Problemstellung
8
-
9
- Beim zweiten Generierungslauf werden unveränderte Dateien durch AST-Cache und Git-Diff-Optimierung übersprungen. Diese Dateien liefern keine Dependencies im aktuellen Lauf, wodurch `allDependencies` nur die Dependencies der aktuell geparsten Dateien enthält.
10
-
11
- **Resultat:**
12
- - `docs/system/DEPENDENCY_GRAPH.md` wird aus reduziertem Snapshot neu geschrieben
13
- - `docs/system/DEPENDENCIES.md` wird aus reduziertem Snapshot neu geschrieben
14
- - Artefakte "schrumpfen" zwischen Läufen
15
-
16
- **Betroffene Code-Stelle:**
17
- ```typescript
18
- // src/extension.ts:139-174
19
- const unchanged = astMap.get(f.repositoryRelativePath) === fileHash;
20
- if (unchanged) {
21
- return { symbols: [], dependencies: [] }; // ⚠️ Dependencies fehlen!
22
- }
23
- ```
24
-
25
- ## Entscheidung
26
-
27
- Einführung eines persistenten **Dependencies-Cache** analog zu den bestehenden Cache-Modulen (`ast-cache.ts`, `signature-cache.ts`, `output-cache.ts`).
28
-
29
- ### Neues Modul: `src/cache/dependencies-cache.ts`
30
-
31
- **Schema:**
32
- ```typescript
33
- interface DependenciesCacheData {
34
- version: 1;
35
- entries: DependencyCacheEntry[];
36
- }
37
-
38
- interface DependencyCacheEntry {
39
- from: string; // repo-relative path
40
- to: string; // import path
41
- type: 'import' | 'export' | 'require';
42
- symbols?: string[]; // sorted
43
- }
44
- ```
45
-
46
- **Funktionen:**
47
- - `loadDependenciesCache(file: string): DependenciesCacheData | null`
48
- - `saveDependenciesCache(dir: string, data: DependenciesCacheData): void`
49
-
50
- **Datei:** `docs/.cache/dependencies.json`
51
-
52
- **Sortierung (deterministisch):**
53
- 1. `from` (ascending)
54
- 2. `to` (ascending)
55
- 3. `type` (ascending)
56
- 4. `symbols` (ascending, joined)
57
-
58
- ### Design-Konsistenz mit bestehenden Cache-Modulen
59
-
60
- Das Modul folgt exakt dem Muster von:
61
- - `src/cache/ast-cache.ts` (Schema, load/save)
62
- - `src/cache/signature-cache.ts` (Versionierung, null-Fallback)
63
- - `src/cache/output-cache.ts` (Sortierung, deterministisches JSON)
64
-
65
- **Gelesene Abhängigkeiten aus `docs/system/DEPENDENCIES.md`:**
66
- - `fs` (existsSync, readFileSync, writeFileSync, mkdirSync)
67
- - `path` (join)
68
- - Keine zusätzlichen Dependencies
69
-
70
- ## Auswirkungen
71
-
72
- ### Positiv
73
- - ✅ **Keine schrumpfenden Abhängigkeiten:** Dependencies werden persistent gehalten und in Union mit neuen Kanten gemerged (Phase 1.2)
74
- - ✅ **Deterministisch:** Sortierung garantiert identische Ausgabe bei gleicher Eingabe
75
- - ✅ **Konsistent:** Folgt etabliertem Cache-Muster; keine neuen Paradigmen
76
- - ✅ **Robust:** null-Fallback bei fehlendem/korruptem Cache; Vollparse greift
77
-
78
- ### Neutral
79
- - Cache-Datei wird zusätzlich geschrieben (~1-10 KB je nach Projekt)
80
- - Keine Performance-Verschlechterung; nur I/O beim Laden/Schreiben
81
-
82
- ### Risiken und Mitigation
83
- - **Risiko:** Cache-Korruption führt zu fehlerhaftem Merge
84
- - **Mitigation:** Strikte Validierung (`version === 1`, `Array.isArray(entries)`); null-Fallback erzwingt Vollparse
85
- - **Risiko:** Cache wächst unbegrenzt bei großen Repos
86
- - **Mitigation:** Gelöschte Dateien werden in Phase 1.2 (consolidation) aus dem Cache entfernt
87
-
88
- ## Alternativen
89
-
90
- ### Alternative 1: Dependencies aus bestehendem Index rekonstruieren
91
- - `docs/index/symbols.jsonl` enthält bereits Dependencies pro Datei
92
- - **Verworfen:** Index ist Symbol-zentriert; nicht ideal für Dependency-Rekonstruktion; separater Cache ist klarer
93
-
94
- ### Alternative 2: Dependencies bei jedem Lauf neu extrahieren (kein Cache)
95
- - Vollparse aller Dateien, auch unveränderter
96
- - **Verworfen:** Performance-Einbußen; widerspricht inkrementeller Strategie
97
-
98
- ### Alternative 3: Dependencies in AST-Cache integrieren
99
- - `ast-cache.json` erweitern um Dependencies
100
- - **Verworfen:** Mischt Verantwortlichkeiten; AST-Hash ist Änderungs-Detektor, nicht Daten-Cache
101
-
102
- ## Nächste Schritte
103
-
104
- 1. ✅ **Phase 1.1 abgeschlossen:** `dependencies-cache.ts` erstellt
105
- 2. ⏭️ **Phase 1.2:** `src/core/consolidation.ts` erstellen mit `buildDependenciesUnion()`
106
- 3. ⏭️ **Phase 1.3:** Integration in `src/extension.ts`
107
- 4. ⏭️ **Phase 1.4:** Unit-Tests und Zweilauf-Test
108
-
109
- ## Referenzen
110
-
111
- - **Plan:** `ADDITIVE_DOCUMENTATION_PLAN.md`, Abschnitt 5.1, 7 (Phase 1)
112
- - **Bestehende Cache-Module:**
113
- - `docs/modules/src__cache__ast-cache.ts.md`
114
- - `docs/modules/src__cache__signature-cache.ts.md`
115
- - `docs/modules/src__cache__output-cache.ts.md`
116
- - **Dependencies-Dokumentation:** `docs/system/DEPENDENCIES.md`, Zeilen 14-33
117
- - **Cursor-Regeln:** `.cursor/rules/architecture-guardrails.mdc`, Abschnitt 0 (Wissensbasis)
118
-
119
- ## Implementierung
120
-
121
- **Datei:** `src/cache/dependencies-cache.ts`
122
-
123
- **Zeilen Code:** 61
124
- **Abhängigkeiten:** `fs`, `path` (Standard-Module)
125
- **Exports:** 3 (2 Interfaces, 2 Funktionen)
126
-
127
- **Qualität:**
128
- - ✅ Keine Linter-Fehler
129
- - ✅ Strikte Typisierung
130
- - ✅ Deterministisch (sortierte Ausgabe)
131
- - ✅ Robustheit (try-catch, null-Fallback)
132
-
133
-
@@ -1,147 +0,0 @@
1
- # ADR 009: Union-Logik für Dependencies und Symbole (Phase 1.2)
2
-
3
- **Status:** Implementiert
4
- **Datum:** 2025-10-06
5
- **Kontext:** ADDITIVE_DOCUMENTATION_PLAN.md, Abschnitt 7, Phase 1, Aufgabe 2
6
-
7
- ## Kontext und Problemstellung
8
-
9
- Nach Einführung des Dependencies-Cache (ADR 008) benötigen wir die **Union-Bildung**, um aus neuen und gecachten Dependencies bzw. Symbolen konsolidierte Gesamtmengen zu erzeugen.
10
-
11
- **Problem:**
12
- - Unveränderte Dateien liefern im aktuellen Lauf keine Dependencies/Symbole
13
- - Systemartefakte werden aus reduziertem Snapshot neu geschrieben
14
- - Index schrumpft zwischen Läufen
15
-
16
- **Ziel:**
17
- - Dependencies = Union aus "neu extrahiert" ∪ "gecachte"
18
- - Symbole = Union aus "neu geparst" ∪ "aus Index"
19
- - Nie "schrumpfen", außer bei Git-Deletion
20
-
21
- ## Entscheidung
22
-
23
- Neues Modul `src/core/consolidation.ts` mit zwei Hauptfunktionen:
24
-
25
- ### 1. `buildDependenciesUnion()`
26
-
27
- **Signatur:**
28
- ```typescript
29
- buildDependenciesUnion(
30
- dependenciesNew: ModuleDependency[],
31
- dependenciesCachePrev: DependencyCacheEntry[],
32
- parsedFiles: Set<string>,
33
- deletedFiles: Set<string>
34
- ): DependencyCacheEntry[]
35
- ```
36
-
37
- **Algorithmus (gemäß ADDITIVE_DOCUMENTATION_PLAN.md, Abschnitt 6.2):**
38
- 1. Für geparste Dateien: neue Dependencies übernehmen
39
- 2. Für nicht-geparste, nicht-gelöschte Dateien: alte Dependencies aus Cache behalten
40
- 3. Deduplizieren nach Schlüssel `(from, to, type, symbols_sorted)`
41
- 4. Sortieren: `from` → `to` → `type` → `symbols`
42
-
43
- **Hilfsfunktionen (Cognitive Complexity reduziert):**
44
- - `buildPreviousDependenciesMap()`: Map aus Cache-Einträgen
45
- - `buildUnionMap()`: Union-Bildung
46
- - `deduplicateAndSortDependencies()`: Deduplikation und Sortierung
47
-
48
- ### 2. `buildSymbolsUnion()`
49
-
50
- **Signatur:**
51
- ```typescript
52
- buildSymbolsUnion(
53
- symbolsNew: ParsedSymbol[],
54
- symbolsPrev: ParsedSymbol[],
55
- parsedFiles: Set<string>,
56
- deletedFiles: Set<string>
57
- ): ParsedSymbol[]
58
- ```
59
-
60
- **Algorithmus (gemäß ADDITIVE_DOCUMENTATION_PLAN.md, Abschnitt 6.3):**
61
- 1. Für geparste Dateien: neue Symbole übernehmen
62
- 2. Für nicht-geparste, nicht-gelöschte Dateien: alte Symbole behalten
63
- 3. Identifikation via `makeStableSymbolId()`
64
-
65
- ## Gelesene Abhängigkeiten aus Dokumentation
66
-
67
- **docs/modules/src__core__symbols.ts.md:**
68
- - `makeStableSymbolId(symbol: ParsedSymbol): string` - für Symbol-Identifikation
69
-
70
- **docs/modules/src__parsers__types.ts.md:**
71
- - `interface ParsedSymbol` - Symbol-Struktur
72
- - `filePath`, `fullyQualifiedName`, `kind`, `signature`
73
-
74
- **docs/modules/src__parsers__dependencies.ts.md:**
75
- - `interface ModuleDependency` - Dependency-Struktur
76
- - `from`, `to`, `type`, `symbols`
77
-
78
- **docs/system/DEPENDENCIES.md:**
79
- - Bestehende Imports: `crypto`, `fs`, `path` (aus Cache-Modulen)
80
- - Keine zirkulären Abhängigkeiten: core → parsers → types
81
-
82
- ## Auswirkungen
83
-
84
- ### Positiv
85
- - ✅ **Union-Bildung deterministisch:** Gleiche Eingabe → gleiche Ausgabe
86
- - ✅ **Keine schrumpfenden Artefakte:** Dependencies/Symbole bleiben erhalten
87
- - ✅ **Cognitive Complexity reduziert:** Hauptfunktionen < 15, Helper-Funktionen extrahiert
88
- - ✅ **Linter-konform:** Alle Warnungen behoben (localeCompare für sort)
89
- - ✅ **Klare Verantwortlichkeiten:** Ein Modul für Union-Bildung
90
-
91
- ### Neutral
92
- - Zusätzliche Funktion in `src/core/` (bestehende Struktur)
93
- - ~155 Zeilen Code
94
-
95
- ### Risiken und Mitigation
96
- - **Risiko:** Performance bei großen Repos (viele Symbole/Dependencies)
97
- - **Mitigation:** Map-basierte Deduplikation (O(n) statt O(n²)); deterministisches Sortieren nur einmal am Ende
98
- - **Risiko:** Fehlerhafte Union bei korrupten Daten
99
- - **Mitigation:** null-Fallbacks in Phase 1.3 (extension.ts); leere Arrays als Default
100
-
101
- ## Design-Entscheidungen
102
-
103
- ### Alternative 1: Union-Logik direkt in extension.ts
104
- - **Verworfen:** Verletzt Single Responsibility; extension.ts wird zu groß
105
-
106
- ### Alternative 2: Union in cache-Modulen implementieren
107
- - **Verworfen:** Cache-Module sind nur für Persistenz zuständig; Union ist Datenverarbeitung
108
-
109
- ### Alternative 3: Separate Module für Dependencies-Union und Symbols-Union
110
- - **Verworfen:** Beide Funktionen folgen gleichem Muster; Konsolidierung in einem Modul ist kohärenter
111
-
112
- ## Nächste Schritte
113
-
114
- 1. ✅ **Phase 1.1 abgeschlossen:** `dependencies-cache.ts`
115
- 2. ✅ **Phase 1.2 abgeschlossen:** `consolidation.ts`
116
- 3. ⏭️ **Phase 1.3:** Integration in `src/extension.ts` (Union-Logik nach Parse, vor Artefakt-Generierung)
117
- 4. ⏭️ **Phase 1.4:** Unit-Tests für `buildDependenciesUnion()` und `buildSymbolsUnion()`
118
-
119
- ## Referenzen
120
-
121
- - **Plan:** `ADDITIVE_DOCUMENTATION_PLAN.md`, Abschnitt 6.2-6.3, 7 (Phase 1)
122
- - **ADR 008:** Dependencies-Cache-Einführung
123
- - **Dokumentation:**
124
- - `docs/modules/src__core__symbols.ts.md`
125
- - `docs/modules/src__parsers__types.ts.md`
126
- - `docs/modules/src__parsers__dependencies.ts.md`
127
- - `docs/system/DEPENDENCIES.md`
128
- - **Cursor-Regeln:** `.cursor/rules/architecture-guardrails.mdc`, Abschnitt 0
129
-
130
- ## Implementierung
131
-
132
- **Datei:** `src/core/consolidation.ts`
133
-
134
- **Zeilen Code:** 155
135
- **Exports:** 2 öffentliche Funktionen, 3 private Helper
136
- **Abhängigkeiten:**
137
- - `../cache/dependencies-cache` (DependencyCacheEntry)
138
- - `../parsers/dependencies` (ModuleDependency)
139
- - `../parsers/types` (ParsedSymbol)
140
- - `./symbols` (makeStableSymbolId)
141
-
142
- **Qualität:**
143
- - ✅ Keine Linter-Fehler
144
- - ✅ Cognitive Complexity < 15 (durch Helper-Funktionen)
145
- - ✅ Strikte Typisierung
146
- - ✅ Deterministisch (sortiert mit localeCompare)
147
-
@@ -1,179 +0,0 @@
1
- # ADR 010: Integration Union-Logik in extension.ts (Phase 1.3 + Phase 2)
2
-
3
- **Status:** Implementiert
4
- **Datum:** 2025-10-06
5
- **Kontext:** ADDITIVE_DOCUMENTATION_PLAN.md, Abschnitt 7, Phase 1 Aufgabe 3 + Phase 2
6
-
7
- ## Kontext und Problemstellung
8
-
9
- Nach Einführung von Dependencies-Cache (ADR 008) und Union-Logik (ADR 009) muss die Pipeline in `src/extension.ts` angepasst werden:
10
-
11
- **Bisheriger Ablauf:**
12
- 1. Parse → `allSymbols`, `allDependencies`
13
- 2. Generierung/Index/System-Docs direkt aus `allSymbols`/`allDependencies`
14
- 3. **Problem:** Unveränderte Dateien liefern keine Dependencies/Symbole → Artefakte schrumpfen
15
-
16
- **Gewünschter Ablauf (gemäß Plan):**
17
- 1. Parse → `allSymbols`, `allDependencies` (nur geparste Dateien)
18
- 2. **Union-Bildung:** Merge mit Cache/Index → `symbolsUnion`, `dependenciesUnion`
19
- 3. Generierung/Index/System-Docs aus `symbolsUnion`/`dependenciesUnion`
20
- 4. Dependencies-Cache speichern
21
-
22
- ## Entscheidung
23
-
24
- ### Integration in `src/extension.ts` nach Zeile 250 (nach Fallbacks)
25
-
26
- **Neue Imports:**
27
- ```typescript
28
- import { loadDependenciesCache, saveDependenciesCache } from './cache/dependencies-cache';
29
- import { buildDependenciesUnion, buildSymbolsUnion } from './core/consolidation';
30
- ```
31
-
32
- **Union-Bildung (Zeilen 252-310):**
33
-
34
- 1. **Dependencies-Union:**
35
- ```typescript
36
- const depCacheFile = path.join(cacheDir, 'dependencies.json');
37
- const depCachePrev = loadDependenciesCache(depCacheFile);
38
- const parsedFiles = new Set(scanned.map(f => f.repositoryRelativePath));
39
- const deletedFilesFromGit = new Set<string>(); // Für jetzt leer
40
-
41
- const dependenciesUnion = buildDependenciesUnion(
42
- allDependencies,
43
- depCachePrev?.entries ?? [],
44
- parsedFiles,
45
- deletedFilesFromGit
46
- );
47
- ```
48
-
49
- 2. **Symbol-Union:**
50
- ```typescript
51
- // Index laden und zu ParsedSymbol[] rekonstruieren
52
- const indexFile = path.join(workspaceRoot, config.outputPath, 'index', 'symbols.jsonl');
53
- let symbolsPrev: ParsedSymbol[] = []; // Aus Index rekonstruiert
54
-
55
- const symbolsUnion = buildSymbolsUnion(
56
- allSymbols,
57
- symbolsPrev,
58
- parsedFiles,
59
- deletedFilesFromGit
60
- );
61
- ```
62
-
63
- **Verwendung der Union (ab Zeile 316):**
64
- - `generatePerFileDocs(symbolsUnion)` statt `allSymbols`
65
- - `buildIndexFromSymbols(symbolsUnion, dependenciesUnion)` statt `allSymbols, allDependencies`
66
- - `generateMermaidGraph(dependenciesUnion)` statt `allDependencies`
67
- - `generateDependencyOverview(dependenciesUnion)` statt `allDependencies`
68
- - `computeCacheEntries(symbolsUnion)` statt `allSymbols`
69
-
70
- **Dependencies-Cache speichern (Zeile 354):**
71
- ```typescript
72
- if (dependenciesUnion.length > 0) {
73
- saveDependenciesCache(cacheDir, { version: 1, entries: dependenciesUnion });
74
- }
75
- ```
76
-
77
- ## Gelesene Abhängigkeiten aus Dokumentation
78
-
79
- **docs/modules/src__extension.ts.md:**
80
- - `generateDocumentationTs()` - Hauptfunktion für Generierung
81
-
82
- **docs/modules/src__core__git.ts.md:**
83
- - `getChangedFiles(repoRoot: string): Set<string> | null` - Git-Diff
84
-
85
- **docs/modules/src__index__index.ts.md:**
86
- - `buildIndexFromSymbols(symbols, dependencies)` - Index-Erzeugung
87
- - `writeJsonlIndex(rows, outFile)` - Index schreiben
88
-
89
- **docs/system/DEPENDENCIES.md:**
90
- - Bestätigung: keine zirkulären Abhängigkeiten durch neue Imports
91
-
92
- ## Auswirkungen
93
-
94
- ### Positiv
95
- - ✅ **Phase 1 komplett abgeschlossen:** Dependencies-Cache, Union-Logik, Integration
96
- - ✅ **Phase 2 komplett abgeschlossen:** Systemartefakte und Index aus Union
97
- - ✅ **Keine schrumpfenden Artefakte mehr:** Dependencies/Symbole bleiben erhalten
98
- - ✅ **Logging transparent:** `[union]` zeigt neu/gecacht/Union-Anzahl
99
- - ✅ **Rückwärtskompatibel:** Bei fehlendem Cache/Index funktioniert Vollparse
100
- - ✅ **Deterministisch:** Union-Funktionen garantieren stabile Sortierung
101
-
102
- ### Neutral
103
- - ~60 Zeilen zusätzlicher Code in `extension.ts`
104
- - Dependencies-Cache wird zusätzlich geschrieben (nach Systemartefakten)
105
-
106
- ### Trade-offs
107
- - **Index-Rekonstruktion vereinfacht:**
108
- - Aus `symbols.jsonl` wird `ParsedSymbol` rekonstruiert
109
- - `language` fehlt im Index → `'unknown'`
110
- - `signature` wird vereinfacht (nur Name, keine Parameter/ReturnType)
111
- - **Mitigation:** Funktioniert für Union-Bildung (Key ist `symbol_id` oder `(path, kind, name)`)
112
- - **Zukünftige Verbesserung:** Vollständigere Signatur-Persistierung im Index (optional)
113
-
114
- ## Risiken und Mitigation
115
-
116
- - **Risiko:** Index-Rekonstruktion zu vereinfacht für korrekte Union
117
- - **Mitigation:** `makeStableSymbolId()` nutzt Pfad+Name+Kind; ausreichend für Deduplikation
118
- - **Test:** Phase 1.4 wird Zweilauf-Test durchführen
119
-
120
- - **Risiko:** Git-Deletion-Tracking noch nicht implementiert
121
- - **Status:** `deletedFilesFromGit` ist leer; kein Problem, da nicht-geparste Dateien einfach beibehalten werden
122
- - **Zukünftige Erweiterung:** Git-Status auswerten für explizite Deletion
123
-
124
- ## Design-Entscheidungen
125
-
126
- ### Alternative 1: Union vor den Fallbacks
127
- - **Verworfen:** Fallbacks könnten Union-Daten überschreiben; unsauber
128
-
129
- ### Alternative 2: Dependencies direkt in Index persistieren (kein separater Cache)
130
- - **Verworfen:** Index ist Symbol-zentriert; separater Dependencies-Cache ist klarer (ADR 009)
131
-
132
- ### Alternative 3: Vollständige Signatur-Rekonstruktion aus Index
133
- - **Verworfen:** Index enthält nicht alle Signatur-Details; würde Breaking Change erfordern
134
- - **Gewählt:** Vereinfachte Rekonstruktion reicht für Union; stabil via `symbol_id`
135
-
136
- ## Nächste Schritte
137
-
138
- 1. ✅ **Phase 1.1-1.3 + Phase 2 abgeschlossen**
139
- 2. ⏭️ **Phase 1.4:** Unit-Tests für dependencies-cache, consolidation; Zweilauf-Test
140
- 3. ⏭️ **Phase 3:** Modul-Dokumente mit Änderungs-Kommentaren
141
-
142
- ## Referenzen
143
-
144
- - **Plan:** `ADDITIVE_DOCUMENTATION_PLAN.md`, Abschnitt 6.2-6.5, 7 (Phase 1.3 + Phase 2)
145
- - **ADR 008:** Dependencies-Cache
146
- - **ADR 009:** Union-Logik (Consolidation)
147
- - **Dokumentation:**
148
- - `docs/modules/src__extension.ts.md`
149
- - `docs/modules/src__core__git.ts.md`
150
- - `docs/modules/src__index__index.ts.md`
151
- - `docs/system/DEPENDENCIES.md`
152
- - **Cursor-Regeln:** `.cursor/rules/architecture-guardrails.mdc`, Abschnitt 0
153
-
154
- ## Implementierung
155
-
156
- **Datei:** `src/extension.ts`
157
-
158
- **Geänderte Zeilen:** ~80 (Union-Block + Verwendungen)
159
- **Neue Imports:** 2 (dependencies-cache, consolidation)
160
- **Neue Variablen:** `dependenciesUnion`, `symbolsUnion`, `parsedFiles`, `deletedFilesFromGit`, `symbolsPrev`
161
-
162
- **Qualität:**
163
- - ✅ Linter-Fehler minimal (vorhandene Cognitive Complexity unverändert; unused imports entfernt)
164
- - ✅ Rückwärtskompatibel (Fallback auf leere Arrays)
165
- - ✅ Logging transparent
166
- - ✅ Dependencies-Cache deterministisch gespeichert
167
-
168
- **Logging-Output (Beispiel):**
169
- ```
170
- [union] Dependencies: 12 neu + 458 gecacht → 470 Union
171
- [union] Symbole: 45 neu + 210 gecacht → 255 Union
172
- [generate] Gescannt: 15, Symbole: 255, Dependencies: 470, Dateien: 29, Dauer: 1234ms
173
- ```
174
-
175
-
176
-
177
-
178
-
179
-