wiki-ingest
Use when adding a new source to a wiki — a paper, article, URL, file, transcript, or any document. One ingest may touch 10-15…
Use when fact-checking a single wiki page against its cited sources — verifies that every footnote actually supports its claim and surfaces uncited factual claims. Run after ingesting a high-stakes page or any time you want confidence in one page's accuracy.
$ npx -y skills add kfchou/wiki-skills --skill wiki-audit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/wiki-auditContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when fact-checking a single wiki page against its cited sources — verifies that every footnote actually supports its claim and surfaces uncited factual claims. Run after ingesting a high-stakes page or any time you want confidence in one page's accuracy.
name: wiki-audit description: Use when fact-checking a single wiki page against its cited sources — verifies that every footnote actually supports its claim and surfaces uncited factual claims. Run after ingesting a high-stakes page or any time you want confidence in one page's accuracy.
Verify a single wiki page against its cited sources. Two phases: detect uncited factual claims, then verify cited claims by dispatching one subagent per source in parallel. In **strong mode** (`wiki-audit strong`) a third phase adds a cross-model adversarial review: a different-provider model re-examines the same claims for overreach and contradiction, and disagreements with the normal pass become findings.
Find `SCHEMA.md` (search from cwd upward, or `~/wikis/`). If not found, tell the user to run `wiki-init` first. Read `SCHEMA.md` for the wiki root path and the **Citations** section (the rules and footnote format the audit enforces).
**Link style.** Read `link_style:` from `SCHEMA.md`. If the field is missing or `<wiki-root>/config/link-style.md` does not exist, default to `obsidian` (`[[slug]]`). Otherwise, read `<wiki-root>/config/link-style.md`. Footnote slug-targets in audited pages may be in either obsidian or markdown form — use the `## Parse` rule to recognize them both. The audit report you write is a wiki page, so its own cross-references and slug-target examples emit using the `## Emit` rule.
**If `SCHEMA.md` has no Citations section** (older wiki, initialized before this skill existed): use the fallback convention below for this run, and offer at the end to append the Citations section to `SCHEMA.md` so future operations stay consistent.
Cite every non-common-knowledge factual claim. Granularity is paragraph or claim, never per-sentence. Format: Markdown footnotes. Two citation kinds: Quote: [^N]: <target> <locator> — "<verbatim quote>" Synthesis: [^N]: <target> <locator> [synthesis] — <what supports the claim> Three rules: 1. Target is one of: a slug reference to a source-type wiki page (form per the wiki's link_style; fallback `[[source-slug]]`), raw/<file> or assets/<file> (a local file path), or a URL. Never an entity / concept / analysis page. 2. A semantic locator is present (§section, p.N, [HH:MM:SS], URL anchor, dated post). PLUS a line-range token (L142-145, L142, or L142-145,L201-203) when the resolved raw source is text-addressable (markdown / plaintext / code / cached HTML). The line-range points into the raw source file and is required for both citation kinds. Exempt (semantic locator only): PDFs, transcripts, live URLs with no local copy. 3. Either a verbatim quote, or the [synthesis] tag plus a description of what the cited range supports.
**Mode:** if the invocation arguments contain the word `strong` (e.g. `wiki-audit strong transformer-architecture`), enable strong mode — run Phase C (§3b) after Phase B. Otherwise run normal mode (Phases A and B only). The remaining argument token, if any, names the page.
If the user did not name a page, ask which page to audit. Accept slug, filename, or absolute path. Resolve to `wiki/pages/<slug>.md`. Audit one page per run.
Read the full page. Note:
If the page has zero footnotes but contains factual content, that is itself the audit result — every claim becomes a Phase A finding. Still run Phase A; skip Phase B.
Dispatch one subagent. Give it:
Task: list every non-common-knowledge factual claim that lacks a footnote. Return a structured list of `(line number, claim text, suggested-source-from-the-sources-list-or-"unknown")`.
The subagent applies the SCHEMA.md "what to cite" rule: paragraph- or claim-level granularity, common knowledge exempt.
For every footnote definition in the page, parse:
**Resolve each target to readable content:**
Any target that cannot be resolved gets verdict `🚫 source-missing`; do not dispatch a subagent for it.
**Fast path — footnotes carrying a line-range (`L…`):** Do not dispatch a subagent. Resolve the target to its raw file and read only the cited lines (e.g. `sed -n '142,143p' raw/<file>` or the Read tool with that offset/limit). Then:
range, ignoring leading/trailing whitespace and collapsing internal runs of whitespace to single spaces. Match → `✅ supported`. No match → `❌ unsupported` (note what the lines actually say).
the cited line slice (not the whole source) plus the synthesis description, and apply the verdict rubric below. This is the bounded-read case — far cheaper than reading t
A Claude Code plugin implementing Karpathy's LLM Wiki pattern — a persistent, compounding knowledge base maintained by your LLM.
Use when adding a new source to a wiki — a paper, article, URL, file, transcript, or any document. One ingest may touch 10-15…
Use when bootstrapping a new personal wiki for any knowledge domain — research, codebase documentation, reading notes,…
Use when auditing a wiki for health issues — contradictions between pages, orphan pages, broken cross-references, stale claims,…
Use when two wiki pages turn out to be the same concept under different slugs (merge), or one page overloads several distinct…
Use when asking a question against a personal wiki built with wiki-init and wiki-ingest. Do not answer from general knowledge —…
Use when revising existing wiki pages because knowledge has changed, a new piece of information updates or contradicts existing…