Refactor chain inspection logic and improve documentation
Some checks are pending
Node.js build / build (20.x) (push) Waiting to run
Node.js build / build (22.x) (push) Waiting to run

- Enhanced chain inspection logic to better handle link completeness and confidence levels based on updated template definitions.
- Improved documentation to clarify the functionality and usage of the Mindnet Causal Assistant plugin, including detailed sections on chain inspection features.
- Updated tests to ensure accuracy and reliability of the new chain inspection enhancements.
This commit is contained in:
Lars 2026-01-20 12:27:34 +01:00
parent 74cacdd41d
commit b4d2424778
6 changed files with 900 additions and 0 deletions

View File

@ -0,0 +1,22 @@
version: 1
profiles:
discovery:
severities:
missing_link_constraints: info
weak_chain_roles: info
unmapped_edge_types: info
missing_slot_*: info
decisioning:
severities:
missing_link_constraints: warn
weak_chain_roles: info
unmapped_edge_types: warn
missing_slot_*: warn
audit:
severities:
missing_link_constraints: warn
weak_chain_roles: info
unmapped_edge_types: error
missing_slot_*: warn

153
Dictionary/chain_roles.yaml Normal file
View File

@ -0,0 +1,153 @@
version: 0.2.0
context: >
Abstraction Layer für Chain-Analyse (Obsidian Plugin):
Kanonische Edge-Typen werden stabilen Rollen zugeordnet.
Rollen bleiben wenige und stabil; Edge-Typen (Canonicals) können wachsen.
Hinweis: Aliases werden im Mindnet-System / Edge Vocabulary auf Canonicals normalisiert.
roles:
causal:
description: "Direkte Ursache/Wirkung oder Lösung/Problem-Beziehung."
edge_types:
- caused_by
- resulted_in
- solvesversion: 0.3.0
context: >
Abstraction Layer für Chain-Analyse (Obsidian Plugin).
Edge-Typen sind (nach Mindnet-Normalisierung) kanonisch.
Rollen dienen Template-Matching, Traversal/Scoring und Debug-Explainability.
Hinweis: Neue Rollen (temporal/epistemic/normative) beeinflussen Matching erst,
wenn Templates diese Rollen in allowed_edge_roles zulassen.
roles:
causal:
description: "Direkte Ursache/Wirkung bzw. Problem↔Lösung."
edge_types:
- caused_by
- resulted_in
- solves
- solved_by
enables_constraints:
description: "Voraussetzungen, Abhängigkeiten, Blockaden (Constraints)."
edge_types:
- depends_on
- required_by
- blocks
- blocked_by
influences:
description: "Beeinflussung/Steuerung ohne harte Kausalität (inkl. Risiko-Signal)."
edge_types:
- impacts
- impacted_by
- guides
- guided_by
- risk_of
- has_risk
provenance:
description: "Herkunft/Abstammung/Quelle (lineage)."
edge_types:
- derived_from
- source_of
epistemic:
description: "Begründung/Evidenz/Argumentation (Warum glaube/behaupte ich das?)."
edge_types:
# bereits im Vocabulary vorhanden
- references
- referenced_by
- based_on
- foundation_for
# neu empfohlen (kanonisch)
- supports
- supported_by
- contradicts
- contradicted_by
normative:
description: "Werte/Prinzipien/Normen: Ausrichtung, Konflikt, Einhaltung, Verletzung."
edge_types:
# neu empfohlen (kanonisch)
- upholds
- upheld_by
- violates
- violated_by
# symmetrisch
- aligned_with
- conflicts_with
structural:
description: "Struktur/Komposition/Tools/Assoziation/Kompetenz (nicht per se kausal)."
edge_types:
- part_of
- consists_of
- uses
- used_by
- related_to
- similar_to
- implemented_in
- implements
- experienced_in
- expert_for
- mastered_by
temporal:
description: "Zeitliche Ordnung/Sequenz (keine Kausalität)."
edge_types:
- followed_by
- preceeded_by
- solved_by
enables_constraints:
description: "Ermöglicht, begrenzt oder ist Voraussetzung / Blockade."
edge_types:
- depends_on
- required_by
- blocks
- blocked_by
influences:
description: "Beeinflusst/steuert ohne harte Kausalität (inkl. Risiko-Signal)."
edge_types:
- impacts
- impacted_by
- guides
- guided_by
- risk_of
- has_risk
provenance:
description: "Herkunft/Quelle/Evidenz/Referenzen (für Rückwärtsverstehen & Begründungsketten)."
edge_types:
- derived_from
- source_of
- based_on
- foundation_for
- references
- referenced_by
structural:
description: "Struktur/Komposition/Tools/Assoziation/Kompetenz (nicht direkt kausal, aber navigationsrelevant)."
edge_types:
- part_of
- consists_of
- uses
- used_by
- related_to
- similar_to
- implemented_in
- implements
- experienced_in
- expert_for
- mastered_by
temporal:
description: "Sequenz / zeitliche Ordnung (keine Kausalität)."
edge_types:
- followed_by
- preceeded_by

