plugins/obsidian/skills/wiki-lint/SKILL.md
Runs a structural and content health check on an Obsidian-based LLM knowledge wiki. Detects frontmatter issues, broken or asymmetric cross-references, contradictions, stale claims, tag discipline violations, migration backlog overflow, missing hub pages, and orphan content. Produces a structured lint report. Triggers when the user runs /wiki:lint, asks for a "wiki health check", or asks to lint the knowledge wiki.
npx skillsauth add talent-factory/claude-plugins wiki-lintInstall 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.
The user runs /wiki:lint (typically weekly) or asks for a wiki health check.
Same vault layout as wiki-ingest. The migration backlog soft cap (default: 50 files) is configurable via the vault's CLAUDE.md as wiki_migration_cap: <n>.
Read all files in <wiki-root>/_wiki/ and <wiki-root>/_raw/. Run the following checks and collect issues.
kind, type, title, domain, status, tags, created, updated for all files. Source-specific: source_url, ingested, distilled_into. Wiki-specific: sources, related, last_synthesized.kind/type consistency: kind: wiki may only have type: concept|tool|compare|hub|note. kind: source may only have type: clipping|chat|note|transcript.wiki-tool must have a ## Setup heading, wiki-compare must have an ## Options table, wiki-hub must have all five sections (## Overview, ## Concepts, ## Tools, ## Compare Pages, ## Related Hubs).index.md).[[X]] whose target file does not exist.related: fields: if A.related contains B, then B.related must contain A.updated: older than six months AND any entry in sources: has an ingested: date newer than last_synthesized:.related: but make conflicting claims → flag for review.#draft, #tbd, #wip (these belong in the status: field)..md files in <wiki-root>/ that live outside _raw/ and _wiki/ (templates are inside _wiki/templates/ and therefore already excluded). If the count exceeds the soft cap (default 50): emit a WARNING.kind: wiki, type: hub page → suggest one.sources: backref: wiki pages with an empty sources: field but content that asserts factual claims → flag.Trivial fixes with diff preview for user confirmation:
created: from git log: git log --diff-filter=A --follow --format=%aI -1 -- <file>.related: fields bidirectionally.domain: <vault-domain> if the field is missing.Everything else: report only, do not fix.
Write <wiki-root>/_wiki/lint-report-YYYY-MM-DD.md with frontmatter kind: wiki, type: note and the following structure:
# Lint Report YYYY-MM-DD
## Summary
- Files checked: N
- Issues: M (X critical, Y minor)
- Migration Backlog: Z files (cap: 50, status: OK / OVER by N)
## Critical Issues
### Structural
- ...
### Linking
- ...
## Minor Issues
- ...
## Auto-Fix Suggestions
(diff block per suggestion; user confirms)
## Hub Suggestions
- Cluster `<theme>`: 7 pages without hub. Recommended: `_wiki/concepts/<theme>.md` as type: hub.
Append a log entry:
## [YYYY-MM-DD HH:MM] lint | <report-name>
- issues: M (X critical, Y minor)
- migration backlog: Z files (cap: 50)
Run the markdown-syntax-formatter agent (from the education plugin) on the report. If the education plugin is not installed, skip this step.
documentation
Creates comprehensive handoff documentation before a /compact operation, enabling a new agent with fresh context to seamlessly continue the work. Activate when the user says "prepare a handoff", "document before compact", "context is getting too large", "I need to hand this off", "create a handoff document", "end of session notes", or "document the current state for tomorrow". Supports --output and --linear-issue options.
documentation
Collects completed tasks, GitHub activity, calendar meetings, wiki learnings, and Linear progress for the past week, then writes a structured retrospective to the Obsidian vault. Activate when the user runs "/weekly-review", asks "what did I accomplish this week", "weekly retrospective", "summarise my week", or "prepare weekly review". Works from any directory.
development
Produces a prioritised daily briefing by aggregating tasks from Obsidian TaskNotes, Google Calendar, Gmail, Linear, and GitHub, then writes the result to today's daily note in the Obsidian vault. Activate when the user runs "/today", asks "what's on my plate today", "give me my daily briefing", "what do I need to do today", or "morning briefing". Works from any directory without requiring Obsidian to be running.
tools
Provides a quick status snapshot of all GitHub repositories in a configured organisation — active, dormant, stalled — plus open pull requests and issues. Terminal output only, optimised for speed. Activate when the user runs "/project-pulse", asks "what is the status of my GitHub projects", "show me my repos", "which projects are active", "project overview", "GitHub pulse", or "what is happening in [org]". Works from any directory.