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