View File

@ -0,0 +1,175 @@
version: 0.2.0
context: >
Chain Templates beschreiben typische Konstellationen als Slots + erlaubte Rollen.
Sie dienen der Analyse (Lücken, Pfade, Start-/Endpunkte), nicht zum automatischen Schreiben.
Templates sind YAML-driven und werden von Obsidian-Plugin und Mindnet gemeinsam genutzt.
# -------------------------------------------------------------------
# DEFAULTS (optional, permissive):
# - Das Plugin kann Felder ignorieren, die es (noch) nicht nutzt.
# - Mindnet kann später dieselben Profile-Namen verwenden oder per Mapping adaptieren.
# -------------------------------------------------------------------
defaults:
# Matching-Defaults (Plugin v0.4.x kann zumindest required_links/distinct_nodes nutzen)
matching:
distinct_nodes: true
required_links: true
max_candidate_nodes: 30
max_matches_per_template: 1
# Rollen-Defaults (Referenz auf chain_roles.yaml Rollen)
roles:
causal_ish: [causal, influences, enables_constraints]
# Profile-Defaults: gleiche Templates, unterschiedliche Strenge in der Auswertung
profiles:
discovery:
required_links: false
min_slots_filled_for_gap_findings: 2
min_score_for_gap_findings: 8
decisioning:
required_links: true
min_slots_filled_for_gap_findings: 3
min_score_for_gap_findings: 18
templates:
# ================================================================
# 1) Core: Trigger → Transformation → Outcome
# ================================================================
- name: "trigger_transformation_outcome"
description: "Wendepunkt/Trigger → innere Veränderung (Insight/Value/Belief) → Ergebnis/Handlung."
matching:
# Template kann bei Bedarf vom Default abweichen
required_links: true
distinct_nodes: true
slots:
- id: trigger
allowed_node_types: [experience, event, obstacle, risk, state]
- id: transformation
allowed_node_types: [insight, belief, value, principle, trait, skill, boundary]
- id: outcome
allowed_node_types: [decision, project, habit, goal]
links:
- from: trigger
to: transformation
allowed_edge_roles: [causal, influences, provenance]
- from: transformation
to: outcome
allowed_edge_roles: [causal, influences, enables_constraints]
# ================================================================
# 2) Core: Decision Logic (Driver + Constraint → Decision → Outcome)
# ================================================================
- name: "decision_logic"
description: "Wert/Prinzip/Motivation + Constraints → Entscheidung → Outcome/Projekt."
slots:
- id: driver
allowed_node_types: [value, principle, motivation, need, goal]
- id: constraint
allowed_node_types: [risk, issue, obstacle, state, boundary]
- id: decision
allowed_node_types: [decision, task]
- id: outcome
allowed_node_types: [project, habit, goal]
links:
- from: driver
to: decision
allowed_edge_roles: [influences, enables_constraints]
- from: constraint
to: decision
allowed_edge_roles: [enables_constraints, influences]
- from: decision
to: outcome
allowed_edge_roles: [causal, influences]
# ================================================================
# 3) Core: Learning Loop (Experience → Learning → Behavior → Feedback)
# ================================================================
- name: "loop_learning"
description: "Wiederkehrendes Muster: Experience → Insight/Principle → Behavior/Decision → neue Experience."
slots:
- id: experience
allowed_node_types: [experience, journal, event]
- id: learning
allowed_node_types: [insight, principle, value, belief, skill, trait]
- id: behavior
allowed_node_types: [habit, decision, task]
- id: feedback
allowed_node_types: [experience, journal, event, state]
links:
- from: experience
to: learning
allowed_edge_roles: [causal, provenance, influences]
- from: learning
to: behavior
allowed_edge_roles: [influences, enables_constraints, causal]
- from: behavior
to: feedback
allowed_edge_roles: [causal, influences]
# ================================================================
# 4) Core: Constraint → Adaptation/Regulation → Stabilization
# ================================================================
- name: "constraint_to_adaptation"
description: "Begrenzung/Problem → Anpassung/Regulation → Stabilisierung (Prinzip/Wert/Habit/Projekt)."
slots:
- id: constraint
allowed_node_types: [risk, issue, obstacle, state, boundary]
- id: adaptation
allowed_node_types: [skill, trait, habit, boundary, insight, principle]
- id: stabilization
allowed_node_types: [principle, value, habit, project, goal]
links:
- from: constraint
to: adaptation
allowed_edge_roles: [causal, influences, enables_constraints, provenance]
- from: adaptation
to: stabilization
allowed_edge_roles: [causal, influences, enables_constraints]
# ================================================================
# 5) Core: Person Influence (Person → Inner Model → Decision/Outcome)
# ================================================================
- name: "person_influence"
description: "Person/Beziehungseinfluss → Belief/Insight/Skill/Trait → Entscheidung/Outcome."
slots:
- id: person
allowed_node_types: [person]
- id: internal_model
allowed_node_types: [belief, insight, value, principle, skill, trait, boundary, bias]
- id: outcome
allowed_node_types: [decision, habit, project, goal]
links:
- from: person
to: internal_model
allowed_edge_roles: [influences, provenance, causal]
- from: internal_model
to: outcome
allowed_edge_roles: [influences, enables_constraints, causal]
# ================================================================
# 6) Core: State → Trigger → Response → State/Outcome (empathy-ready)
# ================================================================
- name: "state_trigger_response"
description: "Zustand → Auslöser → Reaktion/Verhalten → neuer Zustand/Outcome."
slots:
- id: state
allowed_node_types: [state]
- id: trigger
allowed_node_types: [experience, event, issue, obstacle, risk]
- id: response
allowed_node_types: [habit, decision, task]
- id: next_state_or_outcome
allowed_node_types: [state, goal, project, habit]
links:
- from: state
to: trigger
allowed_edge_roles: [influences, causal, provenance]
- from: trigger
to: response
allowed_edge_roles: [causal, influences, enables_constraints]
- from: response
to: next_state_or_outcome
allowed_edge_roles: [causal, influences]

