Skip to content
Back to skills

Health

ASecurity

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

  • 133 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 5, 2026
businessgitapi

Works with

  • api

Security analysis

A100/100

Scanned June 5, 2026

npx -y skills add kv0906/pm-kit --skill health --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Health?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Health
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kv0906-health/badge)](https://www.skillsdirectory.com/skills/kv0906-health)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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

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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.