Files
personal-wiki/skills/wiki-lint/SKILL.md

4.6 KiB

name, description, allowed-tools
name description allowed-tools
wiki-lint Health check the Obsidian wiki vault. Finds orphan pages, dead wikilinks, stale claims, missing cross-references, frontmatter gaps, and empty sections. Creates or updates Dataview dashboards. Generates canvas maps. Triggers on: "lint", "health check", "clean up wiki", "check the wiki", "wiki maintenance", "find orphans", "wiki audit".
Read
Write
Edit
Bash
Glob
Grep

wiki-lint — Wiki Health Check

Run lint after every 10-15 ingests, or weekly. Ask before auto-fixing anything. Output a lint report to wiki/meta/lint-report-YYYY-MM-DD.md.


Lint Checks

Work through these in order:

  1. Orphan pages — wiki pages with no inbound wikilinks. They exist but nothing points to them.
  2. Dead links — wikilinks that reference a page that does not exist.
  3. Stale claims — assertions on older pages that newer sources have contradicted or updated.
  4. Missing pages — concepts or entities mentioned in multiple pages but lacking their own page.
  5. Missing cross-references — entities mentioned in a page but not linked.
  6. Frontmatter gaps — pages missing required fields (type, status, created, updated, tags).
  7. Empty sections — headings with no content underneath.
  8. Stale index entries — items in wiki/index.md pointing to renamed or deleted pages.

Lint Report Format

Create at wiki/meta/lint-report-YYYY-MM-DD.md:

---
type: meta
title: "Lint Report YYYY-MM-DD"
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: [meta, lint]
status: developing
---

# Lint Report — YYYY-MM-DD

## Summary
- Pages scanned: N
- Issues found: N
- Auto-fixed: N
- Needs review: N

## Orphan Pages
- [[Page Name]] — no inbound links. Suggest: link from [[Related Page]] or delete.

## Dead Links
- [[Missing Page]] — referenced in [[Source Page]] but does not exist. Suggest: create stub or remove link.

## Missing Pages
- "concept name" — mentioned in [[Page A]], [[Page B]], [[Page C]]. Suggest: create a concept page.

## Frontmatter Gaps
- [[Page Name]] — missing fields: status, tags

## Stale Claims
- [[Page Name]] — claim "X" may conflict with newer source [[Newer Source]].

## Cross-Reference Gaps
- [[Entity Name]] mentioned in [[Page A]] without a wikilink.

Naming Conventions

Enforce these during lint:

Element Convention Example
Filenames Title Case with spaces Machine Learning.md
Folders lowercase with dashes wiki/data-models/
Tags lowercase, hierarchical #domain/architecture
Wikilinks match filename exactly [[Machine Learning]]

Filenames must be unique across the vault. Wikilinks work without paths only if filenames are unique.


Writing Style Check

During lint, flag pages that violate the style guide:

  • Not declarative present tense ("X basically does Y" instead of "X does Y")
  • Missing source citations where claims are made
  • Uncertainty not flagged with > [!gap]
  • Contradictions not flagged with > [!contradiction]

Dataview Dashboard

Create or update wiki/meta/dashboard.md with these queries:

---
type: meta
title: "Dashboard"
updated: YYYY-MM-DD
---
# Wiki Dashboard

## Recent Activity
```dataview
TABLE type, status, updated FROM "wiki" SORT updated DESC LIMIT 15
```

## Seed Pages (Need Development)
```dataview
LIST FROM "wiki" WHERE status = "seed" SORT updated ASC
```

## Entities Missing Sources
```dataview
LIST FROM "wiki/entities" WHERE !sources OR length(sources) = 0
```

## Open Questions
```dataview
LIST FROM "wiki/questions" WHERE answer_quality = "draft" SORT created DESC
```

Canvas Map

Create or update wiki/meta/overview.canvas for a visual domain map:

{
  "nodes": [
    {
      "id": "1",
      "type": "file",
      "file": "wiki/overview.md",
      "x": 0, "y": 0,
      "width": 300, "height": 140,
      "color": "1"
    }
  ],
  "edges": []
}

Add one node per domain page. Connect domains that have significant cross-references. Colors map to the CSS scheme: 1=blue, 2=purple, 3=yellow, 4=orange, 5=green, 6=red.


Before Auto-Fixing

Always show the lint report first. Ask: "Should I fix these automatically, or do you want to review each one?"

Safe to auto-fix:

  • Adding missing frontmatter fields with placeholder values
  • Creating stub pages for missing entities
  • Adding wikilinks for unlinked mentions

Needs review before fixing:

  • Deleting orphan pages (they might be intentionally isolated)
  • Resolving contradictions (requires human judgment)
  • Merging duplicate pages