3.5 KiB
3.5 KiB
Phase: Lint — Wiki Health Check
Run when user says "lint the wiki", "health check", "clean up the wiki", "find orphan pages".
Step 1 — Inventory all pages
find wiki/ -name "*.md" | sort
Count pages by type:
grep -r "^type:" wiki/ | sed 's/.*type: //' | sort | uniq -c | sort -rn
Step 2 — Find orphan pages
Orphans = pages with no inbound [[WikiLink]] references from other pages.
# Get all page titles
find wiki/ -name "*.md" -exec grep -l "^title:" {} \; | while read f; do
title=$(grep "^title:" "$f" | sed 's/title: "//' | sed 's/"//')
echo "$title|$f"
done > /tmp/wiki-titles.txt
# For each page, check if it's referenced elsewhere
while IFS='|' read -r title filepath; do
slug=$(basename "$filepath" .md)
count=$(grep -r "\[\[$slug\|$title" wiki/ --include="*.md" | grep -v "^$filepath" | wc -l)
if [ "$count" -eq 0 ]; then
echo "ORPHAN: $filepath (title: $title)"
fi
done < /tmp/wiki-titles.txt
Step 3 — Find contradictions
Search for contradiction signals:
grep -rn "however\|contradicts\|disagrees\|disputes\|unlike\|but.*claims\|whereas" wiki/ --include="*.md" | head -30
Read flagged pages and check if the contradiction is already noted or needs a new ## Contradictions section.
Step 4 — Find stale claims
Look for pages that haven't been updated since a source that supersedes them was ingested:
grep -r "last-updated:" wiki/ --include="*.md" | sort -t: -k2 | head -20
Cross-reference with wiki/log.md to see if newer sources touch the same topics.
Step 5 — Find missing concept pages
Scan all pages for [[WikiLinks]] that point to non-existent files:
# Extract all WikiLinks
grep -roh '\[\[[^\]]*\]\]' wiki/ | sed 's/\[\[//' | sed 's/\]\]//' | sort -u > /tmp/wiki-links.txt
# Check which ones have no corresponding file
while read -r link; do
slug=$(echo "$link" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed 's/[^a-z0-9-]//g')
if ! find wiki/ -name "${slug}.md" | grep -q .; then
echo "MISSING PAGE: $link (slug: $slug)"
fi
done < /tmp/wiki-links.txt
Step 6 — Check index completeness
# Count pages
total_pages=$(find wiki/ -name "*.md" | wc -l)
# Count index entries
index_entries=$(grep -c "^\|" wiki/index.md 2>/dev/null || echo 0)
echo "Total pages: $total_pages | Index entries: $index_entries"
Pages missing from index = pages not listed in wiki/index.md.
Step 7 — Write lint report
Write wiki/lint-<YYYY-MM-DD>.md:
---
title: "Lint Report YYYY-MM-DD"
date: YYYY-MM-DD
type: lint
---
# Wiki Health Check — YYYY-MM-DD
## Summary
- Total pages: N
- Orphan pages: N
- Missing concept pages (broken WikiLinks): N
- Potential contradictions: N
- Index gaps: N
## Orphan Pages
(list with suggested connections)
## Broken WikiLinks (Missing Pages)
(list of WikiLinks with no target file — candidates for new pages)
## Potential Contradictions
(flagged passages to review)
## Stale Pages
(pages likely superseded by newer sources)
## Recommended Actions
1. Create page for [[Missing Concept A]] — referenced in 3 sources
2. Connect [[Orphan Page B]] to [[Related Page C]]
3. Review contradiction between [[Source X]] and [[Source Y]] on [topic]
## Suggested New Sources
- Topics with thin coverage that warrant more research
Step 8 — Append to log
## [YYYY-MM-DD] lint | Health check pass N
- Report: wiki/lint-<date>.md
- Orphans found: N | Missing pages: N | Contradictions: N
- Actions recommended: N