View File

@ -0,0 +1,92 @@
---
id: edge_vocabulary
title: Edge Vocabulary & Semantik
type: reference
status: system
system_role: config
context: "Zentrales Wörterbuch für Kanten-Bezeichner. Dient als Single Source of Truth für Obsidian-Skripte und Mindnet-Validierung. WP-24c: Symmetrische Kantenkonfiguration."
---
# Edge Vocabulary & Semantik
**Pfad:** `_system/dictionary/edge_vocabulary.md`
**Zweck:** Definition aller erlaubten Kanten-Typen, ihrer inversen Gegenstücke und Aliase.
### Identität & Kompetenz
| System-Typ (Canonical) | Inverser Typ | Erlaubte Aliasse (User) | Beschreibung (Perspektive: Diese Notiz...) |
| :--- | :--- | :--- | :--- |
| **`experienced_in`** | `mastered_by` | `erfahren_in`, `expertise_in`, `kompetenz_in`, `kennt`, `hat_erfahrung_mit` | ...beschreibt eine Person/Entität, die über praktisches Wissen im Zielbereich verfügt. |
| **`mastered_by`** | `experienced_in` | `beherrscht_von`, `meister_ist` | ...ist ein Wissensbereich/Skill, der von der Ziel-Person/Entität kontrolliert oder beherrscht wird. |
| **`expert_for`** | `has_expert` | `experte_für`, `spezialist_für` | ...weist sich selbst als primäre Autorität oder spezialisierte Instanz für das Zielobjekt aus. |
| **`has_expert`** | `expert_for` | `hat_expertise`, `hat_spezialist` | ...ist eine Notiz/Entität, die einen Experten für das Zielobjekt hat. |
### Logik & Impact
| System-Typ (Canonical) | Inverser Typ | Erlaubte Aliasse (User) | Beschreibung (Perspektive: Diese Notiz...) |
| :--- | :--- | :--- | :--- |
| **`caused_by`** | `resulted_in` | `ausgelöst_durch`, `wegen`, `ursache_ist`, `triggered_by` | ...ist ein Effekt oder Zustand, dessen direkte Ursache in der Ziel-Notiz beschrieben wird. |
| **`based_on`** | `foundation_for` | `basiert_auf` | ...ist ein abgeleitetes Konzept, das die Ziel-Notiz als zwingendes theoretisches Fundament nutzt. |
| **`foundation_for`** | `based_on` | `basis_für`, `grundlage_für`, `fundament`, `grundlage` | ...liefert die elementaren Prinzipien oder Daten, auf denen die Ziel-Notiz aufbaut. |
| **`solves`** | `solved_by` | `löst`, `beantwortet`, `fix_für` | ...bietet eine konkrete Lösung, Antwort oder einen Fix für die in der Ziel-Notiz beschriebene Problematik. |
| **`solved_by`** | `solves` | `gelöst_durch` | ...beschreibt eine Herausforderung, die durch die Maßnahmen in der Ziel-Notiz bewältigt wird. |
| **`depends_on`** | `required_by` | `hängt_ab_von`, `braucht`, `requires`, `enforced_by` | ...kann nur realisiert oder verstanden werden, wenn die Voraussetzungen der Ziel-Notiz erfüllt sind. |
| **`required_by`** | `depends_on` | `voraussetzung_für`, `benötigt_von` | ...ist eine notwendige Bedingung, ohne die die Ziel-Notiz nicht funktionsfähig oder valide ist. |
| **`blocks`** | `blocked_by` | `blockiert`, `verhindert` | ...stellt ein Hindernis dar, welches die Umsetzung der Ziel-Notiz aktiv unterbindet. |
| **`blocked_by`** | `blocks` | `wird_blockiert_durch`, `gestoppt_von` | ...ist in ihrem Fortschritt gehemmt, solange der Blocker in der Ziel-Notiz existiert. |
| **`resulted_in`** | `caused_by` | `ergebnis`, `resultat`, `erzeugt`, `leads_to` | ...fungiert als Auslöser, der unmittelbar zu dem in der Ziel-Notiz beschriebenen Ergebnis führt. |
| **`impacts`** | `impacted_by` | `beeinflusst`, `wirkt_auf`, `effekt_auf`, `affects` | ...übt einen signifikanten (positiven oder negativen) Einfluss auf die Entwicklung der Ziel-Notiz aus. |
| **`impacted_by`** | `impacts` | `betroffen_von` | ...erfährt eine Veränderung oder Beeinflussung durch die in der Ziel-Notiz genannten Faktoren. |
| **`implemented_in`** | `implements` | `implementiert_in`, `umgesetzt_in`, `umgesetzt_durch` | ...wird in der Ziel-Notiz konkret umgesetzt/realisiert. |
| **`implements`** | `implemented_in` | `implementiert`, `setzt_um` | ...setzt das in der Ziel-Notiz beschriebene Konzept konkret um. |
| **`risk_of`** | `has_risk` | `risiko_von`, `risiko_für` | ...beschreibt ein Risiko im Kontext der Ziel-Notiz / kann zu einem Risiko bzgl. der Ziel-Notiz führen. |
| **`has_risk`** | `risk_of` | `hat_risiko` | ...hat ein in der Ziel-Notiz beschriebenes Risiko. |
### Epistemik & Begründung
| System-Typ (Canonical) | Inverser Typ | Erlaubte Aliasse (User) | Beschreibung (Perspektive: Diese Notiz...) |
| :--- | :--- | :--- | :--- |
| **`supports`** | `supported_by` | `stützt`, `belegt`, `evidenz_für`, `spricht_für` | ...liefert Evidenz/Argumente, die die Ziel-Notiz stützen. |
| **`supported_by`** | `supports` | `gestützt_durch`, `belegt_durch`, `evidenz_durch` | ...wird durch die Ziel-Notiz gestützt/belegt. |
| **`contradicts`** | `contradicted_by` | `widerspricht`, `steht_im_widerspruch_zu` | ...steht in inhaltlichem Widerspruch zur Ziel-Notiz. |
| **`contradicted_by`** | `contradicts` | `widersprochen_durch` | ...wird durch die Ziel-Notiz widersprochen. |
### Normen, Werte & Prinzipien
| System-Typ (Canonical) | Inverser Typ | Erlaubte Aliasse (User) | Beschreibung (Perspektive: Diese Notiz...) |
| :--- | :--- | :--- | :--- |
| **`upholds`** | `upheld_by` | `hält_ein`, `erfüllt`, `lebt`, `achtet` | ...hält den in der Ziel-Notiz beschriebenen Wert/Prinzip/Norm ein. |
| **`upheld_by`** | `upholds` | `eingehalten_durch`, `erfüllt_durch` | ...wird durch die Ziel-Notiz eingehalten/verkörpert. |
| **`violates`** | `violated_by` | `verletzt`, `missachtet`, `bricht` | ...verletzt den in der Ziel-Notiz beschriebenen Wert/Prinzip/Norm. |
| **`violated_by`** | `violates` | `verletzt_durch`, `missachtet_durch` | ...wird durch die Ziel-Notiz verletzt. |
| **`aligned_with`** | `aligned_with` | `im_einklang_mit`, `konsistent_mit` | ...steht im Einklang mit der Ziel-Notiz (normativ/leitbildbezogen). |
| **`conflicts_with`** | `conflicts_with` | `im_konflikt_mit`, `widerspricht_normativ` | ...steht in einem normativen Konflikt zur Ziel-Notiz. |
### Kontext & Struktur
| System-Typ (Canonical) | Inverser Typ | Erlaubte Aliasse (User) | Beschreibung (Perspektive: Diese Notiz...) |
| :--- | :--- | :--- | :--- |
| **`derived_from`** | `source_of` | `abgeleitet_von`, `inspiriert_durch` | ...ist eine Weiterentwicklung oder Interpretation, die auf der Quelle in der Ziel-Notiz basiert. |
| **`source_of`** | `derived_from` | `ursprung_von`, `quelle` | ...ist das Original-Dokument oder die Primärquelle für die Inhalte der Ziel-Notiz. |
| **`part_of`** | `consists_of` | `teil_von`, `gehört_zu`, `cluster` | ...ist eine untergeordnete Komponente oder ein Teilaspekt der übergeordneten Ziel-Notiz. |
| **`consists_of`** | `part_of` | `besteht_aus`, `beinhaltet` | ...ist ein Container oder System, das sich aus Elementen wie der Ziel-Notiz zusammensetzt. |
| **`uses`** | `used_by` | `nutzt`, `verwendet`, `tool` | ...setzt das in der Ziel-Notiz beschriebene Werkzeug oder Methode aktiv zur Zielerreichung ein. |
| **`used_by`** | `uses` | `genutzt_von` | ...ist ein Hilfsmittel oder eine Ressource, die von der Ziel-Notiz in Anspruch genommen wird. |
| **`guides`** | `guided_by` | `steuert`, `leitet`, `orientierung`, `drives` | ...gibt die strategische Richtung oder Verhaltensregeln für die Ziel-Notiz vor. |
| **`guided_by`** | `guides` | `orientiert_an`, `geführt_von` | ...richtet ihr Verhalten oder ihre Struktur nach den Vorgaben der Ziel-Notiz aus. |
### Prozess & Sequenz
| System-Typ (Canonical) | Inverser Typ | Erlaubte Aliasse (User) | Beschreibung (Perspektive: Diese Notiz...) |
| :--- | :--- | :--- | :--- |
| **`followed_by`** | `preceded_by` | `danach`, `folgt`, `nachfolger` | ...stellt einen Prozessschritt dar, auf den zeitlich oder logisch die Ziel-Notiz folgt. |
| **`preceded_by`** | `followed_by` | `davor`, `vorgänger`, `preceeded_by` | ...beschreibt einen Zustand, dem die Ziel-Notiz als notwendige Sequenz vorausgegangen ist. |
### Assoziation
| System-Typ (Canonical) | Inverser Typ | Erlaubte Aliasse (User) | Beschreibung (Perspektive: Diese Notiz...) |
| :--- | :--- | :--- | :--- |
| **`related_to`** | `related_to` | `siehe_auch`, `kontext`, `thematisch` | ...weist auf eine relevante thematische Nachbarschaft zur Ziel-Notiz hin. |
| **`similar_to`** | `similar_to` | `ähnlich_wie`, `vergleichbar` | ...beschreibt ein nahezu identisches Konzept oder eine Analogie zur Ziel-Notiz. |
| **`references`** | `referenced_by` | *(Kein Alias)* | ...enthält einen formellen Verweis oder ein Zitat auf die Ziel-Notiz ohne spezifische Logik. |
| **`referenced_by`** | `references` | `referenziert_von` | ...wird innerhalb der Ziel-Notiz als Referenz oder Quelle angeführt. |

