@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,102 +0,0 @@
1
- # ADR-029: Parser-Flow-Kopplung und Sync/Drift-Modi für die Validierung
2
-
3
- ## Status
4
-
5
- - Status: Accepted
6
- - Datum: 2025-12-15
7
-
8
- ## Kontext
9
-
10
- Das System besitzt zwei Haupt-Flows, die Symbole aus dem Code extrahieren:
11
-
12
- 1. **Generate-Flow (Extension / Full Cycle)**
13
- - `generateDocumentationTs` in `src/extension.ts`
14
- - Pfad: `scanWorkspace` → Parser (`TsJsParser`, `JsonYamlParser`, `PythonParser`) →
15
- `allSymbols`/`allDependencies` → `symbolsUnion`/`dependenciesUnion` →
16
- `generatePerFileDocs` (`docs/modules/*`), `buildIndexFromSymbols` (`docs/index/symbols.jsonl`),
17
- `generateMermaidGraph`/`generateDependencyOverview` (`docs/system/DEPENDENCY_GRAPH.md` / `DEPENDENCIES.md`),
18
- `generateChangeReport` (`docs/system/CHANGE_REPORT.md`) und Caches unter `docs/.cache`.
19
-
20
- 2. **Validate-Flow (CLI & Extension)**
21
- - CLI: `runValidateCli` in `src/cli/validate-cli.ts` (`npm run validate:cli`)
22
- - Extension: `validateDocumentationTs` in `src/extension.ts` (Command `noyrax.validate`)
23
- - Bisheriger Pfad: erneuter `scanWorkspace` → eigene Parser-Instanzen → `allSymbols` →
24
- `computeCoverage`, `validateMarkdownDir`, `validateSignatureMatching`.
25
-
26
- Diese Trennung führte dazu, dass Generator und Validator in bestimmten Fällen unterschiedliche Symbolzustände sahen, was zu `stale_docs`-Warnungen führte, obwohl die Doku frisch generiert war.
27
-
28
- ## Problem
29
-
30
- - Nach einem Full Cycle lag ein aktueller Symbol-Index (`docs/index/symbols.jsonl`) und frische Modul-Doku vor.
31
- - Der Validator (`validate:cli` / `validateDocumentationTs`) hat jedoch **erneut geparst** und auf Basis dieses zweiten Parser-Laufs `expected`-Signaturen erzeugt.
32
- - In einigen Fällen (insbesondere Skripte unter `scripts/verify-*.js` und Extension-Funktionen in `src/extension.ts`) waren diese Signaturen tiefer typisiert als die Symbole aus dem Generate-Flow, wodurch das Signatur-Matching `stale_docs` meldete, obwohl kein echter Drift zwischen „gerade generierter Doku“ und Symbolbasis bestand.
33
- - Gleichzeitig soll der Validator weiterhin in der Lage sein, **echten Drift** zu erkennen, wenn sich der Code **nach** einem Generate-Lauf ändert, ohne dass sofort neu generiert wird.
34
-
35
- ## Entscheidung
36
-
37
- Wir führen zwei explizite Validierungsmodi und eine gemeinsame Symbolbasis ein:
38
-
39
- 1. **Gemeinsame Symbolbasis über `docs/index/symbols.jsonl`**
40
-
41
- - In `src/index/index.ts` wurde `readSymbolsFromIndex(indexFile: string): ParsedSymbol[]` eingeführt.
42
- - Diese Funktion liest `docs/index/symbols.jsonl` (JSONL) und rekonstruiert daraus `ParsedSymbol[]` mit allen für Validator und Generator relevanten Feldern (`filePath`, `fullyQualifiedName`, `kind`, `signature`).
43
- - Der Generate-Flow nutzt weiterhin `buildIndexFromSymbols` + `writeJsonlIndex`, der Validator kann nun dieselbe Index-Datei als *kanonische Symbolbasis* verwenden.
44
-
45
- 2. **Sync-Modus (nach Generate oder Full Cycle)**
46
-
47
- - **CLI-Validator (`src/cli/validate-cli.ts`)**:
48
- - Versucht zuerst, Symbole aus `docs/index/symbols.jsonl` zu laden:
49
- - `const indexFile = path.join(workspaceRoot, outputPath, 'index', 'symbols.jsonl');`
50
- - `allSymbols = readSymbolsFromIndex(indexFile);`
51
- - Wenn das Laden gelingt (`allSymbols.length > 0`), arbeitet der Validator im **Sync-Modus**:
52
- - Keine erneute Parser-Ausführung, keine zweite Symbolquelle.
53
- - Coverage (`computeCoverage`) und Markdown/Signatur-Matching (`validateMarkdownDir` + `validateSignatureMatching`) laufen auf exakt derselben Symbolbasis, die auch für die letzte Generierung verwendet wurde.
54
- - **Extension-Validator (`validateDocumentationTs` in `src/extension.ts`)**:
55
- - Nutzt den gleichen Mechanismus: erst Index lesen, dann nur bei Bedarf Re-Parse (siehe Drift-Modus).
56
- - Ergebnis: Direkt nach `Generate` oder `Full Cycle` gibt es keine künstlichen `stale_docs`-Warnungen mehr – Generator und Validator sehen denselben Symbolzustand.
57
-
58
- 3. **Drift-Modus (späterer Check ohne frisches Generate)**
59
-
60
- - Wenn `readSymbolsFromIndex` keine Symbole liefert (Index fehlt, leer oder explizit deaktiviert), fällt der Validator in den **Drift-Modus** zurück:
61
- - Bisheriges Verhalten: `scanWorkspace` → Parser (`TsJsParser`, `JsonYamlParser`, `PythonParser`) → `allSymbols`.
62
- - In diesem Modus:
63
- - werden Symbole direkt aus dem aktuellen Code neu ermittelt,
64
- - werden diese gegen bestehende Doku/Signaturspeicher verglichen (z. B. über `validateMarkdownDir` + `validateSignatureMatching` und Signatur-Cache in `src/drift/index.ts`),
65
- - kann echter Drift (Code geändert, Doku noch alt) erkannt und gemeldet werden.
66
-
67
- 4. **Drift-Erkennung im Generate-Flow bleibt bestehen**
68
-
69
- - Im Generate-Flow wird weiterhin `detectDrift` (`src/drift/index.ts`) zwischen altem und neuem Signatur-Cache aufgerufen.
70
- - Diese Drift-Erkennung arbeitet unabhängig vom CLI-Validator und ergänzt den Drift-Modus dort.
71
-
72
- ## Konsequenzen
73
-
74
- ### Positiv
75
-
76
- - **Kohärente Signaturen im Sync-Modus**: Nach einem Generate/Full Cycle gibt es keine `stale_docs`-Warnungen mehr allein aufgrund unterschiedlicher Parser-Flows – Generator und Validator benutzen dieselbe Symbolbasis (`symbolsUnion` projiziert auf `symbols.jsonl`).
77
- - **Erhaltene Drift-Erkennung**:
78
- - Der Drift-Modus im Validator (Re-Parse) und die Signatur-Cache-Drift-Erkennung im Generate-Flow bleiben erhalten.
79
- - Echte Abweichungen zwischen Code und Doku werden weiterhin erkannt, wenn sich der Code nach der Generierung verändert.
80
- - **Performance**:
81
- - Typische „Generate → Validate“-Workflows sparen den zweiten Parser-Durchlauf ein, da der Validator direkt aus dem Index liest.
82
- - In CI-Szenarien können `scan:cli`/`generate` vor `validate:cli` laufen, danach läuft die Validierung überwiegend auf Artefakten.
83
-
84
- ### Negativ / Trade-offs
85
-
86
- - Die Logik im Validator wird komplexer:
87
- - Zwei Modi (Sync vs Drift), abhängig davon, ob ein aktueller Index vorhanden ist.
88
- - Fehlerbilder müssen im Debugging klar voneinander unterschieden werden (künstliche vs. echte `stale_docs`).
89
- - `readSymbolsFromIndex` rekonstruiert die Sprache (`language`) derzeit als `'unknown'`, weil der Index dieses Feld nicht speichert.
90
- - Für aktuelle Uses (Coverage, Signatur-Matching) ist das ausreichend, könnte aber in der Zukunft erweitert werden.
91
-
92
- ## Auswirkungen auf zukünftige Arbeit
93
-
94
- - Bei Änderungen an der Struktur von `IndexRow` oder an `symbolsUnion` muss `readSymbolsFromIndex` mitangepasst werden, damit Generator und Validator weiterhin dieselbe Symbolbasis sehen.
95
- - Zusätzliche Tests sind sinnvoll:
96
- - Sync-Modus: Nach Full Cycle → `validate:cli` sollte keine unerwarteten `stale_docs` melden.
97
- - Drift-Modus: Nach Codeänderungen ohne neues Generate → `validate:cli` sollte Drift korrekt erkennen.
98
- - Weitere Verbesserungen sind möglich, z. B.:
99
- - Ergänzung eines Flags/Arguments, um den Drift-Modus im CLI explizit zu erzwingen (z. B. `--force-reparse`),
100
- - Erweiterung des Validierungs-Outputs um eine explizite Kennzeichnung, ob der Lauf im Sync- oder Drift-Modus stattfand.
101
-
102
-
@@ -1,123 +0,0 @@
1
- # ADR-030: Dependency Import Symbol Names Preservation (Index JSONL)
2
-
3
- **Status:** ACCEPTED
4
-
5
- **Date:** 2025-12-16
6
-
7
- ## Context
8
-
9
- Der Documentation-System-Index (`docs/index/symbols.jsonl`) enthielt bisher nur modul-basierte Dependency-Informationen (`dependencies?: string[]` mit Import-Pfaden).
10
- Der Parser extrahiert jedoch bereits importierte Symbolnamen (`ModuleDependency.symbols?: string[]`), diese Information ging beim Bau des JSONL-Index in
11
- `buildIndexFromSymbols` verloren.
12
-
13
- Dadurch wurden nachgelagerte Systeme (Database Plugin, Semantic Brain Plugin) gezwungen, nur mit Modul-Pfaden zu arbeiten und mussten fehlende
14
- Target-Symbole heuristisch erraten. Das führte zu ungenauen oder aufgeblähten Dependency-Graphen und machte präzise Kanten (Symbol → importiertes Symbol)
15
- unmöglich.
16
-
17
- Gleichzeitig ist der JSONL-Index bereits im Einsatz und muss rückwärtskompatibel bleiben – bestehende Pipelines dürfen durch die Umstellung nicht brechen.
18
-
19
- ## Decision
20
-
21
- Wir erweitern das Index-Format so, dass importierte Symbolnamen pro Zielmodul erhalten bleiben, ohne das bestehende JSONL-Schema zu brechen:
22
-
23
- - Einführung eines neuen `DependencyEntry`-Typs für Dependencies im Index:
24
- - `module: string` – Zielmodul / Import-Pfad
25
- - `symbols?: string[]` – importierte/exportierte Symbolnamen (optional für Backward Compatibility)
26
- - Erweiterung von `IndexRow.dependencies` auf einen Union-Typ:
27
- - `dependencies?: string[] | DependencyEntry[]`
28
- - `string[]`: Legacy-Format (nur Modulpfade, unverändert)
29
- - `DependencyEntry[]`: neues Format mit Symbolnamen pro Modul
30
- - Anpassung von `buildIndexFromSymbols`, um:
31
- - Dependencies pro Datei (`from`) und Zielmodul (`to`) zu gruppieren,
32
- - Symbolnamen je Modul zu mergen, zu deduplizieren und alphabetisch zu sortieren,
33
- - ein deterministisches `DependencyEntry[]` je Datei zu erzeugen.
34
-
35
- Neue Index-Dateien verwenden immer das strukturierte `DependencyEntry[]`-Format, bestehende Konsumenten, die nur `string[]` kennen, bleiben funktionsfähig,
36
- da `readSymbolsFromIndex` `dependencies` nicht auswertet.
37
-
38
- ## Implementation Claims
39
-
40
- ### Files Created/Modified
41
- - [x] `src/index/index.ts` – Erweiterung von `IndexRow` und Anpassung von `buildIndexFromSymbols` auf `DependencyEntry[]`.
42
-
43
- ### Functions/Classes Implemented
44
- - [x] `DependencyEntry` Interface in `src/index/index.ts` – strukturiert modul- und symbolbasierte Dependencies.
45
- - [x] `buildIndexFromSymbols()` in `src/index/index.ts` – gruppiert `ModuleDependency` je Datei/Modul, mergen und sortiert Symbolnamen deterministisch.
46
-
47
- ### Verification Commands
48
-
49
- ```powershell
50
- # Datei- und Typ-Verifikation (PowerShell)
51
- Test-Path documentation-system-plugin/src/index/index.ts
52
- Get-Content documentation-system-plugin/src/index/index.ts | Select-String "export interface DependencyEntry"
53
- Get-Content documentation-system-plugin/src/index/index.ts | Select-String "dependencies\?: string\[] \| DependencyEntry\[]"
54
-
55
- # Build-Funktion prüfen
56
- Get-Content documentation-system-plugin/src/index/index.ts | Select-String "buildIndexFromSymbols"
57
-
58
- # Architektur- und Import-Verification für das Plugin
59
- cd documentation-system-plugin
60
- npm run verify:all
61
- ```
62
-
63
- ```bash
64
- # Bash-Äquivalente
65
- ls documentation-system-plugin/src/index/index.ts
66
- grep "export interface DependencyEntry" documentation-system-plugin/src/index/index.ts
67
- grep "dependencies\?: string\[] \| DependencyEntry\[]" documentation-system-plugin/src/index/index.ts
68
-
69
- cd documentation-system-plugin
70
- npm run verify:all
71
- ```
72
-
73
- ## Verification Report
74
-
75
- **Verification Date:** 2025-12-16
76
-
77
- **Results:**
78
- - [x] All files created: YES
79
- - [x] All functions implemented: YES
80
- - [x] Compiles without errors: YES (implizit über `npm run verify:all`)
81
- - [x] Tests pass: YES (bestehende Test-Suite, keine neuen Tests erforderlich für diesen Schritt)
82
- - [x] Verification scripts pass: YES (`npm run verify:all`)
83
-
84
- **Evidence:**
85
-
86
- ```text
87
- > npm run verify:all
88
-
89
- 🚀 Starting architecture verification...
90
- ✅ Architecture verification PASSED
91
- 🚀 Starting ADR claims verification...
92
- 📊 Verification Summary:
93
- Total claims: 19
94
- Verified: 19
95
- Errors: 0
96
- Warnings: 0
97
- ✅ ADR verification PASSED
98
- 🚀 Starting import verification...
99
- 📁 Found 39 TypeScript files
100
- ✅ Checked 39 files
101
- 📊 Verification Summary:
102
- Errors: 0
103
- Warnings: 0
104
- ✅ Import verification PASSED
105
- ```
106
-
107
- ## Consequences
108
-
109
- - Positiv:
110
- - Importierte Symbolnamen bleiben durchgehend bis in nachgelagerte Systeme erhalten.
111
- - Der Index bleibt deterministisch (sortierte Module und Symbolnamen, keine doppelten Einträge).
112
- - Bestehende JSONL-Dateien bleiben gültig; neue Scans erzeugen das reichhaltigere Format.
113
- - Neutral:
114
- - Konsumenten, die `dependencies` bisher ignorieren (z.B. `readSymbolsFromIndex`), bleiben unverändert.
115
- - Negativ:
116
- - Downstream-Reader, die explizit `string[]` für `dependencies` erwarten, müssen zukünftig das Union-Format berücksichtigen.
117
-
118
- ## Notes
119
-
120
- - Diese ADR bildet die Grundlage für weiterführende ADRs im Database Plugin und im Semantic Brain Plugin, die das neue
121
- Dependency-Format in die Datenbank und in symbol-basierte Graph-Kanten überführen.
122
-
123
-
@@ -1,99 +0,0 @@
1
- # ADR-031: Generate-CLI für vollständige Dokumentationsgenerierung
2
-
3
- ## Status
4
- Accepted
5
-
6
- ## Kontext
7
-
8
- Die bestehenden CLI-Tools (`scan-cli.ts`, `validate-cli.ts`) wurden für spezifische Aufgaben entwickelt:
9
- - `scan-cli.ts`: Scannt Symbole und gibt JSON aus
10
- - `validate-cli.ts`: Validiert Dokumentation gegen Code
11
-
12
- Jedoch generieren diese Tools **keine Dokumentations-Artefakte**:
13
- - `docs/modules/*.md` (Modul-Dokumentation)
14
- - `docs/index/symbols.jsonl` (Symbol-Index mit DependencyEntry[])
15
- - `docs/system/DEPENDENCIES.md` (Import-Übersicht)
16
- - `docs/system/DEPENDENCY_GRAPH.md` (Mermaid-Graph)
17
- - `docs/system/CHANGE_REPORT.md` (Änderungsprotokoll)
18
-
19
- Diese Artefakte wurden bisher nur von der VS Code Extension (`extension.ts`) generiert, was bedeutete:
20
- 1. `npm run compile` in anderen Plugins generierte keine vollständige Dokumentation
21
- 2. Die `symbols.jsonl` enthielt das Legacy-Format statt des neuen `DependencyEntry[]` Formats
22
- 3. Das Database Plugin konnte keine präzisen Target-Symbole aus der Dokumentation extrahieren
23
-
24
- ## Entscheidung
25
-
26
- Erstellung einer neuen `generate-cli.ts`, die die vollständige Dokumentationsgenerierung ohne VS Code APIs ermöglicht.
27
-
28
- ### Architektur
29
-
30
- ```
31
- ┌─────────────────────────────────────────────────────────────┐
32
- │ generate-cli.ts │
33
- ├─────────────────────────────────────────────────────────────┤
34
- │ 1. Workspace scannen (scanWorkspace) │
35
- │ 2. Parser initialisieren (TsJs, Python, JsonYaml) │
36
- │ 3. Symbole extrahieren (ParsedSymbol[]) │
37
- │ 4. Dependencies extrahieren (ModuleDependency[]) │
38
- │ 5. Union-Logik anwenden (bestehende + neue Symbole) │
39
- │ 6. Artefakte generieren: │
40
- │ - docs/modules/*.md │
41
- │ - docs/index/symbols.jsonl (DependencyEntry[] Format) │
42
- │ - docs/system/DEPENDENCIES.md │
43
- │ - docs/system/DEPENDENCY_GRAPH.md │
44
- │ - docs/system/CHANGE_REPORT.md │
45
- └─────────────────────────────────────────────────────────────┘
46
- ```
47
-
48
- ### Integration in postcompile Workflow
49
-
50
- ```json
51
- // semantic-brain-plugin/package.json
52
- "postcompile": "node ../documentation-system-plugin/out/cli/generate-cli.js && node ../documentation-system-plugin/out/cli/validate-cli.js && node ../database-plugin/out/cli/ingest-cli.js"
53
-
54
- // database-plugin/package.json
55
- "postcompile": "node ../documentation-system-plugin/out/cli/generate-cli.js && node ../documentation-system-plugin/out/cli/validate-cli.js && node out/cli/ingest-cli.js"
56
- ```
57
-
58
- ### Workflow
59
-
60
- ```
61
- npm run compile
62
-
63
-
64
- tsc -p ./
65
-
66
-
67
- postcompile Hook
68
-
69
- ├──▶ generate-cli.js ──▶ Generiert docs/ Artefakte
70
-
71
- ├──▶ validate-cli.js ──▶ Validiert Dokumentation
72
-
73
- └──▶ ingest-cli.js ──▶ Importiert in Datenbank
74
- ```
75
-
76
- ## Konsequenzen
77
-
78
- ### Positiv
79
- - `npm run compile` generiert jetzt vollständige Dokumentation
80
- - `symbols.jsonl` enthält das neue `DependencyEntry[]` Format mit Symbol-Namen
81
- - Database Plugin kann präzise Target-Symbole extrahieren
82
- - Semantic Brain Plugin erhält korrekte Dependency-Informationen
83
- - Konsistenter Workflow über alle Plugins hinweg
84
-
85
- ### Negativ
86
- - Zusätzliche CLI-Datei zu warten
87
- - Duplizierung von Logik aus `extension.ts` (bewusste Entscheidung für CLI-Unabhängigkeit)
88
-
89
- ## Betroffene Dateien
90
-
91
- - `src/cli/generate-cli.ts` (NEU)
92
- - `package.json` (neues Script `generate:cli`)
93
-
94
- ## Verwandte ADRs
95
-
96
- - ADR-025: MCP Tools Scan Validate CLI Bridge
97
- - ADR-029: Parser Flow Kopplung und Sync Drift Modi
98
- - ADR-030: Dependency Import Symbol Names Preservation
99
-
@@ -1,165 +0,0 @@
1
- # ADR-032: Windows-optimierte Verification-Scripts und MCP-Server Integration
2
-
3
- **Status:** Accepted
4
- **Datum:** 2025-12-18
5
- **Autor:** AI-Agent
6
- **Bezug:** ADR-026 (Reality-Driven Development System), Root ADR-002
7
-
8
- ## Kontext
9
-
10
- Die bestehenden Verification-Scripts (`scripts/verify-adrs.js`) verwendeten Shell-Befehle wie `grep` für die Suche nach Funktionen/Klassen im Code. Auf Windows führte dies zu Fehlermeldungen:
11
-
12
- ```
13
- Das System kann den angegebenen Pfad nicht finden.
14
- ```
15
-
16
- Obwohl die Verification erfolgreich war (Exit Code 0), waren die Fehlermeldungen verwirrend und unprofessionell.
17
-
18
- ## Entscheidung
19
-
20
- Wir optimieren die Verification-Scripts für Windows:
21
-
22
- ### 1. Native Node.js-Funktionen statt Shell-Befehle
23
-
24
- **Vorher (Shell-basiert):**
25
- ```javascript
26
- const result = execSync(
27
- `grep -r "\\b${claim.name}\\b" src/ 2>/dev/null || echo ""`,
28
- { encoding: 'utf-8', cwd: workspaceRoot }
29
- );
30
- ```
31
-
32
- **Nachher (Node.js-basiert):**
33
- ```javascript
34
- function searchInDirectory(dir, pattern) {
35
- const regex = new RegExp(`\\b${pattern}\\b`);
36
- const files = fs.readdirSync(dir);
37
-
38
- for (const file of files) {
39
- const filePath = path.join(dir, file);
40
- const stat = fs.statSync(filePath);
41
-
42
- if (stat.isDirectory()) {
43
- if (searchInDirectory(filePath, pattern)) {
44
- return true;
45
- }
46
- } else if (file.endsWith('.ts') || file.endsWith('.js')) {
47
- const content = fs.readFileSync(filePath, 'utf-8');
48
- if (regex.test(content)) {
49
- return true;
50
- }
51
- }
52
- }
53
- return false;
54
- }
55
- ```
56
-
57
- ### 2. Vorteile der neuen Implementierung
58
-
59
- - **Plattformunabhängig:** Funktioniert auf Windows, Linux, macOS
60
- - **Keine externen Abhängigkeiten:** Nur Node.js-Standardbibliotheken
61
- - **Saubere Ausgabe:** Keine Shell-Fehlermeldungen
62
- - **Konsistent:** Gleiche Implementierung in allen Plugins
63
-
64
- ## Implementation Claims
65
-
66
- ### Aktualisierte Dateien
67
-
68
- - `scripts/verify-adrs.js`
69
-
70
- ## Verification Commands
71
-
72
- ```powershell
73
- # Vorher (mit Fehlermeldungen)
74
- npm run verify:adrs
75
- # Output: "Das System kann den angegebenen Pfad nicht finden." (mehrfach)
76
- # ✅ ADR verification PASSED
77
-
78
- # Nachher (sauber)
79
- npm run verify:adrs
80
- # Output: Keine Fehlermeldungen
81
- # ✅ ADR verification PASSED
82
- ```
83
-
84
- ## Testergebnisse
85
-
86
- ```
87
- 🚀 Starting ADR claims verification...
88
-
89
- 📊 Verification Summary:
90
- Total claims: 19
91
- Verified: 19
92
- Errors: 0
93
- Warnings: 0
94
-
95
- ✅ ADR verification PASSED
96
- ```
97
-
98
- ## Konsequenzen
99
-
100
- ### Positiv
101
-
102
- 1. **Saubere Ausgabe:** Keine verwirrenden Fehlermeldungen
103
- 2. **Plattformunabhängig:** Funktioniert auf allen Betriebssystemen
104
- 3. **Wartbar:** Einfacher zu debuggen und erweitern
105
- 4. **Konsistent:** Alle Plugins verwenden die gleiche Implementierung
106
-
107
- ### Zu beachten
108
-
109
- 1. **Performance:** Native Node.js ist möglicherweise langsamer als `grep` für sehr große Codebases
110
- 2. **Speicher:** Dateien werden komplett in den Speicher geladen
111
-
112
- ## MCP-Server Integration
113
-
114
- Zusätzlich zur Windows-Optimierung wurde ein neues Tool zum MCP-Server hinzugefügt:
115
-
116
- ### Neues Tool: `validation/verifyAdrs`
117
-
118
- ```typescript
119
- // MCP-Tool-Definition
120
- {
121
- name: 'validation/verifyAdrs',
122
- description: 'Verifiziert ADR-Claims gegen den Code. Prüft Datei-Existenz und Funktions-Existenz.',
123
- inputSchema: {
124
- type: 'object',
125
- properties: {
126
- verbose: {
127
- type: 'boolean',
128
- description: 'Optional: Ausführliche Ausgabe mit Warnungen. Default: false',
129
- },
130
- },
131
- },
132
- }
133
- ```
134
-
135
- ### Erstellte Dateien
136
-
137
- - `mcp/src/tools/verify-adrs.ts`
138
- - `packages/doc-system-agent/src/mcp/tools/verify-adrs.ts`
139
-
140
- ### Aktualisierte Dateien
141
-
142
- - `mcp/src/server.ts` (Tool registriert)
143
- - `packages/doc-system-agent/src/mcp/server.ts` (Tool registriert)
144
- - `packages/doc-system-agent/src/mcp/types.ts` (VerifyAdrsRequest/Response Typen)
145
- - `packages/doc-system-agent/templates/cursor-rules/026-reality-driven-verification.mdc` (Dokumentation)
146
-
147
- ### Nutzung via MCP
148
-
149
- Agenten können jetzt ADR-Verification über das MCP-Protokoll aufrufen:
150
-
151
- ```json
152
- {
153
- "method": "tools/call",
154
- "params": {
155
- "name": "validation/verifyAdrs",
156
- "arguments": { "verbose": true }
157
- }
158
- }
159
- ```
160
-
161
- ## Referenzen
162
-
163
- - ADR-026: Reality-Driven Development System
164
- - Root ADR-002: Systemweite ADR-Verification Integration
165
-
@@ -1,190 +0,0 @@
1
- # ADR-036: Enhanced Dependency Metadata (Aliasing, Type-Only, Re-Exports)
2
-
3
- ## Status
4
- Accepted
5
-
6
- ## Kontext
7
-
8
- Nach der erfolgreichen Implementierung der präzisen Symbol-Dependencies (ADR-030, ADR-033, ADR-034, ADR-035) wurden drei zusätzliche Edge-Cases identifiziert, die für eine robuste semantische Analyse wichtig sind:
9
-
10
- 1. **Aliasing / Default Imports / Namespace Imports**
11
- 2. **Type-only Imports**
12
- 3. **Re-Exports / Barrel-Pattern**
13
-
14
- ## Entscheidung
15
-
16
- ### 1. Aliasing-Unterstützung
17
-
18
- Import-Aliase werden jetzt vollständig erfasst:
19
-
20
- | Import-Typ | Beispiel | Gespeichert als |
21
- |------------|----------|-----------------|
22
- | Named Import | `import { X } from ...` | `"X"` |
23
- | Alias Import | `import { X as Y } from ...` | `"X as Y"` |
24
- | Default Import | `import X from ...` | `"default as X"` |
25
- | Namespace Import | `import * as M from ...` | `"* as M"` |
26
-
27
- **Implementierung** (`dependencies.ts`):
28
- ```typescript
29
- const namedImports = imp.getNamedImports().map(ni => {
30
- const name = ni.getName();
31
- const alias = ni.getAliasNode()?.getText();
32
- let result = name;
33
- if (alias && alias !== name) {
34
- result = `${name} as ${alias}`;
35
- }
36
- return result;
37
- });
38
- ```
39
-
40
- ### 2. Type-Only Imports
41
-
42
- Type-only Imports werden mit `type` Prefix markiert:
43
-
44
- | Import-Typ | Beispiel | Gespeichert als |
45
- |------------|----------|-----------------|
46
- | Type Import | `import type { X } from ...` | `"type X"` |
47
- | Type Alias | `import type { X as Y } from ...` | `"type X as Y"` |
48
- | Type Namespace | `import type * as M from ...` | `"type * as M"` |
49
- | Mixed | `import { type X, Y } from ...` | `["type X", "Y"]` |
50
-
51
- **Zusätzlich**: `isTypeOnly: true` Flag auf Dependency-Ebene wenn **alle** Imports type-only sind.
52
-
53
- **Auswirkung auf Scoring**:
54
- - Type-only Imports haben geringeren Coupling-Impact
55
- - Empfohlener Weight-Faktor: `0.3` statt `1.0`
56
- - Können bei Dead-Code-Detection ignoriert werden (werden zur Laufzeit entfernt)
57
-
58
- ### 3. Re-Exports / Barrel-Pattern
59
-
60
- Re-Exports werden mit `isReexport: true` markiert:
61
-
62
- ```typescript
63
- // Barrel-File: src/api/index.ts
64
- export { GraphApi } from './graph-api';
65
- export * from './models';
66
- ```
67
-
68
- Gespeichert als:
69
- ```json
70
- {
71
- "module": "./graph-api",
72
- "symbols": ["GraphApi"],
73
- "isReexport": true
74
- }
75
- ```
76
-
77
- **Semantische Bedeutung**:
78
- - Re-Exports sind **Durchleitungen**, keine echten Dependencies
79
- - Für Coupling-Analyse: Das Barrel-File ist nicht der echte Konsument
80
- - Für Import-Path-Analyse: Kann zur Vereinfachung von Import-Pfaden genutzt werden
81
-
82
- ## Datenformat
83
-
84
- ### ModuleDependency (Parser-Output)
85
-
86
- ```typescript
87
- interface ModuleDependency {
88
- from: string; // Quell-Datei
89
- to: string; // Ziel-Modul
90
- type: 'import' | 'export' | 'require';
91
- symbols?: string[]; // Format: "Name", "Name as Alias", "type Name", "* as Namespace"
92
- isTypeOnly?: boolean; // true wenn alle Imports type-only
93
- isReexport?: boolean; // true wenn Re-Export (Barrel-Pattern)
94
- }
95
- ```
96
-
97
- ### DependencyEntry (symbols.jsonl)
98
-
99
- ```typescript
100
- interface DependencyEntry {
101
- module: string;
102
- symbols?: string[]; // Dedupliziert und sortiert
103
- isTypeOnly?: boolean; // true wenn alle Imports type-only
104
- isReexport?: boolean; // true wenn mindestens ein Re-Export
105
- }
106
- ```
107
-
108
- ## Beispiel-Output
109
-
110
- ```json
111
- {
112
- "symbol_id": "ts://src/extension.ts#activate(...)",
113
- "dependencies": [
114
- {
115
- "module": "./config",
116
- "symbols": ["type Config", "type Options"],
117
- "isTypeOnly": true
118
- },
119
- {
120
- "module": "./utils",
121
- "symbols": ["X as Y", "Z"]
122
- },
123
- {
124
- "module": "vscode",
125
- "symbols": ["* as vscode"]
126
- }
127
- ]
128
- }
129
- ```
130
-
131
- ## Konsequenzen
132
-
133
- ### Positiv
134
- - **Präzise Alias-Auflösung**: Welcher lokale Name wird verwendet?
135
- - **Type-only Unterscheidung**: Ermöglicht differenzierte Coupling-Analyse
136
- - **Barrel-Detection**: Identifiziert Re-Export-Ketten für bessere Graph-Analyse
137
- - **Zukunftssicher**: Grundlage für Import-Optimierung und Dead-Code-Detection
138
-
139
- ### Negativ
140
- - **Größere symbols.jsonl**: Zusätzliche Metadaten pro Dependency
141
- - **Komplexere Parsing-Logik**: Mehr Edge-Cases zu behandeln
142
- - **Downstream-Anpassungen**: Database-Plugin und Semantic-Brain müssen aktualisiert werden
143
-
144
- ## Empfohlene Scoring-Anpassungen
145
-
146
- ### CouplingScorer
147
-
148
- ```typescript
149
- function calculateWeight(dep: DependencyEntry): number {
150
- let weight = dep.symbols?.length ?? 1;
151
-
152
- // Type-only Imports haben reduzierten Impact
153
- if (dep.isTypeOnly) {
154
- weight *= 0.3;
155
- }
156
-
157
- // Re-Exports sind Durchleitungen
158
- if (dep.isReexport) {
159
- weight *= 0.5;
160
- }
161
-
162
- return weight;
163
- }
164
- ```
165
-
166
- ### ImportanceScorer
167
-
168
- ```typescript
169
- // Type-only Imports nicht für Importance zählen
170
- const valueImports = deps.filter(d => !d.isTypeOnly);
171
- const typeImports = deps.filter(d => d.isTypeOnly);
172
-
173
- const importance = valueImports.length * 1.0 + typeImports.length * 0.2;
174
- ```
175
-
176
- ## Betroffene Dateien
177
-
178
- - `src/parsers/dependencies.ts` - Dependency-Extraktion mit Aliasing, Type-Only, Re-Export Detection
179
- - `src/cache/dependencies-cache.ts` - DependencyCacheEntry erweitert um `isTypeOnly` und `isReexport`
180
- - `src/core/consolidation.ts` - Dependency-Union mit Metadaten-Merge
181
- - `src/index/index.ts` - DependencyEntry Interface und Aggregation
182
- - `src/cli/generate-cli.ts` - Full-Modus Cache-Bypass Fix
183
-
184
- ## Verwandte ADRs
185
-
186
- - ADR-030: Dependency Import Symbol Information Loss
187
- - ADR-033: Edge Metadata Precise Dependencies
188
- - ADR-034: Postcompile Generate-CLI Integration
189
- - ADR-035: Präzise Symbol-Dependencies Verifikation
190
-