From spine
Audits Spine Architecture Obsidian vault for coverage gaps via git history, stale docs, duplicates, spine note integrity, tag consistency, and Claude memory sync. Maintains vault hygiene.
npx claudepluginhub nodewarrior/spine --plugin spineThis skill uses the workspace's default tool permissions.
Audit the Spine Architecture vault for quality and completeness.
Scans Spine vault at session start for Obsidian-style notes: auto-fixes broken wikilinks, missing tags, orphan docs; detects coverage gaps from recent git commits.
Runs 7-phase audit on Obsidian vault: structural scan, duplicate detection, link integrity check, frontmatter audit, MOC review, cross-agent integration, and health report.
Performs nightly Obsidian vault maintenance: detects broken wiki-links and orphan pages, syncs directory indexes, flags stale GitHub issues. Use for automated vault linting.
Share bugs, ideas, or general feedback.
Audit the Spine Architecture vault for quality and completeness.
Resolve the vault path using this config chain:
$SPINE_VAULT_PATH environment variable~/.spine/config.json → read the vaultPath field~/Documents/SpineVault/If the vault doesn't exist, tell the user to run /spine-init first.
If $ARGUMENTS specifies a feature or repo, limit the scan to that area. Otherwise, scan the entire vault.
Compare recent git history against existing Obsidian docs to find undocumented work.
git log --oneline --since="2 weeks ago" in the current repoOutput:
## Coverage Gaps
- [repo/feature] 3 commits touching auth logic — no doc since YYYY-MM-DD
- [repo/feature] New API endpoint added — no architecture doc
Find docs that reference code that has changed significantly since the doc was written.
**Files changed:** sectiongit log --oneline --since="{doc date}" -- {filepath}Output:
## Potentially Stale
- Fix - Session Bug (2026-03-18) — session.hook.ts has 5 commits since
Find docs within the same feature that describe overlapping issues.
Verify each spine note accurately reflects its children.
Verify all docs have proper type/* tags for graph coloring.
.obsidian/)type/* tagtype/* tag that doesn't match its naming prefixVerify Claude memory signposts match the vault structure.
MEMORY.md from the project memory directoryPresent a summary table:
## Spine Health Report — {date}
| Check | Status | Issues |
|-------|--------|--------|
| Coverage | {pass/warn} | {count} gaps |
| Staleness | {pass/warn} | {count} stale docs |
| Duplicates | {pass/warn} | {count} candidates |
| Spine Integrity | {pass/warn} | {count} issues |
| Tags | {pass/warn} | {count} missing |
| Memory Sync | {pass/warn} | {count} mismatches |
Then list each issue with a suggested action. Do NOT auto-fix — present findings and let the user decide.
If user approves fixes, use /spine-capture for new docs, and direct edits for spine note / tag updates.
After presenting the human-readable report, emit a structured observation block.
spine_health_result:
status: healthy | warning | critical | error
summary: "6 checks complete — 2 warnings (coverage, staleness)"
checks:
- { name: "coverage", status: "warn", count: 2, issues: ["auth: 3 commits undocumented", "payments: new endpoint"] }
- { name: "staleness", status: "warn", count: 1, issues: ["Fix - Session Bug: 5 commits since"] }
- { name: "duplicates", status: "pass", count: 0, issues: [] }
- { name: "spine_integrity", status: "pass", count: 0, issues: [] }
- { name: "tags", status: "pass", count: 0, issues: [] }
- { name: "memory_sync", status: "pass", count: 0, issues: [] }
next_actions:
- { action: "/spine-capture", reason: "2 coverage gaps to document" }
- { action: "review stale", file: "2026-03-18 Fix - Session Bug.md" }
recovery_hint: null
Status values:
healthy — all checks passedwarning — some checks have issues, vault is functionalcritical — spine integrity broken (ghost links, missing spine notes)error — scan failed (vault missing, permissions) — include recovery_hintCross-skill handoff: Health results inform /spine-scan's staleness checks. If health was run recently (last-health-timestamp < 14 days), scan can skip its own staleness pass and reference health's findings.
After presenting the report, write the current ISO timestamp to {vault}/.spine/last-health-timestamp. This lets /spine-scan know when the last full health check was run and remind the user when it's been too long (14+ days).