Diagnostic audit of the vault. Runs CLI checks, samples folder structures, and produces an actionable health report.
Workflow
Run all diagnostics (run these in parallel where possible):
obsidian unresolved total
obsidian unresolved counts verbose format=json
obsidian orphans total
obsidian deadends total
obsidian properties sort=count counts
obsidian tags sort=count counts
obsidian files total
obsidian folders total
obsidian version
Analyze top unresolved links:
From the unresolved counts verbose output, take the top 20 by count
For each, run obsidian search query="<link target>" limit=3 to check if a near-match exists (typo, case difference, missing folder)
Classify each as: create it / rename existing / remove the link / ignore
Sample folder structural completeness (pick 15-20 folders at random from different prefixes):
For each sampled folder, check:
Does README.md or a summary .md file exist?
Does the main .md file have a description property?
Does it have at least one of: transcript.txt, gemini3_summary.txt, code files?
Use obsidian search query="<folder name>" limit=3 to check, or Read tool to check the file directly.
Compose the health report using the Write tool:
---
description: Vault health audit — YYYY-MM-DD
title: Vault Health Report YYYY-MM-DD
date: YYYY-MM-DD
source: vault-health
---
# Vault Health Report — YYYY-MM-DD
## Dashboard
| Metric | Count | Status |
|--------|-------|--------|
| Total files | <n> | |
| Total folders | <n> | |
| Unresolved links | <n> | ⚠️ High / ✅ OK |
| Orphan notes | <n> | |
| Dead-end notes | <n> | |
| Tags in use | <n> | |
| Distinct properties | <n> | |
## Unresolved Links (<total>)
Top unresolved wikilinks with suggested actions:
| Link Target | Count | Suggestion |
|-------------|-------|-----------|
| `[[link]]` | n | Create note / Rename `existing.md` / Remove links |
...
> **Note:** Many unresolved links in this vault come from cross-references in skill files and CLAUDE.md files — these are expected and low priority.
## Structural Issues
### Folders Missing README or Summary
Based on sampling ~<n> folders:
- [[folder_name]] — no README or summary file found
...
### Folders Missing Frontmatter
- [[folder_name/README]] — missing `description` property
...
## Property Coverage
Top properties in use:
| Property | Count |
|----------|-------|
| description | <n> |
| title | <n> |
...
**Recommendation:** Standardize on `description`, `title`, `date`, `source` for all new notes.
## Tag Adoption
Tags currently in use: **<n>** (vault relies on properties instead of tags — this is intentional).
## Prioritized Action Items
1. **High priority:** <specific action with folder/file names>
2. **Medium priority:** <action>
3. **Low priority / optional:** <action>
## Next Steps
- Run `/vault-moc` to create navigation indexes for high-value categories
- Run `/vault-journal` to start logging daily notes
Write the file:
Write tool → <vault-root>/Vault Health Report YYYY-MM-DD.md
Report the top 3 issues found and the file path.
Tips
The vault has ~4,979 known unresolved links from a previous scan — this is baseline, not a crisis
Many unresolved links come from skill/CLAUDE.md files referencing paths that don't exist in this vault — note this in the report
Focus structural sampling on claude_code_* and autoresearch_* folders — these are the core content
The most actionable finding is usually folders with no description property — these are hardest to navigate
1---2name: vault-health3description: Vault Health4---56# Vault Health78Diagnostic audit of the vault. Runs CLI checks, samples folder structures, and produces an actionable health report.910## Workflow11121. **Run all diagnostics** (run these in parallel where possible):1314 ```bash15 obsidian unresolved total16 obsidian unresolved counts verbose format=json17 obsidian orphans total18 obsidian deadends total19 obsidian properties sort=count counts20 obsidian tags sort=count counts21 obsidian files total22 obsidian folders total23 obsidian version24 ```25262. **Analyze top unresolved links:**27 - From the `unresolved counts verbose` output, take the top 20 by count28 - For each, run `obsidian search query="<link target>" limit=3` to check if a near-match exists (typo, case difference, missing folder)29 - Classify each as: **create it** / **rename existing** / **remove the link** / **ignore**30313. **Sample folder structural completeness** (pick 15-20 folders at random from different prefixes):32 For each sampled folder, check:33 - Does `README.md` or a summary `.md` file exist?34 - Does the main `.md` file have a `description` property?35 - Does it have at least one of: `transcript.txt`, `gemini3_summary.txt`, code files?3637 Use `obsidian search query="<folder name>" limit=3` to check, or `Read` tool to check the file directly.38394. **Compose the health report** using the `Write` tool:4041 ```markdown42 ---43 description: Vault health audit — YYYY-MM-DD44 title: Vault Health Report YYYY-MM-DD45 date: YYYY-MM-DD46 source: vault-health47 ---4849 # Vault Health Report — YYYY-MM-DD5051 ## Dashboard5253 | Metric | Count | Status |54 |--------|-------|--------|55 | Total files | <n> | |56 | Total folders | <n> | |57 | Unresolved links | <n> | ⚠️ High / ✅ OK |58 | Orphan notes | <n> | |59 | Dead-end notes | <n> | |60 | Tags in use | <n> | |61 | Distinct properties | <n> | |6263 ## Unresolved Links (<total>)6465 Top unresolved wikilinks with suggested actions:6667 | Link Target | Count | Suggestion |68 |-------------|-------|-----------|69 | `[[link]]` | n | Create note / Rename `existing.md` / Remove links |70 ...7172 > **Note:** Many unresolved links in this vault come from cross-references in skill files and CLAUDE.md files — these are expected and low priority.7374 ## Structural Issues7576 ### Folders Missing README or Summary77 Based on sampling ~<n> folders:78 - [[folder_name]] — no README or summary file found79 ...8081 ### Folders Missing Frontmatter82 - [[folder_name/README]] — missing `description` property83 ...8485 ## Property Coverage8687 Top properties in use:88 | Property | Count |89 |----------|-------|90 | description | <n> |91 | title | <n> |92 ...9394 **Recommendation:** Standardize on `description`, `title`, `date`, `source` for all new notes.9596 ## Tag Adoption9798 Tags currently in use: **<n>** (vault relies on properties instead of tags — this is intentional).99100 ## Prioritized Action Items101102 1. **High priority:** <specific action with folder/file names>103 2. **Medium priority:** <action>104 3. **Low priority / optional:** <action>105106 ## Next Steps107 - Run `/vault-moc` to create navigation indexes for high-value categories108 - Run `/vault-journal` to start logging daily notes109 ```1101115. **Write the file:**112 ```113 Write tool → <vault-root>/Vault Health Report YYYY-MM-DD.md114 ```1151166. **Report** the top 3 issues found and the file path.117118## Tips119120- The vault has ~4,979 known unresolved links from a previous scan — this is baseline, not a crisis121- Many unresolved links come from skill/CLAUDE.md files referencing paths that don't exist in this vault — note this in the report122- Focus structural sampling on `claude_code_*` and `autoresearch_*` folders — these are the core content123- The most actionable finding is usually folders with no description property — these are hardest to navigate
Run npx skillmds@latest add az9713/vault-health in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Vault Health It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
az9713 (@az9713) published this skill. Their other Agent Skills are listed on their SkillMD profile.