tderoussel/vault-doctor

Überprüft und repariert die strukturelle Gesundheit eines Obsidian Vaults – kaputte [[Wikilinks]], mehrdeutige doppelte Dateinamen, fehlende oder fehlerhafte Frontmatter, veraltete Statusmarker und Hub-Notizen, deren Statusabschnitte veraltet sind. Standardmäßig schreibgeschützt; jede Reparatur wird vor der Durchführung vorgeschlagen.

Was ist vault-doctor?

Vault Doctor ist ein KI-Agenten-Skill, der entwickelt wurde, um die strukturelle Integrität eines Obsidian Vaults zu überprüfen und zu reparieren. Er durchsucht `.md`-Dateien, überspringt dabei ausschließbare Verzeichnisse und identifiziert Probleme wie defekte Wikilinks, doppelte Dateinamen, ungültige YAML-Frontmatter, veraltete Statusmarker und Hubs, deren Statusabschnitte kalt geworden sind. Der Skill klassifiziert defekte Links sorgfältig in vier Kategorien: systemübergreifende Referenzen (nicht beheben), Dokumentation defekter Links (nicht anfassen), Namensverschiebungen (durch Aliase im Ziel beheben) und wirklich fehlende Notizen (melden, nicht automatisch erstellen). Er erzwingt eine schreibgeschützte Standardeinstellung, schlägt Reparaturen zeilenweise vor und führt keine blinden Suchen-und-Ersetzen-Operationen durch. Vault Doctor erstellt einen detaillierten Bericht mit Datei- und Zeilenverweisen und unterscheidet klar zwischen überprüften und auf Benennungsmustern basierenden Erkenntnissen. Dieses Tool wird idealerweise über KI-gestützte Editoren wie Claude Code, Cursor oder Codex verwendet und fokussiert auf Vault-Wartung ohne Risiko eines irreversiblen Datenverlusts.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tderoussel/agent-skills/tree/main/skills/vault-doctor

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Vault-Arzt

Die meisten Obsidian Vaults haben kein Git und kein Undo, und viele werden live über iCloud, OneDrive oder Dropbox synchronisiert. Behandle jeden Schreibvorgang als irreversibel. Bestätige die tatsächliche Sicherungssituation des Vaults, bevor du irgendetwas anfasst, lies bevor du überschreibst, bevorzuge gezielte Änderungen gegenüber vollständigen Dateineuschreibungen und führe niemals eine schnelle Schreibschleife aus – in einem synchronisierten Ordner erzeugt dies Konfliktkopien.

Scan

Gehe .md-Dateien durch und überspringe dabei node_modules, .git, .obsidian sowie alle Build- oder Scratch-Verzeichnisse, die der Vault angesammelt hat. Erstelle die Menge der Link-Ziele aus jedem Dateinamen (Anhänge eingeschlossen, nicht nur .md), extrahiere dann [[ziele]] und entferne die Suffixe |alias, #überschrift und ^block.

Erfasse eine Ausgangsbasis – Anzahl der Notizen, eindeutige defekte Ziele, gesamte defekte Verweise, doppelte Dateinamen – damit spätere Durchläufe eine Veränderung zeigen können, anstatt dieselbe Zählung zu wiederholen.

Vor der Reparatur klassifizieren

Eine rohe Anzahl defekter Links ist keine Fehlerliste. Sortiere jeden Treffer in einen von vier Eimern:

1. Systemübergreifende Referenzen – nicht „reparieren". Manche Ziele sind überhaupt keine Vault-Notizen: Agenten-Speicher-IDs, Ticket-Schlüssel oder Kennungen aus einem anderen Tool, die zufällig in Wikilink-Syntax geschrieben wurden. Sie werden sich nie auflösen. Sie in Klartext umzuwandeln ist vertretbar; Stub-Notizen zu erstellen, um sie zufriedenzustellen, ist es nicht.

