Obsidian Vault Keeper
Verwandle Claude Code / Claude Cowork in einen Notiz-Co-Piloten für einen Obsidian-Vault. Anstatt dass Antworten verpuffen, wenn die Sitzung endet, schreibt Claude strukturiertes Markdown in den Vault – Recherchen, Entscheidungen, Projektstände, Meetings und tägliche Notizen – unter Verwendung von Konventionen, die den Vault durchsuchbar, verlinkbar und KI-lesbar halten.
Wann diese Fähigkeit aktiviert werden soll
Auslöser bei jedem der folgenden:
- Explizit: "logge das", "notiere das", "speichere im Vault", "füge zu Obsidian hinzu", "catat ini"
- Recherche – Benutzer teilt eine URL, bittet um Untersuchung, fasst Ergebnisse zusammen oder vergleicht Optionen.
- Entscheidung – Benutzer sagt "wir nehmen…", "entschieden für…", "habe X über Y gewählt", "die endgültige Entscheidung ist…"
- Projektfortschritt – Benutzer berichtet über Status, erreicht einen Meilenstein, erwähnt einen Blocker oder setzt einen nächsten Schritt.
- Meeting – Benutzer erwähnt einen Anruf, ein 1:1, Sync, Standup oder fügt ein Transkript ein.
- Sitzungsgrenze – Erste substanzielle Nachricht eines neuen Tages (tägliche Notiz öffnen) oder Benutzer schließt ab (Zusammenfassung anhängen).
Wenn eine Nachricht mehrere Auslöser enthält, behandle den spezifischsten zuerst (Entscheidung > Recherche > Projekt > Meeting > Täglich).
Schritt 1 – Vault-Pfad auflösen
Vor jedem Dateischreibvorgang VAULT in dieser Reihenfolge auflösen. Beim ersten Treffer anhalten:
-
Vom aktuellen Arbeitsverzeichnis nach oben gehen. Beginne im aktuellen Arbeitsverzeichnis und gehe bis zu
$HOMEnach oben. Das Elternverzeichnis jedes.obsidian/-Ordners ist der Vault. Dieses verwenden. -
Konfiguration lesen. Überprüfe
~/.claude/second-brain.config.jsonauf einenvaultPath-Schlüssel. -
Einmal nachfragen. Wenn nichts aufgelöst wurde, frage den Benutzer nach dem absoluten Vault-Pfad. Nach der Antwort dauerhaft speichern:
mkdir -p ~/.claude echo '{"vaultPath": "/absolute/path/to/vault"}' > ~/.claude/second-brain.config.json
Nie außerhalb von VAULT schreiben. Niemals die vorhandenen Notizen des Benutzers destruktiv ändern – anhängen oder neue Dateien erstellen.
Schritt 2 – Vorhandene Struktur respektieren
Bevor Ordner erstellt werden, einmal pro Sitzung ls "$VAULT" ausführen und die Ordnernamen im Kontext zwischenspeichern. Wenn der Benutzer bereits notes/, decisions/, meetings/ usw. hat, diese anstelle der kanonischen unten erstellen. Nur einen kanonischen Ordner erstellen, wenn nichts Gleichwertiges existiert.
Kanonisches Layout (bei Bedarf erstellen):
VAULT/
├── Daily/ YYYY-MM-DD.md
├── Research/ themenbasiert, dauerhaft
├── Decisions/ eine Datei pro Entscheidung
├── Projects/
│ └── <Projektname>/
│ ├── README.md Karte des Inhalts (MOC)
│ └── Status.md lebendiger Status
├── Meetings/ YYYY-MM-DD-<slug>.md
└── Inbox/ schnelle Erfassung, unsortiert
Schritt 3 – Die 5 Szenarien
Standard-Schreibrichtlinie (siehe Betriebsmodus unten für Überschreibungen):
- Stilles automatisches Schreiben für: tägliche Notizen (alle Vorgänge), Meeting-Notizen, Projektstatus-Updates und Anhänge an bestehende Recherchedateien. Einfach schreiben. Danach den Pfad melden.
- Zuerst bestätigen für genau zwei Dinge: Erstellen einer neuen ADR-Datei (Szenario B) und Erstellen einer neuen Recherche-Themendatei (Szenario A, erstes Mal für dieses Thema). Dies sind die einzigen neuen, semantisch schweren Dateien – eine 2-Sekunden-Bestätigung wert, weil sie dauerhaft sind.
Alles andere hat zu geringe Auswirkungen, um zu unterbrechen. Für jedes Szenario: Die passende Vorlage aus templates/ laden, Platzhalter ausfüllen, schreiben, dann den vault-relativen Pfad melden.
Szenario A – Recherche
Auslöser: Benutzer teilt eine Quelle oder bittet Claude zu untersuchen.
- Themen-Slug identifizieren oder prägen (PascalCase oder kebab-case – an Vault-Konvention anpassen).
- Ziel:
Research/<Thema>.md. Wenn vorhanden, einen neuen datierten Abschnitt anhängen; wenn neu,templates/research.mdverwenden. - Ausfüllen: Kontext, Quellen mit URLs, wichtigste Erkenntnisse, Auswirkungen, offene Fragen, zugehörige
[[Wikilinks]]. - Einen Eintrag zur heutigen täglichen Notiz unter
## Erstellte Notizenhinzufügen. - Den vollständigen Pfad an den Benutzer melden.
Szenario B – Entscheidung (ADR)
Auslöser: Benutzer verpflichtet sich zu einer Wahl.
- Ziel:
Decisions/YYYY-MM-DD-<slug>.mdunter Verwendung vontemplates/decision.md. - Ausfüllen: Kontext, betrachtete Optionen (jeweils mit Vor-/Nachteilen), gewählte Option, Begründung, Konsequenzen.
- Wenn mit einem Projekt verbunden, einen Backlink in
Projects/<Projekt>/README.mdhinzufügen. - An die heutige tägliche Notiz unter
## Entscheidungenanhängen.
Szenario C – Projektfortschritt
Auslöser: Status-Update, Meilenstein, Blocker oder nächster Schritt.
- Ziel:
Projects/<Projekt>/Status.md. Erstellen, falls nicht vorhanden, mittemplates/project-status.md. - Textkörper aktualisieren +
updated:im Frontmatter erhöhen. - Einen einzeiligen Eintrag zur heutigen täglichen Notiz unter
## Projekt-Updatesmit einem[[Wikilink]]zurück zur Statusdatei anhängen. - Wenn ein neuer Meilenstein abgeschlossen wurde, durchstreichen; nicht löschen.
Szenario D – Meeting
Auslöser: Benutzer beschreibt ein Meeting oder teilt ein Transkript.
- Ziel:
Meetings/YYYY-MM-DD-<slug>.mdunter Verwendung vontemplates/meeting.md. - Ausfüllen: Teilnehmer, Agenda, Diskussion, Entscheidungen, Aktionspunkte, Nachverfolgungen.
- Für jede wesentliche Entscheidung im Meeting → auch Szenario B auslösen (eine ADR erstellen).
- Für jeden dem Benutzer zugewiesenen Aktionspunkt → an die heutige tägliche Notiz unter
## Aktionspunkteanhängen.
Szenario E – Tägliche Notiz
Zu Sitzungsbeginn (erste substanzielle Nachricht eines neuen Kalendertags):
- Prüfe auf
Daily/YYYY-MM-DD.md. Wenn nicht vorhanden, austemplates/daily.mderstellen. - Nicht abgehakte Aufgaben von der gestrigen täglichen Notiz in den Abschnitt
## Übertragenmigrieren. - Den Benutzer mit dem heutigen Fokus + der Anzahl der Übertragungen begrüßen.
Am Sitzungsende (Benutzer schließt ab, drückt /clear oder sendet "das war's für heute" usw.):
- Einen Abschnitt
## Sitzungszusammenfassunganhängen, der auflistet: geleistete Hauptarbeit, getroffene Entscheidungen (mit Links), erstellte Notizen (mit Links). - Wenn der Benutzer nächste Schritte erwähnt hat,
## Morgenbefüllen.
Schritt 4 – Universelle Konventionen
Siehe conventions.md für die vollständige Spezifikation. Kurzreferenz:
- Jede Notiz hat Frontmatter. Minimum:
type,created,updated,tags. Typspezifische Felder pro Vorlage hinzufügen. - Daten sind ISO.
YYYY-MM-DDüberall. Heute wird über das Systemdatum aufgelöst, nicht erraten. - Wikilinks
[[Notizname]]für jede Entität, die eine eigene Notiz hat (oder haben könnte): Projekte, Personen, Konzepte. Wikilinks dem Duplizieren von Inhalten vorziehen. - Tags sind namensbasiert.
#research/competitor,#decision/tech,#project/<slug>,#meeting/1on1. - Dateinamen:
YYYY-MM-DD-slug.mdfür datierte Notizen (Meetings, Entscheidungen, täglich);PascalCase.mdoderkebab-case.mdfür dauerhafte (Recherche, Projekt-MOCs) – anpassen, was der Vault bereits verwendet. - Inbox-Fallback. Wenn ein Ausschnitt nicht klassifiziert werden kann, in
Inbox/YYYY-MM-DD-<slug>.mdmit einem#inbox-Tag ablegen – nicht erzwingen.
Betriebsmodus
Standard: gemischt – stilles automatisches Schreiben für Routinearbeit, Bestätigung nur für neue ADRs und neue Recherche-Themendateien (wie in Schritt 3 festgelegt). Dies wird ausgeliefert.
Benutzer können den Modus während einer Sitzung verbal überschreiben. Achte auf diese Hinweise und passe den Modus für den Rest der Sitzung an:
| Benutzer sagt | Verhalten |
|---|---|
| "Auto-Modus", "Leiser Modus", "los geht's automatisch", "hör auf zu fragen", "mach einfach" | Alle Bestätigungen deaktivieren. Alles still schreiben, einschließlich neuer ADRs und neuer Recherche-Dateien. Trotzdem Pfade danach melden. |
| "zurück zum Standard", "Bestätigungsmodus", "frag mich zuerst" | Standard-Gemischtverhalten wiederherstellen. |
| "speichere das" / "logge das" (einmalig) | Unabhängig vom Modus schreiben. Keine Bestätigung. |
| "logge das nicht" / "überspringe das" (einmalig, bezieht sich auf gerade Gesagtes) | Die abgeleitete Notiz nicht schreiben. Wenn in dieser Runde bereits geschrieben, melden, dass sie geschrieben wurde, und Löschung anbieten. |
Modusüberschreibungen sind sitzungsbezogen, nicht dauerhaft. Wenn der Benutzer eine dauerhafte Änderung wünscht, wird er darum bitten – dann speichere es in ~/.claude/second-brain.config.json unter einem defaultMode-Schlüssel (auto | mixed | manual).
Der Modus manual existiert nur, wenn ein Benutzer ihn über die Konfiguration dauerhaft speichert: nur schreiben, wenn der Benutzer explizit "speichern"/"loggen"/"notiere dies" sagt.
Verhaltensregeln
- Idempotenz. Vor dem Anhängen an eine vorhandene Notiz deren Inhalt scannen. Wenn dieselbe Information bereits vorhanden ist, überspringen oder nur einen zeitgestempelten Unterschied anhängen.
- Atomare Schreibvorgänge. Ein Schreibvorgang pro Tool-Aufruf – niemals nicht zusammenhängende Updates in einer einzigen Dateibearbeitung bündeln.
- Pfade zurückmelden. Nach jedem Schreibvorgang dem Benutzer den relativen Pfad von
VAULT/mitteilen, damit erCmd+Overwenden kann. - Niemals löschen. Wenn etwas ersetzt werden muss, markiere den alten Inhalt mit
~~Durchgestrichen~~oder verschiebe ihn in einenArchive/-Abschnitt innerhalb derselben Notiz. - Falsch-Positiv-Schutz. Bei Unsicherheit, ob etwas qualifiziert ist (z. B. Benutzer sagte "vielleicht versuchen wir es mit X"), als Spekulation behandeln – keine Entscheidungs- oder Recherchedatei erstellen. Im Zweifel still bleiben und den Benutzer explizit fragen lassen.
Dateien in dieser Fähigkeit
SKILL.md– diese Datei (wird automatisch von Claude Code geladen)conventions.md– vollständige Konventionsreferenztemplates/research.md,decision.md,project-status.md,meeting.md,daily.mdexamples/– ausgefüllte BeispielnotizenREADME.md– Installation + benutzerseitige Übersicht