plugins/obsidian-wiki-engine/skills/obsidian-wiki-linter/SKILL.md
Runs a semantic health check over the Obsidian LLM wiki using the cheapest available LLM CLI. Finds inconsistencies, missing concepts, stale articles, connection candidates, and new article suggestions. Writes a structured report to meta/lint-report.md. Use when the wiki is large enough to have quality drift, or as a periodic maintenance step.
npx skillsauth add richfrem/agent-plugins-skills obsidian-wiki-linterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Requires Python 3.8+ and at least one CLI installed: copilot, claude, or gemini.
pip install -r requirements.txt
Status: Active Author: Richard Fremmerlid Domain: Obsidian Wiki Engine
Performs a semantic health check over the LLM wiki — the step Karpathy calls
"linting." Unlike audit.py (which checks structural coverage: orphans, missing
summaries, broken wikilinks), this skill uses an LLM to analyze semantic quality:
contradictions, knowledge gaps, and connection opportunities that only emerge once
the wiki is large enough to have internal consistency requirements.
| Category | What it finds | |:---------|:--------------| | Inconsistencies | Contradicting claims between two concept pages | | Missing Concepts | Topics implied by existing articles but not yet written | | Stale Articles | Pages with vague, outdated, or thin content | | Connection Candidates | Concept pairs that should have wikilinks but don't | | New Article Suggestions | Topics the wiki should cover based on its current scope |
python ./scripts/lint_wiki.py --wiki-root /path/to/wiki-root
python ./scripts/lint_wiki.py --wiki-root /path/to/wiki-root --sample 30
python ./scripts/lint_wiki.py --wiki-root /path/to/wiki-root --engine claude
python ./scripts/lint_wiki.py --wiki-root /path/to/wiki-root --dry-run
Same strict cheap-model chain as obsidian-rlm-distiller:
1. copilot → gpt-5-mini (Paid, AI Credits)
2. claude → claude-haiku-4-5 (fallback, Paid)
3. gemini → gemini-3-flash-preview (final fallback, Paid)
Report is written to {wiki-root}/meta/lint-report.md with YAML frontmatter:
generated_at: "2026-04-16T..."
engine: "claude"
model: "claude-haiku-4-5"
Followed by five sections:
--save-as outputs back — lint first to know what gaps to fill/wiki-rebuild (after ingest, distill, build)| audit.py | lint_wiki.py |
|:-----------|:---------------|
| Structural: missing summaries, broken links, orphans | Semantic: contradictions, gaps, stale content |
| Always fast, no LLM needed | Requires LLM call |
| Run before every /wiki-query | Run periodically (weekly or post-rebuild) |
| Exit code 1 on critical issues | Always exits 0 (report-only) |
lint_wiki.py — semantic health check orchestratoraudit.py — structural coverage checker (complementary)distill_wiki.py — shares engine detection logictesting
Skill for creating and managing isolated git worktrees (`.worktrees/issue-NNN`) for issue execution branches. USE ONLY when setting up or cleaning up isolated git worktrees for specific issue execution. DO NOT USE for managing local task files (use `task-agent`) or escalating tasks to issues (use `github-issue-backlog-agent`).
data-ai
Skill for orchestrating the end-to-end GitHub issue lifecycle flow: Issue -> Worktree -> Implementation -> PR Creation -> Resolution Closure. USE ONLY when running or dry-running full lifecycle orchestration for resolving an issue with a PR. DO NOT USE for isolated worktree management only (use `issue-worktree-agent`) or logging issues (use `github-issue-agent`).
tools
Automatically ranks GitHub issues (P0-P3) based on friction tier, frequency, and blockages, synchronizing priority labels and GitHub Projects v2 custom fields.
testing
Bridge skill for escalating ephemeral local task scratchpad items (`tasks/*.md`) into durable, taxonomy-validated, evidence-rich GitHub Issues. USE ONLY when promoting a single-session local task into durable repository backlog. DO NOT USE for managing local kanban boards (use `task-agent` instead) or directly querying/commenting on issues (use `github-issue-agent` instead).