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