Frontmatter-Schema
Obsidian nennt Frontmatter „Properties". Es ist YAML zwischen zwei ----Zeilen
am Dateianfang. Der Index liest genau diese Felder — was hier fehlt, muss der
Agent sich durch Öffnen der Datei erarbeiten, und genau das kostet Kontext.
Pflichtfelder (alle Notiztypen)
| Feld |
Typ |
Bedeutung |
uid |
String |
Stabile ID, Format YYYYMMDD-slug. Überlebt Umbenennen und Verschieben; Verweise in Skripten hängen daran. |
type |
Enum |
Steuert Gruppierung, Templates und Abfragen. Gewinnt gegen die Ableitung aus dem Ordner. |
title |
String |
Anzeigename. Fehlt er, nimmt der Index die erste #-Überschrift, sonst den Dateinamen. |
status |
Enum |
Lebenszyklus, siehe unten. |
summary |
String |
Ein Satz, max. 160 Zeichen. Worum geht es und wofür macht man die Notiz auf. |
tags |
Liste |
Kleingeschrieben, ohne #, Technologie/Thema. 3–6 Stück, nicht 20. |
created |
Datum |
YYYY-MM-DD |
updated |
Datum |
YYYY-MM-DD, bei inhaltlichen Änderungen mitziehen. |
Erlaubte type-Werte
project-code, template-project, note-template, research, area,
resource, moc, decision, inbox, archive
Neue Typen nur bewusst einführen und dann in scripts/vaultlib.py unter
KNOWN_TYPES eintragen, sonst meldet der Doctor sie als unbekannt.
Erlaubte status-Werte
| Wert |
Bedeutung |
idea |
notiert, noch nicht begonnen |
active |
wird gerade bearbeitet |
paused |
bewusst liegengelassen, kommt zurück |
done |
abgeschlossen, noch am Platz |
archived |
abgeschlossen und nach 90_Archive/ verschoben |
reference |
Dauerhaftes ohne Fortschritt (Areas, Ressourcen, Templates) |
Zusätzliche Felder je Typ
project-code
| Feld |
Beispiel |
Zweck |
repo |
[email protected]:me/auth-service.git |
Sprung ins Repo ohne Suche |
lang |
go |
Hauptsprache |
stack |
[postgres, keycloak, docker] |
Umgebung auf einen Blick |
template_of |
go-service-starter |
aus welchem Template-Projekt entstanden |
area |
infrastruktur |
zugehöriger Dauerbereich |
research
| Feld |
Beispiel |
Zweck |
question |
Welche Rate-Limiting-Strategie passt zu Gateway X? |
die eine Frage |
sources |
[https://…, "Buch, S. 40"] |
Belege |
confidence |
low / medium / high |
wie belastbar die Antwort ist |
project |
auth-service |
auslösendes Projekt |
template-project
| Feld |
Beispiel |
Zweck |
use_when |
Neuer Go-Service mit HTTP-API und Postgres |
Auswahl ohne Öffnen |
stack |
[go, postgres, docker] |
|
template_of |
— |
bleibt leer; wird in den abgeleiteten Projekten gesetzt |
decision (ADR)
| Feld |
Beispiel |
project |
auth-service |
decided |
2026-08-03 |
supersedes |
20260101-mongo-als-store |
area, resource, moc, note-template
Nur die Pflichtfelder. Bei moc ist summary besonders wichtig, weil MOCs
Einstiegspunkte sind.
Beispiel
Was nicht ins Frontmatter gehört
- Fließtext oder mehrzeilige Beschreibungen — dafür ist der Body da.
- Werte, die sich täglich ändern (Fortschritt in Prozent, laufende Zahlen).
- Secrets, Tokens, Passwörter, Zugangsdaten. Nie, auch nicht „nur kurz".
- Duplikate von Wikilinks — Links stehen im Body unter
## Referenzen.
Massenpflege
vault_doctor.py --fix-missing ergänzt fehlende Felder konservativ: type aus
dem Ordner, title aus der ersten Überschrift, summary aus dem ersten Absatz,
uid aus Datum + Slug. Es überschreibt nie vorhandene Werte und rührt den Body
nicht an. Standard ist ein Trockenlauf; erst --apply schreibt. Danach die
generierten summary-Werte durchsehen — automatisch abgeleitete Sätze sind
brauchbar, aber selten so gut wie ein bewusst geschriebener.