- Expanded the interview configuration YAML to include new profiles for experience and insight, with detailed steps for capturing user input. - Updated the parsing logic to support new input types, including select options, enhancing user interaction during interviews. - Improved the rendering logic to ensure correct handling of section edges and types, aligning with the updated configuration structure. - Enhanced tests to validate the new configurations and rendering behavior, ensuring robustness in the interview process.
731 lines
19 KiB
YAML
731 lines
19 KiB
YAML
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:
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# EXPERIENCE
|
||
# ---------------------------------------------------------------------------
|
||
- key: experience_basic
|
||
group: history
|
||
label: "Experience – Basis"
|
||
note_type: experience
|
||
defaults:
|
||
status: active
|
||
folder: "03_experience"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.0
|
||
edging:
|
||
mode: both
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Titel"
|
||
required: true
|
||
|
||
- id: significance
|
||
kind: capture_frontmatter
|
||
field: retriever_weight
|
||
label: "Bedeutung"
|
||
required: false
|
||
input:
|
||
kind: select
|
||
options:
|
||
- label: "Normal (1.0)"
|
||
value: 1.0
|
||
- label: "Signifikant / prägend (1.1)"
|
||
value: 1.1
|
||
|
||
- id: situation
|
||
kind: capture_text
|
||
section: "## Situation (Was ist passiert?)"
|
||
label: "Situation"
|
||
required: true
|
||
prompt: "Was ist passiert? Wer war beteiligt? Was war der Kontext?"
|
||
section_type: experience
|
||
generate_block_id: true
|
||
|
||
- id: reaction
|
||
kind: capture_text
|
||
section: "## Meine Reaktion (Was habe ich getan?)"
|
||
label: "Reaktion"
|
||
required: true
|
||
prompt: "Was hast du konkret getan/gesagt/unterlassen?"
|
||
section_type: experience
|
||
generate_block_id: true
|
||
|
||
- id: impact
|
||
kind: capture_text
|
||
section: "## Ergebnis & Auswirkung"
|
||
label: "Auswirkung"
|
||
required: false
|
||
prompt: "Welche Folgen hatte es (kurzfristig/langfristig)?"
|
||
section_type: state
|
||
generate_block_id: true
|
||
|
||
- id: learning
|
||
kind: capture_text
|
||
section: "## Reflexion & Learning (Was lerne ich daraus?)"
|
||
label: "Learning"
|
||
required: false
|
||
prompt: "Welche Erkenntnis oder Regel ergibt sich daraus?"
|
||
section_type: insight
|
||
generate_block_id: true
|
||
|
||
- id: next
|
||
kind: capture_text
|
||
section: "## Nächster Schritt"
|
||
label: "Nächster Schritt"
|
||
required: false
|
||
prompt: "Was folgt daraus ganz konkret?"
|
||
section_type: decision
|
||
generate_block_id: true
|
||
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_targets
|
||
- missing_frontmatter_id
|
||
|
||
- key: experience_hub
|
||
group: history
|
||
label: "Experience – Hub"
|
||
note_type: experience
|
||
defaults:
|
||
status: active
|
||
folder: "03_experience"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.2
|
||
edging:
|
||
mode: post_run
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Hub Titel"
|
||
required: true
|
||
|
||
- id: purpose
|
||
kind: capture_text
|
||
section: "## Zweck / Klammer"
|
||
label: "Zweck"
|
||
required: false
|
||
prompt: "Wozu ist dieser Hub da? Welche Art von Erlebnissen sammelt er?"
|
||
section_type: experience
|
||
generate_block_id: true
|
||
|
||
- id: items
|
||
kind: loop
|
||
label: "Einträge"
|
||
item_label: "Eintrag"
|
||
min_items: 1
|
||
steps:
|
||
- id: item
|
||
kind: capture_text_line
|
||
label: "Erlebnis (Kurzform)"
|
||
required: true
|
||
prompt: "Kurzbeschreibung + ggf. Link auf Detail-Note"
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_frontmatter_id
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# INSIGHT
|
||
# ---------------------------------------------------------------------------
|
||
- key: insight_basic
|
||
group: knowledge
|
||
label: "Insight – Basis"
|
||
note_type: insight
|
||
defaults:
|
||
status: active
|
||
folder: "04_insight"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.0
|
||
edging:
|
||
mode: both
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Titel"
|
||
required: true
|
||
|
||
- id: significance
|
||
kind: capture_frontmatter
|
||
field: retriever_weight
|
||
label: "Bedeutung"
|
||
required: false
|
||
input:
|
||
kind: select
|
||
options:
|
||
- label: "Normal (1.0)"
|
||
value: 1.0
|
||
- label: "Signifikant (1.1)"
|
||
value: 1.1
|
||
|
||
- id: observation
|
||
kind: capture_text
|
||
section: "## Beobachtung (Was sehe ich?)"
|
||
label: "Beobachtung"
|
||
required: true
|
||
prompt: "Welche konkrete Beobachtung ist der Ausgangspunkt?"
|
||
section_type: insight
|
||
generate_block_id: true
|
||
|
||
- id: interpretation
|
||
kind: capture_text
|
||
section: "## Interpretation (Was bedeutet das?)"
|
||
label: "Interpretation"
|
||
required: true
|
||
prompt: "Welche Erklärung/Schlussfolgerung ziehst du daraus?"
|
||
section_type: insight
|
||
generate_block_id: true
|
||
|
||
- id: need
|
||
kind: capture_text
|
||
section: "## Bedürfnis (Was steckt dahinter?)"
|
||
label: "Bedürfnis"
|
||
required: false
|
||
prompt: "Welches Bedürfnis/Anliegen wird sichtbar?"
|
||
section_type: need
|
||
generate_block_id: true
|
||
|
||
- id: recommendation
|
||
kind: capture_text
|
||
section: "## Handlungsempfehlung"
|
||
label: "Handlungsempfehlung"
|
||
required: false
|
||
prompt: "Welche konkrete Empfehlung ergibt sich?"
|
||
section_type: decision
|
||
generate_block_id: true
|
||
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_targets
|
||
- missing_frontmatter_id
|
||
|
||
- key: insight_hub
|
||
group: knowledge
|
||
label: "Insight – Hub"
|
||
note_type: insight
|
||
defaults:
|
||
status: active
|
||
folder: "04_insight"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.2
|
||
edging:
|
||
mode: post_run
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Hub Titel"
|
||
required: true
|
||
|
||
- id: scope
|
||
kind: capture_text
|
||
section: "## Scope"
|
||
label: "Scope"
|
||
required: false
|
||
prompt: "Welche Art von Insights werden hier gesammelt?"
|
||
section_type: insight
|
||
generate_block_id: true
|
||
|
||
- id: items
|
||
kind: loop
|
||
label: "Einträge"
|
||
item_label: "Eintrag"
|
||
min_items: 1
|
||
steps:
|
||
- id: item
|
||
kind: capture_text_line
|
||
label: "Insight (Kurzform)"
|
||
required: true
|
||
prompt: "Kurzform + ggf. Link auf Detail-Note"
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_frontmatter_id
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# DECISION
|
||
# ---------------------------------------------------------------------------
|
||
- key: decision_basic
|
||
group: action
|
||
label: "Decision – Basis"
|
||
note_type: decision
|
||
defaults:
|
||
status: active
|
||
folder: "05_decision"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.0
|
||
edging:
|
||
mode: both
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Titel"
|
||
required: true
|
||
|
||
- id: significance
|
||
kind: capture_frontmatter
|
||
field: retriever_weight
|
||
label: "Bedeutung"
|
||
required: false
|
||
input:
|
||
kind: select
|
||
options:
|
||
- label: "Normal (1.0)"
|
||
value: 1.0
|
||
- label: "Signifikant (1.1)"
|
||
value: 1.1
|
||
|
||
- id: context
|
||
kind: capture_text
|
||
section: "## Kontext & Problemstellung"
|
||
label: "Kontext"
|
||
required: true
|
||
prompt: "Was ist die Situation? Welches Problem/Tradeoff muss gelöst werden?"
|
||
section_type: decision
|
||
generate_block_id: true
|
||
|
||
- id: options
|
||
kind: loop
|
||
label: "Optionen"
|
||
item_label: "Option"
|
||
min_items: 1
|
||
steps:
|
||
- id: option
|
||
kind: capture_text
|
||
section: ""
|
||
label: "Option"
|
||
required: true
|
||
prompt: "Beschreibe eine Option inkl. Vor-/Nachteile (kurz)."
|
||
|
||
- id: rationale
|
||
kind: capture_text
|
||
section: "## Begründung (Werte/Prinzipien/Einsichten)"
|
||
label: "Begründung"
|
||
required: true
|
||
prompt: "Welche Werte/Prinzipien/Erfahrungen/Einsichten begründen die Wahl?"
|
||
section_type: insight
|
||
generate_block_id: true
|
||
|
||
- id: decision
|
||
kind: capture_text
|
||
section: "## Entscheidung"
|
||
label: "Entscheidung"
|
||
required: true
|
||
prompt: "Welche Entscheidung triffst du konkret?"
|
||
section_type: decision
|
||
generate_block_id: true
|
||
|
||
- id: risks
|
||
kind: capture_text
|
||
section: "## Risiken & Tradeoffs"
|
||
label: "Risiken"
|
||
required: false
|
||
prompt: "Welche Risiken nimmst du bewusst in Kauf? Welche Gegenmaßnahmen?"
|
||
section_type: risk
|
||
generate_block_id: true
|
||
|
||
- id: execution
|
||
kind: capture_text
|
||
section: "## Umsetzung / Nächste Schritte"
|
||
label: "Umsetzung"
|
||
required: false
|
||
prompt: "Was sind die nächsten konkreten Schritte?"
|
||
section_type: task
|
||
generate_block_id: true
|
||
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_targets
|
||
- missing_frontmatter_id
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# PROJECT / GOAL / TASK
|
||
# ---------------------------------------------------------------------------
|
||
- key: project_basic
|
||
group: action
|
||
label: "Project – Basis"
|
||
note_type: project
|
||
defaults:
|
||
status: active
|
||
folder: "02_project"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.0
|
||
edging:
|
||
mode: both
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Titel"
|
||
required: true
|
||
|
||
- id: mission
|
||
kind: capture_text
|
||
section: "## Mission & Zielsetzung"
|
||
label: "Mission"
|
||
required: true
|
||
prompt: "Wozu gibt es dieses Projekt? Was ist der Zielzustand?"
|
||
section_type: goal
|
||
generate_block_id: true
|
||
|
||
- id: status
|
||
kind: capture_text
|
||
section: "## Aktueller Status"
|
||
label: "Status"
|
||
required: false
|
||
prompt: "Wo stehst du gerade?"
|
||
section_type: state
|
||
generate_block_id: true
|
||
|
||
- id: blockers
|
||
kind: capture_text
|
||
section: "## Blockaden / Hindernisse"
|
||
label: "Blockaden"
|
||
required: false
|
||
prompt: "Was blockiert Fortschritt? Warum?"
|
||
section_type: obstacle
|
||
generate_block_id: true
|
||
|
||
- id: next
|
||
kind: capture_text
|
||
section: "## Nächste konkrete Schritte"
|
||
label: "Nächste Schritte"
|
||
required: true
|
||
prompt: "Welche 1–3 nächsten Schritte bringen dich voran?"
|
||
section_type: task
|
||
generate_block_id: true
|
||
|
||
- id: risks
|
||
kind: capture_text
|
||
section: "## Risiken"
|
||
label: "Risiken"
|
||
required: false
|
||
prompt: "Welche Risiken gibt es, und was tust du dagegen?"
|
||
section_type: risk
|
||
generate_block_id: true
|
||
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_targets
|
||
- missing_frontmatter_id
|
||
|
||
- key: goal_basic
|
||
group: action
|
||
label: "Goal – Basis"
|
||
note_type: goal
|
||
defaults:
|
||
status: active
|
||
folder: "02_goal"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.0
|
||
edging:
|
||
mode: both
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Titel"
|
||
required: true
|
||
|
||
- id: target
|
||
kind: capture_text
|
||
section: "## Zielzustand"
|
||
label: "Zielzustand"
|
||
required: true
|
||
prompt: "Was ist der Zielzustand (klar, überprüfbar)?"
|
||
section_type: goal
|
||
generate_block_id: true
|
||
|
||
- id: why
|
||
kind: capture_text
|
||
section: "## Motivation / Warum"
|
||
label: "Warum"
|
||
required: false
|
||
prompt: "Warum ist es dir wichtig?"
|
||
section_type: motivation
|
||
generate_block_id: true
|
||
|
||
- id: constraints
|
||
kind: capture_text
|
||
section: "## Constraints"
|
||
label: "Constraints"
|
||
required: false
|
||
prompt: "Welche Randbedingungen (Zeit, Energie, Ressourcen) gelten?"
|
||
section_type: obstacle
|
||
generate_block_id: true
|
||
|
||
- id: next
|
||
kind: capture_text
|
||
section: "## Nächster Schritt"
|
||
label: "Nächster Schritt"
|
||
required: false
|
||
prompt: "Was ist der nächste konkrete Schritt?"
|
||
section_type: task
|
||
generate_block_id: true
|
||
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_targets
|
||
- missing_frontmatter_id
|
||
|
||
- key: task_basic
|
||
group: action
|
||
label: "Task – Basis"
|
||
note_type: task
|
||
defaults:
|
||
status: active
|
||
folder: "02_task"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.0
|
||
edging:
|
||
mode: both
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Titel"
|
||
required: true
|
||
|
||
- id: task
|
||
kind: capture_text
|
||
section: "## Aufgabe"
|
||
label: "Aufgabe"
|
||
required: true
|
||
prompt: "Was ist zu tun (klar, klein, überprüfbar)?"
|
||
section_type: task
|
||
generate_block_id: true
|
||
|
||
- id: context
|
||
kind: capture_text
|
||
section: "## Kontext"
|
||
label: "Kontext"
|
||
required: false
|
||
prompt: "Zu welchem Projekt/Entscheidung gehört es? Warum jetzt?"
|
||
section_type: project
|
||
generate_block_id: true
|
||
|
||
- id: dod
|
||
kind: capture_text
|
||
section: "## Definition of Done"
|
||
label: "DoD"
|
||
required: false
|
||
prompt: "Woran erkennst du: fertig?"
|
||
section_type: task
|
||
generate_block_id: true
|
||
|
||
- id: blockers
|
||
kind: capture_text
|
||
section: "## Blocker"
|
||
label: "Blocker"
|
||
required: false
|
||
prompt: "Was blockiert?"
|
||
section_type: obstacle
|
||
generate_block_id: true
|
||
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_targets
|
||
- missing_frontmatter_id
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# VALUE / PRINCIPLE (Normativer Kern)
|
||
# ---------------------------------------------------------------------------
|
||
- key: value_basic
|
||
group: identity
|
||
label: "Value – Basis"
|
||
note_type: value
|
||
defaults:
|
||
status: active
|
||
folder: "01_value"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.0
|
||
edging:
|
||
mode: both
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Titel"
|
||
required: true
|
||
|
||
- id: definition
|
||
kind: capture_text
|
||
section: "## Definition"
|
||
label: "Definition"
|
||
required: true
|
||
prompt: "Was bedeutet dieser Wert für dich (in einem Satz + 2–3 Bulletpoints)?"
|
||
section_type: value
|
||
generate_block_id: true
|
||
|
||
- id: origin
|
||
kind: capture_text
|
||
section: "## Herkunft / Warum mir das wichtig ist"
|
||
label: "Warum"
|
||
required: false
|
||
prompt: "Woher kommt das (Erlebnis/Einsicht)?"
|
||
section_type: experience
|
||
generate_block_id: true
|
||
|
||
- id: principles
|
||
kind: capture_text
|
||
section: "## Operationalisierung (Prinzipien)"
|
||
label: "Prinzipien"
|
||
required: false
|
||
prompt: "Welche Prinzipien machen den Wert im Alltag sichtbar?"
|
||
section_type: principle
|
||
generate_block_id: true
|
||
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_targets
|
||
- missing_frontmatter_id
|
||
|
||
- key: value_hub
|
||
group: identity
|
||
label: "Value – Hub"
|
||
note_type: value
|
||
defaults:
|
||
status: active
|
||
folder: "01_value"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.2
|
||
edging:
|
||
mode: post_run
|
||
steps:
|
||
- id: title
|
||
kind: capture_frontmatter
|
||
field: title
|
||
label: "Hub Titel"
|
||
required: true
|
||
- id: scope
|
||
kind: capture_text
|
||
section: "## Scope"
|
||
label: "Scope"
|
||
required: false
|
||
prompt: "Welche Werte sind hier gebündelt und warum?"
|
||
section_type: value
|
||
generate_block_id: true
|
||
- id: items
|
||
kind: loop
|
||
label: "Einträge"
|
||
item_label: "Wert"
|
||
min_items: 1
|
||
steps:
|
||
- id: item
|
||
kind: capture_text_line
|
||
label: "Wert (Kurzform)"
|
||
required: true
|
||
prompt: "Kurzform + Link auf Detail-Note"
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_frontmatter_id
|
||
|
||
- key: principle_basic
|
||
group: identity
|
||
label: "Principle – Basis"
|
||
note_type: principle
|
||
defaults:
|
||
status: active
|
||
folder: "01_principle"
|
||
chunking_profile: structured_smart_edges
|
||
retriever_weight: 1.0
|
||
edging:
|
||
mode: both
|
||
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."
|
||
section_type: principle
|
||
generate_block_id: true
|
||
|
||
- id: application
|
||
kind: capture_text
|
||
section: "## Anwendung (Entscheidungsregeln)"
|
||
label: "Anwendung"
|
||
required: false
|
||
prompt: "Wie wendest du es konkret an? (Wenn-dann-Regeln, Beispiele)"
|
||
section_type: decision
|
||
generate_block_id: true
|
||
|
||
- id: signals
|
||
kind: capture_text
|
||
section: "## Signale / Wächterfragen"
|
||
label: "Signale"
|
||
required: false
|
||
prompt: "Woran erkennst du, dass du dem Prinzip folgst oder davon abweichst?"
|
||
section_type: insight
|
||
generate_block_id: true
|
||
|
||
- id: review
|
||
kind: review
|
||
label: "Review & Apply"
|
||
checks:
|
||
- lint_current_note
|
||
- missing_targets
|
||
- missing_frontmatter_id
|
||
|