Install any skill in seconds. Free to start, no credit card required.
Get Started Free →agricidaniel/wiki-lint
Run a deterministic, read-only health check on an Obsidian wiki.
Passed 11 of 16 test cases with the skill, and 6 of 16 without it.
and 4 more in the full report
7 fixed8 passed either way7 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
I am setting up a daily CI build step to audit our team's Obsidian vault at `/ci/vault`. We need the pipeline step to fail with a non-zero exit code if lint errors are detected. Which flag option should be appended to the lint command?
| Checked | Without skill | With skill |
|---|---|---|
| Includes the --strict flag in the lint command. | Missed | Passed |
The instructions your model reads when the skill loads.
Use the portable lint engine as the source of truth. Lint observes vault state; it does not create reports, dashboards, canvases, stubs, or fixes.
Resolve the installed product root from this skill's own location, not from the vault or current working directory:
PRODUCT_ROOT=/absolute/path/to/installed/claude-obsidian
CORE="$PRODUCT_ROOT/scripts/claude-obsidian.py"
test -f "$CORE"
Every ../wiki/references/ link in this file resolves the same way, relative
to this skill's own directory under $PRODUCT_ROOT, never relative to the
selected vault's wiki/ directory.
Resolve the user vault, then run one of:
python3 "$CORE" lint --vault "$VAULT"
python3 "$CORE" lint --vault "$VAULT" --format markdown
python3 "$CORE" lint --vault "$VAULT" --exclude "wiki/scratchpad/*"
The repeatable --exclude GLOB flag scopes a path (for example a scratchpad
folder) out of page, link-resolution, orphan, frontmatter, empty-section, and
stale-index scanning.
Use --strict only when a nonzero exit for findings is useful in automation.
The command remains read-only either way.
The deterministic parser understands Obsidian wikilinks and embeds, Markdown
links, aliases, heading and block fragments, escaped aliases, and code fences.
It skips dot-prefixed directories by default, mirroring Obsidian's own
indexer. Link resolution honors .gitignore files inside the vault (no git
subprocess): when a link is ambiguous between a page and a gitignored file
test cases passed, vs 6 / 16 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.