← All pages

Wiki Health Check — 2026-06-21 (post-restructuring)

A second structured lint pass per CLAUDE.md §5.3, run immediately after the risk-score-retirement restructuring (99 platform pages edited, index.md fully rewritten, CLAUDE.md schema updated, 6 new/rewritten concept pages). Large mechanical edits at that scale carry real regression risk, so this pass treats the restructuring as the thing under test, not just a routine check. Covers all 99 platform pages and 34 concept pages.


1. Orphan check — PASS

Every file in pages/platforms/ and pages/concepts/ is reachable from pages/index.md or cross-linked from another concept page. Zero orphans across 99 platform pages and 34 concept pages.

The Phase 3 rewrite of index.md’s “Methodology & Reference Pages” and “Synthesis Pages” sections used bare filenames (methodology.md, risk_scoring_pgav2.md, weare_suite.md, related_work.md, verification_report.md, tier_bifurcation.md, scraper_enforcement_gap.md) instead of concepts/-prefixed paths — 8 broken links in total, since index.md lives in pages/ while these files live in pages/concepts/. Fixed: all 8 corrected to concepts/{file}.md. Re-verified: 0 broken links remain.

The path-level checker doesn’t validate #fragment anchors, so a second pass parsed every linked target’s actual headings. Found one genuinely dead anchor: pages/concepts/output_ownership.md linked to risk_scoring_genga.md#formal-scoring-specification — a section that no longer exists, because risk_scoring_genga.md was restructured in an earlier turn (its old “Formal Scoring Specification” section was replaced with “GenGA-Specific Parameters”/“Worked Example”/“GenGA-Specific Limitation”). Fixed: rewrote the referencing sentence to drop the dead anchor and reframe the claim as a reading caution rather than an active scoring rule, consistent with scoring’s retirement. Re-verified: 0 broken anchors remain across the wiki.

4. Staleness check — PASS

Cross-checked all 99 rows in index.md’s two Platform/Provider Overview tables against the actual latest ### {date} heading in each corresponding platform page. 0 mismatches.

5. Threshold check — PASS (1 known non-issue re-confirmed)

Scanned every platform page’s **Flagged keywords:** line for keyword frequency. 23 of 30 distinct keywords meet the 3-platform threshold; all 23 have a corresponding concept page. The one apparent gap (prepare derivative, 4 platforms) is the same already-documented non-issue from the 2026-06-21 (first) lint pass — it’s handled as a named variant inside derivative_works.md and create_derivative.md, re-confirmed present in both.

6. Contradiction check — 4 ISSUES FOUND AND FIXED

Specifically targeted at self-consistency between the restructuring’s “risk scoring is retired” framing and the content of pages that predate that decision:

7. Formatting check — 6 FILES FLAGGED, NOT AUTO-FIXED (see rationale)

Scanned all 136 wiki/schema files for tab characters, trailing whitespace, and 3+ consecutive blank lines. Zero tab issues, zero blank-line-run issues. 6 files have trailing whitespace, all inside > block-quoted clause text: Facebook_Terms_of_Service.md, Instagram_Other.md, Instagram_Privacy_Policy.md, Reddit_Terms_of_Service.md, Spotify_Terms_of_Service.md, YouTube_Privacy_Policy.md. Two of Reddit_Terms_of_Service.md’s instances are trailing double spaces at the end of clause fragments — the Markdown hard-line-break convention — which is plausibly verbatim-preserved source structure rather than scraper noise. Not auto-fixed: per CLAUDE.md’s “never paraphrase legal text” rule, altering whitespace inside a verbatim block quote is a content change to verify against the raw source first, not a safe mechanical cleanup; these predate this session’s edits and were not introduced by the restructuring. Flagged here for the same reason the first lint pass flagged (but didn’t fix) the UpScrolled/Upscrolled naming inconsistency — a known, low-priority, deliberately-not-auto-fixed item.

8. Naming inconsistency — STILL OPEN (re-confirmed, not fixed)

Upscrolled_Terms_of_Service.md’s filename and **Source:** field use “Upscrolled” (matching sources/jsonl/Upscrolled_*.jsonl); the page’s H1 title and both index.md references still use “UpScrolled” (camelCase). Same item flagged in the first lint pass (2026-06-21 11:15), not yet resolved. Cosmetic only — confirmed all links still resolve correctly.


Summary

CheckResult
Orphan pages0 found
Broken links (path)8 found, all fixed
Broken links (anchor)1 found, fixed
Stale “latest date” references0 found (99/99 verified)
Missing concept pages (3+ threshold)0 found (1 known non-issue re-confirmed)
Contradictions (retirement self-consistency)3 found, fixed
Numeric errors1 found (97→96 source-file count, 4 locations), fixed
Formatting anomalies6 files flagged, not auto-fixed (verbatim-quote rule)
Naming inconsistencies1 found, still open (unchanged from prior pass)

This pass earned its keep. Every fix above was a real regression from the restructuring’s scale (8+1 broken links, 3 stale-status contradictions, 1 propagated numeric error) — none were hypothetical. The mechanical, scripted approach (orphan/link/staleness/threshold checks via Node, not manual reading) is what made checking all 99+34 files tractable; the contradiction check specifically targeted the seam between “what the restructuring changed” and “what every other page still assumed,” which is exactly where this kind of error hides after a large edit.


See also: lint_report_2026-06-21.md · methodology.md · verification_report.md