wiki-lint

wiki-lint is a skill for Claude Code from ihudak/ihudak-claude-plugins. It costs 80 tokens per session (1,632 once invoked), scanned A, original, MIT.

A health checker for a wiki, which is a collection of linked knowledge pages. It finds orphan pages, broken links, outdated sources, contradictions, missing index entries, missing concept pages, and entities that are not linked.

In plain words
What is it for?
Use it to audit an Obsidian-style wiki and produce a report on page links, sources, indexes, concepts, and consistency.
Why use it?
It reveals gaps and inconsistencies that make a wiki difficult to navigate or trust. It reports the findings and asks before changing anything.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Part of the obsidian-llm-wiki plugin — 11 skills, 10 commands shipped together

Good fit Use it to audit an Obsidian-style wiki and produce a report on page links, sources, indexes, concepts, and consistency.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ihudak/ihudak-claude-plugins/wiki-lint
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add ihudak/ihudak-claude-plugins --skill wiki-lint
Clone the repo
git clone --depth 1 https://github.com/ihudak/ihudak-claude-plugins

Made for: Claude Code.

Or install obsidian-llm-wiki, the plugin that ships this one along with the rest of its 11 skills, 10 commands.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for wiki-lint

README.md
[![agentmods](https://agentmods.dev/badge/skills/ihudak/ihudak-claude-plugins/wiki-lint/github.svg)](https://agentmods.dev/skills/ihudak/ihudak-claude-plugins/wiki-lint)
Your own site
<a href="https://agentmods.dev/skills/ihudak/ihudak-claude-plugins/wiki-lint"><img src="https://agentmods.dev/badge/skills/ihudak/ihudak-claude-plugins/wiki-lint/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for wiki-lint

Your own site · 80×15
<a href="https://agentmods.dev/skills/ihudak/ihudak-claude-plugins/wiki-lint"><img src="https://agentmods.dev/badge/skills/ihudak/ihudak-claude-plugins/wiki-lint.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 80 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,632 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00080 $0.01632
Opus 5 $0.00040 $0.00816
Sonnet 5 $0.00016 $0.00326
Haiku 4.5 $0.00008 $0.00163

Measured 5d ago against content hash d2a29445e2e3, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

wiki-lint scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/obsidian-llm-wiki/skills/wiki-lint/SKILL.md · 207 lines

How it starts

The opening of the file, as written. The whole thing — 207 lines — stays where its author put it; the contents beside it link to each section on GitHub.

wiki-lint

Read skills/wiki-schema/SKILL.md fully before proceeding.

Invoke with: /wiki-lint


Step 1 — Resolve VAULT_PATH

Vault path: ~/obsidian_vault by default; set VAULT_PATH to override. WSL users with a Windows-side vault must set VAULT_PATH explicitly (e.g. /mnt/c/Users/<name>/obsidian_vault).


Step 2 — Enumerate all wiki pages

First verify the wiki directory exists:

[ -d "wiki" ] || { echo "Wiki not initialised — run /wiki-ingest to create the first page."; exit 0; }
find "wiki" -name "*.md" \
  -not -name "_index.md" \
  -not -name "_log.md" \
  -not -name "hot.md"

Also read wiki/_index.md for the catalog (skip if absent) and wiki/_manifest.json for ingest history (skip if absent).


Step 3 — Run all lint checks

Work through each check. Collect findings before writing the report.

Check 1 — Orphan pages

A wiki page is an orphan if:

  • No other wiki page contains a [[wikilink]] pointing to it, AND
  • It is not listed in _index.md

Scan every wiki page body and _index.md for wikilinks. Any page not referenced by either is an orphan.

Severity: medium (orphans may be intentional seeds — do not auto-delete).

Check 2 — Dead links

For every [[wikilink]] found in wiki page bodies and frontmatter related: lists: check that a file with a matching basename exists somewhere in the vault.

find "<VAULT_PATH>" -name "<linked-title>.md"

Severity: high — dead links silently break the wiki graph.

Check 3 — Stale sources (Layer 1 files changed since ingest)

For every Layer 1 file recorded in _manifest.json:

  1. Check if the file still exists.
  2. Compute its current hash: md5sum "<filepath>" | cut -d' ' -f1
  3. Compare to the manifest hash.

If hash differs: the source has changed since it was ingested. The wiki pages derived from it may be outdated.

Severity: medium — flag for re-ingest, do not auto-re-ingest.

Check 4 — Contradictions

Scan all wiki page bodies for > [!warning] callouts containing "contradiction" or "conflict". These were flagged during ingest and need human resolution.

Read the full file on GitHub · 207 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 207 lines · 80 tokens per session scan A d2a29445e2e3

Subscribe to this mod's changes

wiki-lint is a skill published in the GitHub repository ihudak/ihudak-claude-plugins (2 stars, last pushed today), licensed MIT. It adds 80 tokens to every session and 1,632 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.

Related

Other skills, from other repositories

dummy-dataset

Generate realistic dummy datasets for testing with customizable columns, constraints, and output formats (CSV, JSON, SQL, Python script). Use when creating test data, building mock datasets, or generating sample data for development and demos.

phuryn/pm-skills · 48 tokens

stakeholder-map

Build a stakeholder map using a power/interest grid, identify communication strategies per quadrant, and generate a communication plan. Use when managing stakeholders, preparing for a launch, aligning cross-functional teams, or planning stakeholder engagement.

phuryn/pm-skills · 47 tokens

competitive-battlecard

Create sales-ready competitive battlecards comparing your product against a specific competitor — positioning, feature comparison, objection handling, and win/loss patterns. Use when preparing sales teams, creating competitive materials, or responding to 'why not competitor X?'.

phuryn/pm-skills · 52 tokens

memory

Recall applicable reviewed topic pages or maintain them through separately budgeted mining, learning and curation. Triggers: "memory", "recall prior work", "mine and learn", "curate memory", "qualify or retire a lesson".

boshu2/agentops · 51 tokens

sheet-music-publisher

Converts mastered audio to sheet music and creates printable songbooks. Use after mastering when the user wants sheet music or a songbook for their album.

bitwize-music-studio/claude-ai-music-skills · 36 tokens

bun-test-mocking

Use for mock functions in Bun tests, spyOn, mock.module, implementations, and test doubles.

secondsky/claude-skills · 25 tokens