.vault-tools (ohne trading-plattform-pruefung und watermarks-remover), .claude/agents, .claude/skills, .claude/workflows, .claude/settings.json. Co-Authored-By: Claude Opus 5.5 <[email protected]>
111 lines
4.2 KiB
Markdown
111 lines
4.2 KiB
Markdown
# 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
|
||
|
||
```yaml
|
||
---
|
||
uid: 20260803-auth-service
|
||
type: project-code
|
||
title: Auth Service
|
||
status: active
|
||
summary: OIDC-Auth-Service für die interne Toolchain, Go + Keycloak, löst die verteilten Basic-Auth-Setups ab.
|
||
tags: [go, oidc, keycloak, infrastruktur]
|
||
repo: [email protected]:me/auth-service.git
|
||
lang: go
|
||
stack: [postgres, keycloak, docker]
|
||
template_of: go-service-starter
|
||
area: infrastruktur
|
||
created: 2026-08-03
|
||
updated: 2026-08-03
|
||
---
|
||
```
|
||
|
||
## 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.
|