182
Dictionary/graph_schema.md Normal file
View File

@ -0,0 +1,182 @@
---
id: graph_schema
title: Graph Topology & Preferences (Atomic)
type: reference
status: system
system_role: config
context: "Explizites Regelwerk für bidirektionale Notiz-Verbindungen. Enthält migrierte edge_defaults aus types.yaml. WP-24c Edition."
---
# Graph Schema (Topologie & Symmetrie)
**Logik:** Jede Sektion definiert exakt einen Quell-Notiztyp. Typical-Kanten werden in Obsidian priorisiert und im Backend als Standard-Beziehungen behandelt.
---
## 1. Identität & Kompetenz
## Source: `person`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `skill` | `experienced_in`, `expert_for` | `caused_by`, `solves` |
| `role` | `part_of` | `blocks` |
| `trait` | `part_of` | `resulted_in` |
| `any` | `related_to` | - |
## Source: `skill`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `person` | `mastered_by` | `consists_of` |
| `task` | `used_by` | `foundation_for` |
| `any` | `references`, `related_to` | - |
## Source: `role`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `person` | `consists_of` | `caused_by` |
| `project` | `guides` | `solves` |
## Source: `trait`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `related_to` | - |
---
## 2. Planung & Umsetzung (Action Stream)
## Source: `project`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `task` | `consists_of` | `experienced_in` |
| `milestone` | `consists_of`, `followed_by` | `derived_from` |
| `goal` | `depends_on` | `similar_to` |
| `risk` | `impacted_by` | `part_of` |
| `any` | `references`, `depends_on` | - |
## Source: `task`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `project` | `part_of` | `expert_for` |
| `task` | `followed_by`, `depends_on`, `preceeded_by` | `consists_of` |
| `milestone` | `followed_by`, `required_by` | `caused_by` |
| `skill` | `uses` | `mastered_by` |
| `any` | `depends_on`, `part_of` | - |
## Source: `milestone`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `project` | `part_of` | `solves` |
| `task` | `preceeded_by`, `depends_on` | `expert_for` |
## Source: `goal`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `depends_on`, `related_to` | - |
## Source: `habit`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `related_to`, `caused_by` | - |
---
## 3. Erfahrung & Erkenntnis (History Stream)
## Source: `experience`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `insight` | `resulted_in` | `depends_on` |
| `event` | `derived_from` | `solves` |
| `value` | `based_on` | `consists_of` |
| `person` | `caused_by` | `followed_by` |
| `any` | `derived_from`, `references` | - |
## Source: `insight`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `experience` | `caused_by` | `uses` |
| `principle` | `resulted_in` | `consists_of` |
| `concept` | `based_on` | `followed_by` |
| `any` | `references`, `based_on` | - |
---
## 4. Logik & Impact
## Source: `decision`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `issue` | `solves` | `part_of` |
| `obstacle` | `solves` | `part_of` |
| `risk` | `impacts`, `solves` | `experienced_in` |
| `project` | `resulted_in`, `foundation_for` | `mastered_by` |
| `any` | `caused_by`, `references` | - |
## Source: `issue`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `decision` | `solved_by`, `caused_by` | `consists_of` |
| `project` | `blocks` | `based_on` |
| `task` | `blocks` | `based_on` |
## Source: `obstacle`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `decision` | `solved_by`, `caused_by` | `consists_of` |
| `project` | `blocks` | `based_on` |
| `task` | `blocks` | `based_on` |
| `any` | `blocks`, `related_to` | - |
## Source: `risk`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `related_to`, `blocks` | - |
## Source: `motivation`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `guides`, `references` | - |
## Source: `bias`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `impacts`, `related_to` | - |
---
## 5. Wissen & Basis
## Source: `concept`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `references`, `related_to` | - |
## Source: `journal`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `references`, `related_to` | - |
## Source: `glossary`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `related_to` | - |
## Source: `event`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `related_to` | - |
## Source: `idea`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `resulted_in`, `references` | - |
---
## 6. Globaler Fallback
## Source: `any`
| Target-Note-type | Typical Edge-Types | Prohibited Edge-Types |
| :--- | :--- | :--- |
| `any` | `related_to`, `references` | - |

