# Health

> Run vault health check — broken links, orphans, missing sections, statistics. Generates report at 01-index/_graph-health.md. Use for "/health".

- Skill: `kv0906/health` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kv0906/health`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kv0906/health/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: kv0906 (https://skillmd.com/u/kv0906)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kv0906/health

---


# /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

1. **Scan Vault**
   - Glob all `.md` files
   - Exclude: `_core/`, `_templates/`, `_archive/`

2. **Check Broken Links**
   - Extract all `[[wikilinks]]` from each file
   - Verify each target exists
   - Report: source → broken target

3. **Find Orphan Notes**
   - Notes with no inbound links
   - Exclude: index files, standalone: true

4. **Check Missing Sections**
   - Typed notes (doc, decision, blocker, meeting) should have `## Links`
   - Report missing required sections

5. **Calculate Statistics**
   - Notes by type
   - Notes by project
   - Link density (links per note)

6. **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

7. **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"

8. **Append to Vault Log**
   - Append `health` entry to `01-index/_vault-log.md` (see `.claude/rules/vault-log.md`)

9. **Generate Report**
   - Write to `01-index/_graph-health.md`

## Output Format

```markdown
# 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}
```