2. Dokumentation eines defekten Links – niemals anfassen. Manche Notizen zitieren absichtlich einen defekten Link, als Beispiel oder als Grundwahrheit für eine Übung („Wenn dein Tool das nicht findet, ist dein Tool falsch"). Diese zu bearbeiten zerstört das, was sie lehren. Die Wikilink-Syntax, die innerhalb von Prosa zitiert wird, gehört in dieselbe Klasse.

3. Namensverschiebung – am Ziel korrigieren, nicht an der Quelle. Wenn viele Verweise auf einen Kurznamen zeigen und die Notiz unter einem längeren Namen abgelegt ist, bevorzuge das Hinzufügen von aliases: [Kurzname] zum Frontmatter des Ziels gegenüber der Bearbeitung jeder verweisenden Datei. Eine Änderung, ein natives Obsidian-Mechanismus, kein Risiko, umgebenden Kontext zu verstümmeln.

4. Wirklich fehlende Notizen. Das Ziel hat nie existiert. Melde es; erstelle es nicht automatisch. Ein leerer Stub ist schlimmer als ein defekter Link, weil er wie beantwortet aussieht.

Das Such-und-Ersetzen-Verbot

Repariere niemals Links mit einer unbegrenzten Suchen-und-Ersetzen-Aktion. Eine blinde Ersetzung über einen gesamten Vault hinweg wird Ordnernamen, URLs, Codeblöcke und Tag-Vokabulare verstümmeln, die zufällig die Suchzeichenfolge enthalten – und da es kein Undo gibt, ist der Schaden dauerhaft. Korrigiere dateiweise, nachdem die umgebende Zeile gelesen wurde.

Weitere Prüfungen

  • Doppelte Dateinamen machen Links vaultweit mehrdeutig, da Obsidian [[links]] nach Dateiname über den gesamten Vault hinweg auflöst. Der übliche Übeltäter ist ein Codeprojekt oder ein Abhängigkeitsbaum, der innerhalb des Vaults lebt und Tausende von Phantom-.md-Dateien beiträgt. Melde es; die Lösung ist, das Projekt aus dem Vault zu verschieben oder einen Ausschluss hinzuzufügen. Lösche nichts ohne Nachfrage.

  • Frontmatter muss tatsächlich geparst werden. Führe jeden Block durch einen echten YAML-Parser – überfliege ihn nicht. Der dominante Fehler ist ein nicht zitierter einfacher Skalar, der : (Doppelpunkt-Leerzeichen) enthält, was an diesem Zeichen scheitert und jeden Schlüssel darunter mitreißt, wodurch der gesamte Block für das Obsidian-Eigenschaftenfenster und für Dataview unsichtbar wird. Ein zweiter häufiger Fehler: Ein nicht zitierter Wert, der mit | oder > beginnt, öffnet einen YAML-Block-Skalar.

    Die Korrektur bedeutet, Werte zu zitieren, was bei einer großen, tragenden Notiz Hunderte von Schlüsseln betreffen kann – schlage es vor, führe es niemals unaufgefordert aus, und sichere die Datei zuerst. Bis es behoben ist, folge der bestehenden (defekten) Konvention, anstatt einen zweiten Stil einzuführen; ein einzelner gültiger Schlüssel innerhalb eines ungültigen Blocks bringt nichts.

  • Tags gehören in YAML als Liste, nicht als Inline-Hashtags – überprüfe sie anhand des tatsächlichen Vokabulars des Vaults und nicht anhand eines idealisierten. Melde Abweichungen; führe keine einseitigen Neutaggings durch.

  • Veralteter Status – Notizen, die PAUSIERT/GESTOPPT/TODO-Marker tragen, deren Projekt aber inzwischen weitergezogen ist. Melde sie; löse sie nicht selbst auf.

  • Kalte Hubs – eine Hub-Notiz, deren neuester Statusabschnitt älter ist als die letzte Aktivität des Projekts, ist veraltet. Melde die Lücke.

Ausgabe

Ein Bericht, geordnet nach Eimern, mit Anzahlen und genauen Datei:Zeile-Verweisen. Schlage Reparaturen vor; führe nur diejenigen aus, die der Benutzer genehmigt.

Gebe klar an, welche Ergebnisse überprüft und welche aus der Benennung abgeleitet sind – ein Ziel, das wie eine Verschiebung aussieht, könnte eine Notiz sein, die sie schreiben möchten.

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

tderoussel/codebase-audit

Runs a ranked, evidence-backed audit of a product, codebase, or subsystem, ending in a verify list that separates proven findings from inferred ones. Use when the user asks for an audit, a gap analysis, a deep read, a bug hunt, a readiness check, a re-audit, a state reconciliation, or asks what they are not seeing. Trigger phrases include "audit", "gap analysis", "what am I missing", "deep audit", "readiness", "bug hunt", "review the whole thing". Produces findings and a verify list; does not fix.

tderoussel/competitive-teardown

Researches a competing product against your own and produces a ranked build-or-ignore verdict, plus optional comparison-page copy. Use when the user names a competitor or asks how their product stacks up against one. Trigger phrases include "vs us", "competitor", "what does X have", "should we copy", "competitive gap", "teardown", "are we behind". Produces a ranked verdict with effort estimates and an explicit not-worth-copying list.

tderoussel/decision-council

Run a structured multi-perspective review of a decision instead of getting one agreeable answer. Use when the user says run a council, get me perspectives on this, should I do X, stress-test this decision, or is this a good idea.

tderoussel/fleet-brief

Authors a workstream brief for dispatching multiple parallel build agents across one codebase, with per-lane file ownership, shared-ground warnings, and a derived DO-NOT list. Use whenever work is about to be split across concurrent agents, workers, lanes, or waves — even if the user does not say "write a brief". Trigger phrases include "fan out", "parallel agents", "orchestrate this", "split into lanes", "workstreams", "run these in parallel", "review-gated build". Produces the brief; does not dispatch.

tderoussel/inbox-triage

Triage an email inbox — sort what needs a reply, draft the replies, flag what needs a decision, and surface what can be ignored or unsubscribed. Use when the user says triage my inbox, do my email, what's in my inbox, or clean up my email.

tderoussel/overnight-build

Composes an autonomous unattended Claude Code build prompt that survives usage-limit resets via BUILD_LOG.md checkpointing, plus the launcher that restarts it. Use when the user asks for an overnight build, an autonomous build, a build to run while they sleep, an unattended or unsupervised session, or any long build they will not be monitoring. Trigger phrases include "overnight build", "run overnight", "build while I sleep", "autonomous build", "let it run", "unattended". Produces a single copyable prompt; does not run the build.

tderoussel/session-log

Write a durable record of a work session — what was built, root-caused, or shipped — into the project's notes. Use when the user says log this session, write a session log, record this, or when a substantial piece of work has just finished and needs to be handed off to a future session.

tderoussel/ship-gate

Verification gate for a Next.js-on-Vercel + Supabase + GitHub Actions stack, to run before claiming anything is shipped, deployed, live, merged, passing, or done. Use before saying a change is in production, before merging a PR, before reporting CI green, and before writing any status into a document — even if the user does not ask for verification. Trigger phrases include "is it live", "did it deploy", "ship it", "merge it", "is CI green", "confirm prod", "did that work". Encodes traps where the obvious check returns a false pass.

Verwandte Skills