Build and maintain a persistent, compounding knowledge wiki from raw sources.
Based on Karpathy's LLM Wiki pattern: the LLM incrementally integrates each new source into a structured wiki of markdown files — updating entity pages, flagging contradictions, strengthening cross-references. Synthesis is compiled once and kept current, not re-derived on every query.
Usage
/llm-wiki <ACTION> [ARGUMENTS]
Actions
init [DIRECTORY] - Initialize a new wiki (default: wiki/)
ingest - Process a source file and integrate it into the wiki
query - Answer a question using the wiki as the knowledge base
lint - Health-check the wiki for contradictions, orphan pages, and stale content
status - Show a summary of the wiki's current state
Architecture
your-wiki/
├── raw/ # Immutable source documents — you add, LLM never modifies
│ └── assets/ # Downloaded images referenced by sources
├── wiki/ # LLM-generated and maintained pages
│ ├── index.md # Catalog of all pages with one-line summaries
│ ├── log.md # Append-only record of all operations
│ ├── overview.md
│ ├── entities/ # People, places, organizations
│ ├── concepts/ # Ideas, topics, themes
│ └── sources/ # One summary page per source
└── CLAUDE.md # Schema: wiki conventions and per-operation workflows
Templates for all three layers are in $SKILL_PATH/templates/.
For "init [DIRECTORY]":
Create the directory structure: raw/, wiki/, wiki/entities/, wiki/concepts/, wiki/sources/
Copy $SKILL_PATH/templates/schema.md to CLAUDE.md (or AGENTS.md)
Create wiki/index.md from $SKILL_PATH/templates/index.md
Create wiki/log.md from $SKILL_PATH/templates/log.md
Create a starter wiki/overview.md stating the wiki's domain and purpose
Tell the user to add sources to raw/ and run /llm-wiki ingest <file> next
Done when: all five files and directories exist and the user has been told the next step.
For "ingest ":
Read the source file; share key takeaways and ask the user what to emphasize
Create wiki/sources/<slug>.md with a structured summary
Update wiki/overview.md if the source shifts the big picture
Create or update entity pages in wiki/entities/ for key people, places, organizations
Create or update concept pages in wiki/concepts/ for key ideas and themes
Add a contradiction note on any existing page where this source conflicts with current content
Update wiki/index.md — every new or modified page must appear with a one-line summary
Append to wiki/log.md: ## [YYYY-MM-DD] ingest | <Source Title>
Done when: every affected page is updated, every new or changed page appears in index.md, and the log entry is appended. A single ingest typically touches 5–15 pages.
For "query ":
Read wiki/index.md to identify the most relevant pages
Read those pages in full
Synthesize an answer with citations to specific wiki pages
If the answer is a valuable synthesis (comparison, analysis, discovered connection), offer to file it as a new wiki page; if filed, update wiki/index.md and append to wiki/log.md
Done when: the question is answered with citations, and any filing decision (page created or skipped) is resolved.
For "lint":
Scan the entire wiki and report on each of the following:
Contradictions — conflicting claims across pages
Stale content — pages superseded by newer ingested material
Orphan pages — pages with no inbound links
Missing pages — concepts mentioned on multiple pages but lacking their own page
Broken links — [[Page Name]] links pointing to non-existent pages
Data gaps — areas a targeted source or web search could fill
Suggest new questions and sources. Ask before making any fixes.
Append to wiki/log.md: ## [YYYY-MM-DD] lint | health check
Done when: all six issue types are checked and reported, suggestions are given, and the log entry is appended.
For "status":
Report: source count in raw/, wiki page count, last 10 entries in wiki/log.md, and any obvious health issues (orphan pages, missing index entries).
Done when: all four items are reported.
Index and log
wiki/index.md — content catalog, updated on every ingest. Every page with a link and one-line summary, organized by category. The LLM reads this first when answering queries.
grep "^## \[" wiki/log.md | tail -5 # last 5 operations
grep "^## \[.*\] ingest" wiki/log.md # all ingests
grep "^## \[.*\] query" wiki/log.md # all queries
Optional: qmd search
For larger wikis, add qmd — local hybrid BM25/vector search with an MCP server:
bun install -g @tobilu/qmd
qmd collection add ./wiki --name my-wiki
qmd embed
qmd query "how does X relate to Y" -c my-wiki
Tips
Obsidian Web Clipper converts web articles to markdown — fast source collection for raw/.
File good answers: valuable query results (comparisons, analyses, new connections) should become wiki pages — explorations compound the knowledge base just like ingested sources do.
Ingest one source at a time — read the summaries, check the updates, guide emphasis. You get more value staying in the loop than batch-ingesting unattended.
The wiki is a git repo of markdown files — version history and collaboration come free.