@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,947 +0,0 @@
1
- # Systemanalyse: Noyrax Documentation System Plugin
2
-
3
- **Stand:** 2025-01-XX
4
- **Zweck:** Umfassende Systemanalyse mit Funktionen, Ablaufdiagrammen, Sequenzdiagrammen, Vorteilen und Auswirkungen
5
-
6
- ---
7
-
8
- ## Inhaltsverzeichnis
9
-
10
- 1. [System-Übersicht und Architektur](#1-system-übersicht-und-architektur)
11
- 2. [Funktionsübersicht](#2-funktionsübersicht)
12
- 3. [Ablaufdiagramme](#3-ablaufdiagramme)
13
- 4. [Sequenzdiagramme](#4-sequenzdiagramme)
14
- 5. [Vorteile gegenüber anderen Systemen](#5-vorteile-gegenüber-anderen-systemen)
15
- 6. [Auswirkungen](#6-auswirkungen)
16
-
17
- ---
18
-
19
- ## 1. System-Übersicht und Architektur
20
-
21
- ### 1.1 Architektur-Übersicht
22
-
23
- Noyrax ist eine **VS Code Extension** zur automatischen Dokumentationsgenerierung mit Selbst-Validierung und Drift-Detection. Das System besteht aus mehreren Schichten:
24
-
25
- ```
26
- ┌─────────────────────────────────────────────────────────────┐
27
- │ VS Code Extension │
28
- │ (src/extension.ts) │
29
- ├─────────────────────────────────────────────────────────────┤
30
- │ │
31
- │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
32
- │ │ Scanner │ │ Generator │ │ Validator │ │
33
- │ │ │ │ │ │ │ │
34
- │ │ - File I/O │ │ - Markdown │ │ - Drift │ │
35
- │ │ - Git Diff │ │ - Templates │ │ - Coverage │ │
36
- │ │ - Parsers │ │ - Index │ │ - Reports │ │
37
- │ └──────────────┘ └──────────────┘ └──────────────┘ │
38
- │ │ │ │ │
39
- │ └─────────────────┼─────────────────┘ │
40
- │ │ │
41
- │ ┌──────────────┐ │
42
- │ │ Cache │ │
43
- │ │ - AST │ │
44
- │ │ - Signatures│ │
45
- │ │ - Output │ │
46
- │ │ - Dependencies│ │
47
- │ └──────────────┘ │
48
- │ │ │
49
- │ ┌──────────────┐ │
50
- │ │ Core │ │
51
- │ │ - Signature │ │
52
- │ │ Formatter │ │
53
- │ │ - Symbol │ │
54
- │ │ Classifier│ │
55
- │ │ - Symbols │ │
56
- │ │ - Git │ │
57
- │ │ - Scanner │ │
58
- │ └──────────────┘ │
59
- │ │
60
- ├─────────────────────────────────────────────────────────────┤
61
- │ Integrations: VS Code │ CLI │ MCP Server │ GitHub Action │
62
- └─────────────────────────────────────────────────────────────┘
63
- ```
64
-
65
- ### 1.2 Modul-Struktur
66
-
67
- Das System ist in folgende Module unterteilt:
68
-
69
- #### Core-Module (`src/core/`)
70
-
71
- - **`scanner.ts`** - Workspace-Scanning mit Git-Diff-Unterstützung
72
- - **`signature-formatter.ts`** (ADR-020) - Zentrale Signatur-Formatierung für Generator und Validator
73
- - **`symbol-classifier.ts`** (ADR-021) - Semantische Klassifizierung von Symbolen (visibility, role, priority)
74
- - **`symbols.ts`** - Symbol-Hashing und -Vergleich
75
- - **`git.ts`** - Git-Integration für inkrementelle Updates
76
- - **`async.ts`** - Async-Hilfsfunktionen (mapLimit)
77
- - **`consolidation.ts`** - Union-Bildung für Symbole und Dependencies
78
-
79
- #### Parser-Module (`src/parsers/`)
80
-
81
- - **`ts-js.ts`** - TypeScript/JavaScript-Parser mit ts-morph
82
- - **`python.ts`** - Python-Parser mit tree-sitter
83
- - **`json-yaml.ts`** - JSON/YAML/Markdown-Parser
84
- - **`dependencies.ts`** - Dependency-Extraktion (TypeScript/JavaScript, Python)
85
- - **`types.ts`** - Gemeinsame Typen (ParsedSymbol, SymbolSignature, etc.)
86
-
87
- #### Generator-Module (`src/generator/`)
88
-
89
- - **`index.ts`** - Haupt-Generierungsfunktion (`generatePerFileDocs`)
90
- - **`module-doc.ts`** - Modul-Dokumentation-Rendering mit SignatureFormatter, SymbolClassifier und semantischem Rendering (ADR-022)
91
- - **`adr-linker.ts`** (ADR-023) - Automatische ADR-Verknüpfung mit Modulen
92
- - **`dependency-graph.ts`** - Dependency-Graph-Generierung (Mermaid)
93
- - **`change-report.ts`** - Change Report-Generierung (Zeit-Dimension)
94
-
95
- #### Validator-Module (`src/validator/`)
96
-
97
- - **`index.ts`** - Haupt-Validierungsfunktionen (`validateSymbols`, `validateMarkdownDir`, `computeCoverage`)
98
- - **`signature-matching.ts`** - Signatur-Matching mit SignatureFormatter und SymbolClassifier
99
- - **`status.ts`** - Status-Klassifizierung (grün/gelb/rot)
100
-
101
- #### Cache-Module (`src/cache/`)
102
-
103
- - **`ast-cache.ts`** - AST-Hash-Cache für inkrementelle Updates
104
- - **`signature-cache.ts`** - Signatur-Cache für Drift-Detection
105
- - **`output-cache.ts`** - Output-Hash-Cache für Content-Hashing
106
- - **`dependencies-cache.ts`** - Dependencies-Cache für Union-Bildung
107
-
108
- #### Weitere Module
109
-
110
- - **`drift/index.ts`** - Drift-Detection (`detectDrift`, `computeCacheEntries`)
111
- - **`index/index.ts`** - Symbol-Index-Generierung (`buildIndexFromSymbols`, `writeJsonlIndex`)
112
- - **`cli/`** (ADR-025) - CLI-Tools (`scan-cli.ts`, `validate-cli.ts`) für MCP-Server-Bridge
113
- - **`mcp/`** - MCP-Server-Integration mit Tools und Resources
114
-
115
- ### 1.3 Mehrdimensionaler Navigationsraum (ADR-024)
116
-
117
- Das System generiert ein **Koordinaten-System** mit 5 Dimensionen, das KI-Agenten ermöglicht, sich im Code-Raum zu bewegen:
118
-
119
- | Dimension | Artefakt | Funktion | Zugriff |
120
- |-----------|----------|----------|---------|
121
- | **Modul-Raum (X)** | `docs/modules/*.md` | API-Dokumentation pro Datei | `docs://modules/{path}` |
122
- | **Symbol-Raum (Y)** | `docs/index/symbols.jsonl` | Symbole mit Dependencies | `docs://index/symbols.jsonl` |
123
- | **Beziehungs-Raum (Z)** | `docs/system/DEPENDENCY_GRAPH.md` | Modul-Abhängigkeiten | `docs://system/graph` |
124
- | **Wissens-Raum (W)** | `docs/adr/*.md` | Architektur-Entscheidungen (Landkarte) | `docs://adr/{name}` |
125
- | **Zeit-Raum (T)** | `docs/system/CHANGE_REPORT.md` | Änderungen über die Zeit | `docs://system/changes` |
126
-
127
- **MCP-Server-Integration:**
128
- - 99 Resources verfügbar (4 System, 71 Module, 24 ADRs)
129
- - Strukturierter Zugriff via `docs://` URIs
130
- - Tools: `validation/runScan`, `validation/runValidate`, `validation/runDriftCheck`, `validation/analyzeImpact`
131
-
132
- ### 1.4 Plugin-Ecosystem Integration
133
-
134
- Noyrax ist Teil eines modularen Plugin-Ecosystems:
135
-
136
- ```
137
- Documentation-System-Plugin (Basis)
138
- ↓ generiert docs/
139
- Database Plugin ✅ KOMPLETT
140
- ↓ persistiert in SQLite
141
- Semantic Brain Plugin 🔄 FAST FERTIG
142
- ↓ Graph & Embeddings
143
- Context/RAG Plugin 📋 GEPLANT
144
- ↓ AI-Agent Integration
145
- ```
146
-
147
- **Database Plugin:**
148
- - Liest `docs/modules/*.md`, `docs/index/symbols.jsonl`, `docs/system/DEPENDENCIES.md`
149
- - Persistiert in SQLite für schnelle Abfragen
150
- - 33 ADRs dokumentieren die Implementierung
151
-
152
- **Semantic Brain Plugin:**
153
- - Transformiert Rohdaten in semantische Strukturen (Graph, Embeddings)
154
- - Graph-Layer: Nodes, Edges, Communities
155
- - Vector-Layer: Embeddings, Similarity-Scores
156
- - APIs noch nicht vollständig implementiert
157
-
158
- **Context/RAG Plugin:**
159
- - Geplant für AI-Agent-Integration
160
- - Nutzt semantische Daten vom Semantic Brain Plugin
161
- - Multi-Provider RAG (OpenAI, Anthropic, lokale Modelle)
162
-
163
- ---
164
-
165
- ## 2. Funktionsübersicht
166
-
167
- ### 2.1 Core-Komponenten
168
-
169
- #### SignatureFormatter (ADR-020)
170
-
171
- **Datei:** `src/core/signature-formatter.ts`
172
-
173
- **Funktionen:**
174
- - `formatForDoc(symbol: ParsedSymbol): string` - Formatiert ein Symbol für die Dokumentation (verwendet von Generator und Validator)
175
- - `compare(expected: string, documented: string, options?: CompareOptions): CompareResult` - Vergleicht zwei Signaturen mit konfigurierbarer Toleranz
176
- - `normalize(signature: string): string` - Normalisiert eine Signatur für Vergleiche (Whitespace, Formatierung)
177
- - `normalizeSignature(sig: SymbolSignature): string` - Normalisiert eine SymbolSignature zu einem String für Hashing/Vergleiche
178
-
179
- **Verwendung:**
180
- - Generator (`module-doc.ts`): Rendert Signaturen konsistent
181
- - Validator (`signature-matching.ts`): Vergleicht erwartete vs. dokumentierte Signaturen
182
- - Toleranzen: Optionale Felder (`field` vs `field?`), Generics-Vereinfachungen (`T[]` vs `{}`)
183
-
184
- #### SymbolClassifier (ADR-021)
185
-
186
- **Datei:** `src/core/symbol-classifier.ts`
187
-
188
- **Funktion:**
189
- - `classifySymbol(symbol: ParsedSymbol): SymbolClassification` - Klassifiziert ein Symbol semantisch
190
-
191
- **Rückgabe:**
192
- - `visibility: 'public' | 'internal'` - Sichtbarkeit des Symbols
193
- - `role: 'service-api' | 'domain-model' | 'config' | 'infra' | 'other'` - Semantische Rolle
194
- - `priority: 'high' | 'normal' | 'low'` - Priorität für Doku/Validierung
195
-
196
- **Heuristiken:**
197
- - Service-API: Funktionen/Klassen mit Suffixen `Api`, `Service`, `Manager`, `Controller`
198
- - Domain-Model: Interfaces/Klassen mit Suffixen `Entity`, `Model`, `Record`, `Request`, `Response`
199
- - Config: Typen mit Suffixen `Config`, `Options`, `Settings`
200
- - Infra: Typen mit Substrings `Cache`, `Validator`, `Repository`, `Migration`, `Snapshot`
201
-
202
- **Verwendung:**
203
- - Generator: Rollenbasierte Doku-Tiefe (Public-APIs tiefer dokumentiert)
204
- - Validator: Prioritäts-basierte Validierung (wichtige APIs strenger geprüft)
205
-
206
- #### AdrLinker (ADR-023)
207
-
208
- **Datei:** `src/generator/adr-linker.ts`
209
-
210
- **Klasse:** `AdrLinker`
211
-
212
- **Methoden:**
213
- - `getRelevantAdrs(filePath: string): string[]` - Gibt relevante ADR-Nummern für einen Dateipfad zurück
214
- - `getAdrMetadata(adrNumber: string): AdrMetadata | undefined` - Gibt ADR-Metadaten (Nummer, Titel, Dateiname) zurück
215
- - `getAllAdrMappings(): Map<string, string[]>` - Gibt alle Dateipfad-zu-ADR-Mappings zurück
216
-
217
- **Funktionalität:**
218
- - Parst alle ADR-Dateien aus `docs/adr/*.md`
219
- - Extrahiert automatisch Dateipfade aus ADR-Inhalten (Pattern: `` `src/...` ``, `Datei: src/...`, etc.)
220
- - Unterstützt optionale Metadata-Datei (`docs/adr-metadata.json`) für manuelle Overrides und Excludes
221
- - Cacht ADR-Metadaten für effiziente Lookups
222
-
223
- **Integration:**
224
- - `module-doc.ts` fügt automatisch "Relevante ADRs"-Abschnitt am Anfang jeder Modul-Doku ein
225
-
226
- ### 2.2 Scan-Funktionen
227
-
228
- **Datei:** `src/core/scanner.ts`
229
-
230
- **Funktion:**
231
- - `scanWorkspace(options: ScanOptions, includeBackups: boolean): ScannedFile[]` - Scannt Workspace nach relevanten Dateien
232
-
233
- **Features:**
234
- - Language-Detection: TypeScript, JavaScript, Python, JSON/YAML, Markdown
235
- - File-Filtering: Backups, node_modules, etc. (konfigurierbar)
236
- - Git-Diff-Unterstützung: Nur geänderte Dateien scannen (inkrementeller Modus)
237
- - Repository-relative Pfade für konsistente Pfad-Handhabung
238
-
239
- ### 2.3 Parse-Funktionen
240
-
241
- #### TsJsParser
242
-
243
- **Datei:** `src/parsers/ts-js.ts`
244
-
245
- **Funktionalität:**
246
- - Parst TypeScript/JavaScript mit ts-morph
247
- - Extrahiert: Klassen, Interfaces, Funktionen, Methoden, Variablen, Types, Enums
248
- - Dependency-Extraktion: `extractTsJsDependencies(sourceFile, filePath)` - Extrahiert Import-Abhängigkeiten
249
-
250
- #### PythonParser
251
-
252
- **Datei:** `src/parsers/python.ts`
253
-
254
- **Funktionalität:**
255
- - Parst Python mit tree-sitter
256
- - Extrahiert: Klassen, Funktionen, Variablen
257
- - Dependency-Extraktion: `extractPythonDependencies(content, filePath)` - Extrahiert Import-Abhängigkeiten
258
-
259
- #### JsonYamlParser
260
-
261
- **Datei:** `src/parsers/json-yaml.ts`
262
-
263
- **Funktionalität:**
264
- - Parst JSON/YAML/Markdown
265
- - Extrahiert: Schema-Strukturen, Frontmatter
266
-
267
- ### 2.4 Generierungs-Funktionen
268
-
269
- **Datei:** `src/generator/index.ts`
270
-
271
- **Funktion:**
272
- - `generatePerFileDocs(symbols: ParsedSymbol[], outDir: string, existingDocs: Map<string, string>): Map<string, string>` - Generiert Modul-Dokumentation für alle Dateien
273
-
274
- **Datei:** `src/generator/module-doc.ts`
275
-
276
- **Funktion:**
277
- - `renderModuleDoc(doc: ModuleDoc, filePath: string, adrDir?: string): string` - Rendert Modul-Dokumentation mit:
278
- - SignatureFormatter für konsistente Signatur-Darstellung
279
- - SymbolClassifier für rollenbasierte Doku-Tiefe
280
- - AdrLinker für ADR-Verknüpfung
281
- - Semantisches Rendering (ADR-022): Klassen mit Beschreibung, Konstanten strukturiert, Parameter-Tabellen
282
-
283
- **Datei:** `src/generator/dependency-graph.ts`
284
-
285
- **Funktionen:**
286
- - `generateMermaidGraph(dependencies: ModuleDependency[]): string` - Generiert Mermaid-Graph (127 Knoten)
287
- - `generateDependencyOverview(dependencies: ModuleDependency[]): string` - Generiert Dependency-Übersicht
288
-
289
- **Datei:** `src/generator/change-report.ts`
290
-
291
- **Funktion:**
292
- - `generateChangeReport(changes: ChangeReportData): string` - Generiert Change Report (Zeit-Dimension)
293
-
294
- **Datei:** `src/index/index.ts`
295
-
296
- **Funktionen:**
297
- - `buildIndexFromSymbols(symbols: ParsedSymbol[], dependencies: ModuleDependency[]): IndexRow[]` - Baut Symbol-Index mit Dependencies
298
- - `writeJsonlIndex(rows: IndexRow[], indexPath: string): void` - Schreibt JSONL-Index (445 Zeilen)
299
-
300
- ### 2.5 Validierungs-Funktionen
301
-
302
- **Datei:** `src/validator/index.ts`
303
-
304
- **Funktionen:**
305
- - `validateSymbols(symbols: ParsedSymbol[]): ValidationReport` - Validiert Symbole
306
- - `validateMarkdownDir(modulesDir: string, symbols: ParsedSymbol[]): MarkdownDirReport` - Validiert Markdown-Dokumentation
307
- - `computeCoverage(symbols: ParsedSymbol[], modulesDir: string, thresholds: CoverageThresholds): CoverageReport` - Berechnet Coverage-Metriken
308
-
309
- **Datei:** `src/validator/signature-matching.ts`
310
-
311
- **Funktion:**
312
- - `validateSignatureMatching(symbols: ParsedSymbol[], modulesDir: string, options?: SignatureMatchingOptions): SignatureMismatch[]` - Validiert Signatur-Matching mit:
313
- - SignatureFormatter für erwartete Signatur
314
- - SymbolClassifier für rollenbasierte Validierung (Public-APIs strenger)
315
-
316
- **Datei:** `src/validator/status.ts`
317
-
318
- **Funktion:**
319
- - `computeValidationStatus(errors: string[], warnings: string[], ...): StatusReport` - Klassifiziert Status (grün/gelb/rot)
320
-
321
- ### 2.6 Cache-Funktionen
322
-
323
- #### AST-Cache
324
-
325
- **Datei:** `src/cache/ast-cache.ts`
326
-
327
- **Funktionen:**
328
- - `loadAstHashCache(filePath: string): AstHashCache | null` - Lädt AST-Hash-Cache
329
- - `saveAstHashCache(cacheDir: string, cache: AstHashCache): void` - Speichert AST-Hash-Cache
330
- - `computeFileHash(content: string): string` - Berechnet Datei-Hash
331
-
332
- **Zweck:** Inkrementelle Updates (nur geänderte Dateien parsen)
333
-
334
- #### Signature-Cache
335
-
336
- **Datei:** `src/cache/signature-cache.ts`
337
-
338
- **Funktionen:**
339
- - `loadSignatureCache(filePath: string): SignatureCache | null` - Lädt Signatur-Cache
340
- - `saveSignatureCache(cacheDir: string, cache: SignatureCache): void` - Speichert Signatur-Cache
341
-
342
- **Zweck:** Drift-Detection (Signatur-Änderungen erkennen)
343
-
344
- #### Output-Cache
345
-
346
- **Datei:** `src/cache/output-cache.ts`
347
-
348
- **Funktionen:**
349
- - `loadOutputHashCache(filePath: string): OutputHashCache | null` - Lädt Output-Hash-Cache
350
- - `saveOutputHashCache(cacheDir: string, cache: OutputHashCache): void` - Speichert Output-Hash-Cache
351
- - `computeContentHash(content: string): string` - Berechnet Content-Hash
352
-
353
- **Zweck:** Content-Hashing (nur geänderte Dokumentation schreiben)
354
-
355
- #### Dependencies-Cache
356
-
357
- **Datei:** `src/cache/dependencies-cache.ts`
358
-
359
- **Funktionen:**
360
- - `loadDependenciesCache(filePath: string): DependenciesCache | null` - Lädt Dependencies-Cache
361
- - `saveDependenciesCache(cacheDir: string, cache: DependenciesCache): void` - Speichert Dependencies-Cache
362
-
363
- **Zweck:** Union-Bildung (Dependencies aus geparsten und gecachten Dateien mergen)
364
-
365
- ### 2.7 Drift-Detection
366
-
367
- **Datei:** `src/drift/index.ts`
368
-
369
- **Funktionen:**
370
- - `detectDrift(prev: SignatureCache, current: SignatureCacheEntry[]): DriftResult` - Erkennt Signatur-Abweichungen
371
- - `computeCacheEntries(symbols: ParsedSymbol[]): SignatureCacheEntry[]` - Berechnet Cache-Einträge
372
-
373
- **Zweck:** Automatische Erkennung von Code-Dokumentation-Abweichungen
374
-
375
- ### 2.8 MCP-Server Tools (ADR-025)
376
-
377
- **Dateien:** `mcp/src/tools/`
378
-
379
- **Tools:**
380
- - `scan.ts` - `validation/runScan` - Scan via CLI-Bridge (`npm run scan:cli`)
381
- - `validate.ts` - `validation/runValidate` - Validate via CLI-Bridge (`npm run validate:cli`)
382
- - `drift.ts` - `validation/runDriftCheck` - Drift-Check
383
- - `impact.ts` - `validation/analyzeImpact` - Impact-Analyse via Symbol-Index
384
-
385
- **Resources:** `mcp/src/server.ts`
386
- - `docs://modules/{path}` - Modul-Dokumentation (71 Resources)
387
- - `docs://system/graph` - Dependency-Graph
388
- - `docs://system/dependencies` - Dependency-Übersicht
389
- - `docs://system/changes` - Change Report
390
- - `docs://adr/{name}` - ADRs (24 Resources)
391
- - `docs://index/symbols.jsonl` - Symbol-Index
392
-
393
- **Gesamt:** 99 Resources verfügbar
394
-
395
- ### 2.9 Verification-Scripts (ADR-026)
396
-
397
- **Dateien:** `scripts/`
398
-
399
- **Scripts:**
400
- - `verify-architecture.js` - Architektur-Regeln prüfen (Imports, Zyklen)
401
- - `verify-adrs.js` - ADR-Claims gegen Code prüfen (Dateien, Funktionen)
402
- - `verify-imports.js` - Import-Verfügbarkeit prüfen (Exports, Pfade)
403
-
404
- **Integration:**
405
- - Pre-Commit Hook (`.husky/pre-commit`)
406
- - GitHub Actions (`.github/workflows/verification.yml`)
407
- - VS Code Tasks (`.vscode/tasks.json`)
408
- - npm Scripts: `verify:all`, `verify:architecture`, `verify:adrs`, `verify:imports`
409
-
410
- ---
411
-
412
- ## 3. Ablaufdiagramme
413
-
414
- ### 3.1 Haupt-Workflow: Scan → Generate → Validate
415
-
416
- ```mermaid
417
- flowchart TD
418
- Start([Benutzer startet Generate]) --> Config[Config laden<br/>Workspace-Root, Output-Path,<br/>apiDoc.depth, apiDoc.includeInternal]
419
- Config --> Scan[Scan Workspace<br/>scanWorkspace]
420
-
421
- Scan --> GitCheck{Git-Diff<br/>aktiviert?}
422
- GitCheck -->|Ja| GitDiff[Git-Diff<br/>getChangedFiles]
423
- GitCheck -->|Nein| FullScan[Vollscan]
424
- GitDiff --> ChangedFiles{Geänderte<br/>Dateien<br/>gefunden?}
425
- ChangedFiles -->|Ja| FilteredScan[Gefilterter Scan]
426
- ChangedFiles -->|Nein| FullScan
427
- FilteredScan --> Parse
428
- FullScan --> Parse
429
-
430
- Parse[Parse Dateien<br/>TsJsParser, PythonParser,<br/>JsonYamlParser] --> Union[Union-Bildung<br/>buildSymbolsUnion,<br/>buildDependenciesUnion]
431
-
432
- Union --> Generate[Generate Docs<br/>generatePerFileDocs]
433
-
434
- Generate --> SigFormat[SignatureFormatter<br/>formatForDoc]
435
- SigFormat --> SymClass[SymbolClassifier<br/>classifySymbol]
436
- SymClass --> ADRLink[AdrLinker<br/>getRelevantAdrs]
437
- ADRLink --> Render[Render Module-Doc<br/>renderModuleDoc<br/>semantisches Rendering]
438
-
439
- Render --> CacheUpdate[Cache-Update<br/>AST, Signature, Output,<br/>Dependencies]
440
- CacheUpdate --> Index[Index schreiben<br/>buildIndexFromSymbols,<br/>writeJsonlIndex]
441
- Index --> Graph[Graph generieren<br/>generateMermaidGraph,<br/>generateDependencyOverview]
442
- Graph --> Report[Change Report<br/>generateChangeReport]
443
- Report --> Validate[Validate<br/>validateSymbols,<br/>validateMarkdownDir]
444
-
445
- Validate --> SigMatch[Signature Matching<br/>SignatureFormatter +<br/>SymbolClassifier]
446
- SigMatch --> Coverage[Coverage<br/>computeCoverage]
447
- Coverage --> Status[Status<br/>computeValidationStatus]
448
- Status --> End([Fertig])
449
-
450
- style SigFormat fill:#e1f5ff
451
- style SymClass fill:#e1f5ff
452
- style ADRLink fill:#e1f5ff
453
- style Render fill:#e1f5ff
454
- style SigMatch fill:#fff4e1
455
- ```
456
-
457
- **Entscheidungspunkte:**
458
- - Git-Diff aktiviert? → Inkrementeller Modus vs. Vollscan
459
- - Erster Lauf? → Cache vorhanden? → Vollscan erforderlich
460
- - Symbol-Rolle/Priorität? → Rollenbasierte Doku-Tiefe und Validierung
461
-
462
- **Phasen:**
463
- 1. **Scan:** Workspace-Scan mit Git-Diff-Option
464
- 2. **Parse:** Multi-Language-Parsing (TypeScript, Python, JSON/YAML)
465
- 3. **Union:** Symbole und Dependencies aus geparsten und gecachten Dateien mergen
466
- 4. **Generate:** Modul-Dokumentation mit SignatureFormatter, SymbolClassifier, AdrLinker
467
- 5. **Cache:** AST, Signature, Output, Dependencies aktualisieren
468
- 6. **Index:** Symbol-Index mit Dependencies schreiben
469
- 7. **Graph:** Dependency-Graph und -Übersicht generieren
470
- 8. **Report:** Change Report generieren (Zeit-Dimension)
471
- 9. **Validate:** Validierung mit SignatureFormatter und SymbolClassifier
472
-
473
- ---
474
-
475
- ## 4. Sequenzdiagramme
476
-
477
- ### 4.1 Scan-Flow
478
-
479
- ```mermaid
480
- sequenceDiagram
481
- autonumber
482
- participant User as Benutzer
483
- participant Ext as Extension
484
- participant Scanner as Scanner<br/>(core/scanner.ts)
485
- participant Git as Git<br/>(core/git.ts)
486
- participant LangDetect as Language Detection
487
-
488
- User->>Ext: Startet Scan/Generate
489
- Ext->>Scanner: scanWorkspace(options, includeBackups)
490
-
491
- Scanner->>Scanner: Workspace durchsuchen
492
- Scanner->>LangDetect: Language erkennen
493
- LangDetect-->>Scanner: Language (ts/js/python/json/yaml)
494
-
495
- alt Git-Diff aktiviert
496
- Scanner->>Git: getChangedFiles(workspaceRoot)
497
- Git-->>Scanner: Set<string> geänderte Dateien
498
- Scanner->>Scanner: Dateien filtern
499
- end
500
-
501
- Scanner-->>Ext: ScannedFile[] (mit Language)
502
- Ext->>Ext: Dateien für Parsing vorbereiten
503
- ```
504
-
505
- ### 4.2 Generate-Flow (mit neuen Features)
506
-
507
- ```mermaid
508
- sequenceDiagram
509
- autonumber
510
- participant Ext as Extension
511
- participant Scanner as Scanner
512
- participant Parser as Parser<br/>(TsJsParser, PythonParser, etc.)
513
- participant Generator as Generator<br/>(generator/index.ts)
514
- participant SigFormat as SignatureFormatter<br/>(core/signature-formatter.ts)
515
- participant SymClass as SymbolClassifier<br/>(core/symbol-classifier.ts)
516
- participant ADRLink as AdrLinker<br/>(generator/adr-linker.ts)
517
- participant ModuleDoc as Module-Doc<br/>(generator/module-doc.ts)
518
- participant Cache as Cache<br/>(AST, Signature, Output, Dependencies)
519
- participant Index as Index<br/>(index/index.ts)
520
-
521
- Ext->>Scanner: scanWorkspace()
522
- Scanner-->>Ext: ScannedFile[]
523
-
524
- loop Für jede Datei
525
- Ext->>Parser: parse(filePath, content)
526
- Parser-->>Ext: ParsedSymbol[], ModuleDependency[]
527
- end
528
-
529
- Ext->>Generator: generatePerFileDocs(symbols, outDir, existingDocs)
530
-
531
- loop Für jede Datei
532
- Generator->>SigFormat: formatForDoc(symbol)
533
- SigFormat-->>Generator: string (formatierte Signatur)
534
-
535
- Generator->>SymClass: classifySymbol(symbol)
536
- SymClass-->>Generator: SymbolClassification<br/>(visibility, role, priority)
537
-
538
- Generator->>ADRLink: getRelevantAdrs(filePath)
539
- ADRLink-->>Generator: string[] (ADR-Nummern)
540
-
541
- Generator->>ModuleDoc: renderModuleDoc(doc, filePath, adrDir)
542
- Note over ModuleDoc: Semantisches Rendering:<br/>- Klassen mit Beschreibung<br/>- Konstanten strukturiert<br/>- Parameter-Tabellen
543
- ModuleDoc-->>Generator: string (Markdown)
544
- end
545
-
546
- Generator-->>Ext: Map<string, string> (Dateipfad → Markdown)
547
-
548
- Ext->>Cache: saveAstHashCache(), saveSignatureCache(),<br/>saveOutputHashCache(), saveDependenciesCache()
549
-
550
- Ext->>Index: buildIndexFromSymbols(symbols, dependencies)
551
- Index-->>Ext: IndexRow[]
552
- Ext->>Index: writeJsonlIndex(rows, indexPath)
553
- ```
554
-
555
- ### 4.3 Validate-Flow (mit neuen Features)
556
-
557
- ```mermaid
558
- sequenceDiagram
559
- autonumber
560
- participant Ext as Extension
561
- participant Scanner as Scanner
562
- participant Parser as Parser
563
- participant Validator as Validator<br/>(validator/index.ts)
564
- participant SigMatch as Signature Matching<br/>(validator/signature-matching.ts)
565
- participant SigFormat as SignatureFormatter
566
- participant SymClass as SymbolClassifier
567
- participant ModDocParser as Module-Doc Parser<br/>(generator/module-doc.ts)
568
- participant Status as Status Reporter<br/>(validator/status.ts)
569
-
570
- Ext->>Scanner: scanWorkspace()
571
- Scanner-->>Ext: ScannedFile[]
572
-
573
- loop Für jede Datei
574
- Ext->>Parser: parse(filePath, content)
575
- Parser-->>Ext: ParsedSymbol[]
576
- end
577
-
578
- Ext->>Validator: validateSymbols(symbols)
579
- Validator-->>Ext: ValidationReport
580
-
581
- Ext->>Validator: validateMarkdownDir(modulesDir, symbols)
582
-
583
- loop Für jede Modul-Doku
584
- Validator->>ModDocParser: parseModuleDoc(content)
585
- ModDocParser-->>Validator: ParsedModuleDoc
586
- end
587
-
588
- Ext->>SigMatch: validateSignatureMatching(symbols, modulesDir)
589
-
590
- loop Für jedes Symbol
591
- SigMatch->>SigFormat: formatForDoc(symbol)
592
- SigFormat-->>SigMatch: string (erwartete Signatur)
593
-
594
- SigMatch->>ModDocParser: parseSignatureFromCode(code, kind)
595
- ModDocParser-->>SigMatch: SymbolSignature
596
-
597
- SigMatch->>SymClass: classifySymbol(symbol)
598
- SymClass-->>SigMatch: SymbolClassification<br/>(visibility, role, priority)
599
-
600
- SigMatch->>SigFormat: compare(expected, documented, options)
601
- Note over SigMatch: Rollenbasierte Validierung:<br/>- Public-APIs: severity 'error'<br/>- Infra: severity 'warning'
602
- SigFormat-->>SigMatch: CompareResult
603
-
604
- alt Signatur stimmt nicht überein
605
- SigMatch->>SigMatch: Erstelle SignatureMismatch
606
- end
607
- end
608
-
609
- SigMatch-->>Ext: SignatureMismatch[]
610
-
611
- Ext->>Validator: computeCoverage(symbols, modulesDir, thresholds)
612
- Validator-->>Ext: CoverageReport
613
-
614
- Ext->>Status: computeValidationStatus(errors, warnings, ...)
615
- Status-->>Ext: StatusReport (grün/gelb/rot)
616
- ```
617
-
618
- ### 4.4 Drift-Detection-Flow
619
-
620
- ```mermaid
621
- sequenceDiagram
622
- autonumber
623
- participant Ext as Extension
624
- participant Scanner as Scanner
625
- participant Parser as Parser
626
- participant Drift as Drift Detector<br/>(drift/index.ts)
627
- participant SigFormat as SignatureFormatter
628
- participant SigCache as Signature Cache<br/>(cache/signature-cache.ts)
629
-
630
- Ext->>SigCache: loadSignatureCache(cachePath)
631
- SigCache-->>Ext: SignatureCache | null
632
-
633
- Ext->>Scanner: scanWorkspace()
634
- Scanner-->>Ext: ScannedFile[]
635
-
636
- loop Für jede Datei
637
- Ext->>Parser: parse(filePath, content)
638
- Parser-->>Ext: ParsedSymbol[]
639
- end
640
-
641
- Ext->>Drift: computeCacheEntries(symbols)
642
-
643
- loop Für jedes Symbol
644
- Drift->>SigFormat: normalizeSignature(symbol.signature)
645
- SigFormat-->>Drift: string (normalisierte Signatur)
646
- end
647
-
648
- Drift-->>Ext: SignatureCacheEntry[]
649
-
650
- Ext->>Drift: detectDrift(prev, current)
651
-
652
- loop Für jeden Cache-Eintrag
653
- Drift->>Drift: Hash vergleichen
654
- alt Hash unterschiedlich
655
- Drift->>Drift: Als stale markieren
656
- end
657
- end
658
-
659
- Drift-->>Ext: DriftResult<br/>(staleSymbols: string[])
660
-
661
- alt Drift erkannt
662
- Ext->>Ext: Warnung anzeigen
663
- end
664
- ```
665
-
666
- ### 4.5 ADR-Linking-Flow
667
-
668
- ```mermaid
669
- sequenceDiagram
670
- autonumber
671
- participant Generator as Generator<br/>(generator/index.ts)
672
- participant ModuleDoc as Module-Doc<br/>(generator/module-doc.ts)
673
- participant ADRLink as AdrLinker<br/>(generator/adr-linker.ts)
674
- participant FS as File System
675
-
676
- Generator->>ModuleDoc: renderModuleDoc(doc, filePath, adrDir)
677
-
678
- alt ADR-Dir angegeben
679
- ModuleDoc->>ADRLink: new AdrLinker(adrDir, metadataPath)
680
-
681
- ADRLink->>FS: readdirSync(adrDir)
682
- FS-->>ADRLink: string[] (ADR-Dateien)
683
-
684
- loop Für jede ADR-Datei
685
- ADRLink->>FS: readFileSync(adrPath, 'utf8')
686
- FS-->>ADRLink: string (ADR-Inhalt)
687
-
688
- ADRLink->>ADRLink: parseAdrFile(adrPath)
689
- Note over ADRLink: Extrahiert:<br/>- ADR-Nummer aus Dateiname<br/>- Titel aus erster Zeile<br/>- Dateipfade aus Inhalt<br/>(Pattern: `src/...`, Datei: src/..., etc.)
690
- ADRLink->>ADRLink: Mapping erstellen<br/>(filePath → ADR-Nummern[])
691
- end
692
-
693
- alt Metadata-Datei vorhanden
694
- ADRLink->>FS: readFileSync(metadataPath, 'utf8')
695
- FS-->>ADRLink: string (JSON)
696
- ADRLink->>ADRLink: loadMetadataOverrides(metadataPath)
697
- Note over ADRLink: Lädt Overrides und Excludes
698
- end
699
-
700
- ModuleDoc->>ADRLink: getRelevantAdrs(filePath)
701
- ADRLink-->>ModuleDoc: string[] (ADR-Nummern, sortiert)
702
-
703
- ModuleDoc->>ADRLink: getAdrMetadata(adrNumber)
704
- loop Für jede ADR-Nummer
705
- ADRLink-->>ModuleDoc: AdrMetadata (Nummer, Titel, Dateiname)
706
- end
707
-
708
- ModuleDoc->>ModuleDoc: "Relevante ADRs"-Abschnitt generieren
709
- Note over ModuleDoc: Format:<br/>## Relevante ADRs<br/>- [ADR-020: Titel](../adr/020-...md)
710
- end
711
-
712
- ModuleDoc-->>Generator: string (Markdown mit ADR-Links)
713
- ```
714
-
715
- ### 4.6 MCP-Server Flow
716
-
717
- ```mermaid
718
- sequenceDiagram
719
- autonumber
720
- participant Client as MCP-Client<br/>(Cursor, etc.)
721
- participant MCPServer as MCP-Server<br/>(mcp/src/server.ts)
722
- participant Tool as MCP-Tool<br/>(mcp/src/tools/scan.ts)
723
- participant NPM as npm Script
724
- participant CLITool as CLI-Tool<br/>(src/cli/scan-cli.ts)
725
- participant Core as Core Functions<br/>(scanner, parser, etc.)
726
-
727
- Client->>MCPServer: callTool('validation/runScan', { workspaceRoot, ... })
728
-
729
- MCPServer->>Tool: runScan(request)
730
-
731
- Tool->>NPM: exec('npm run scan:cli', { cwd: workspaceRoot })
732
- NPM->>CLITool: node out/cli/scan-cli.js
733
-
734
- CLITool->>Core: scanWorkspace(options)
735
- Core-->>CLITool: ScannedFile[]
736
-
737
- CLITool->>Core: Parser.parse(...)
738
- Core-->>CLITool: ParsedSymbol[]
739
-
740
- CLITool->>CLITool: JSON.stringify(result)
741
- CLITool-->>NPM: JSON-Output (stdout)
742
- NPM-->>Tool: JSON-String
743
-
744
- Tool->>Tool: JSON.parse(output)
745
- Tool-->>MCPServer: ScanResponse (strukturiert)
746
- MCPServer-->>Client: ScanResponse
747
-
748
- Note over Client,MCPServer: Gleiches Pattern für:<br/>- validation/runValidate<br/>- validation/runDriftCheck<br/>- validation/analyzeImpact
749
- ```
750
-
751
- ---
752
-
753
- ## 5. Vorteile gegenüber anderen Systemen
754
-
755
- ### 5.1 Vergleichs-Tabelle
756
-
757
- | Feature | Noyrax | TypeDoc/JSDoc | Doxygen | Sphinx | JSDoc |
758
- |---------|--------|---------------|---------|--------|-------|
759
- | **Automatische Generierung** | ✅ Vollautomatisch | ❌ Manuell | ⚠️ Teilweise | ⚠️ Teilweise | ❌ Manuell |
760
- | **Drift-Detection** | ✅ Automatisch | ❌ Keine | ❌ Keine | ❌ Keine | ❌ Keine |
761
- | **Signatur-Validierung** | ✅ Mit Toleranzen | ❌ Keine | ⚠️ Basis | ❌ Keine | ❌ Keine |
762
- | **Multi-Language** | ✅ TS/JS/Python/JSON/YAML | ⚠️ Nur TS/JS | ⚠️ C++/Java | ⚠️ Nur Python | ⚠️ Nur JS |
763
- | **Inkrementelle Updates** | ✅ Git-Diff-basiert | ❌ Immer Vollscan | ❌ Immer Vollscan | ⚠️ Teilweise | ❌ Immer Vollscan |
764
- | **Deterministische Ausgabe** | ✅ Garantiert | ⚠️ Teilweise | ⚠️ Teilweise | ⚠️ Teilweise | ⚠️ Teilweise |
765
- | **Semantische Klassifizierung** | ✅ SymbolClassifier | ❌ Keine | ❌ Keine | ❌ Keine | ❌ Keine |
766
- | **Rollenbasierte Doku-Tiefe** | ✅ Public-APIs tiefer | ❌ Gleich für alle | ❌ Gleich für alle | ❌ Gleich für alle | ❌ Gleich für alle |
767
- | **ADR-Integration** | ✅ Automatisch | ❌ Keine | ❌ Keine | ❌ Keine | ❌ Keine |
768
- | **Mehrdimensionaler Raum** | ✅ 5 Dimensionen | ❌ Keine | ❌ Keine | ❌ Keine | ❌ Keine |
769
- | **MCP-Server** | ✅ 99 Resources | ❌ Keine | ❌ Keine | ❌ Keine | ❌ Keine |
770
- | **AI-Native** | ✅ Cursor Rules, Verification | ❌ Keine | ❌ Keine | ❌ Keine | ❌ Keine |
771
- | **Reality-Driven** | ✅ Verification-Loops | ❌ Keine | ❌ Keine | ❌ Keine | ❌ Keine |
772
- | **Impact-Analyse** | ✅ Via Symbol-Index | ❌ Keine | ❌ Keine | ❌ Keine | ❌ Keine |
773
- | **CI/CD-Integration** | ✅ GitHub Actions | ⚠️ Möglich | ⚠️ Möglich | ⚠️ Möglich | ⚠️ Möglich |
774
-
775
- ### 5.2 Feature-Matrix: Semantische Features
776
-
777
- | Feature | Beschreibung | Vorteil |
778
- |---------|--------------|---------|
779
- | **SymbolClassifier** | Unterscheidet Service-API, Domain-Model, Config, Infra | Public-APIs werden tiefer dokumentiert, Infra weniger strikt validiert |
780
- | **Rollenbasierte Doku-Tiefe** | Doku-Tiefe abhängig von Symbol-Rolle | Wichtige APIs vollständig dokumentiert, Infra nicht überladen |
781
- | **Prioritäts-basierte Validierung** | Validierungsstrenge abhängig von Priorität | Fokus auf wichtige APIs, weniger Rauschen bei Infra |
782
- | **SignatureFormatter** | Zentrale Signatur-Formatierung | Konsistenz zwischen Generator und Validator |
783
- | **ADR-Verknüpfung** | Automatische Verknüpfung von ADRs mit Modulen | Architektur-Entscheidungen direkt im Code-Kontext |
784
- | **Mehrdimensionaler Raum** | 5 Dimensionen für Navigation | KI-Agenten können gezielt navigieren |
785
- | **Reality-Driven Development** | Verification-Loops verhindern Halluzinationen | Code als einzige Wahrheitsquelle |
786
-
787
- ### 5.3 Vorteile im Detail
788
-
789
- #### 5.3.1 Automatische Generierung
790
-
791
- **Noyrax:**
792
- - Keine manuelle Wartung erforderlich
793
- - Deterministische Ausgabe (gleiche Eingabe → gleiche Ausgabe)
794
- - Inkrementelle Updates (nur geänderte Dateien)
795
-
796
- **Andere Systeme:**
797
- - Manuelle Dokumentation → veraltet sofort
798
- - Keine Validierung → Inkonsistenzen
799
- - Immer Vollscan → langsam bei großen Projekten
800
-
801
- #### 5.3.2 Drift-Detection
802
-
803
- **Noyrax:**
804
- - Automatische Erkennung von Code-Dokumentation-Abweichungen
805
- - Signatur-Validierung mit Toleranzen (optionale Felder, Generics)
806
- - Coverage-Metriken mit konfigurierbaren Thresholds
807
-
808
- **Andere Systeme:**
809
- - Keine Drift-Detection → Dokumentation kann veraltet sein ohne Warnung
810
- - Keine Signatur-Validierung → Inkonsistenzen werden nicht erkannt
811
-
812
- #### 5.3.3 Semantische Intelligenz
813
-
814
- **Noyrax:**
815
- - SymbolClassifier: Unterscheidung zwischen Service-API, Domain-Model, Config, Infra
816
- - Rollenbasierte Doku-Tiefe: Public-APIs werden tiefer dokumentiert
817
- - Prioritäts-basierte Validierung: Wichtige APIs strenger geprüft
818
-
819
- **Andere Systeme:**
820
- - Keine semantische Klassifizierung → alle Symbole gleich behandelt
821
- - Keine rollenbasierte Doku-Tiefe → Infra überladen, APIs unterdokumentiert
822
-
823
- #### 5.3.4 Mehrdimensionaler Navigationsraum
824
-
825
- **Noyrax:**
826
- - 5 Dimensionen: Modul-Raum, Symbol-Raum, Beziehungs-Raum, Wissens-Raum, Zeit-Raum
827
- - Koordinaten-System für AI-Agenten
828
- - MCP-Server: 99 Resources für strukturierten Zugriff
829
-
830
- **Andere Systeme:**
831
- - Keine mehrdimensionale Navigation → flache Dokumentationsstruktur
832
- - Keine MCP-Server-Integration → keine strukturierte Agent-Kommunikation
833
-
834
- #### 5.3.5 AI-Native
835
-
836
- **Noyrax:**
837
- - MCP-Server Integration für strukturierte Agent-Kommunikation
838
- - Cursor Rules für strukturierte Workflows
839
- - Reality-Driven Development: Verification-Loops verhindern Halluzinationen
840
- - Impact-Analyse via Symbol-Index
841
-
842
- **Andere Systeme:**
843
- - Keine AI-Integration → keine strukturierte Agent-Kommunikation
844
- - Keine Verification-Loops → Agenten können halluzinieren
845
-
846
- ---
847
-
848
- ## 6. Auswirkungen
849
-
850
- ### 6.1 Dokumentation
851
-
852
- #### Vorher (ohne Noyrax)
853
-
854
- - **Manuelle Wartung:** Entwickler müssen Dokumentation manuell pflegen → veraltet sofort
855
- - **Keine Validierung:** Inkonsistenzen zwischen Code und Dokumentation werden nicht erkannt
856
- - **Keine Struktur:** Dokumentation ist flach, schwer navigierbar
857
- - **Keine Semantik:** Alle Symbole gleich behandelt, keine Unterscheidung zwischen Public-APIs und Infra
858
-
859
- #### Nachher (mit Noyrax)
860
-
861
- - **Automatische Generierung:** Dokumentation wird automatisch aus Code generiert → immer aktuell
862
- - **Drift-Detection:** Inkonsistenzen werden automatisch erkannt und gemeldet
863
- - **Strukturiert:** Mehrdimensionaler Navigationsraum mit 5 Dimensionen
864
- - **Semantisch:** Rollenbasierte Doku-Tiefe (Public-APIs tiefer dokumentiert)
865
- - **ADR-verknüpft:** Architektur-Entscheidungen direkt im Code-Kontext
866
-
867
- **Quantifizierbare Verbesserungen:**
868
- - **Zeitersparnis:** Keine manuelle Dokumentationspflege mehr erforderlich
869
- - **Aktualität:** Dokumentation ist immer synchron mit Code (Drift-Detection)
870
- - **Qualität:** Public-APIs vollständig dokumentiert, Infra nicht überladen
871
-
872
- ### 6.2 Wissensaufbereitung
873
-
874
- #### Vorher
875
-
876
- - **Dokumentation isoliert:** Dokumentation ist getrennt von Code, schwer zu finden
877
- - **ADRs isoliert:** Architektur-Entscheidungen sind isoliert von betroffenen Modulen
878
- - **Keine Zeit-Dimension:** Änderungen sind schwer nachvollziehbar, keine Änderungsmuster erkennbar
879
- - **Keine Beziehungen:** Abhängigkeiten sind nicht visualisiert
880
-
881
- #### Nachher
882
-
883
- - **Mehrdimensionaler Raum:** Koordinaten-System ermöglicht gezielte Navigation
884
- - **ADR-Verknüpfung:** Wissens-Raum als Landkarte, Architektur-Entscheidungen direkt verknüpft
885
- - **Change Report:** Zeit-Dimension für Änderungsmuster und Trends
886
- - **Symbol-Index:** Schnelle Suche und Impact-Analyse
887
- - **Dependency-Graph:** Beziehungen visualisiert (127 Knoten)
888
-
889
- **Quantifizierbare Verbesserungen:**
890
- - **Navigation:** 5 Dimensionen für gezielte Suche
891
- - **ADR-Zugriff:** 24 ADRs automatisch verknüpft mit Modulen
892
- - **Impact-Analyse:** Abhängigkeiten in Sekunden analysierbar
893
-
894
- ### 6.3 Softwareentwicklung
895
-
896
- #### Vorher
897
-
898
- - **Manuelle Dokumentation:** Zeitaufwand für Dokumentationspflege, Dokumentation veraltet schnell
899
- - **Keine Validierung:** Fehler werden nicht erkannt, Inkonsistenzen bleiben unbemerkt
900
- - **Keine Impact-Analyse:** Änderungen sind schwer abschätzbar, Abhängigkeiten unbekannt
901
- - **Keine AI-Integration:** Keine strukturierte Agent-Kommunikation
902
-
903
- #### Nachher
904
-
905
- - **Reality-Driven Development:** Code als einzige Wahrheitsquelle, Verification-Loops verhindern Halluzinationen
906
- - **Verification-Loops:** System-enforced Verification vor/nach Implementierung
907
- - **Impact-Analyse:** Abhängigkeiten werden verstanden, Änderungen abschätzbar
908
- - **CI/CD-Integration:** Automatische Validierung bei jedem Push/PR
909
- - **AI-Agent-Integration:** Strukturierte Workflows via MCP-Server und Cursor Rules
910
- - **Semantische Klassifizierung:** Public-APIs vs. Infra unterscheiden, Fokus auf wichtige APIs
911
-
912
- **Quantifizierbare Verbesserungen:**
913
- - **Zeitersparnis:** Keine manuelle Dokumentationspflege, automatische Validierung
914
- - **Qualität:** Public-APIs vollständig dokumentiert und validiert
915
- - **Fehlerreduktion:** Drift-Detection erkennt Inkonsistenzen automatisch
916
- - **AI-Effizienz:** Strukturierte Agent-Kommunikation via MCP-Server (99 Resources)
917
-
918
- ---
919
-
920
- ## Zusammenfassung
921
-
922
- Noyrax ist ein **AI-natives Dokumentationssystem** mit folgenden Alleinstellungsmerkmalen:
923
-
924
- 1. **Automatische Generierung** mit Drift-Detection
925
- 2. **Semantische Intelligenz** (SymbolClassifier, rollenbasierte Doku-Tiefe)
926
- 3. **Mehrdimensionaler Navigationsraum** (5 Dimensionen)
927
- 4. **ADR-Integration** (automatische Verknüpfung)
928
- 5. **MCP-Server** (99 Resources für strukturierten Agent-Zugriff)
929
- 6. **Reality-Driven Development** (Verification-Loops verhindern Halluzinationen)
930
-
931
- Diese Features machen Noyrax zu einem **einzigartigen System** für moderne Softwareentwicklung mit AI-Agenten.
932
-
933
- ---
934
-
935
- **Referenzen:**
936
- - ADR-020: API-Doku-Tiefe & SignatureFormatter
937
- - ADR-021: Semantische API-Dokus & SymbolClassifier
938
- -+-+-+-+-+-+-+-+-+-+-+-+
939
- - ADR-022: Semantisches Klassen- und Konstanten-Rendering
940
- - ADR-023: ADR-Verknüpfung mit Modul-Dokumentation
941
- - ADR-024: Cursor Rules Überarbeitung – Mehrdimensionaler Navigationsraum
942
- - ADR-025: MCP-Server Tools Scan/Validate – CLI-Bridge-Pattern
943
- - ADR-026: Reality-Driven Development System
944
- - ADR-027: Scanner-Excludes und Union-Logik-Fix
945
- - ADR-028: Vollständige src-Abdeckung & Resync-Strategie
946
- - ADR-029: Parser-Flow-Kopplung und Sync/Drift-Modi für die Validierung
947
-