Check an existing Markdown knowledge wiki for contradictions, stale claims, broken links, index drift, orphan pages, and incomplete pages. The agent verifies candidates and proposes concrete fixes in a prioritized report. It also suggests useful questions and sources to investigate.

Use when:

  • “Lint the wiki”
  • “Health check my wiki / knowledge base”
  • “Review the wiki for contradictions and orphan pages”
  • “What’s stale in my wiki?”
  • “Clean up the wiki and fix the broken links”

The skill can be selected by an agent that supports installed skills, or invoked explicitly using the host agent’s skill mechanism. It requires an existing wiki; wiki-ingest is an optional way to create one.

Usage

Health check the wiki and report what's stale. Do not change files.
Lint the wiki and fix broken links and index drift.

A review or report request leaves wiki files untouched, including the log. A request to fix issues authorizes those fixes; the agent does not ask for the same permission again. Questions remain appropriate for unresolved content choices or changes outside the request. Raw source files are never modified.

The agent reads your applicable AGENTS.md/CLAUDE.md instructions and wiki schema before assuming a directory layout. Explicit paths and schema conventions take precedence over defaults, including custom index and log locations.

If existing wiki pages lack a configured index, log, or raw directory, the agent reports that missing component and continues applicable checks manually. It does not treat the wiki as nonexistent or bootstrap a replacement. The bundled checker requires an existing index and raw directory; a missing log does not prevent its scan.

Checks and limitations

The bundled Python 3.10+ checker is read-only and uses only the standard library. It checks wikilink destinations and ambiguity, raw references, index coverage, orphan pages, and short-page candidates. It preserves directory-qualified link targets, so entities/acme.md and sources/acme.md remain distinct. Raw Markdown links resolve relative to the page and support spaces, Unicode, and URL encoding.

From a repository checkout, run:

python3 -B skills/wiki-lint/scripts/check_wiki.py /path/to/wiki-root

For a custom layout:

python3 -B skills/wiki-lint/scripts/check_wiki.py /path/to/wiki-root \
  --wiki-dir knowledge --raw-dir material --index knowledge/catalog.md \
  --hub knowledge/activity.md --hub knowledge/synthesis.md

Paths are relative to the wiki root unless absolute. --hub is repeatable and excludes additional schema-defined hub pages from orphan, index-coverage, and stub candidates. The index and default top-level log.md/overview.md are already hubs. The checker prints JSON with file/line references. Exit 0 means the scan completed, even when findings exist; exit 2 indicates a configuration or read error. It never writes a report or changes wiki files itself.

Results require review: the checker is not a full Markdown/YAML/Obsidian parser. It does not validate heading anchors, reference-style Markdown links, attachment wikilinks, complex nested links, or custom link-resolution conventions. Its page graph uses wikilinks; ordinary Markdown links between wiki pages need manual checks. Bare raw paths with punctuation are heuristic; use Markdown links, quoted paths, or a source: field for unusual filenames. An unrecognized reference can make an ingested source look unreferenced.

The agent separately reads related pages for contradictions, stale claims, missing concepts, and missing cross-references. A newer source does not automatically supersede an older one; replacement requires evidence of a correction or relevant change. Otherwise both claims and their citations remain visible. Page modification dates do not establish claim freshness.

Findings are prioritized as correctness, drift, hygiene, then growth opportunities. Authorized repairs also update affected catalog entries and append a dated lint entry to the configured log. Report-only passes are logged only when explicitly requested or already covered by a user-approved workflow.

Skill and regression tests

See the full skill definition for the workflow and authorization boundaries, and the checker for the mechanical implementation.

Run the isolated fixture tests from a checkout:

python3 -B -m unittest discover -s skills/wiki-lint/scripts -p 'test_*.py' -v

Sibling skills: wiki-ingest adds sources and maintains wiki pages; wiki-query answers questions with citations and can save durable analyses.