mindnet_obsidian/docs/08_Testing_Chain_Workbench.md
Lars a9b3e2f0e2
Some checks are pending
Node.js build / build (20.x) (push) Waiting to run
Node.js build / build (22.x) (push) Waiting to run
Implement Chain Workbench and Vault Triage features in Mindnet plugin
- Introduced new workflows for Chain Workbench and Vault Triage, enhancing user capabilities for managing template matches and identifying chain gaps.
- Added commands for opening the Chain Workbench and scanning the vault for chain gaps, improving the overall functionality of the plugin.
- Updated documentation to include detailed instructions for the new workflows, ensuring users can effectively utilize the features.
- Enhanced the UI for both the Chain Workbench and Vault Triage Scan, providing a more intuitive user experience.
- Implemented tests for the new functionalities to ensure reliability and accuracy in various scenarios.
2026-01-26 10:51:12 +01:00

310 lines
8.1 KiB
Markdown

# 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.