Files
Pascal MichelandClaude Opus 5 c064c729ed Regelwerk, Agenten, Skills und Werkzeuge veröffentlichen
Erster Stand des öffentlichen Ausschnitts aus dem Vault. Die .gitignore
arbeitet als Positivliste: ausgeschlossen ist alles, eingeschlossen nur,
was ausdrücklich wieder aufgenommen wird. Notizen, Projekte, Finanzen,
das Sitzungsgedächtnis und settings.local.json bleiben damit außen vor.

Der Kundenname in AI/Regelwerk/seo.md ist durch eine neutrale
Bezeichnung ersetzt; die Regeln selbst sind unverändert.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-17 22:38:15 +02:00

111 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.