@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.
- package/out/cache/ast-cache.js +69 -0
- package/out/cache/ast-cache.js.map +1 -0
- package/out/cache/dependencies-cache.js +73 -0
- package/out/cache/dependencies-cache.js.map +1 -0
- package/out/cache/output-cache.js +69 -0
- package/out/cache/output-cache.js.map +1 -0
- package/out/cache/signature-cache.js +60 -0
- package/out/cache/signature-cache.js.map +1 -0
- package/out/cli/generate-cli.js +341 -0
- package/out/cli/generate-cli.js.map +1 -0
- package/out/cli/scan-cli.js +157 -0
- package/out/cli/scan-cli.js.map +1 -0
- package/out/cli/validate-cli.js +258 -0
- package/out/cli/validate-cli.js.map +1 -0
- package/out/core/async.js +38 -0
- package/out/core/async.js.map +1 -0
- package/out/core/consolidation.js +230 -0
- package/out/core/consolidation.js.map +1 -0
- package/out/core/git.js +48 -0
- package/out/core/git.js.map +1 -0
- package/out/core/language-detection.js +29 -0
- package/out/core/language-detection.js.map +1 -0
- package/out/core/scanner.js +180 -0
- package/out/core/scanner.js.map +1 -0
- package/out/core/signature-formatter.js +162 -0
- package/out/core/signature-formatter.js.map +1 -0
- package/out/core/symbol-classifier.js +96 -0
- package/out/core/symbol-classifier.js.map +1 -0
- package/out/core/symbols.js +24 -0
- package/out/core/symbols.js.map +1 -0
- package/out/drift/index.js +28 -0
- package/out/drift/index.js.map +1 -0
- package/out/extension.js +984 -0
- package/out/extension.js.map +1 -0
- package/out/generator/adr-linker.js +216 -0
- package/out/generator/adr-linker.js.map +1 -0
- package/out/generator/change-report.js +124 -0
- package/out/generator/change-report.js.map +1 -0
- package/out/generator/dependency-graph.js +98 -0
- package/out/generator/dependency-graph.js.map +1 -0
- package/out/generator/index.js +117 -0
- package/out/generator/index.js.map +1 -0
- package/out/generator/module-doc.js +438 -0
- package/out/generator/module-doc.js.map +1 -0
- package/out/generator/system-metadata.js +202 -0
- package/out/generator/system-metadata.js.map +1 -0
- package/out/index/index.js +161 -0
- package/out/index/index.js.map +1 -0
- package/out/logging/index.js +24 -0
- package/out/logging/index.js.map +1 -0
- package/out/parsers/dependencies.js +126 -0
- package/out/parsers/dependencies.js.map +1 -0
- package/out/parsers/json-yaml.js +121 -0
- package/out/parsers/json-yaml.js.map +1 -0
- package/out/parsers/python.js +160 -0
- package/out/parsers/python.js.map +1 -0
- package/out/parsers/ts-js.js +598 -0
- package/out/parsers/ts-js.js.map +1 -0
- package/out/parsers/types.js +3 -0
- package/out/parsers/types.js.map +1 -0
- package/out/ui/commands-provider.js +91 -0
- package/out/ui/commands-provider.js.map +1 -0
- package/out/ui/status-bar.js +85 -0
- package/out/ui/status-bar.js.map +1 -0
- package/out/validator/index.js +185 -0
- package/out/validator/index.js.map +1 -0
- package/out/validator/signature-matching.js +261 -0
- package/out/validator/signature-matching.js.map +1 -0
- package/out/validator/status.js +38 -0
- package/out/validator/status.js.map +1 -0
- package/package.json +9 -1
- 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 -78
- 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 -114
- package/docs/modules/mcp__src__tools__impact.ts.md +0 -130
- 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 -130
- 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 -100
- 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 -159
- 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 -96
- 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 -117
- 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 -26
- 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/docs/system/SYSTEM_METADATA.json +0 -37
- package/documentation.config.schema.json +0 -77
- package/publish.ps1 +0 -21
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
# LinkedIn-Antwort: Sequenzdiagramme aus automatisierter Dokumentation
|
|
2
|
-
|
|
3
|
-
## Kontext
|
|
4
|
-
Ein LinkedIn-Nutzer fragte, ob das Dokumentations-System auch komplexe Sequenzdiagramme (z.B. für Payment-Flows) generieren kann, oder ob dafür noch manuelle Arbeit nötig ist.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Beweis-Zusammenfassung (mit echten Daten)
|
|
9
|
-
|
|
10
|
-
### Was ich gemacht habe:
|
|
11
|
-
|
|
12
|
-
1. **Gelesen**:
|
|
13
|
-
- `docs/system/DEPENDENCIES.md` (330 Zeilen Import-Übersicht)
|
|
14
|
-
- `docs/system/DEPENDENCY_GRAPH.md` (281 Zeilen Mermaid-Graph, 119 Knoten)
|
|
15
|
-
- `docs/index/symbols.jsonl` (548 Symbole mit Dependencies)
|
|
16
|
-
- `docs/modules/*.md` (70+ Modul-Dokumentationen)
|
|
17
|
-
|
|
18
|
-
2. **Identifiziert**:
|
|
19
|
-
- Einstiegspunkt `scanSystemTs()` aus `src/extension.ts`
|
|
20
|
-
- 22 direkte Dependencies (aus symbols.jsonl Zeile 417)
|
|
21
|
-
|
|
22
|
-
3. **Rekonstruiert**:
|
|
23
|
-
- Vollständige Aufrufkette über 14 beteiligte Module
|
|
24
|
-
- Alle Signaturen und Datentypen aus den Modul-Dokus
|
|
25
|
-
|
|
26
|
-
4. **Generiert**:
|
|
27
|
-
- Mermaid-Sequenzdiagramm mit 6 Phasen und 15 Teilnehmern
|
|
28
|
-
- Zweites Diagramm für den Validierungs-Flow
|
|
29
|
-
|
|
30
|
-
### Konkrete Zahlen:
|
|
31
|
-
|
|
32
|
-
| Artefakt | Inhalt |
|
|
33
|
-
|----------|--------|
|
|
34
|
-
| `DEPENDENCIES.md` | 330 Zeilen, alle Import-Beziehungen |
|
|
35
|
-
| `DEPENDENCY_GRAPH.md` | 119 Knoten, 160+ Kanten |
|
|
36
|
-
| `symbols.jsonl` | 548 Symbole mit Dependencies |
|
|
37
|
-
| `modules/*.md` | 70+ Dateien mit Signaturen |
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Antwort-Vorschlag für LinkedIn
|
|
42
|
-
|
|
43
|
-
> **Genau das habe ich gerade praktisch bewiesen – mit echten Daten aus dem System!**
|
|
44
|
-
>
|
|
45
|
-
> Ich habe aus den automatisch generierten Dokumentations-Artefakten ein vollständiges Sequenzdiagramm für den "System-Scan"-Flow abgeleitet:
|
|
46
|
-
>
|
|
47
|
-
> **Die Quellen:**
|
|
48
|
-
> - `docs/system/DEPENDENCIES.md` → 330 Zeilen Import-Übersicht
|
|
49
|
-
> - `docs/system/DEPENDENCY_GRAPH.md` → Mermaid-Graph mit 119 Knoten
|
|
50
|
-
> - `docs/index/symbols.jsonl` → 548 Symbole mit ihren Dependencies
|
|
51
|
-
> - `docs/modules/*.md` → 70+ Modul-Dokumentationen mit Signaturen
|
|
52
|
-
>
|
|
53
|
-
> **Das Ergebnis:**
|
|
54
|
-
> - 14 beteiligte Module identifiziert
|
|
55
|
-
> - 6 Phasen im Ablauf (Scan → Parse → Cache → Generate → Save → Validate)
|
|
56
|
-
> - Vollständiges Mermaid-Sequenzdiagramm mit allen Aufrufen
|
|
57
|
-
>
|
|
58
|
-
> **Der Trick ist:**
|
|
59
|
-
> - Jedes Symbol in `symbols.jsonl` hat ein `dependencies`-Array
|
|
60
|
-
> - Die Signaturen in `docs/modules/` zeigen Parameter und Rückgabewerte
|
|
61
|
-
> - Aus beidem ergibt sich die Aufrufkette
|
|
62
|
-
>
|
|
63
|
-
> **Für ein Payment-System würde das so aussehen:**
|
|
64
|
-
> 1. `npm run scan` auf der Codebasis ausführen
|
|
65
|
-
> 2. In `symbols.jsonl` nach `processPayment` o.ä. filtern
|
|
66
|
-
> 3. Dependencies aus dem Array ablesen (PaypalAdapter, TransactionLogger, ...)
|
|
67
|
-
> 4. Signaturen aus `docs/modules/` holen
|
|
68
|
-
> 5. Sequenzdiagramm generieren
|
|
69
|
-
>
|
|
70
|
-
> **Was noch fehlt für 100% Automatisierung:**
|
|
71
|
-
> - Domänen-spezifische Annotationen ("dies ist ein externer API-Call")
|
|
72
|
-
> - Business-Varianten (Erfolg/Fehler-Pfade)
|
|
73
|
-
>
|
|
74
|
-
> Aber der **technische Kontext** kommt reproduzierbar aus dem Code – das ist der große Unterschied zu "alles jedes Mal neu prompten".
|
|
75
|
-
>
|
|
76
|
-
> 📎 Beweis-Dokument mit allen Quellen: [docs/SEQUENZDIAGRAMM_BEWEIS.md]
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Kernargumente (für die Diskussion)
|
|
81
|
-
|
|
82
|
-
### 1. Strukturierte Wissensbasis statt Ad-hoc-Prompts
|
|
83
|
-
```
|
|
84
|
-
VORHER: "Hey KI, hier sind 15 Dateien, erkläre mir den Payment-Flow"
|
|
85
|
-
NACHHER: "Zeige mir den Flow ab processPayment() – alle Dependencies stehen in symbols.jsonl"
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### 2. Determinismus
|
|
89
|
-
```
|
|
90
|
-
Gleicher Code-Stand
|
|
91
|
-
→ npm run scan
|
|
92
|
-
→ Gleiche docs/*-Artefakte
|
|
93
|
-
→ Gleiches Sequenzdiagramm
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### 3. Skalierbarkeit
|
|
97
|
-
- `symbols.jsonl` mit 548 Symbolen → funktioniert genauso mit 5.000
|
|
98
|
-
- Kein manuelles "Context-Stuffing" mehr nötig
|
|
99
|
-
|
|
100
|
-
### 4. Erweiterbarkeit
|
|
101
|
-
- Domänen-Views als zusätzliche Layer ergänzbar
|
|
102
|
-
- Basis-Kontext bleibt automatisch aktuell
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Technische Details (für Interessierte)
|
|
107
|
-
|
|
108
|
-
### Wie die Dependencies in symbols.jsonl aussehen:
|
|
109
|
-
|
|
110
|
-
```json
|
|
111
|
-
{
|
|
112
|
-
"symbol_id": "ts://src/extension.ts#activate(f93629ec84e52398)",
|
|
113
|
-
"path": "src/extension.ts",
|
|
114
|
-
"kind": "function",
|
|
115
|
-
"name": "activate",
|
|
116
|
-
"dependencies": [
|
|
117
|
-
"./cache/ast-cache",
|
|
118
|
-
"./cache/signature-cache",
|
|
119
|
-
"./core/scanner",
|
|
120
|
-
"./generator/index",
|
|
121
|
-
"./validator/index",
|
|
122
|
-
// ... 17 weitere Module
|
|
123
|
-
]
|
|
124
|
-
}
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Wie eine Modul-Doku aussieht:
|
|
128
|
-
|
|
129
|
-
```markdown
|
|
130
|
-
# Modul: src/validator/index.ts
|
|
131
|
-
|
|
132
|
-
### function: validateSymbols
|
|
133
|
-
\`\`\`ts
|
|
134
|
-
validateSymbols(symbols: ParsedSymbol[]): ValidationReport
|
|
135
|
-
\`\`\`
|
|
136
|
-
|
|
137
|
-
### interface: ValidationReport
|
|
138
|
-
\`\`\`ts
|
|
139
|
-
interface ValidationReport {
|
|
140
|
-
totalSymbols: number;
|
|
141
|
-
errors: string[];
|
|
142
|
-
warnings: string[];
|
|
143
|
-
status?: StatusReport;
|
|
144
|
-
}
|
|
145
|
-
\`\`\`
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### Wie der Dependency-Graph aussieht:
|
|
149
|
-
|
|
150
|
-
```mermaid
|
|
151
|
-
graph TD
|
|
152
|
-
N98["src/extension.ts"]
|
|
153
|
-
N110["src/validator/index.ts"]
|
|
154
|
-
N111["src/validator/signature-matching.ts"]
|
|
155
|
-
|
|
156
|
-
N98 --> N110
|
|
157
|
-
N110 --> N111
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
## Nächste Schritte (optional)
|
|
163
|
-
|
|
164
|
-
Falls gewünscht, könnte das System erweitert werden um:
|
|
165
|
-
|
|
166
|
-
1. **Automatische Sequenzdiagramm-Generierung**
|
|
167
|
-
- Input: Use-Case-Name + Einstiegspunkt-Symbol
|
|
168
|
-
- Output: Mermaid-Diagramm
|
|
169
|
-
|
|
170
|
-
2. **Domänen-Annotationen**
|
|
171
|
-
- Markierung von externen Calls, DB-Zugriffen, etc.
|
|
172
|
-
- Automatische `alt`/`opt`-Blöcke für Fehlerpfade
|
|
173
|
-
|
|
174
|
-
3. **Interaktive Exploration**
|
|
175
|
-
- "Zeige mir den Flow von X nach Y"
|
|
176
|
-
- Tiefe/Breite konfigurierbar
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
## Fazit
|
|
181
|
-
|
|
182
|
-
**Das System liefert genau die strukturierte Wissensbasis, die für automatische Architektur-Diagramme nötig ist:**
|
|
183
|
-
|
|
184
|
-
| Was | Woher |
|
|
185
|
-
|-----|-------|
|
|
186
|
-
| Alle Module und ihre Beziehungen | `DEPENDENCIES.md`, `DEPENDENCY_GRAPH.md` |
|
|
187
|
-
| Alle Symbole mit Dependencies | `symbols.jsonl` |
|
|
188
|
-
| Alle Signaturen und Typen | `docs/modules/*.md` |
|
|
189
|
-
|
|
190
|
-
**Ergebnis: Sequenzdiagramme sind deterministisch aus diesen Artefakten ableitbar.**
|
|
@@ -1,469 +0,0 @@
|
|
|
1
|
-
# Beweis: Sequenzdiagramme aus docs/index, docs/modules und docs/system ableiten
|
|
2
|
-
|
|
3
|
-
Dieses Dokument beweist, dass aus den automatisch generierten Dokumentations-Artefakten (`docs/index`, `docs/modules`, `docs/system`) vollständige Sequenzdiagramme für beliebige Abläufe im System abgeleitet werden können.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 1. Gewählter Use Case: "Dokumentations-Scan-Flow"
|
|
8
|
-
|
|
9
|
-
### 1.1 Use Case Definition
|
|
10
|
-
**Ablauf**: Ein Benutzer führt den VS Code-Befehl "Scan System" aus, um die gesamte Codebasis zu scannen und Dokumentation zu generieren.
|
|
11
|
-
|
|
12
|
-
### 1.2 Einstiegspunkt (aus `docs/modules/src__extension.ts.md`)
|
|
13
|
-
```ts
|
|
14
|
-
// Quelle: docs/modules/src__extension.ts.md, Zeile 137-139
|
|
15
|
-
function scanSystemTs(): any
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
### 1.3 Einstiegspunkt mit Dependencies (aus `docs/index/symbols.jsonl`)
|
|
19
|
-
```json
|
|
20
|
-
// Zeile 417 aus symbols.jsonl
|
|
21
|
-
{
|
|
22
|
-
"symbol_id": "ts://src/extension.ts#activate(f93629ec84e52398)",
|
|
23
|
-
"path": "src/extension.ts",
|
|
24
|
-
"kind": "function",
|
|
25
|
-
"name": "activate",
|
|
26
|
-
"dependencies": [
|
|
27
|
-
"./cache/ast-cache",
|
|
28
|
-
"./cache/dependencies-cache",
|
|
29
|
-
"./cache/output-cache",
|
|
30
|
-
"./cache/signature-cache",
|
|
31
|
-
"./core/async",
|
|
32
|
-
"./core/consolidation",
|
|
33
|
-
"./core/git",
|
|
34
|
-
"./core/scanner",
|
|
35
|
-
"./drift/index",
|
|
36
|
-
"./generator/change-report",
|
|
37
|
-
"./generator/dependency-graph",
|
|
38
|
-
"./generator/index",
|
|
39
|
-
"./index/index",
|
|
40
|
-
"./parsers/dependencies",
|
|
41
|
-
"./parsers/json-yaml",
|
|
42
|
-
"./parsers/python",
|
|
43
|
-
"./parsers/ts-js",
|
|
44
|
-
"./parsers/types",
|
|
45
|
-
"./ui/commands-provider",
|
|
46
|
-
"./ui/status-bar",
|
|
47
|
-
"./validator/index",
|
|
48
|
-
"./validator/status",
|
|
49
|
-
"fs", "path", "vscode"
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## 2. Beteiligte Module aus `docs/system/DEPENDENCIES.md`
|
|
57
|
-
|
|
58
|
-
### 2.1 Direkte Abhängigkeiten von `src/extension.ts` (Zeilen 213-241)
|
|
59
|
-
|
|
60
|
-
```markdown
|
|
61
|
-
## src/extension.ts
|
|
62
|
-
|
|
63
|
-
### Imports
|
|
64
|
-
- `./cache/ast-cache` (computeFileHash, loadAstHashCache, saveAstHashCache)
|
|
65
|
-
- `./cache/dependencies-cache` (loadDependenciesCache, saveDependenciesCache)
|
|
66
|
-
- `./cache/output-cache` (computeContentHash, loadOutputHashCache, saveOutputHashCache)
|
|
67
|
-
- `./cache/signature-cache` (loadSignatureCache, saveSignatureCache)
|
|
68
|
-
- `./core/async` (mapLimit)
|
|
69
|
-
- `./core/consolidation` (buildDependenciesUnion, buildDependenciesUnionWithDebug, buildSymbolsUnion, UnionDebugInfo)
|
|
70
|
-
- `./core/git` (getChangedFiles, getDeletedFiles)
|
|
71
|
-
- `./core/scanner` (scanWorkspace)
|
|
72
|
-
- `./drift/index` (computeCacheEntries, detectDrift)
|
|
73
|
-
- `./generator/change-report` (extractChangesFromModuleDocs, generateChangeReport)
|
|
74
|
-
- `./generator/dependency-graph` (generateDependencyOverview, generateMermaidGraph)
|
|
75
|
-
- `./generator/index` (generatePerFileDocs)
|
|
76
|
-
- `./index/index` (buildIndexFromSymbols, writeJsonlIndex)
|
|
77
|
-
- `./parsers/dependencies` (extractPythonDependencies, extractTsJsDependencies, ModuleDependency)
|
|
78
|
-
- `./parsers/json-yaml` (JsonYamlParser)
|
|
79
|
-
- `./parsers/python` (PythonParser)
|
|
80
|
-
- `./parsers/ts-js` (TsJsParser)
|
|
81
|
-
- `./parsers/types` (ParsedSymbol, ParserAdapter)
|
|
82
|
-
- `./ui/commands-provider` (CommandsProvider)
|
|
83
|
-
- `./ui/status-bar` (StatusBarManager)
|
|
84
|
-
- `./validator/index` (computeCoverage, validateMarkdownDir)
|
|
85
|
-
- `./validator/status` (computeValidationStatus)
|
|
86
|
-
- `fs`, `path`, `vscode`
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 2.2 Transitive Abhängigkeiten (aus DEPENDENCIES.md)
|
|
90
|
-
|
|
91
|
-
| Modul | Importiert von | Eigene Imports |
|
|
92
|
-
|-------|----------------|----------------|
|
|
93
|
-
| `src/core/scanner.ts` | extension.ts | `../logging/index`, `./language-detection`, `fs`, `ignore`, `path` |
|
|
94
|
-
| `src/parsers/ts-js.ts` | extension.ts | `ts-morph`, `./dependencies`, `./types`, `path` |
|
|
95
|
-
| `src/parsers/dependencies.ts` | extension.ts, parsers | `ts-morph`, `path` |
|
|
96
|
-
| `src/generator/index.ts` | extension.ts | `../parsers/types`, `./module-doc`, `fs`, `path` |
|
|
97
|
-
| `src/generator/module-doc.ts` | generator/index.ts | `../parsers/types` |
|
|
98
|
-
| `src/generator/dependency-graph.ts` | extension.ts | `../parsers/dependencies` |
|
|
99
|
-
| `src/validator/index.ts` | extension.ts | `../logging/index`, `../parsers/types`, `./signature-matching`, `./status`, `fs`, `path` |
|
|
100
|
-
| `src/validator/signature-matching.ts` | validator/index.ts | `../core/symbols`, `../parsers/types` |
|
|
101
|
-
| `src/drift/index.ts` | extension.ts | `../cache/signature-cache`, `../core/symbols`, `../parsers/types` |
|
|
102
|
-
| `src/index/index.ts` | extension.ts | `../core/symbols`, `../parsers/dependencies`, `../parsers/types`, `fs`, `path` |
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## 3. Abhängigkeitsgraph aus `docs/system/DEPENDENCY_GRAPH.md`
|
|
107
|
-
|
|
108
|
-
### 3.1 Relevanter Ausschnitt (Mermaid-Graph, Zeilen 97-120)
|
|
109
|
-
|
|
110
|
-
```mermaid
|
|
111
|
-
graph TD
|
|
112
|
-
N98["src/extension.ts"]
|
|
113
|
-
N95["src/core/scanner.ts"]
|
|
114
|
-
N107["src/parsers/ts-js.ts"]
|
|
115
|
-
N104["src/parsers/dependencies.ts"]
|
|
116
|
-
N101["src/generator/index.ts"]
|
|
117
|
-
N102["src/generator/module-doc.ts"]
|
|
118
|
-
N100["src/generator/dependency-graph.ts"]
|
|
119
|
-
N103["src/index/index.ts"]
|
|
120
|
-
N97["src/drift/index.ts"]
|
|
121
|
-
N110["src/validator/index.ts"]
|
|
122
|
-
N111["src/validator/signature-matching.ts"]
|
|
123
|
-
|
|
124
|
-
N98 --> N21["./core/scanner"]
|
|
125
|
-
N98 --> N36["./parsers/ts-js"]
|
|
126
|
-
N98 --> N33["./parsers/dependencies"]
|
|
127
|
-
N98 --> N26["./generator/index"]
|
|
128
|
-
N98 --> N25["./generator/dependency-graph"]
|
|
129
|
-
N98 --> N27["./index/index"]
|
|
130
|
-
N98 --> N23["./drift/index"]
|
|
131
|
-
N98 --> N51["./validator/index"]
|
|
132
|
-
|
|
133
|
-
N101 --> N32["./module-doc"]
|
|
134
|
-
N110 --> N39["./signature-matching"]
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### 3.2 Abgeleitete Teilnehmer-Hierarchie
|
|
138
|
-
|
|
139
|
-
Aus dem Graphen ergibt sich folgende Aufruf-Hierarchie:
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
src/extension.ts (Entry Point)
|
|
143
|
-
├── src/core/scanner.ts
|
|
144
|
-
├── src/parsers/ts-js.ts
|
|
145
|
-
│ └── src/parsers/dependencies.ts
|
|
146
|
-
├── src/cache/signature-cache.ts
|
|
147
|
-
├── src/drift/index.ts
|
|
148
|
-
├── src/generator/index.ts
|
|
149
|
-
│ └── src/generator/module-doc.ts
|
|
150
|
-
├── src/generator/dependency-graph.ts
|
|
151
|
-
├── src/generator/change-report.ts
|
|
152
|
-
├── src/index/index.ts
|
|
153
|
-
└── src/validator/index.ts
|
|
154
|
-
└── src/validator/signature-matching.ts
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
## 4. Konkrete Symbole aus `docs/index/symbols.jsonl`
|
|
160
|
-
|
|
161
|
-
### 4.1 Scanner-Symbole (Zeilen 406-411)
|
|
162
|
-
```json
|
|
163
|
-
{"symbol_id":"ts://src/core/scanner.ts#scanWorkspace(606c9426b4f0d06a)","path":"src/core/scanner.ts","kind":"function","name":"scanWorkspace","dependencies":["../logging/index","./language-detection","fs","ignore","path"]}
|
|
164
|
-
{"symbol_id":"ts://src/core/scanner.ts#ScannedFile(7c102c616459a20a)","path":"src/core/scanner.ts","kind":"interface","name":"ScannedFile"}
|
|
165
|
-
{"symbol_id":"ts://src/core/scanner.ts#ScanOptions(d2d336b1afc58b23)","path":"src/core/scanner.ts","kind":"interface","name":"ScanOptions"}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### 4.2 Generator-Symbole (Zeilen 452-463)
|
|
169
|
-
```json
|
|
170
|
-
{"symbol_id":"ts://src/generator/index.ts#generatePerFileDocs(7896bf436e864bf4)","path":"src/generator/index.ts","kind":"function","name":"generatePerFileDocs","dependencies":["../parsers/types","./module-doc","fs","path"]}
|
|
171
|
-
{"symbol_id":"ts://src/generator/module-doc.ts#buildModuleDocWithChanges(a77408e193f866b3)","path":"src/generator/module-doc.ts","kind":"function","name":"buildModuleDocWithChanges","dependencies":["../parsers/types"]}
|
|
172
|
-
{"symbol_id":"ts://src/generator/module-doc.ts#renderModuleDoc(4b110cf883155046)","path":"src/generator/module-doc.ts","kind":"function","name":"renderModuleDoc","dependencies":["../parsers/types"]}
|
|
173
|
-
{"symbol_id":"ts://src/generator/dependency-graph.ts#generateMermaidGraph(8d456bec91d98bba)","path":"src/generator/dependency-graph.ts","kind":"function","name":"generateMermaidGraph","dependencies":["../parsers/dependencies"]}
|
|
174
|
-
{"symbol_id":"ts://src/generator/dependency-graph.ts#generateDependencyOverview(45556c1fd48c7c5a)","path":"src/generator/dependency-graph.ts","kind":"function","name":"generateDependencyOverview","dependencies":["../parsers/dependencies"]}
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
### 4.3 Validator-Symbole (Zeilen 513-530)
|
|
178
|
-
```json
|
|
179
|
-
{"symbol_id":"ts://src/validator/index.ts#validateSymbols(c5833b419ccb1672)","path":"src/validator/index.ts","kind":"function","name":"validateSymbols","dependencies":["../logging/index","../parsers/types","./signature-matching","./status","fs","path"]}
|
|
180
|
-
{"symbol_id":"ts://src/validator/index.ts#validateMarkdownDir(d6efd94036f4ae1d)","path":"src/validator/index.ts","kind":"function","name":"validateMarkdownDir"}
|
|
181
|
-
{"symbol_id":"ts://src/validator/index.ts#computeCoverage(d5f43a349f420f9b)","path":"src/validator/index.ts","kind":"function","name":"computeCoverage"}
|
|
182
|
-
{"symbol_id":"ts://src/validator/signature-matching.ts#validateSignatureMatching(71446a0efaa1d0fa)","path":"src/validator/signature-matching.ts","kind":"function","name":"validateSignatureMatching","dependencies":["../core/symbols","../parsers/types"]}
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### 4.4 Index-Symbole (Zeilen 465-467)
|
|
186
|
-
```json
|
|
187
|
-
{"symbol_id":"ts://src/index/index.ts#buildIndexFromSymbols(...)","path":"src/index/index.ts","kind":"function","name":"buildIndexFromSymbols","dependencies":["../core/symbols","../parsers/dependencies","../parsers/types","fs","path"]}
|
|
188
|
-
{"symbol_id":"ts://src/index/index.ts#writeJsonlIndex(...)","path":"src/index/index.ts","kind":"function","name":"writeJsonlIndex"}
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
## 5. Aufrufkette (rekonstruiert aus allen drei Quellen)
|
|
194
|
-
|
|
195
|
-
```
|
|
196
|
-
scanSystemTs() [src/extension.ts]
|
|
197
|
-
│
|
|
198
|
-
├─→ scanWorkspace(options) [src/core/scanner.ts]
|
|
199
|
-
│ Dependencies: ../logging/index, ./language-detection, fs, ignore, path
|
|
200
|
-
│ → Liefert: ScannedFile[]
|
|
201
|
-
│
|
|
202
|
-
├─→ TsJsParser.parse(filePath, content) [src/parsers/ts-js.ts]
|
|
203
|
-
│ Dependencies: ts-morph, ./dependencies, ./types, path
|
|
204
|
-
│ → Liefert: ParsedSymbol[]
|
|
205
|
-
│
|
|
206
|
-
├─→ extractTsJsDependencies(sourceFile, path) [src/parsers/dependencies.ts]
|
|
207
|
-
│ Dependencies: ts-morph, path
|
|
208
|
-
│ → Liefert: ModuleDependency[]
|
|
209
|
-
│
|
|
210
|
-
├─→ loadSignatureCache(cacheFile) [src/cache/signature-cache.ts]
|
|
211
|
-
│ Dependencies: fs, path
|
|
212
|
-
│ → Liefert: SignatureCacheData | null
|
|
213
|
-
│
|
|
214
|
-
├─→ computeCacheEntries(symbols) [src/drift/index.ts]
|
|
215
|
-
│ Dependencies: ../cache/signature-cache, ../core/symbols, ../parsers/types
|
|
216
|
-
│ → Liefert: CacheEntry[]
|
|
217
|
-
│
|
|
218
|
-
├─→ detectDrift(previous, current) [src/drift/index.ts]
|
|
219
|
-
│ → Liefert: DriftResult
|
|
220
|
-
│
|
|
221
|
-
├─→ generatePerFileDocs(symbols, modulesDir, existing) [src/generator/index.ts]
|
|
222
|
-
│ Dependencies: ../parsers/types, ./module-doc, fs, path
|
|
223
|
-
│ │
|
|
224
|
-
│ ├─→ buildModuleDocWithChanges(symbols, existingDoc) [src/generator/module-doc.ts]
|
|
225
|
-
│ │ Dependencies: ../parsers/types
|
|
226
|
-
│ │ → Liefert: ModuleDoc
|
|
227
|
-
│ │
|
|
228
|
-
│ └─→ renderModuleDoc(doc, filePath) [src/generator/module-doc.ts]
|
|
229
|
-
│ → Liefert: string (Markdown)
|
|
230
|
-
│
|
|
231
|
-
├─→ generateDependencyOverview(dependencies) [src/generator/dependency-graph.ts]
|
|
232
|
-
│ Dependencies: ../parsers/dependencies
|
|
233
|
-
│ → Liefert: string (DEPENDENCIES.md Inhalt)
|
|
234
|
-
│
|
|
235
|
-
├─→ generateMermaidGraph(dependencies) [src/generator/dependency-graph.ts]
|
|
236
|
-
│ → Liefert: string (DEPENDENCY_GRAPH.md Inhalt)
|
|
237
|
-
│
|
|
238
|
-
├─→ buildIndexFromSymbols(symbols, dependencies) [src/index/index.ts]
|
|
239
|
-
│ Dependencies: ../core/symbols, ../parsers/dependencies, ../parsers/types, fs, path
|
|
240
|
-
│ → Liefert: IndexRow[]
|
|
241
|
-
│
|
|
242
|
-
├─→ writeJsonlIndex(rows, outFile) [src/index/index.ts]
|
|
243
|
-
│ → Schreibt: symbols.jsonl
|
|
244
|
-
│
|
|
245
|
-
├─→ generateChangeReport(data) [src/generator/change-report.ts]
|
|
246
|
-
│ Dependencies: ../parsers/dependencies, ../parsers/types
|
|
247
|
-
│ → Liefert: string (CHANGE_REPORT.md Inhalt)
|
|
248
|
-
│
|
|
249
|
-
├─→ saveSignatureCache(cacheDir, data) [src/cache/signature-cache.ts]
|
|
250
|
-
│ → Schreibt: Cache-Datei
|
|
251
|
-
│
|
|
252
|
-
└─→ validateMarkdownDir(modulesDir, symbols) [src/validator/index.ts]
|
|
253
|
-
Dependencies: ../logging/index, ../parsers/types, ./signature-matching, ./status, fs, path
|
|
254
|
-
│
|
|
255
|
-
└─→ validateSignatureMatching(symbols, modulesDir) [src/validator/signature-matching.ts]
|
|
256
|
-
Dependencies: ../core/symbols, ../parsers/types
|
|
257
|
-
→ Liefert: SignatureMismatch[]
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
## 6. Semantische Rollen (aus `docs/modules/`)
|
|
263
|
-
|
|
264
|
-
| Modul | Sprechender Name | Rolle |
|
|
265
|
-
|-------|------------------|-------|
|
|
266
|
-
| `src/extension.ts` | **Extension Entry** | VS Code Extension Entry Point, orchestriert alle Abläufe |
|
|
267
|
-
| `src/core/scanner.ts` | **Workspace Scanner** | Findet Dateien, filtert nach Globs, erkennt Sprachen |
|
|
268
|
-
| `src/parsers/ts-js.ts` | **TS/JS Parser** | Parst TypeScript/JavaScript mit ts-morph |
|
|
269
|
-
| `src/parsers/dependencies.ts` | **Dependency Extractor** | Extrahiert Import/Export-Beziehungen |
|
|
270
|
-
| `src/cache/signature-cache.ts` | **Signature Cache** | Persistiert Signatur-Hashes für inkrementelle Läufe |
|
|
271
|
-
| `src/drift/index.ts` | **Drift Detector** | Erkennt veraltete/geänderte Symbole |
|
|
272
|
-
| `src/generator/index.ts` | **Doc Generator** | Orchestriert Modul-Dokumentations-Erzeugung |
|
|
273
|
-
| `src/generator/module-doc.ts` | **Module Doc Builder** | Erzeugt Markdown für einzelne Module |
|
|
274
|
-
| `src/generator/dependency-graph.ts` | **Graph Generator** | Erzeugt DEPENDENCIES.md und Mermaid-Graph |
|
|
275
|
-
| `src/generator/change-report.ts` | **Change Reporter** | Erzeugt CHANGE_REPORT.md |
|
|
276
|
-
| `src/index/index.ts` | **Index Builder** | Erzeugt symbols.jsonl |
|
|
277
|
-
| `src/validator/index.ts` | **Validator** | Prüft Coverage und Markdown-Syntax |
|
|
278
|
-
| `src/validator/signature-matching.ts` | **Signature Matcher** | Vergleicht Code- mit Doku-Signaturen |
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
## 7. Sequenzdiagramm in Mermaid-Notation
|
|
283
|
-
|
|
284
|
-
```mermaid
|
|
285
|
-
sequenceDiagram
|
|
286
|
-
autonumber
|
|
287
|
-
|
|
288
|
-
participant User as Benutzer
|
|
289
|
-
participant VSCode as VS Code UI
|
|
290
|
-
participant Ext as Extension Entry<br/>(src/extension.ts)
|
|
291
|
-
participant Scanner as Workspace Scanner<br/>(src/core/scanner.ts)
|
|
292
|
-
participant Parser as TS/JS Parser<br/>(src/parsers/ts-js.ts)
|
|
293
|
-
participant DepEx as Dependency Extractor<br/>(src/parsers/dependencies.ts)
|
|
294
|
-
participant Cache as Signature Cache<br/>(src/cache/signature-cache.ts)
|
|
295
|
-
participant Drift as Drift Detector<br/>(src/drift/index.ts)
|
|
296
|
-
participant Gen as Doc Generator<br/>(src/generator/index.ts)
|
|
297
|
-
participant ModDoc as Module Doc Builder<br/>(src/generator/module-doc.ts)
|
|
298
|
-
participant Graph as Graph Generator<br/>(src/generator/dependency-graph.ts)
|
|
299
|
-
participant Change as Change Reporter<br/>(src/generator/change-report.ts)
|
|
300
|
-
participant Index as Index Builder<br/>(src/index/index.ts)
|
|
301
|
-
participant Val as Validator<br/>(src/validator/index.ts)
|
|
302
|
-
participant SigMatch as Signature Matcher<br/>(src/validator/signature-matching.ts)
|
|
303
|
-
|
|
304
|
-
User->>VSCode: Klickt "Scan System"
|
|
305
|
-
VSCode->>Ext: scanSystemTs()
|
|
306
|
-
|
|
307
|
-
rect rgb(240, 248, 255)
|
|
308
|
-
Note over Ext,Scanner: Phase 1: Dateien sammeln
|
|
309
|
-
Ext->>Scanner: scanWorkspace(options: ScanOptions)
|
|
310
|
-
Note right of Scanner: Nutzt: fs, ignore, path<br/>language-detection
|
|
311
|
-
Scanner-->>Ext: ScannedFile[]
|
|
312
|
-
end
|
|
313
|
-
|
|
314
|
-
rect rgb(255, 248, 240)
|
|
315
|
-
Note over Ext,DepEx: Phase 2: Parsing
|
|
316
|
-
loop Für jede ScannedFile
|
|
317
|
-
Ext->>Parser: parse(filePath, content)
|
|
318
|
-
Note right of Parser: Nutzt: ts-morph
|
|
319
|
-
Parser-->>Ext: ParsedSymbol[]
|
|
320
|
-
Ext->>DepEx: extractTsJsDependencies(sourceFile, path)
|
|
321
|
-
DepEx-->>Ext: ModuleDependency[]
|
|
322
|
-
end
|
|
323
|
-
end
|
|
324
|
-
|
|
325
|
-
rect rgb(240, 255, 240)
|
|
326
|
-
Note over Ext,Drift: Phase 3: Cache & Drift Detection
|
|
327
|
-
Ext->>Cache: loadSignatureCache(cacheFile)
|
|
328
|
-
Cache-->>Ext: SignatureCacheData | null
|
|
329
|
-
Ext->>Drift: computeCacheEntries(symbols: ParsedSymbol[])
|
|
330
|
-
Drift-->>Ext: CacheEntry[]
|
|
331
|
-
Ext->>Drift: detectDrift(previous, current)
|
|
332
|
-
Drift-->>Ext: DriftResult { staleSymbols: string[] }
|
|
333
|
-
end
|
|
334
|
-
|
|
335
|
-
rect rgb(255, 240, 255)
|
|
336
|
-
Note over Ext,Index: Phase 4: Dokumentations-Generierung
|
|
337
|
-
Ext->>Gen: generatePerFileDocs(symbols, modulesDir, existingDocs)
|
|
338
|
-
loop Für jedes Modul
|
|
339
|
-
Gen->>ModDoc: buildModuleDocWithChanges(symbols, existingDoc)
|
|
340
|
-
ModDoc-->>Gen: ModuleDoc { blocks: ModuleDocBlock[] }
|
|
341
|
-
Gen->>ModDoc: renderModuleDoc(doc, filePath)
|
|
342
|
-
ModDoc-->>Gen: string (Markdown)
|
|
343
|
-
end
|
|
344
|
-
Gen-->>Ext: Map<string, string>
|
|
345
|
-
|
|
346
|
-
Ext->>Graph: generateDependencyOverview(dependencies: ModuleDependency[])
|
|
347
|
-
Graph-->>Ext: string (DEPENDENCIES.md)
|
|
348
|
-
Ext->>Graph: generateMermaidGraph(dependencies)
|
|
349
|
-
Graph-->>Ext: string (DEPENDENCY_GRAPH.md)
|
|
350
|
-
|
|
351
|
-
Ext->>Index: buildIndexFromSymbols(symbols, dependencies)
|
|
352
|
-
Index-->>Ext: IndexRow[]
|
|
353
|
-
Ext->>Index: writeJsonlIndex(rows, outFile)
|
|
354
|
-
Note right of Index: Schreibt: docs/index/symbols.jsonl
|
|
355
|
-
|
|
356
|
-
Ext->>Change: generateChangeReport(data: ChangeData)
|
|
357
|
-
Change-->>Ext: string (CHANGE_REPORT.md)
|
|
358
|
-
end
|
|
359
|
-
|
|
360
|
-
rect rgb(255, 255, 240)
|
|
361
|
-
Note over Ext,Cache: Phase 5: Cache persistieren
|
|
362
|
-
Ext->>Cache: saveSignatureCache(cacheDir, data)
|
|
363
|
-
Cache-->>Ext: void
|
|
364
|
-
end
|
|
365
|
-
|
|
366
|
-
rect rgb(240, 240, 255)
|
|
367
|
-
Note over Ext,SigMatch: Phase 6: Validierung
|
|
368
|
-
Ext->>Val: validateMarkdownDir(modulesDir, symbols)
|
|
369
|
-
Val->>SigMatch: validateSignatureMatching(symbols, modulesDir)
|
|
370
|
-
SigMatch-->>Val: SignatureMismatch[]
|
|
371
|
-
Val->>Val: computeCoverage(symbols, modulesDir, thresholds)
|
|
372
|
-
Val-->>Ext: MarkdownDirReport + CoverageReport
|
|
373
|
-
end
|
|
374
|
-
|
|
375
|
-
Ext-->>VSCode: Ergebnis mit Status
|
|
376
|
-
VSCode-->>User: Status-Meldung + Validierungsergebnis
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
---
|
|
380
|
-
|
|
381
|
-
## 8. Quellen-Nachweis (Vollständig)
|
|
382
|
-
|
|
383
|
-
### 8.1 Aus `docs/system/DEPENDENCIES.md`
|
|
384
|
-
|
|
385
|
-
| Information | Zeilen |
|
|
386
|
-
|-------------|--------|
|
|
387
|
-
| Extension-Imports (22 Module) | 213-241 |
|
|
388
|
-
| Scanner-Imports | 191-199 |
|
|
389
|
-
| Parser-Imports | 297-304 |
|
|
390
|
-
| Generator-Imports | 253-259 |
|
|
391
|
-
| Validator-Imports | 315-323 |
|
|
392
|
-
|
|
393
|
-
### 8.2 Aus `docs/system/DEPENDENCY_GRAPH.md`
|
|
394
|
-
|
|
395
|
-
| Information | Zeilen |
|
|
396
|
-
|-------------|--------|
|
|
397
|
-
| Node-Definitionen (N0-N119) | 3-119 |
|
|
398
|
-
| Extension-Kanten (N98 →) | 254-278 |
|
|
399
|
-
| Generator-Kanten | 121-125 |
|
|
400
|
-
| Validator-Kanten | 148-155 |
|
|
401
|
-
|
|
402
|
-
### 8.3 Aus `docs/index/symbols.jsonl`
|
|
403
|
-
|
|
404
|
-
| Symbol | Zeile | Dependencies |
|
|
405
|
-
|--------|-------|--------------|
|
|
406
|
-
| `activate` | 417 | 22 interne + 3 externe Module |
|
|
407
|
-
| `scanWorkspace` | 411 | logging, language-detection, fs, ignore, path |
|
|
408
|
-
| `generatePerFileDocs` | 452 | parsers/types, module-doc, fs, path |
|
|
409
|
-
| `validateSignatureMatching` | 530 | core/symbols, parsers/types |
|
|
410
|
-
| `buildIndexFromSymbols` | 465 | core/symbols, parsers/dependencies, parsers/types |
|
|
411
|
-
|
|
412
|
-
### 8.4 Aus `docs/modules/*.md`
|
|
413
|
-
|
|
414
|
-
| Modul-Doku | Verwendete Signaturen |
|
|
415
|
-
|------------|----------------------|
|
|
416
|
-
| `src__extension.ts.md` | scanSystemTs, activate, validateDocumentationTs |
|
|
417
|
-
| `src__core__scanner.ts.md` | scanWorkspace, ScannedFile, ScanOptions |
|
|
418
|
-
| `src__generator__index.ts.md` | generatePerFileDocs, makeSafeFileName |
|
|
419
|
-
| `src__generator__module-doc.ts.md` | buildModuleDocWithChanges, renderModuleDoc, parseModuleDoc |
|
|
420
|
-
| `src__validator__index.ts.md` | validateSymbols, validateMarkdownDir, computeCoverage |
|
|
421
|
-
| `src__validator__signature-matching.ts.md` | validateSignatureMatching, SignatureMismatch |
|
|
422
|
-
|
|
423
|
-
---
|
|
424
|
-
|
|
425
|
-
## 9. Vorher/Nachher-Vergleich
|
|
426
|
-
|
|
427
|
-
### 9.1 VORHER (ohne automatisierte Doku)
|
|
428
|
-
- Informationen verteilt über ~25 Quelldateien
|
|
429
|
-
- Kein Überblick über Gesamtablauf
|
|
430
|
-
- Manuelle Code-Inspektion für jeden Zusammenhang nötig
|
|
431
|
-
- Dependencies nur durch Lesen von Import-Statements erkennbar
|
|
432
|
-
|
|
433
|
-
### 9.2 NACHHER (mit docs/modules, docs/index, docs/system)
|
|
434
|
-
- **DEPENDENCIES.md**: 330 Zeilen strukturierte Import-Übersicht
|
|
435
|
-
- **DEPENDENCY_GRAPH.md**: 281 Zeilen Mermaid-Graph mit 119 Knoten
|
|
436
|
-
- **symbols.jsonl**: 548 Symbole mit Dependencies
|
|
437
|
-
- **modules/*.md**: 70+ Modul-Dokumentationen mit Signaturen
|
|
438
|
-
|
|
439
|
-
---
|
|
440
|
-
|
|
441
|
-
## 10. Wiederholbarkeit und Determinismus
|
|
442
|
-
|
|
443
|
-
### 10.1 Garantie
|
|
444
|
-
```
|
|
445
|
-
Gleicher Code-Stand
|
|
446
|
-
→ npm run scan
|
|
447
|
-
→ Gleiche docs/*-Artefakte
|
|
448
|
-
→ Gleiches Sequenzdiagramm
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
### 10.2 Reproduzierbarkeit
|
|
452
|
-
- Alle Informationen stammen aus **automatisch generierten** Artefakten
|
|
453
|
-
- Keine manuellen Annotationen erforderlich
|
|
454
|
-
- Deterministisch sortiert (alphabetisch, nach Typ)
|
|
455
|
-
|
|
456
|
-
---
|
|
457
|
-
|
|
458
|
-
## 11. Fazit
|
|
459
|
-
|
|
460
|
-
**Dieser Beweis zeigt anhand echter Daten:**
|
|
461
|
-
|
|
462
|
-
1. ✅ `docs/system/DEPENDENCIES.md` liefert alle Import-Beziehungen (330 Zeilen)
|
|
463
|
-
2. ✅ `docs/system/DEPENDENCY_GRAPH.md` liefert den visuellen Graphen (119 Knoten, 160+ Kanten)
|
|
464
|
-
3. ✅ `docs/index/symbols.jsonl` liefert alle Symbole mit ihren Dependencies (548 Einträge)
|
|
465
|
-
4. ✅ `docs/modules/*.md` liefert die Signaturen und Typen (70+ Dateien)
|
|
466
|
-
5. ✅ Aus diesen Quellen lässt sich **deterministisch** ein Sequenzdiagramm ableiten
|
|
467
|
-
6. ✅ Der Prozess ist **reproduzierbar** und **versionierbar**
|
|
468
|
-
|
|
469
|
-
**Das Dokumentations-System liefert die strukturierte Wissensbasis für automatische Architektur-Diagramme.**
|