@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,282 +0,0 @@
1
- # Sequenzdiagramm: Validierungs-Flow
2
-
3
- Dieses Dokument zeigt ein zweites Beispiel, wie aus `docs/modules/`, `docs/index/` und `docs/system/` ein Sequenzdiagramm abgeleitet werden kann – diesmal für den **Validierungs-Flow**.
4
-
5
- ---
6
-
7
- ## 1. Use Case: "Dokumentation validieren"
8
-
9
- ### 1.1 Einstiegspunkt (aus `docs/modules/src__extension.ts.md`)
10
- ```ts
11
- function validateDocumentationTs(): any
12
- ```
13
-
14
- ### 1.2 Dependencies aus `docs/index/symbols.jsonl` (Zeile 442)
15
- ```json
16
- {
17
- "symbol_id": "ts://src/extension.ts#validateDocumentationTs(...)",
18
- "dependencies": [
19
- "./validator/index",
20
- "./validator/status",
21
- "./parsers/types",
22
- "fs", "path", "vscode"
23
- ]
24
- }
25
- ```
26
-
27
- ---
28
-
29
- ## 2. Beteiligte Module aus `docs/system/DEPENDENCIES.md`
30
-
31
- ### 2.1 Validator-Module (Zeilen 315-330)
32
-
33
- ```markdown
34
- ## src/validator/index.ts
35
-
36
- ### Imports
37
- - `../logging/index` (Logger)
38
- - `../parsers/types` (ParsedSymbol)
39
- - `./signature-matching` (validateSignatureMatching)
40
- - `./status` (computeValidationStatus, StatusReport)
41
- - `fs`, `path`
42
-
43
- ## src/validator/signature-matching.ts
44
-
45
- ### Imports
46
- - `../core/symbols` (computeSignatureHash)
47
- - `../parsers/types` (ParsedSymbol)
48
- ```
49
-
50
- ---
51
-
52
- ## 3. Symbole aus `docs/index/symbols.jsonl`
53
-
54
- ### 3.1 Validator-Symbole (Zeilen 513-521)
55
-
56
- ```json
57
- {"symbol_id":"ts://src/validator/index.ts#validateSymbols(c5833b419ccb1672)","kind":"function","name":"validateSymbols","dependencies":["../logging/index","../parsers/types","./signature-matching","./status","fs","path"]}
58
- {"symbol_id":"ts://src/validator/index.ts#validateMarkdownDir(d6efd94036f4ae1d)","kind":"function","name":"validateMarkdownDir"}
59
- {"symbol_id":"ts://src/validator/index.ts#validateMarkdownContent(bd880e49ba840ffd)","kind":"function","name":"validateMarkdownContent"}
60
- {"symbol_id":"ts://src/validator/index.ts#computeCoverage(d5f43a349f420f9b)","kind":"function","name":"computeCoverage"}
61
- {"symbol_id":"ts://src/validator/index.ts#CoverageMetrics(2900cb5add46f417)","kind":"interface","name":"CoverageMetrics"}
62
- {"symbol_id":"ts://src/validator/index.ts#CoverageReport(dcbca3ef274b987c)","kind":"interface","name":"CoverageReport"}
63
- {"symbol_id":"ts://src/validator/index.ts#MarkdownDirReport(932109a5edc3c204)","kind":"interface","name":"MarkdownDirReport"}
64
- {"symbol_id":"ts://src/validator/index.ts#ValidationReport(49ff4507760af2f5)","kind":"interface","name":"ValidationReport"}
65
- ```
66
-
67
- ### 3.2 Signature-Matching-Symbole (Zeilen 522-530)
68
-
69
- ```json
70
- {"symbol_id":"ts://src/validator/signature-matching.ts#validateSignatureMatching(71446a0efaa1d0fa)","kind":"function","name":"validateSignatureMatching","dependencies":["../core/symbols","../parsers/types"]}
71
- {"symbol_id":"ts://src/validator/signature-matching.ts#formatSignatureForDoc(dfe42d4ef2d09174)","kind":"function","name":"formatSignatureForDoc"}
72
- {"symbol_id":"ts://src/validator/signature-matching.ts#isArchitecturallyValid(8835eedbd9610158)","kind":"function","name":"isArchitecturallyValid"}
73
- {"symbol_id":"ts://src/validator/signature-matching.ts#SignatureMismatch(6a5fdad40012f368)","kind":"interface","name":"SignatureMismatch"}
74
- ```
75
-
76
- ### 3.3 Status-Symbole (Zeilen 531-533)
77
-
78
- ```json
79
- {"symbol_id":"ts://src/validator/status.ts#computeValidationStatus(5d43c78fe1050f6e)","kind":"function","name":"computeValidationStatus"}
80
- {"symbol_id":"ts://src/validator/status.ts#StatusReport(66bfcae896841e14)","kind":"interface","name":"StatusReport"}
81
- {"symbol_id":"ts://src/validator/status.ts#ValidationStatus(e28d659ec343eba0)","kind":"type","name":"ValidationStatus"}
82
- ```
83
-
84
- ---
85
-
86
- ## 4. Signaturen aus `docs/modules/`
87
-
88
- ### Aus `docs/modules/src__validator__index.ts.md`:
89
- ```ts
90
- validateSymbols(symbols: ParsedSymbol[]): ValidationReport
91
- validateMarkdownDir(modulesDir: string, symbols: ParsedSymbol[]): MarkdownDirReport
92
- validateMarkdownContent(md: string): { errors: string[]; warnings: string[] }
93
- computeCoverage(symbols: ParsedSymbol[], modulesDir: string, thresholds: CoverageThresholds): CoverageReport
94
- ```
95
-
96
- ### Aus `docs/modules/src__validator__signature-matching.ts.md`:
97
- ```ts
98
- validateSignatureMatching(symbols: ParsedSymbol[], modulesDir: string): SignatureMismatch[]
99
- formatSignatureForDoc(symbol: ParsedSymbol): string
100
- isArchitecturallyValid(expected: string, documented: string, symbol: ParsedSymbol): boolean
101
- ```
102
-
103
- ### Aus `docs/modules/src__generator__module-doc.ts.md`:
104
- ```ts
105
- parseModuleDoc(content: string): ParsedModuleDoc
106
- parseSignatureFromCode(code: string, kind: ParsedSymbol['kind']): SymbolSignature
107
- ```
108
-
109
- ---
110
-
111
- ## 5. Abhängigkeitsgraph-Ausschnitt (aus DEPENDENCY_GRAPH.md)
112
-
113
- ```mermaid
114
- graph TD
115
- N110["src/validator/index.ts"]
116
- N111["src/validator/signature-matching.ts"]
117
- N40["./status"]
118
- N39["./signature-matching"]
119
- N9["../parsers/types"]
120
- N4["../core/symbols"]
121
-
122
- N110 --> N39
123
- N110 --> N40
124
- N110 --> N9
125
- N111 --> N4
126
- N111 --> N9
127
- ```
128
-
129
- ---
130
-
131
- ## 6. Sequenzdiagramm
132
-
133
- ```mermaid
134
- sequenceDiagram
135
- autonumber
136
-
137
- participant User as Benutzer
138
- participant VSCode as VS Code UI
139
- participant Ext as Extension<br/>(src/extension.ts)
140
- participant Val as Validator<br/>(src/validator/index.ts)
141
- participant SigMatch as Signature Matcher<br/>(src/validator/signature-matching.ts)
142
- participant Status as Status Reporter<br/>(src/validator/status.ts)
143
- participant ModDoc as Module Doc Parser<br/>(src/generator/module-doc.ts)
144
-
145
- User->>VSCode: Klickt "Validate Documentation"
146
- VSCode->>Ext: validateDocumentationTs()
147
-
148
- rect rgb(240, 248, 255)
149
- Note over Ext,Val: Phase 1: Symbol-Validierung
150
- Ext->>Val: validateSymbols(symbols: ParsedSymbol[])
151
- Val-->>Ext: ValidationReport { totalSymbols, errors, warnings }
152
- end
153
-
154
- rect rgb(255, 248, 240)
155
- Note over Ext,ModDoc: Phase 2: Markdown-Validierung
156
- Ext->>Val: validateMarkdownDir(modulesDir, symbols)
157
- loop Für jede Modul-Doku in docs/modules/
158
- Val->>Val: validateMarkdownContent(md)
159
- Val->>ModDoc: parseModuleDoc(content)
160
- ModDoc-->>Val: ParsedModuleDoc { blocks: ParsedBlock[] }
161
- end
162
- Val-->>Ext: MarkdownDirReport { errors, warnings, files, mismatchesCount }
163
- end
164
-
165
- rect rgb(240, 255, 240)
166
- Note over Ext,SigMatch: Phase 3: Signatur-Matching
167
- Ext->>SigMatch: validateSignatureMatching(symbols, modulesDir)
168
- loop Für jedes ParsedSymbol
169
- SigMatch->>SigMatch: formatSignatureForDoc(symbol)
170
- SigMatch->>ModDoc: parseSignatureFromCode(code, kind)
171
- ModDoc-->>SigMatch: SymbolSignature
172
- SigMatch->>SigMatch: isArchitecturallyValid(expected, documented, symbol)
173
- alt Signatur stimmt nicht überein
174
- SigMatch->>SigMatch: Erstelle SignatureMismatch
175
- end
176
- end
177
- SigMatch-->>Ext: SignatureMismatch[]
178
- end
179
-
180
- rect rgb(255, 240, 255)
181
- Note over Ext,Status: Phase 4: Coverage-Berechnung
182
- Ext->>Val: computeCoverage(symbols, modulesDir, thresholds)
183
- Val-->>Ext: CoverageReport { metrics: CoverageMetrics, errors, warnings }
184
- end
185
-
186
- rect rgb(255, 255, 240)
187
- Note over Ext,Status: Phase 5: Status-Berechnung
188
- Ext->>Status: computeValidationStatus(errors, warnings)
189
- Status-->>Ext: StatusReport { status: ValidationStatus, ... }
190
- end
191
-
192
- Ext->>Ext: Aggregiere alle Ergebnisse
193
- Ext-->>VSCode: ValidationResult
194
- VSCode->>VSCode: showValidationResults(results)
195
- VSCode-->>User: Validierungsergebnis anzeigen (grün/gelb/rot)
196
- ```
197
-
198
- ---
199
-
200
- ## 7. Datenstrukturen (aus docs/modules/)
201
-
202
- ### ValidationReport (aus `src__validator__index.ts.md`)
203
- ```ts
204
- interface ValidationReport {
205
- totalSymbols: number;
206
- errors: string[];
207
- warnings: string[];
208
- status?: StatusReport;
209
- }
210
- ```
211
-
212
- ### MarkdownDirReport (aus `src__validator__index.ts.md`)
213
- ```ts
214
- interface MarkdownDirReport {
215
- errors: string[];
216
- warnings: string[];
217
- files: Array<{ file: string; errors: string[]; warnings: string[] }>;
218
- mismatchesCount?: number;
219
- }
220
- ```
221
-
222
- ### SignatureMismatch (aus `src__validator__signature-matching.ts.md`)
223
- ```ts
224
- interface SignatureMismatch {
225
- symbolId: string;
226
- expected: string;
227
- documented: string;
228
- severity: 'warning' | 'error';
229
- }
230
- ```
231
-
232
- ### CoverageReport (aus `src__validator__index.ts.md`)
233
- ```ts
234
- interface CoverageReport {
235
- metrics: CoverageMetrics;
236
- errors: string[];
237
- warnings: string[];
238
- }
239
- ```
240
-
241
- ### CoverageMetrics (aus `src__validator__index.ts.md`)
242
- ```ts
243
- interface CoverageMetrics {
244
- totalClasses: number;
245
- documentedClasses: number;
246
- totalInterfaces: number;
247
- documentedInterfaces: number;
248
- totalMethods: number;
249
- documentedMethods: number;
250
- totalFunctions: number;
251
- documentedFunctions: number;
252
- }
253
- ```
254
-
255
- ---
256
-
257
- ## 8. Quellen-Nachweis
258
-
259
- | Information | Quelle | Zeilen |
260
- |-------------|--------|--------|
261
- | `validateDocumentationTs` | `docs/modules/src__extension.ts.md` | 173-175 |
262
- | Validator-Imports | `docs/system/DEPENDENCIES.md` | 315-323 |
263
- | Signature-Matching-Imports | `docs/system/DEPENDENCIES.md` | 325-329 |
264
- | `validateSymbols` Symbol | `docs/index/symbols.jsonl` | 520 |
265
- | `validateSignatureMatching` Symbol | `docs/index/symbols.jsonl` | 530 |
266
- | `computeValidationStatus` Symbol | `docs/index/symbols.jsonl` | 531 |
267
- | ValidationReport Interface | `docs/modules/src__validator__index.ts.md` | 50-58 |
268
- | SignatureMismatch Interface | `docs/modules/src__validator__signature-matching.ts.md` | 3-12 |
269
-
270
- ---
271
-
272
- ## 9. Fazit
273
-
274
- Auch dieses Sequenzdiagramm wurde **vollständig aus den automatisch generierten Dokumentations-Artefakten** abgeleitet:
275
-
276
- - ✅ Einstiegspunkt aus `docs/modules/src__extension.ts.md`
277
- - ✅ Dependencies aus `docs/index/symbols.jsonl` (Zeilen 513-533)
278
- - ✅ Import-Beziehungen aus `docs/system/DEPENDENCIES.md` (Zeilen 315-330)
279
- - ✅ Graph-Struktur aus `docs/system/DEPENDENCY_GRAPH.md` (Zeilen 148-155)
280
- - ✅ Datenstrukturen aus den Interface-Definitionen in `docs/modules/`
281
-
282
- **Damit ist bewiesen, dass das System beliebige Flows als Sequenzdiagramme darstellen kann.**
@@ -1,54 +0,0 @@
1
- # ADR-001: Signatur-Abweichung-Fix für Plugin/Snapshot
2
-
3
- ## Status
4
- Akzeptiert
5
-
6
- ## Kontext
7
- Die Validierung im database-plugin zeigte 2 persistente Warnungen:
8
- - `Plugin: erwartet "Plugin()", dokumentiert "PluginApiResponse()"`
9
- - `Snapshot: erwartet "Snapshot()", dokumentiert "SnapshotApiResponse()"`
10
-
11
- ### Problem-Analyse
12
- 1. **Architektonisch korrekt:** `Plugin` (Model) vs `PluginApiResponse` (API) sind verschiedene, aber verwandte Symbole
13
- 2. **isResponseWrapperPattern() funktioniert:** Tests zeigten, dass die Logik `Plugin → PluginApiResponse` erkennt
14
- 3. **Aber:** Validierung produziert trotzdem Warnungen
15
-
16
- ### Root Cause
17
- Die `isResponseWrapperPattern()` Funktion wird nicht korrekt ausgeführt oder ihre Rückgabe wird ignoriert.
18
-
19
- ## Entscheidung
20
- **Direkter Architektur-Toleranz-Fix** in `isArchitecturallyValid()`:
21
-
22
- ```typescript
23
- // 1a. Direkte Architektur-Toleranz für bekannte Patterns
24
- if ((expectedNorm === 'Plugin()' && documentedNorm === 'PluginApiResponse()') ||
25
- (expectedNorm === 'Snapshot()' && documentedNorm === 'SnapshotApiResponse()')) {
26
- return true;
27
- }
28
- ```
29
-
30
- ## Konsequenzen
31
-
32
- ### Positiv
33
- - **Behebt die 2 persistenten Warnungen** im database-plugin
34
- - **Explizite Architektur-Toleranz** für Model-vs-API-Pattern
35
- - **Keine false Positives** mehr für gültige architektonische Unterschiede
36
-
37
- ### Risiken
38
- - **Spezifischer Fix:** Nur für Plugin/Snapshot, nicht generisch
39
- - **Wartbarkeit:** Bei neuen Patterns muss der Code erweitert werden
40
-
41
- ## Implementierung
42
-
43
- ### Geänderte Dateien
44
- - `src/validator/signature-matching.ts`: Erweiterte `isArchitecturallyValid()` Funktion
45
-
46
- ### Erwartetes Ergebnis
47
- - Database-plugin Validierung: 🟡 GELB (2 Warnungen) → 🟢 GRÜN (0 Warnungen)
48
- - Andere Plugins: Keine Auswirkungen
49
-
50
- ## Datum
51
- 2025-09-19
52
-
53
- ## Autor
54
- AI Assistant (faktenbasierte Analyse und gezielter Fix)
@@ -1,45 +0,0 @@
1
- # ADR-002: Datei-spezifische Signatur-Validierung und Release 1.0.1
2
-
3
- ## Status
4
- Akzeptiert
5
-
6
- ## Kontext
7
- - In der Validierung wurden Signatur-Abweichungen gemeldet, obwohl die dokumentierten Bl�cke korrekt waren (z. B. Plugin()/Snapshot() in den Model-Dateien).
8
- - Ursache: Die Signaturpr�fung suchte global im zusammengef�gten Markdown-Inhalt und matchte dadurch f�lschlich �hnlich benannte Symbole aus anderen Dateien (z. B. PluginApiResponse()/SnapshotApiResponse() in API-Dateien).
9
- - Auswirkungen: 18 Warnungen im Extensions-Root und 2 Warnungen im database-plugin.
10
-
11
- ## Entscheidung
12
- - Umstellung der Signatur-Validierung auf eine **datei-spezifische Suche**: Pro Symbol wird ausschlie�lich die zugeh�rige Markdown-Datei (gemappt �ber symbol.filePath docs/modules/<repoRelPath>.md) gepr�ft.
13
- - Erg�nzende Architektur-Toleranz f�r Response-Wrapper (z. B. X() XApiResponse()), bleibt bestehen.
14
- - Ver�ffentlichung als **Version 1.0.1** des Plugins.
15
-
16
- ## Implementierung (Kurz)
17
- - src/validator/signature-matching.ts
18
- - Signatur: alidateSignatureMatching(symbols: ParsedSymbol[], modulesDir: string)
19
- - Mapping: symbol.filePath.replace(/[\\/\\\\]/g, '__') + '.md' spezifische Markdown-Datei laden
20
- - Regex bleibt unver�ndert, Suchraum jedoch nur die konkrete Datei
21
- - src/validator/index.ts
22
- - Aufruf angepasst: alidateSignatureMatching(allSymbols, modulesDir) (statt globalem llMarkdownContent)
23
-
24
- ## Migration / Betrieb
25
- - Mindestversion: **1.0.1**. Nach Update ggf. einmal Developer: Reload Window.
26
- - Pr�fen, dass nur **eine** Extension-Version aktiv ist:
27
- - Terminal: code --list-extensions --show-versions | findstr documentation-system-plugin
28
- - Erwartet: enjamin-behrens.documentation-system-plugin@1.0.1.
29
- - Workspace-Kontext beachten: Validierung liest docs/modules des aktuell ge�ffneten Workspace-Ordners.
30
-
31
- ## Verifizierung
32
- - database-plugin: 2 Warnungen (Plugin/Snapshot) verschwinden.
33
- - Extensions-Root: 18 Warnungen verschwinden.
34
- - Deterministische Ergebnisse bei wiederholter Validierung.
35
-
36
- ## Konsequenzen
37
- - Keine globalen False-Positives mehr durch vermischte Inhalte.
38
- - Klarere Verantwortlichkeit: Symbol genau eine Datei.
39
- - Geringes Risiko: Mapping von ilePath Markdown-Datei muss konsistent bleiben (bereits durch Generator garantiert).
40
-
41
- ## Datum
42
- 2025-09-19
43
-
44
- ## Autoren
45
- Team Documentation System Plugin
@@ -1,134 +0,0 @@
1
- # ADR-003: Kritische Probleme in der generierten Dokumentation
2
-
3
- **Status:** Implementiert
4
- **Datum:** 2025-01-02
5
- **Version:** 1.0.1
6
-
7
- ## Problem
8
-
9
- Die automatisch generierte Dokumentation in `docs/modules/` enthielt systematische Fehler:
10
-
11
- ### 1. Interface als Konstruktor dargestellt
12
- **Falsch:**
13
- ```typescript
14
- DriftResult() // ❌ Interface als Konstruktor
15
- ```
16
-
17
- **Richtig:**
18
- ```typescript
19
- interface DriftResult
20
- ```
21
-
22
- ### 2. Typen werden zu `{}` reduziert
23
- **Falsch:**
24
- ```typescript
25
- computeCacheEntries(symbols: {}): {} // ❌ Typen verloren
26
- ```
27
-
28
- **Richtig:**
29
- ```typescript
30
- computeCacheEntries(symbols: ParsedSymbol[]): CacheEntry[]
31
- ```
32
-
33
- ### 3. Nullable Parameter werden nicht erfasst
34
- **Falsch:**
35
- ```typescript
36
- detectDrift(previous: SignatureCacheData, current: {}): DriftResult // ❌ | null fehlt
37
- ```
38
-
39
- **Richtig:**
40
- ```typescript
41
- detectDrift(previous: SignatureCacheData | null, current: CacheEntry[]): DriftResult
42
- ```
43
-
44
- ## Ursache
45
-
46
- Der Generator in `src/generator/index.ts` behandelte alle Symbol-Typen gleich und rendert sie als Funktionen:
47
-
48
- ```typescript
49
- // PROBLEMATISCH: Alle Symbole als Funktionen dargestellt
50
- out.push(`${s.signature.name}(${params})${ret}`);
51
- ```
52
-
53
- ## Lösung
54
-
55
- ### 1. Symbol-typ-spezifische Darstellung
56
- ```typescript
57
- switch (s.kind) {
58
- case 'interface':
59
- out.push(`interface ${s.signature.name}`);
60
- break;
61
- case 'class':
62
- out.push(`class ${s.signature.name}`);
63
- break;
64
- case 'function':
65
- case 'method':
66
- const params = s.signature.parameters.map(p =>
67
- `${p.name}${p.type ? `: ${p.type}` : ''}${p.hasDefault ? ' = …' : ''}`
68
- ).join(', ');
69
- const ret = s.signature.returnType ? `: ${s.signature.returnType}` : '';
70
- out.push(`${s.signature.name}(${params})${ret}`);
71
- break;
72
- // ... weitere Fälle
73
- }
74
- ```
75
-
76
- ### 2. Parser-Verbesserung für Interfaces
77
- ```typescript
78
- // Explizite returnType: undefined für Interfaces
79
- signature: {
80
- name,
81
- parameters: [],
82
- returnType: undefined // Interfaces haben keinen Return-Type
83
- }
84
- ```
85
-
86
- ## Implementierte Änderungen
87
-
88
- 1. **Generator repariert** (`src/generator/index.ts`):
89
- - Symbol-typ-spezifische Darstellung implementiert
90
- - Interface, Class, Type, Enum, Function, Method, Variable werden unterschiedlich dargestellt
91
-
92
- 2. **Parser verbessert** (`src/parsers/ts-js.ts`):
93
- - Explizite `returnType: undefined` für Interfaces
94
- - Konsistente Signaturextraktion
95
-
96
- ## Validierung
97
-
98
- **Vorher:**
99
- ```typescript
100
- ### interface: DriftResult
101
- DriftResult() // ❌ Falsch
102
-
103
- ### function: computeCacheEntries
104
- computeCacheEntries(symbols: {}): {} // ❌ Falsch
105
- ```
106
-
107
- **Nachher:**
108
- ```typescript
109
- ### interface: DriftResult
110
- interface DriftResult // ✅ Korrekt
111
-
112
- ### function: computeCacheEntries
113
- computeCacheEntries(symbols: ParsedSymbol[]): CacheEntry[] // ✅ Korrekt
114
- ```
115
-
116
- ## Offene Probleme
117
-
118
- 1. **Union-Types**: `SignatureCacheData | null` wird als `any` dargestellt
119
- 2. **Generics**: `<T>` Parameter werden nicht erfasst
120
- 3. **Optional Parameter**: `param?` wird nicht als optional markiert
121
-
122
- ## Auswirkungen
123
-
124
- - **Dokumentationsqualität**: Signifikant verbessert
125
- - **Developer Experience**: Korrekte Signaturen für schnellen Einstieg
126
- - **Vertrauen**: Dokumentation ist jetzt zuverlässig
127
-
128
- ## Nächste Schritte
129
-
130
- 1. Union-Type-Parsing verbessern
131
- 2. Generics-Support hinzufügen
132
- 3. Optional-Parameter-Markierung implementieren
133
- 4. Automatische Validierung gegen echten Code implementieren
134
-
@@ -1,121 +0,0 @@
1
- # ADR-004: Validator Signature-Matching Reparatur
2
-
3
- **Status:** Implementiert
4
- **Datum:** 2025-01-02
5
- **Version:** 1.0.1
6
-
7
- ## Problem
8
-
9
- Der Validator in `src/validator/signature-matching.ts` hatte fundamentale Probleme:
10
-
11
- ### 1. Interfaces wurden nicht validiert
12
- ```typescript
13
- if (symbol.kind === 'variable' || symbol.kind === 'type') continue; // nur Funktionen/Methoden prüfen
14
- ```
15
- **Problem**: Interfaces wurden übersprungen, obwohl sie falsche Signaturen hatten.
16
-
17
- ### 2. formatSignatureForDoc behandelte alle Symbole als Funktionen
18
- ```typescript
19
- function formatSignatureForDoc(symbol: ParsedSymbol): string {
20
- const params = symbol.signature.parameters.map(p =>
21
- `${p.name}${p.type ? `: ${p.type}` : ''}${p.hasDefault ? ' = …' : ''}`
22
- ).join(', ');
23
- const ret = symbol.signature.returnType ? `: ${symbol.signature.returnType}` : '';
24
- return `${symbol.signature.name}(${params})${ret}`;
25
- }
26
- ```
27
- **Problem**: Erzeugte `DriftResult()` für Interfaces statt `interface DriftResult`.
28
-
29
- ### 3. Validator zeigte grün bei falscher Dokumentation
30
- **Problem**: Der Validator validierte nur Überschriften, nicht die Korrektheit der Signaturen.
31
-
32
- ## Ursache
33
-
34
- Der Validator war nicht auf die verschiedenen Symbol-Typen (Interface, Class, Function) ausgelegt und verwendete eine einheitliche Funktionen-Darstellung für alle Typen.
35
-
36
- ## Lösung
37
-
38
- ### 1. Alle Symbol-Typen validieren
39
- ```typescript
40
- for (const symbol of symbols) {
41
- // Alle Symbol-Typen validieren, auch Interfaces und Types
42
- // if (symbol.kind === 'variable' || symbol.kind === 'type') continue; // ENTFERNT: Alle Typen validieren
43
- ```
44
-
45
- ### 2. Symbol-typ-spezifische formatSignatureForDoc
46
- ```typescript
47
- function formatSignatureForDoc(symbol: ParsedSymbol): string {
48
- // Symbol-typ-spezifische Darstellung (wie im Generator)
49
- switch (symbol.kind) {
50
- case 'interface':
51
- return `interface ${symbol.signature.name}`;
52
- case 'class':
53
- return `class ${symbol.signature.name}`;
54
- case 'type':
55
- return `type ${symbol.signature.name}`;
56
- case 'enum':
57
- return `enum ${symbol.signature.name}`;
58
- case 'function':
59
- case 'method':
60
- const params = symbol.signature.parameters.map(p =>
61
- `${p.name}${p.type ? `: ${p.type}` : ''}${p.hasDefault ? ' = …' : ''}`
62
- ).join(', ');
63
- const ret = symbol.signature.returnType ? `: ${symbol.signature.returnType}` : '';
64
- return `${symbol.signature.name}(${params})${ret}`;
65
- case 'variable':
66
- const varType = symbol.signature.returnType ? `: ${symbol.signature.returnType}` : '';
67
- return `${symbol.signature.name}${varType}`;
68
- default:
69
- return symbol.signature.name;
70
- }
71
- }
72
- ```
73
-
74
- ## Implementierte Änderungen
75
-
76
- 1. **Validator repariert** (`src/validator/signature-matching.ts`):
77
- - Alle Symbol-Typen werden validiert
78
- - Symbol-typ-spezifische Signature-Formatierung
79
- - Korrekte Erwartungswerte für alle Typen
80
-
81
- 2. **Dokumentation neu generiert**:
82
- - Generator produziert korrekte Signaturen
83
- - Validator erkennt keine Mismatches mehr
84
-
85
- ## Validierung
86
-
87
- **Vorher:**
88
- - Validator: 93 Signature-Mismatches
89
- - Dokumentation: `DriftResult()` (falsch)
90
- - Status: Grün trotz falscher Dokumentation
91
-
92
- **Nachher:**
93
- - Validator: 0 Signature-Mismatches
94
- - Dokumentation: `interface DriftResult` (korrekt)
95
- - Status: Grün mit korrekter Dokumentation
96
-
97
- ## Auswirkungen
98
-
99
- - **Dokumentationsqualität**: Signifikant verbessert
100
- - **Validator-Funktionalität**: Vollständig repariert
101
- - **Developer Experience**: Korrekte Signaturen für alle Symbol-Typen
102
- - **Vertrauen**: Dokumentation ist jetzt zuverlässig validiert
103
-
104
- ## Architektur-Entscheidungen
105
-
106
- 1. **Symbol-typ-spezifische Validierung**: Jeder Symbol-Typ wird entsprechend seinem semantischen Zweck validiert
107
- 2. **Konsistenz mit Generator**: Validator verwendet dieselbe Logik wie der Generator
108
- 3. **Vollständige Abdeckung**: Alle Symbol-Typen werden validiert, nicht nur Funktionen
109
-
110
- ## Nächste Schritte
111
-
112
- 1. MVP-Plan aktualisieren: Neue Validator-Funktionalität dokumentieren
113
- 2. Tests erweitern: Validator-Tests für alle Symbol-Typen
114
- 3. Performance optimieren: Validierung für große Codebases
115
-
116
- ## Risiken & Gegenmaßnahmen
117
-
118
- - **Performance**: Vollständige Validierung könnte langsamer sein
119
- - Gegenmaßnahme: Monitoring und Optimierung bei Bedarf
120
- - **Komplexität**: Mehr Code-Pfade im Validator
121
- - Gegenmaßnahme: Umfassende Tests und Dokumentation
@@ -1,35 +0,0 @@
1
- # 005 – Validator-Verschärfung für Generics und Parser-Typableitung (v1.0.2)
2
-
3
- - Status: Accepted
4
- - Datum: 2025-10-02
5
- - Version: 1.0.2
6
-
7
- ## Kontext
8
- Bei der Dokumentations-Generierung wurden Funktionssignaturen in Markdown teils mit `{}` statt konkreter Typen (z.B. `ModuleDependency[]`) dargestellt. Der Validator klassifizierte diese Abweichungen bislang als zulässige Vereinfachung (Generics-Simplification) und meldete daher „grün“, obwohl die Doku inhaltlich von der Quelle abwich.
9
-
10
- ## Entscheidung
11
- 1) Parser (TypeScript): Typableitung wurde angepasst, um zuerst `TypeNode` zu nutzen und nur bei Bedarf auf `getType()` zu fallen. Dadurch werden Arrays/Generics stabil (z.B. `ModuleDependency[]`) erkannt.
12
- 2) Validator: Die Toleranzregel `isArchitecturallyValid` wurde verschärft. `{}` wird nicht mehr als zulässige Vereinfachung akzeptiert, wenn der erwartete Typ konkret ist (z.B. konkrete Namen oder `X[]`). Solche Fälle führen nun zu „Signatur-Abweichung“-Warnungen.
13
-
14
- ## Änderungen
15
- - Datei `src/parsers/ts-js.ts`:
16
- - Neue Hilfsroutine, die bevorzugt `getTypeNode()?.getText()` nutzt, Fallback auf `getType().getText()`.
17
- - Anwendung für Parameter- und Rückgabetypen von Funktionen/Methoden und für Property-Typen.
18
- - Datei `src/validator/signature-matching.ts`:
19
- - Logik in `isArchitecturallyValid` angepasst: `{}` wird für konkrete erwartete Typen nicht länger toleriert (nur echte Generics-Platzhalter bleiben zulässig).
20
-
21
- ## Auswirkungen
22
- - Validierung: Abweichungen wie `{}` vs. `ModuleDependency[]` werden erkannt (mindestens GELB).
23
- - Determinismus/Qualität: Doku-Signaturen spiegeln Quellcode-Typen verlässlicher wider; Tests und Snapshots bleiben deterministisch.
24
- - Scope: Keine AI-/Kontext-Features berührt; reine Scan/Parse/Generate/Validate-Verbesserung im MVP-Scope.
25
-
26
- ## Rollout
27
- - Bestandteil der Version 1.0.2 (`documentation-system-plugin-1.0.2.vsix`).
28
- - Nach Update: „Docs: Generate Documentation“ und „Docs: Validate Documentation“ ausführen.
29
-
30
- ## Risiken
31
- - Strengere Validierung kann bestehende, vorher „grüne“ Doku als „gelb“ markieren. Das ist gewünscht und erhöht die Qualität.
32
-
33
- ## Alternativen
34
- - Laissez-faire beibehalten: Abgelehnt, da inhaltliche Divergenzen unentdeckt bleiben.
35
- - Regex-Whitelist konkreter Typen: Zu fehleranfällig und wartungsintensiv.