@noyrax/documentation-system-plugin 1.0.4-beta.3 → 1.0.4-beta.5
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 +345 -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,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
|
-
|