# Testing Chain Workbench + Vault Triage (0.5.x) Diese Anleitung beschreibt, wie du die neuen Chain Workbench und Vault Triage Features in Obsidian testen kannst. ## Voraussetzungen 1. **Node.js** installiert (LTS Version empfohlen) 2. **Obsidian** installiert 3. **Vault** mit Mindnet-konfigurierten Dateien: - `Dictionary/chain_templates.yaml` - `Dictionary/chain_roles.yaml` - `Dictionary/edge_vocabulary.md` - `Dictionary/analysis_policies.yaml` (optional) - `Dictionary/interview_config.yaml` (für Interview-Features) ## Build & Installation ### 1. Dependencies installieren ```bash cd c:\Dev\cursor\mindnet_obsidian npm install ``` ### 2. Plugin bauen ```bash npm run build ``` Dies erstellt `main.js` im Projekt-Root. ### 3. Plugin in Obsidian installieren **Option A: Lokales Deployment (empfohlen für Entwicklung)** ```powershell npm run deploy:local ``` Dies kopiert automatisch `main.js`, `manifest.json` und `styles.css` (falls vorhanden) in dein Test-Vault. **Option B: Manuell** 1. Öffne dein Obsidian Vault 2. Gehe zu `.obsidian/plugins/` 3. Erstelle Ordner `mindnet-causal-assistant` (falls nicht vorhanden) 4. Kopiere folgende Dateien: - `main.js` (aus Projekt-Root) - `manifest.json` (aus Projekt-Root) - `styles.css` (falls vorhanden) ### 4. Plugin aktivieren 1. Öffne Obsidian Settings 2. Gehe zu **Community plugins** 3. Aktiviere **Mindnet Causal Assistant** 4. Stelle sicher, dass die Dictionary-Pfade korrekt konfiguriert sind: - Edge Vocabulary Path: `Dictionary/edge_vocabulary.md` - Chain Templates Path: `Dictionary/chain_templates.yaml` - Chain Roles Path: `Dictionary/chain_roles.yaml` - Interview Config Path: `Dictionary/interview_config.yaml` ## Testing Chain Workbench ### Schritt 1: Test-Vault vorbereiten Erstelle oder öffne eine Note mit: - Mindestens einer Section (H2-Überschrift) - Einigen Edges (z.B. in Semantic Mapping Block) - Optional: Candidate Edges in "## Kandidaten" Zone **Beispiel-Note:** ```markdown --- id: test_note_001 type: concept --- # Test Note ## Kontext Dies ist eine Test-Section mit einigen Links. > [!abstract]- 🕸️ Semantic Mapping >> [!edge] caused_by >> [[Target Note 1]] ## Kandidaten > [!abstract] >> [!edge] impacts >> [[Target Note 2]] ``` ### Schritt 2: Chain Workbench öffnen 1. Öffne die Test-Note im Editor 2. Setze den Cursor in eine Section (z.B. "Kontext") 3. Öffne Command Palette (`Ctrl+P` / `Cmd+P`) 4. Suche nach: **"Mindnet: Chain Workbench (Current Section)"** 5. Klicke auf den Command ### Schritt 3: Workbench UI verwenden **Erwartetes Verhalten:** - Modal öffnet sich mit: - Links: Liste aller Template Matches - Rechts: Details des ausgewählten Matches - Filter nach Status verfügbar - Suche nach Template-Name funktioniert **Zu testen:** 1. **Match-Liste**: - Alle Matches werden angezeigt (nicht nur Top-1) - Status-Icons sind korrekt (✓, ~, ○, ⚠) - Sortierung: near_complete zuerst 2. **Match-Details**: - Slots-Info korrekt angezeigt - Links-Info korrekt angezeigt - Todos werden aufgelistet 3. **Todo-Actions**: - Klicke auf "Insert Edge" für `missing_link` Todo - Wähle Zone (Section / Note-Verbindungen / Kandidaten) - Wähle Edge-Typ - Prüfe: Edge wurde eingefügt - Prüfe: Workbench aktualisiert sich nach Apply 4. **Candidate Promotion**: - Wenn Candidate Edge vorhanden, sollte `candidate_cleanup` Todo erscheinen - Klicke auf "Promote" - Prüfe: Candidate wurde zu explizitem Edge befördert - Prüfe: Candidate wurde aus Kandidaten-Zone entfernt (wenn `keepOriginal=false`) ## Testing Interview-Orchestrierung ### Schritt 1: Missing Slot Todo erstellen 1. Öffne Chain Workbench für eine Section mit fehlendem Slot 2. Wähle einen Match mit `missing_slot` Todo ### Schritt 2: Create Note via Interview 1. Klicke auf "Create Note" Button 2. **Erwartetes Verhalten**: - Profile Selection Modal öffnet sich - Nur erlaubte Profile werden angezeigt (gefiltert nach `allowedNodeTypes`) - User wählt Profile, Titel, Ordner 3. **Nach Auswahl**: - Note wird erstellt mit Frontmatter - Zonen werden erstellt (je nach Settings) - Interview Wizard startet automatisch 4. **Nach Interview-Abschluss**: - Soft-Validation prüft requiredEdges - Notice zeigt fehlende Edges (falls vorhanden) **Zu testen:** - Profile-Filterung funktioniert - Note wird korrekt erstellt - Interview startet - Soft-Validation zeigt korrekte Meldungen ## Testing Vault Triage Scan ### Schritt 1: Scan starten 1. Öffne Command Palette 2. Suche nach: **"Mindnet: Scan Vault for Chain Gaps"** 3. Klicke auf den Command ### Schritt 2: Scan durchführen **Erwartetes Verhalten:** - Modal öffnet sich - "Start Scan" Button verfügbar - Nach Klick: Scan läuft durch alle Dateien - Progress wird angezeigt **Zu testen:** 1. **Scan-Prozess**: - Progress wird aktualisiert - Aktuelle Datei wird angezeigt - Scan kann unterbrochen werden (Cancel) 2. **Backlog-Liste**: - Items werden nach Scan angezeigt - Sortierung: near_complete zuerst - Gap-Counts sind korrekt 3. **Filter**: - Status-Filter funktioniert - Gap-Typ-Filter funktioniert (missing_slot, missing_link, etc.) - Suche funktioniert (File, Heading, Template) 4. **Actions**: - "Open Workbench" öffnet Datei und Workbench - "Deprioritize" markiert Item als deprioritized - Item verschwindet nicht, sondern wird gefiltert 5. **Resume**: - Schließe Modal während Scan läuft - Öffne Scan erneut - "Resume Scan" sollte verfügbar sein - Scan setzt fort ## Troubleshooting ### Plugin lädt nicht - Prüfe: `main.js` existiert im Plugin-Ordner - Prüfe: `manifest.json` ist vorhanden - Prüfe: Console (F12) für Fehler - Prüfe: Plugin ist in Settings aktiviert ### Chain Workbench zeigt keine Matches - Prüfe: Chain Templates sind geladen (Settings → Dictionary Paths) - Prüfe: Section hat Edges oder Links - Prüfe: Console für Fehler - Prüfe: Template Matching Profile ist korrekt ### Interview startet nicht - Prüfe: Interview Config ist geladen - Prüfe: Profile existiert für gewählten noteType - Prüfe: Settings → `autoStartInterviewOnCreate` ist aktiviert ### Vault Scan ist langsam - Normal für große Vaults - Scan kann unterbrochen werden - Progress wird gespeichert für Resume ### Edge wird nicht eingefügt - Prüfe: Zone existiert oder wird erstellt - Prüfe: Section hat Semantic Mapping Block oder wird erstellt - Prüfe: Console für Fehler - Prüfe: File-Berechtigungen ## Debug-Modus Für detaillierte Logs: 1. Öffne Obsidian Console (F12) 2. Aktiviere Debug-Logging in Settings: - Settings → Mindnet Settings → Debug Logging **Wichtige Console-Logs:** - `[Chain Workbench]` - Workbench-Operationen - `[Vault Triage Scan]` - Scan-Operationen - `[Chain Inspector]` - Template Matching - `[Workbench]` - Todo-Generierung ## Beispiel-Workflow 1. **Erstelle Test-Note** mit unvollständiger Chain: ```markdown ## Kontext Content hier. > [!abstract]- 🕸️ Semantic Mapping >> [!edge] caused_by >> [[Note A]] ``` 2. **Öffne Chain Workbench** für diese Section 3. **Erwartung**: - Match für Template (z.B. `trigger_transformation_outcome`) - Status: `partial` oder `near_complete` - Todos: `missing_slot` für "transformation" oder "outcome" 4. **Teste Actions**: - Klicke "Create Note" → Interview startet - Oder: Klicke "Insert Edge" → Edge wird eingefügt 5. **Nach Apply**: - Workbench aktualisiert sich automatisch - Match-Status verbessert sich (z.B. `partial` → `near_complete`) ## Nächste Schritte Nach erfolgreichem Test: 1. Teste mit realen Vault-Daten 2. Prüfe Performance bei großen Vaults 3. Teste Edge-Cases (leere Sections, fehlende Zonen, etc.) 4. Gib Feedback zu UX/UI ## Bekannte Einschränkungen - `link_existing` ist noch Placeholder (fügt Link ein, aber Slot-Assignment erfordert Re-Run) - Interview Quick-Insert (requiredEdges) ist vorbereitet, aber noch nicht vollständig integriert - `insert_edge_inverse` noch nicht implementiert - `change_edge_type` noch nicht implementiert Diese Features werden in späteren Iterationen vervollständigt.