| name | health |
| description | Run vault health check — broken links, orphans, missing sections, statistics. Generates report at 01-index/_graph-health.md. Use for "/health". |
| allowed-tools | Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet |
| user-invocable | true |
/health — Vault Health Check
Generate comprehensive health report for the vault.
Context
Config: @_core/config.yaml
Session Task Progress
TaskCreate: "Scan vault files"
activeForm: "Scanning vault files..."
TaskCreate: "Check links and orphans"
activeForm: "Validating links..."
TaskCreate: "Generate health report"
activeForm: "Generating health report..."
Processing Steps
-
Scan Vault
- Glob all
.md files
- Exclude:
_core/, _templates/, _archive/
-
Check Broken Links
- Extract all
[[wikilinks]] from each file
- Verify each target exists
- Report: source → broken target
-
Find Orphan Notes
- Notes with no inbound links
- Exclude: index files, standalone: true
-
Check Missing Sections
- Typed notes (doc, decision, blocker, meeting) should have
## Links
- Report missing required sections
-
Calculate Statistics
- Notes by type
- Notes by project
- Link density (links per note)
-
Check Synthesis Freshness
- For each
01-index/{project}.md, check if ## Synthesis section exists
- If synthesis is missing or says "No synthesis yet", flag as stale
- Check vault log (
01-index/_vault-log.md) for last index-regen entry per project
- If no regen in 7+ days, flag as stale
-
Check Update Status
- Read
VERSION file for local version
- Query GitHub API for latest release:
curl -sS "https://api.github.com/repos/{repo}/releases/latest" (non-fatal on failure)
- Compare: "Up to date" | "Update available: vX → vY" | "Could not check"
-
Append to Vault Log
- Append
health entry to 01-index/_vault-log.md (see .claude/rules/vault-log.md)
-
Generate Report
- Write to
01-index/_graph-health.md
Output Format
# Graph Health Report
> Generated: {datetime}
## Broken Links
| Source | Broken Target |
|--------|---------------|
| {path} | [[{target}]] |
## Orphan Notes
- {path} — no inbound links
## Missing ## Links Sections
- {path} — type: {type}
## Statistics
### By Type
| Type | Count |
|------|-------|
| daily | {n} |
| doc | {n} |
### By Project
| Project | Count |
|---------|-------|
| {proj} | {n} |
### Link Density
- Total links: {n}
- Average per note: {avg}
## Synthesis Health
| Project | Has Synthesis | Last Index Regen | Status |
|---------|---------------|------------------|--------|
| {proj} | Yes/No | {date or "Never"} | Fresh/Stale |
## Framework Status
- **Version**: v{local}
- **Update**: {status — "Up to date" | "Update available: vX → vY" | "Could not check"}
## Actions
1. [ ] Fix broken link: {source} → {target}
2. [ ] Add links to: {orphan}