From mz-knowledge
ALWAYS invoke when auditing an Obsidian vault for orphan notes, broken links, stale content, stub notes, or tag inconsistencies. Triggers: vault audit, orphan notes, broken wikilinks, vault health check.
npx claudepluginhub doctormozg/claude-pipelines --plugin mz-knowledgeThis skill is limited to using the following tools:
Discipline skill that audits an Obsidian vault and produces a structured `_vault_audit_YYYY-MM-DD.md` health note at the vault root. Checks: orphan notes (zero backlinks), broken wikilinks, stub notes (\<100 words, zero outlinks), stale notes (mtime >90 days + zero outlinks), and tag inconsistencies. Uses the official `obsidian` CLI when available, falls back to file scanning.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Edits, creates, cleans, and formats spreadsheet files (.xlsx, .xlsm, .csv, .tsv) with zero formula errors, professional styling, and financial model standards like color coding.
Share bugs, ideas, or general feedback.
Discipline skill that audits an Obsidian vault and produces a structured _vault_audit_YYYY-MM-DD.md health note at the vault root. Checks: orphan notes (zero backlinks), broken wikilinks, stub notes (<100 words, zero outlinks), stale notes (mtime >90 days + zero outlinks), and tag inconsistencies. Uses the official obsidian CLI when available, falls back to file scanning.
Invoke for weekly vault maintenance, before a knowledge review session, or after large imports. Trigger phrases: "vault audit", "orphan notes", "broken wikilinks", "vault health check".
process-notes or vault-connect after the audit..mz/task/_vault_audit_$ARGUMENTS is an optional vault path. If empty, resolve from OBSIDIAN_VAULT_PATH env, then MZ_VAULT_PATH env. If none are set, ask via AskUserQuestion.
| Phase | Goal | Details |
|---|---|---|
| 0 | Setup | Inline below |
| 1 | Collect | phases/collect.md |
| 1.5 | User approval | Inline below |
| 2 | Write audit | phases/report.md |
$ARGUMENTS, then OBSIDIAN_VAULT_PATH, then MZ_VAULT_PATH.task_name = <YYYY_MM_DD>_vault-health_<vault-slug> where <YYYY_MM_DD> is today's date (underscores) and <vault-slug> is a snake_case summary of the vault directory name (max 20 chars); on same-day collision append _v2, _v3..mz/task/<task_name>/.state.md with Status: running, Phase: 0, Started: <ISO timestamp>, Vault: <resolved path>.task_name, resolved vault path, and working dir.See phases/collect.md.
This orchestrator (not a subagent) must present findings to the user via AskUserQuestion. This step is interactive and must not be delegated.
Before presenting, Read .mz/task/<task_name>/audit_data.md in full. Present the full verbatim summary from audit_data.md. Do not substitute a path, summary, or placeholder for the artifact content — present the full verbatim text.
Before invoking AskUserQuestion, emit a text block to the user:
**Vault Health Findings Ready**
Your vault has been scanned for orphans, broken links, stubs, stale notes, and tag inconsistencies.
- **Approve** → proceed to Phase 2 (write audit report to vault)
- **Reject** → abort without writing, task marked cancelled
- **Feedback** → describe changes you want; Phase 1 re-runs with your input, then return here
Use AskUserQuestion with:
Vault health findings ready. Please review:
- Orphans: N
- Broken wikilinks: N
- Stubs: N
- Stale: N
- Tags: N unique, N singletons
Type **Approve** to proceed, **Reject** to cancel, or type your feedback.
Response handling:
aborted_by_user and stop. Do not proceed.See phases/report.md.
Techniques: delegated to phase files — see Phase Overview table above.
| Rationalization | Rebuttal |
|---|---|
| "I can see the issues in my head, skip the audit note" | "The audit note is the log. Without it, patterns across weeks are invisible and you redo the same checks next week." |
| "Only run the fast checks, skip stale detection" | "Stale notes are the silent knowledge rot. Skipping them is how 47% of captures never get processed." |
| "Auto-fix the orphans without asking" | "An orphan may be intentionally isolated (inbox item, template). Auto-delete creates irreversible data loss — always surface before acting." |
Confirm _vault_audit_YYYY-MM-DD.md was written to the vault root. Print the orphan count and broken link count from the written audit.
state.md.state.md and escalate via AskUserQuestion before writing.