- 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.
310 lines
8.1 KiB
Markdown
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.
|