mindnet_obsidian/STATUS_DOD.md
Lars e6cd4aafec
Some checks are pending
Node.js build / build (20.x) (push) Waiting to run
Node.js build / build (22.x) (push) Waiting to run
Enhance edge parsing and settings for improved template matching
- Updated `parseEdgesFromCallouts.ts` to support edge extraction from both callout blocks and plain lines, allowing for more flexible edge definitions.
- Introduced new settings in `settings.ts` for maximum assignments collected per template, enhancing loop protection during edge processing.
- Enhanced documentation in `Entwicklerhandbuch.md` to reflect changes in edge parsing and settings.
- Improved UI components to utilize the new settings for better user experience in the Chain Workbench and related features.
2026-02-06 11:40:44 +01:00

4.9 KiB

Status gegen DoD - guides Edge Erkennung

DoD Anforderungen

Status: ERFÜLLT

  • [[Note]] Format wird erkannt
  • [[Note#Abschnitt]] Format wird erkannt
  • [[Note#Abschnitt ^BlockID]] Format wird erkannt
  • [[#^BlockID]] Format wird erkannt
  • Mehrere Links in einer Edge werden erkannt
  • Tests: 14/14 bestehen (parseEdgesFromCallouts.comprehensive.test.ts)

DoD 3: Kanten außerhalb von Wrappern erkennen

Status: ERFÜLLT

  • Edge ohne > (plain [!edge]) wird erkannt
  • Edge mit > außerhalb Abstract-Block wird erkannt
  • Edge mitten im Text wird erkannt
  • Tests: Alle bestehen

DoD 4: Verschiedene Wrapper-Typen erkennen

Status: ERFÜLLT

  • [!abstract] Block wird erkannt
  • [!info] Block wird erkannt
  • [!note] Block wird erkannt
  • [!tip] Block wird erkannt
  • Tests: Alle bestehen

DoD 5: Edge-Erstellung mit konfiguriertem Wrapper

Status: ERFÜLLT

  • insertEdgeIntoSectionContent.ts verwendet wrapperCalloutType, wrapperTitle, wrapperFolded
  • Settings enthalten mappingWrapperCalloutType, mappingWrapperTitle, mappingWrapperFolded
  • buildMappingBlock und insertMappingBlock unterstützen Wrapper-Konfiguration

DoD 1: Sämtliche Kanten werden richtig erkannt und auch in der Chain richtig zugeordnet

Status: ERFÜLLT

Was funktioniert:

  • guides Edge wird korrekt geparst (parseEdgesFromCallouts)
  • guides Edge wird in buildNoteIndex gefunden
  • Candidate Nodes werden korrekt erstellt
  • Slot-Candidates werden korrekt gefunden
  • guides Edge wird in findEdgeBetween gefunden, auch wenn sie später in der Liste kommt
  • guides Edge wird in scoreAssignment gefunden (satisfiedLinks: 1)
  • guides Edge wird in roleEvidence aufgenommen
  • Template Match zeigt satisfiedLinks: 1/1

Gelöstes Problem:

  • Problem: foundation_for Edge (Index 11) wurde zuerst gefunden und zurückgegeben, bevor die guides Edge (Index 12) geprüft wurde
  • Lösung: Wenn allowedEdgeRoles gesetzt ist, wird nur zurückgegeben, wenn die Edge-Rolle in den erlaubten Rollen ist. Wenn edgeRole null ist, wird inferRoleFromRawType verwendet, um die Rolle zu bestimmen
  • Ergebnis: guides Edge wird jetzt korrekt gefunden, auch wenn sie später in der Liste kommt

Gelöste Probleme

1. guides Edge Problem - BEHOBEN

Problem: findEdgeBetween fand guides Edge nicht in scoreAssignment, wenn sie später in der Liste kam

Root Cause:

  • foundation_for Edge (Index 11) wurde zuerst gefunden und zurückgegeben
  • getEdgeRole gab null für foundation_for zurück (nicht in chainRoles definiert)
  • Die Lösung prüfte nur edgeRole, nicht inferRoleFromRawType
  • Da edgeRole null war, wurde die Bedingung hasAllowedRoles && edgeRole falsch und die Edge wurde zurückgegeben
  • Die guides Edge (Index 12) wurde nie geprüft

Lösung:

  • Wenn hasAllowedRoles true ist, wird auch inferRoleFromRawType geprüft, wenn edgeRole null ist
  • Wenn die Edge-Rolle nicht in den erlaubten Rollen ist, wird weiter gesucht
  • Die guides Edge wird jetzt korrekt gefunden und satisfiedLinks: 1 ist korrekt

Test: templateMatching.guidesEdgeComprehensive.test.ts besteht

2. DoD 5: Edge-Erstellung testen

Priorität: MITTEL

Status: Implementiert, aber nicht getestet

  • Prüfen, ob insertEdgeIntoSectionContent die Wrapper-Konfiguration richtig verwendet
  • Test erstellen, der prüft, dass neue Edges mit konfiguriertem Wrapper erstellt werden

3. Integrationstest mit echter Datei

Priorität: HOCH

Test: Die echte Datei Geburt unserer Kinder Rouven und Rohan.md muss vollständig funktionieren:

  • guides Edge wird geparst
  • guides Edge wird in Template Matching gefunden
  • guides Edge wird in Chain Workbench angezeigt

Aktuelle Test-Ergebnisse

✅ parseEdgesFromCallouts.comprehensive.test.ts: 14/14 Tests bestehen
✅ templateMatching.guidesEdgeComprehensive.test.ts: 1/1 Test besteht
   - satisfiedLinks: 1 (erwartet: > 0) ✅
   - guides Edge wird in roleEvidence gefunden ✅

Technische Details

Edge-Struktur (aus Datei):

>> [!edge] guides
>> [[Geburt unserer Kinder Rouven und Rohan#Nächster Schritt ^next]]

Parsed Edge:

  • rawEdgeType: "guides"
  • source.file: "03_experience/Geburt unserer Kinder Rouven und Rohan.md"
  • source.sectionHeading: "Reflexion & Learning (Was lerne ich daraus?) ^learning"
  • target.file: "Geburt unserer Kinder Rouven und Rohan"
  • target.heading: "Nächster Schritt ^next"

Template Match:

  • templateName: "insight_to_decision"
  • slotAssignments: { learning: {...}, next: {...} }
  • satisfiedLinks: 1/1
  • roleEvidence: [{ from: "learning", to: "next", edgeRole: "guides", rawEdgeType: "guides" }]

Erreichtes Ergebnis:

  • satisfiedLinks: 1/1
  • roleEvidence: [{ from: "learning", to: "next", edgeRole: "guides", rawEdgeType: "guides" }]