wiki-audit
Use when fact-checking a single wiki page against its cited sources — verifies that every footnote actually supports its claim…
Use when two wiki pages turn out to be the same concept under different slugs (merge), or one page overloads several distinct senses of a term and should be separated into qualified slugs (split). Often run on a wiki-lint "merge candidate" or "colliding slug" finding.
$ npx -y skills add kfchou/wiki-skills --skill wiki-merge --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/wiki-mergeContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when two wiki pages turn out to be the same concept under different slugs (merge), or one page overloads several distinct senses of a term and should be separated into qualified slugs (split). Often run on a wiki-lint "merge candidate" or "colliding slug" finding.
name: wiki-merge description: Use when two wiki pages turn out to be the same concept under different slugs (merge), or one page overloads several distinct senses of a term and should be separated into qualified slugs (split). Often run on a wiki-lint "merge candidate" or "colliding slug" finding.
Consolidate two pages into one (**merge**), or separate one overloaded page into qualified pages (**split**). Both operations rewrite the link graph, so they are deliberate, confirmed, and verified — never automatic.
The slug is the concept's identity (see the **Concept Identity** section of `SCHEMA.md`). Merge and split are how identity changes safely: every inbound `[[slug]]` is rewritten so no link is left resolving to nothing.
Find `SCHEMA.md` (search from cwd upward, or `~/wikis/`). If not found, tell the user to run `wiki-init` first. Read it to get the wiki root path and the Concept Identity convention.
all links pointing at the survivor.
unrelated subjects). Goal: two qualified pages, each inbound link repointed to the correct sense.
If unsure which, describe both pages to the user and confirm before proceeding.
---
Present both pages and recommend which slug survives. Prefer the slug that is: more specific and correct, more linked-to, or already the better-developed page. Confirm the choice with the user before writing anything.
> **Survivor:** `[[<survivor-slug>]]` — <why> > **Loser:** `[[<loser-slug>]]` — folded in, then deleted
Read both pages in full. Merge the loser's content into the survivor:
a footnote during the fold — a merged claim keeps its provenance.
`category`, `summary`, and `tags`.
Show the proposed survivor page as a diff and confirm before writing.
Grep every page in `wiki/pages/` and `overview.md` for `[[<loser-slug>]]` (skip `index.md` — it is generated and will be rebuilt). Rewrite each to `[[<survivor-slug>]]`. Watch for:
Show the list of affected pages and the edits; confirm before writing.
Remove `wiki/pages/<loser-slug>.md`. Do not touch `index.md` by hand — regenerate it so the loser's entry disappears and the survivor's reflects its merged frontmatter: `python bin/generate-index.py`.
Grep the whole wiki for `[[<loser-slug>]]` — there must be **zero** matches left. Then confirm every `[[slug]]` on the survivor page resolves to a real page. Fix any stragglers before finishing. (This is the same inline check `wiki-ingest` runs; a merge that leaves a dangling link defeats its own purpose.)
If the merge changes the synthesis (e.g. a duplicated "Key Concept" becomes one), update `wiki/overview.md`. Then record the operation per SCHEMA's **Operation Log & Commit Convention**:
commit on confirmation.
refactor: merge <loser-slug> into <survivor-slug> Wiki-Op: merge
## [<today>] merge | <loser-slug> → <survivor-slug> Inbound links rewritten: <N> across <list of pages>
---
Identify each distinct sense the overloaded page conflates. Propose a qualified slug per sense, following the disambiguation convention in `SCHEMA.md` (narrowest discriminator that disambiguates):
> `[[transformer]]` overloads two senses → > - `[[transformer-ml]]` — the neural network architecture > - `[[transformer-electrical]]` — the power-grid device
Decide what happens to the original bare slug:
deleted and every inbound link repointed.
Confirm the slug plan with the user before writing.
Write each new page with the content for its sense only, with full frontmatter (`title`, `category`, a distinct one-line `summary`, `tags`, `created: <today>`, `updated: <today>`). Split the frontmatter `sources` so each page lists only the sources that actually support it. Carry the relevant footnotes to each page, renumbering sequentially. Show each new page and confirm before writing.
Grep every page in `wiki/pages/` and `overview.md` for `[[<original-slug>]]` (skip the generated `index.md`). For **each** occurrence, decide which sense it meant from its context and rewrite it to the correct qualified slug. This is the judgment-heavy step — do not blanket-replace. When a single page referenced both senses, split it into two links.
Show each repointing decision (link, surrounding context, chosen target) and confirm before writing.
If retiring the bare slug, delete `wiki/pages/<original-slug>.md`. If keeping it as the primary sense, trim it to that sense only and bump its `updated` date. Then regenerate the index so the removed/added pages are reflected — do not hand-edit `index.md`: `python bin/generate-index.py`.
A Claude Code plugin implementing Karpathy's LLM Wiki pattern — a persistent, compounding knowledge base maintained by your LLM.
Use when fact-checking a single wiki page against its cited sources — verifies that every footnote actually supports its claim…
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 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…