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]>
97 lines
4.3 KiB
Markdown
97 lines
4.3 KiB
Markdown
# Vault-Struktur
|
|
|
|
## Ordner im Detail
|
|
|
|
### `00_Inbox/`
|
|
Alles, was schnell reinmuss: Fundstücke, Ideen, Gesprächsnotizen. Frontmatter
|
|
darf hier minimal sein (`type: inbox`, `title`, `created`). Der Ordner ist ein
|
|
Durchlauferhitzer, kein Lager — was länger als zwei Wochen liegt, meldet
|
|
`vault_doctor.py`.
|
|
|
|
### `10_Projects/<slug>/`
|
|
Ein Vorhaben mit Ziel und absehbarem Ende. Jedes Projekt ist ein **Ordner**,
|
|
kein einzelnes File, weil Projekte fast immer mehrere Notizen und Anhänge
|
|
sammeln:
|
|
|
|
```
|
|
10_Projects/auth-service/
|
|
├── index.md Projektnotiz — der Einstieg, type: project-code
|
|
├── decisions/ ADRs, type: decision
|
|
├── notes/ Arbeitsnotizen, Meetings, Logs
|
|
└── assets/ Diagramme, Exporte, PDFs
|
|
```
|
|
|
|
`index.md` ist Pflicht und trägt die Projekt-Zusammenfassung. Alle Unternotizen
|
|
tragen `project: <slug>` im Frontmatter — daran hängt `vault_query.py --project`.
|
|
|
|
Slug-Regel: kleingeschrieben, Bindestriche, keine Umlaute, so kurz wie
|
|
eindeutig (`auth-service`, nicht `Auth Service (neu, 2026)`).
|
|
|
|
### `20_Areas/`
|
|
Verantwortungsbereiche ohne Enddatum: Infrastruktur, Security, Homelab,
|
|
Weiterbildung, Kunde XY. Eine Area-Notiz ist gleichzeitig Landkarte für ihren
|
|
Bereich. Projekte verlinken auf ihre Area, nicht umgekehrt hart verdrahtet —
|
|
die Projektliste einer Area entsteht per Abfrage.
|
|
|
|
### `30_Research/`
|
|
Recherche, die über ein einzelnes Projekt hinaus Bestand hat. Eine Notiz = eine
|
|
Frage. Ist die Recherche nur für ein Projekt relevant und danach erledigt,
|
|
gehört sie in `10_Projects/<slug>/notes/`. Faustregel: Würde man das in einem
|
|
Jahr auch ohne dieses Projekt nochmal aufmachen? Dann `30_Research/`.
|
|
|
|
### `40_Templates/`
|
|
- `note-templates/` — Vorlagen für einzelne Notizen. Auch in Obsidian selbst
|
|
als Template-Ordner einstellbar (Einstellungen → Templates).
|
|
- `project-templates/` — **Template-Projekte**: vollständige Boilerplates, aus
|
|
denen neue Projekte entstehen (Starter-Repo-Struktur, Standard-Setups,
|
|
wiederkehrende Auftragsformate). Jedes Template-Projekt hat `index.md` mit
|
|
`use_when` im Frontmatter, damit die Auswahl später ohne Öffnen funktioniert.
|
|
|
|
Templates werden vom Doctor nicht als verwaist gemeldet und tauchen im Index
|
|
als eigene Gruppe auf.
|
|
|
|
### `50_Resources/`
|
|
Wissen ohne Projektbezug: Snippets, Runbooks, Cheatsheets, Konfigurations-
|
|
Notizen, Tool-Vergleiche. Der Unterschied zu `30_Research/`: Ressourcen sind
|
|
Nachschlagewerk, Research beantwortet eine Frage.
|
|
|
|
### `90_Archive/`
|
|
Abgeschlossenes bleibt lesbar und indexiert, ist aber aus dem Blick. Beim
|
|
Archivieren `status: archived` setzen und den kompletten Projektordner
|
|
verschieben, damit relative Verweise erhalten bleiben.
|
|
|
|
### `_index/`
|
|
Generiert von `build_index.py`. Enthält `vault-index.json` (Maschine),
|
|
`INDEX.md` (Mensch), `backlinks.json`. Nie von Hand editieren. Wer den Ordner
|
|
in Obsidian nicht sehen will: Einstellungen → Dateien und Links → „Ausgeschlossene
|
|
Dateien" auf `_index` setzen (er bleibt auf der Platte und für die Skripte
|
|
nutzbar).
|
|
|
|
## Wohin gehört diese Notiz?
|
|
|
|
1. Gehört sie zu einem konkreten Vorhaben mit Ende? → `10_Projects/<slug>/`
|
|
2. Beantwortet sie eine Frage, die auch ohne das Vorhaben interessant bleibt?
|
|
→ `30_Research/`
|
|
3. Ist es eine Vorlage oder ein Boilerplate? → `40_Templates/…`
|
|
4. Ist es Nachschlagewissen ohne Frage und ohne Vorhaben? → `50_Resources/`
|
|
5. Ist es ein Dauerbereich, unter dem mehrere Projekte hängen? → `20_Areas/`
|
|
6. Weiß man es nicht? → `00_Inbox/` und beim nächsten Aufräumen entscheiden.
|
|
Das ist kein Versagen, sondern der vorgesehene Weg.
|
|
|
|
## Dateinamen
|
|
|
|
- Dateiname = sprechender Titel, keine Datumspräfixe (Datum steht im
|
|
Frontmatter und ist dort auch sortierbar).
|
|
- Ausnahme: Daily-/Log-Notizen, dort `YYYY-MM-DD.md`.
|
|
- Projekt- und Template-Ordner tragen Slugs, einzelne Notizen dürfen Leerzeichen
|
|
und Großschreibung haben — Obsidian-Wikilinks kommen damit klar.
|
|
- Keine Umlaute in Ordnernamen; in Dateinamen sind sie unkritisch, aber Slugs
|
|
bleiben ASCII.
|
|
|
|
## Anpassung der Struktur
|
|
|
|
Die Ordnernamen sind nicht heilig, die Zuordnung Pfad → Typ schon: Sie steht in
|
|
`scripts/vaultlib.py` unter `FOLDER_TYPES`. Wer umbenennt, passt dort an —
|
|
sonst raten die Skripte falsch, und `type` im Frontmatter muss überall explizit
|
|
gesetzt sein. Frontmatter gewinnt immer gegen die Ordner-Ableitung.
|