mindnet/docs/05_Development/Obsidian/lint_regeln_Kausalität.md
Lars 39a6998123
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 4s
Implement Phase 3 Agentic Edge Validation and Chunk-Aware Multigraph-System
- Introduced final validation gate for edges with candidate: prefix.
- Enabled automatic generation of mirror edges for explicit connections.
- Added support for Note-Scope zones to facilitate global connections.
- Enhanced section-based links in the multigraph system for improved edge handling.
- Updated documentation and added new ENV variables for configuration.
- Ensured no breaking changes for end users, maintaining full backward compatibility.
2026-01-14 22:26:12 +01:00

4.9 KiB
Raw Blame History


id: checklist_lint_regeln_mindnet_assistant title: Checkliste Lint-Regeln für Mindnet Causal Assistant type: specification status: draft created: 2026-01-13 lang: de

Checkliste Lint-Regeln für Mindnet Causal Assistant

Severity Levels

  • ERROR: bricht Traversal/Indexer oder erzeugt falsche Nodes
  • WARN: wahrscheinlich falsche Semantik / schlechter Retrieval-Impact
  • INFO: Optimierung / Empfehlung

A. Graph-Integrität & Naming

L1 (ERROR) Missing Target Note

Wenn: Edge target [[X]] existiert nicht als Datei im Vault
Dann: Finding missing_target
Fix: „Create Stub Note“ (default type: open_question) oder remove edge

L2 (ERROR) Node Splitting durch Schreibvarianten

Wenn: mehrere Targets im Vault sind ähnlich (slug distance), oder in Edges mehrere Varianten vorkommen
Dann: Finding node_split_candidate
Fix: Vorschlag canonical slug + bulk replace links

L3 (ERROR) Invalid Filename Policy

Wenn: Dateiname enthält Zeichen außerhalb [a-z0-9_]
Dann: Finding invalid_filename
Fix: Rename file + update all backlinks


B. Edge-Formale Regeln

L4 (ERROR) Unknown Edge Type / Unmapped Alias

Wenn: raw edge type nicht im Vokabular (alias→canonical)
Dann: Finding unknown_edge_type
Fix: Edge type ersetzen durch best guess oder user selection

L5 (WARN) Alias not normalized

Wenn: raw edge type ist Alias, canonical bekannt, aber Note enthält Alias
Dann: Finding alias_not_normalized
Fix: Replace raw with canonical (optional config)

L6 (WARN) Missing Inverse Edge (optional strict mode)

Wenn: Edge A->B existiert, inverse nach Vokabular fehlt in B
Dann: Finding missing_inverse
Fix: Add inverse edge to target note (review + diff)


C. Semantik: Kausalität vs Chronologie

L7 (WARN) Chronology used as Causality

Wenn: Knoten/Target wirkt wie Prozessschritt („warten“, „gehen“, „ankommen“) und Edge type ist resulted_in
Dann: Finding chronology_as_causality
Fix: Vorschlag followed_by (inverse preceeded_by)

L8 (INFO) Kausalität ohne Brücken (Gap)

Wenn: Pfad springt von Ereignis direkt zu Entscheidung, aber intermediäre Knoten fehlen (heuristisch)
Dann: Finding missing_bridge_node
Fix: Vorschlag „Create open_question bridge“ (z.B. „Was war der konkrete Auslöser…?“)


D. Node-Type Regeln

L9 (ERROR) Causal edges from open_question/hypothesis/white_spot

Wenn: node.type in {open_question, hypothesis, white_spot} und Edge type in {caused_by, resulted_in, impacts, derived_from}
Dann: Finding invalid_causal_edge_from_uncertain
Fix: Replace with related_to oder remove edge

L10 (WARN) Hub/Insight Note trägt Kausalität

Wenn: node.type == insight (oder Hub-Pattern) und hat caused_by/resulted_in
Dann: Finding hub_has_causality
Fix: Replace edges with related_to und verschiebe Kausalität in atomare Notes

L11 (WARN) Principle uses caused_by for origin

Wenn: node.type == principle und enthält caused_by zu Erlebnissen
Dann: Finding principle_origin_edge
Fix: Vorschlag derived_from oder based_on

L12 (INFO) Decision without caused_by

Wenn: node.type == decision und hat keine caused_by-Kanten
Dann: Finding decision_without_causes
Fix: Wizard: „Was war der Auslöser?“ → create open_question or add edges


E. Redundanz & Zyklen

L13 (WARN) Duplicate Edges

Wenn: identische canonical edge mehrfach gesetzt (src,type,dst)
Dann: Finding duplicate_edge
Fix: remove duplicates

L14 (WARN) Cycles in pure causality subgraph

Wenn: Zyklus ausschließlich über {caused_by,resulted_in,derived_from,source_of}
Dann: Finding causal_cycle
Fix: Markiere zur Review; oft ist eine Kante falsch gerichtet


F. Traversal-Optimierung (Retrieval-Wirkung)

Wenn: Note enthält nur related_to und keine spezifischeren Kanten
Dann: Finding weak_semantics
Fix: Vorschlag: präzisere Beziehungstypen setzen

L16 (INFO) Missing type metadata

Wenn: Frontmatter type fehlt
Dann: Finding missing_type
Fix: Prompt user to choose type; set via template

L17 (INFO) Missing date on experience

Wenn: node.type == experience und kein Datum/Zeitraum vorhanden
Dann: Finding missing_date_experience
Fix: Prompt: „Wann ungefähr?“ → set date oder time_range


Suggested Implementation Notes

  • Jede Regel liefert:
    • ruleId, severity, message, location, evidence, quickFixes[]
  • QuickFixes sind Patch-Operationen:
    • replaceText(range, text)
    • insertBlock(atLine, block)
    • createFile(path, content)
    • renameFile(old, new) + updateLinks(glob)