tderoussel/vault-doctor

Audite et répare la santé structurelle d'un coffre Obsidian — [[wikiliens]] cassés, noms de fichiers en double ambigus, frontmatter manquant ou mal formé, marqueurs de statut obsolètes et notes hub dont les sections d'état sont devenues froides. Utilisez-le lorsque l'utilisateur s'interroge sur la santé du coffre, les liens cassés, le nettoyage du coffre, les liens morts, les notes orphelines, la cohérence des tags, ou dit que le coffre semble en désordre ou obsolète. Les phrases déclencheurs incluent « santé du coffre », « liens cassés », « nettoyer le coffre », « auditer le coffre », « le coffre est-il à jour ». Lecture seule par défaut ; chaque réparation est proposée avant d'être effectuée.

Qu'est-ce que vault-doctor ?

Ce skill pour agents IA (compatible avec Claude Code, Cursor, Codex, etc.) transforme un agent en médecin de coffre Obsidian. Il analyse les fichiers Markdown d'un coffre Obsidian pour détecter les problèmes structurels : liens wiki cassés, noms de fichiers en double, frontmatter YAML invalide (souvent à cause de `:` non échappé), tags incohérents, notes marquées « PAUSÉ/EN ATTENTE/FAR » devenues obsolètes, et notes hub dont les sections d'état sont froides. Son approche est prudente : en lecture seule par défaut, il classe chaque problème dans l'une des quatre catégories (références inter-systèmes, documentation de lien cassé, dérive de nom, notes vraiment manquantes) avant de proposer des réparations spécifiques à chaque fichier, sans jamais effectuer de rechercher-remplacer global ou de suppressions non approuvées. Il impose la confirmation de l'utilisateur pour toute écriture et vérifie la sauvegarde du coffre avant toute modification. Le rapport de sortie est ordonné par catégorie, avec des références précises `fichier:ligne`, et distingue les conclusions vérifiées de celles inférées par le nom. Idéal pour les utilisateurs d'Obsidian qui n'utilisent pas Git et qui ont besoin d'un nettoyage non destructif de leur coffre.

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

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Docteur du coffre

La plupart des coffres Obsidian n'ont ni git ni annulation, et beaucoup sont synchronisés en direct via iCloud, OneDrive ou Dropbox. Considérez chaque écriture comme irréversible. Confirmez la situation de sauvegarde réelle du coffre avant de toucher quoi que ce soit, lisez avant d'écraser, préférez les modifications ciblées aux réécritures de fichier entier, et n'exécutez jamais une boucle d'écriture rapide — sur un dossier synchronisé, elle produit des copies de conflit.

Analyse

Parcourez les fichiers .md, en ignorant node_modules, .git, .obsidian, et tous les répertoires de construction ou de bric-à-brac que le coffre a accumulés. Construisez l'ensemble des cibles de liens à partir de chaque nom de fichier (pièces jointes incluses, pas seulement les .md), puis extrayez les [[cibles]], en supprimant les suffixes |alias, #heading et ^block.

Enregistrez une ligne de base — nombre de notes, cibles cassées distinctes, total de références cassées, noms de base en double — afin que les exécutions ultérieures puissent montrer l'évolution plutôt que de répéter le même recensement.

Classifier avant de réparer

Un nombre brut de liens cassés n'est pas une liste de défauts. Classez chaque résultat dans l'un des quatre seaux suivants :

1. Références inter-systèmes — ne pas « réparer ». Certaines cibles ne sont pas du tout des notes de coffre : ID de mémoire d'agent, clés de ticket ou identifiants d'un autre outil qui se trouvent être écrits en syntaxe de wikilien. Ils ne se résoudront jamais. Les convertir en texte brut est défendable ; créer des notes factices pour les satisfaire ne l'est pas.

2. Documentation d'un lien cassé — ne jamais toucher. Certaines notes citent délibérément un lien cassé, comme exemple ou comme vérité de base pour un exercice (« si votre outil ne trouve pas cela, votre outil a tort »). Modifier ces notes casse ce qu'elles enseignent. La syntaxe de wikilien citée dans la prose relève de la même classe.

3. Dérive de nom — corriger à la cible, pas à la source. Lorsque de nombreuses références pointent vers un nom court et que la note est classée sous un nom plus long, préférez ajouter aliases: [NomCourt] dans le frontmatter de la cible plutôt que de modifier chaque fichier référencant. Une modification, un mécanisme natif d'Obsidian, aucun risque de déformer le contexte environnant.

4. Notes vraiment manquantes. La cible n'a jamais existé. Signalez-la ; ne la créez pas automatiquement. Un stub vide est pire qu'un lien cassé car il donne l'impression d'avoir une réponse.

L'interdiction du rechercher-remplacer

Ne réparez jamais les liens avec un rechercher-remplacer non cadré. Un remplacement aveugle dans tout un coffre déformera les noms de dossier, les URL, les blocs de code et les vocabulaires de balises qui contiennent par hasard la chaîne recherchée — et comme il n'y a pas d'annulation, les dégâts sont permanents. Corrigez fichier par fichier, après avoir lu la ligne environnante.

Autres vérifications

  • Les noms de base en double rendent les liens ambigus dans tout le coffre, car Obsidian résout les [[liens]] par nom de fichier dans tout le coffre. Le coupable habituel est un projet de code ou une arborescence de dépendances qui vit à l'intérieur du coffre, contribuant des milliers de fichiers .md fantômes. Signalez-le ; la correction consiste à déplacer le projet hors du coffre ou à ajouter une exclusion. Ne supprimez rien sans demander.

  • Le frontmatter doit réellement être analysé. Exécutez chaque bloc avec un vrai analyseur YAML — ne l'évaluez pas à l'œil. La panne dominante est un scalaire simple non entre guillemets contenant : (espace après deux-points), qui échoue à ce caractère et emporte avec lui chaque clé en dessous, rendant tout le bloc invisible pour le panneau Propriétés d'Obsidian et pour Dataview.

    Une deuxième panne courante : une valeur non entre guillemets commençant par | ou > ouvre un scalaire de bloc YAML.

    Corriger signifie ajouter des guillemets aux valeurs, ce qui, sur une note importante, peut toucher des centaines de clés — proposez-le, ne le faites jamais sans y être invité, et sauvegardez d'abord le fichier. Jusqu'à ce qu'il soit corrigé, respectez la convention existante (même cassée) plutôt que d'introduire un deuxième style ; une clé valide unique dans un bloc invalide n'apporte rien.

  • Les tags doivent être dans YAML sous forme de liste, pas de hashtags en ligne — vérifiez par rapport au vocabulaire réel du coffre plutôt qu'à un vocabulaire idéalisé. Signalez les dérives ; ne re-taguez pas unilatéralement.

  • État obsolète — notes portant des marqueurs PAUSÉ/EN ATTENTE/FAR dont le projet a depuis évolué. Signalez-les ; ne les résolvez pas vous-même.

  • Hubs froids — une note hub dont la section d'état la plus récente est antérieure à l'activité la plus récente de son projet est obsolète. Signalez l'écart.

Sortie

Un rapport, ordonné par seau, avec des comptes et des références exactes fichier:ligne. Proposez des réparations ; n'effectuez que celles que l'utilisateur approuve.

Indiquez clairement quels résultats sont vérifiés et lesquels sont inférés du nom — une cible qui ressemble à une dérive peut être une note que l'utilisateur a l'intention d'écrire.

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.

Skills associés