tderoussel/vault-doctor

Obsidian Vaultの構造的な健全性を監査・修復します。壊れた[[wikilink]]、あいまいな重複ファイル名、欠落・不正なfrontmatter、古くなったステータスマーカー、ハブノートの状態セクションの陳腐化などをチェックします。読み取り専用がデフォルトで、すべての修復は実行前に提案されます。

vault-doctor とは?

Vault Doctorは、Obsidian vaultの構造的健全性を監査および修復するためのAIエージェントスキルです。主に「vault health」、「broken links」、「clean up the vault」、「audit the vault」といったトリガーフレーズで呼び出され、壊れたWikilink、あいまいな重複ファイル名、パースエラーを起こす不正なfrontmatter、古くなったタグやプロジェクトステータスマーカー、そしてプロジェクトの最新アクティビティより古い状態セクションを持つ「cold hub」ノートを検出します。このスキルは、デフォルトで読み取り専用であり、いかなる修復も実行前にユーザーに提案されます。また、スコープ指定されていない検索置換は禁止されており、各ファイルは周辺の行を確認した上で個別に修正されます。重複ファイル名が検出された場合、コードプロジェクトがvault内に存在する可能性を特定し、移動または除外を提案しますが、ユーザーの許可なく削除することは決してありません。さらに、真のYAMLパーサーを使用してすべてのfrontmatterブロックを解析し、引用符で囲まれていないスカラー値に起因するエラーを報告し、修正を提案します。このスキルは、gitや元に戻す機能を持たず、iCloud、OneDrive、Dropbox経由で同期される可能性のあるObsidian vaultのための安全で慎重な修復アプローチを提供します。

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

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Vault doctor

ほとんどのObsidian vaultにはgitもundoもなく、iCloud、OneDrive、Dropboxを介してライブ同期されているものも多くあります。すべての書き込みは不可逆的であると想定してください。何かに触れる前にvaultの実際のバックアップ状況を確認し、上書きする前に読み取り、ファイル全体の書き換えよりも対象を絞った編集を優先し、高速書き込みループを決して実行しないでください。同期フォルダ上では競合コピーが生成されます。

スキャン

.mdファイルを走査し、node_modules、.git、.obsidian、およびvaultが蓄積したビルドディレクトリやスクラッチディレクトリをスキップします。すべてのファイルのベース名(.mdだけでなく、添付ファイルも含む)からリンクターゲットのセットを構築し、[[ターゲット]]を抽出し、|エイリアス、#見出し、^ブロックのサフィックスを除去します。

ベースライン(ノート数、個別の壊れたターゲット数、壊れた参照の総数、重複したベース名)を記録し、後続の実行で同じセンサスを繰り返すのではなく、変化を示せるようにします。

修復前の分類

生の壊れたリンク数は欠陥リストではありません。すべてのヒットを4つのバケットのいずれかに分類します。

1. システム間参照 — 「修正」しない。 一部のターゲットはvaultノートではありません:エージェントメモリID、チケットキー、または別のツールからの識別子で、たまたまwikilink構文で書かれているものです。これらは決して解決されません。プレーンテキストに変換することは許容範囲ですが、それらを満たすためにスタブノートを作成することは許容されません。

2. 壊れたリンクのドキュメント — 決して触れない。 一部のノートは、例として、または演習のためのグラウンドトゥルースとして、意図的に壊れたリンクを引用しています(「あなたのツールがこれを見つけられないなら、あなたのツールが間違っている」)。これらを編集すると、それらが教えているものを壊してしまいます。散文内で引用されたWikilink構文も同じクラスです。

3. 名前のずれ — ソースではなくターゲットで修正する。 多くの参照が短い名前を指しているのに、ノートがより長い名前でファイリングされている場合、すべての参照ファイルを編集するよりも、ターゲットのfrontmatterにaliases: [ShortName]を追加することを優先してください。 1回の編集で、Obsidianのネイティブメカニズムを使用し、周囲のコンテキストを壊すリスクはありません。

4. 本当に存在しないノート。 ターゲットは存在したことがありません。報告してください。自動生成はしないでください。空のスタブは、回答済みに見えるため、壊れたリンクよりも悪質です。

検索置換の禁止

スコープ指定されていない検索置換でリンクを修復しないでください。 vault全体にわたるブラインド置換は、検索文字列をたまたま含むフォルダ名、URL、コードブロック、タグ語彙を破壊し、元に戻せないため、被害は永続的です。ファイルごとに、周囲の行を最初に読んで修正してください。

その他のチェック

  • 重複したベース名は、vault全体でリンクをあいまいにします。Obsidianはvault全体でファイル名によって[[リンク]]を解決するためです。通常の原因は、vault内に存在するコードプロジェクトや依存関係ツリーで、数千の幽霊.mdファイルを寄与していることです。それをフラグしてください。修正方法は、プロジェクトをvaultの外に移動するか、除外を追加することです。尋ねずに何も削除しないでください。

  • Frontmatterは実際にパースできなければなりません。 すべてのブロックを実際のYAMLパーサーで実行してください。目視ではチェックしないでください。支配的な障害は、引用符で囲まれていないプレーンなスカラーに: (コロン+スペース)が含まれていることで、その文字で失敗し、その下のすべてのキーも一緒に取り込み、ブロック全体がObsidianのプロパティパネルやDataviewから見えなくなります。2番目によくある障害は、引用符で囲まれていない値が|または>で始まることで、YAMLブロックスカラーを開きます。

    修正するには値を引用符で囲む必要があり、大きな負荷のかかるノートでは数百のキーに影響する可能性があります — 提案のみ行い、促されずに実行しないでください。また、事前にファイルをバックアップしてください。修正されるまでは、別のスタイルを導入するのではなく、既存の(壊れた)慣習に従ってください。無効なブロック内の孤立した有効なキーは何も得られません。

  • タグは、インラインのハッシュタグではなく、YAMLでリストとして属します — 理想化された語彙ではなく、vaultの実際の語彙と照合してください。ずれを報告し、一方的に再タグ付けしないでください。

  • 古くなった状態 — PAUSED/STALLED/TODOマーカーを保持しているが、プロジェクトがそれ以降に進んでいるノート。報告し、自分で解決しないでください。

  • コールドハブ — ハブノートの最新の状態セクションがプロジェクトの最新アクティビティより古い場合、それは最新ではありません。ギャップを報告してください。

出力

バケットごとに並べられたレポートで、カウントと正確なファイル:行の参照を含みます。修復を提案し、ユーザーが承認したものだけを実行します。

どの調査結果が確認済みで、どの調査結果が命名から推測されたものかを明確に述べてください — ずれのように見えるターゲットは、ユーザーがこれから書こうとしているノートである可能性があります。

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.

関連スキル