# 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//` 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: ` 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//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//` 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.