Read-only vault health check — runs `vault-keeper doctor` for environment + config state, then `vault-keeper validate --json` for per-doc rule violations, groups errors by template + folder, and surfaces the top fixable issues with file:line citations. Never modifies files. For deterministic batch auto-fixes, hand off to `/vault.fix`. Use when the user says 'check vault', 'vault health', 'vault status', 'validate documents', 'kiểm tra vault', 'vault có lỗi gì không', '/vault.health'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-code-vault-keeper:vault.healthThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill runs the validator and the doctor, then **interprets** the output — it never edits files. The output is a digested report the user can act on, not a raw paste of stdout.
This skill runs the validator and the doctor, then interprets the output — it never edits files. The output is a digested report the user can act on, not a raw paste of stdout.
Resolve project root: ${CLAUDE_PROJECT_DIR:-$PWD}. If no .claude/vault-keeper.json exists, the plugin still works (whole-repo-is-vault default) — proceed without asking, but mention defaults are in effect in the final report.
Run in parallel via Bash:
vault-keeper doctor --json
vault-keeper validate --json --root "${CLAUDE_PROJECT_DIR:-$PWD}"
Both emit JSON. Do NOT shell into them with 2>&1 | tail — you need the structured output. Capture both stdout streams.
If doctor reports any status: error check (e.g. missing LSP bundle, broken config parse), surface those FIRST and stop the rest of the report. Environment errors mask document errors — fixing them is prerequisite.
The --json report shape (see cli/validate-documents.js for the contract) lists files, errors, warnings, and the template each doc resolved to. Group findings by:
required-missing? pattern-mismatch on $path? enum-violation? table-shape? template-schema-invalid?Output a fixed structure (don't freestyle):
vault.health — <project-root>
Environment
vault-keeper vX.Y.Z · config: <vaultRoot=… vaultFolders=[…]>
doctor: <N ok, M warn, K error>
Documents
<total> docs · <healthy> ✅ · <warned> ⚠️ · <invalid> ❌
Top violations (by frequency)
1. <rule kind>: <count> occurrences across <N> docs
e.g. <docs/path/foo.md:12 — required field `owner` missing>
e.g. <docs/path/bar.md:8 — status `wip` not in allowed values [todo, in_progress, done]>
2. ...
3. ...
Templates with most issues
templates/<x>-template.md → <N> docs failing
most-common failure: <rule kind>
Suggested next steps
- <concrete action 1>
- <concrete action 2>
- run `/vault.fix` to auto-format deterministic issues (frontmatter ordering, section ordering, trailing whitespace)
Cap "top violations" at 5. Cap "suggested next steps" at 3. If a template is producing >50% of all violations, raise that as the single top recommendation — it almost always means the template's fields: schema or section-rules are mis-shaped, not the documents.
git commands.fields: schema or section-rules unless explicitly asked — that's an authoring decision, not a health check.For auto-fixes hand off to /vault.fix. For git sync hand off to /vault.sync.
The skill's last line is one of:
vault.health: 0 errors, 0 warnings — vault is cleanvault.health: N errors, M warnings — see report aboveNo emoji, no celebration. Evidence over enthusiasm.
npx claudepluginhub nguyenvanduocit/claude-code-vault-keeper --plugin claude-code-vault-keeperCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.