View File

@ -0,0 +1,276 @@
version: 3
frontmatter_whitelist:
- id
- title
- type
- status
- retriever_weight
- chunking_profile
- tags
- aliases
- created
- interview_profile
ui_defaults:
modal:
width: "clamp(720px, 88vw, 1100px)"
height: "clamp(640px, 86vh, 920px)"
editor:
preview_toggle: true
toolbar: true
full_width_inputs: true
profiles:
- key: experience_cluster
group: experience
label: "Experience Cluster"
note_type: experience
defaults:
status: active
folder: "03_experience"
edging:
mode: both
steps:
- id: title
kind: capture_frontmatter
field: title
label: "Hub Titel"
required: true
# Einzeiliges Feld
- id: subtitle
kind: capture_text_line
label: "Untertitel"
heading_level:
enabled: true
default: 1
prompt: "Kurzer Untertitel"
- id: intro
kind: capture_text
section: "## Einleitung"
label: "Einleitung"
prompt: "Beschreibe die Einleitung"
- id: items
kind: loop
label: "Erlebnisse"
item_label: "Erlebnis"
min_items: 1
steps:
- id: item_Headline
kind: capture_text_line
label: "Überschrift"
required: false
heading_level:
enabled: true
default: 2
prompt: "Nennen kurz die Gruppenüberschrift"
- id: level2
label: "Listeneinträge zusammenstellen"
kind: loop
steps:
- id: item_text
kind: capture_text
section: ""
label: "Liste"
required: true
prompt: "Stelle eine Liste von Erlebnisse zusammen"
- id: review
kind: review
label: "Review & Apply"
checks: [lint_current_note]
- key: experience_cluster_2
group: experience
label: "Experience Cluster2"
note_type: experience
defaults:
status: active
chunking_profile: timeline
steps:
- id: title
kind: capture_frontmatter
field: title
label: "Cluster Titel"
required: true
input:
kind: text_line
# Gruppen = Überschrift + viele Listeneinträge
- id: groups
kind: loop
label: "Erlebnis-Gruppen"
ui:
mode: subwizard # pro Gruppe eigener Flow
commit: on_next # kein Add-Item-Zwang
allow_edit: true
allow_delete: true
allow_reorder: true
show_item_overview: true # Übersicht, aber editierbar
output:
join: "\n" # Gruppen durch Leerzeile trennen
steps:
- id: group_heading
kind: heading
label: "Überschrift"
required: true
default_level: 2
allow_level_change: true
output:
template: "{hashes} {text}\n"
- id: entries
kind: loop
label: "Einträge"
ui:
mode: subwizard
commit: on_next
allow_edit: true
allow_delete: true
allow_reorder: true
show_item_overview: true
output:
join: "" # Einträge direkt unter Überschrift
steps:
- id: entry
kind: text_line
label: "Listeneintrag"
required: true
output:
template: "- {text}\n"
- id: review
kind: review
label: "Review & Apply"
checks:
- lint_current_note
- missing_targets
- missing_frontmatter_id
- key: experience_single
group: experience
label: "Experience Einzelereignis"
note_type: experience
defaults:
status: active
chunking_profile: timeline
steps:
- id: title
kind: capture_frontmatter
field: title
label: "Titel"
required: true
- id: context
kind: capture_text
section: "## 📖 Kontext"
label: "Kontext"
required: true
prompt: "In welchem Rahmen ist es passiert?"
- id: trigger
kind: capture_text
section: "## ⚡ Auslöser"
label: "Auslöser"
required: false
prompt: "Was hat es ausgelöst?"
- id: transformation
kind: capture_text
section: "## 🧠 Innere Transformation"
label: "Innere Transformation"
required: false
prompt: "Was hat sich innerlich verändert?"
- id: review
kind: review
label: "Review & Apply"
checks:
- lint_current_note
- missing_targets
- missing_frontmatter_id
- key: experience_hub
group: experience
label: "Experience Hub"
note_type: experience
defaults:
status: active
steps:
- id: title
kind: capture_frontmatter
field: title
label: "Hub Titel"
required: true
- id: items
kind: loop
label: "Erlebnisse"
item_label: "Erlebnis"
min_items: 1
steps:
- id: item_text
kind: capture_text
section: "## 🧩 Erlebnisse"
label: "Erlebnis"
required: true
prompt: "Beschreibe ein Erlebnis (kurz)."
- id: review
kind: review
label: "Review & Apply"
checks: [lint_current_note]
- key: principle
group: principle
label: "Principle"
note_type: principle
defaults:
status: stable
chunking_profile: principle_dense
retriever_weight: 2
steps:
- id: title
kind: capture_frontmatter
field: title
label: "Titel"
required: true
- id: statement
kind: capture_text
section: "## 🧭 Prinzip"
label: "Prinzip"
required: true
prompt: "Formuliere das Prinzip als klaren Satz."
- id: retriever_weight
kind: capture_frontmatter
field: retriever_weight
label: "Retriever Weight"
required: false
input:
kind: number
min: -3
max: 3
step: 1
- id: llm_refine
kind: llm_dialog
label: "LLM Verdichtung (manuell)"
mode: manual
prompt_template: |
Verdichte die bisherigen Inhalte zu 3-5 Bulletpoints.
Erfinde keine Fakten.
output_target:
kind: section_append
section: "## 🧠 Verdichtung (LLM Vorschlag)"
- id: review
kind: review
label: "Review & Apply"
checks: [lint_current_note]