LLM-Wiki — Workshop Introduction

An LLM-Wiki is a knowledge base where an LLM agent maintains a structured, interlinked collection of markdown pages between you and your raw sources. You curate, the agent writes, the wiki compounds. This page walks through what it is, how it compares to the alternatives, how it actually works, and how to start your own in under five minutes.

The idea, in one paragraph

Most setups for asking an LLM about your documents work like this: index a pile of files, retrieve relevant chunks at query time, generate an answer, forget. Same question tomorrow → same retrieval, same answer, same forgetting. Nothing accumulates.

An LLM-Wiki flips that. Sources still arrive as raw files, but now an agent maintains a derived markdown layer in between — a structured, interlinked wiki it owns and updates. Each ingest leaves durable prose behind: a new concept page, an extended entity, a flagged contradiction. Future questions read what's already been thought through. The wiki compounds.

The unlock is maintenance cost. Vannevar Bush proposed the same idea — the Memex — in 1945. The bottleneck was always that no human has the patience to keep a personal wiki current. LLMs do.

The picture

You curate sources. The agent reads them and writes the wiki. You read what the agent wrote.

YOU (curator) AGENT (maintainer) WIKI (what you read) paper / PDF blog clipping transcript / notes screenshot sources/ folder immutable; the agent never writes here agent reads sources + existing wiki writes pages CLAUDE.md (schema) concept concept synthesis entity entity question wiki/ folder — markdown pages, cross-linked

Three layers, three owners

Layer 1

Sources

Raw, immutable inputs — papers, transcripts, blog clippings, screenshots, your own notes.

You curate. The agent reads but never writes here.

Layer 2

The wiki

Derived markdown — concepts, entities, syntheses, comparisons, questions, plus index.md and log.md.

The agent owns and maintains it.

Layer 3

The schema

A single CLAUDE.md (or AGENTS.md) file — page templates, ingest/query/lint workflows, style rules.

You + the agent co-evolve it.

What it looks like on your computer

An LLM-Wiki is a folder of files on your filesystem. Not an app, not a database, not a service. The folder sits wherever folders sit: a local directory, inside an Obsidian vault, in a git repo, synced via iCloud or Dropbox.

your-wiki/
├── CLAUDE.md          ← schema (agents read this first)
├── README.md
├── sources/           ← Layer 1 — raw inputs (you curate)
├── wiki/              ← Layer 2 — agent-owned markdown
│   ├── index.md           hand-curated entry points
│   ├── overview.md        narrative tour
│   ├── log.md             append-only change log
│   ├── concepts/          ideas, frameworks, terminology
│   ├── entities/          people, orgs, products, papers
│   ├── syntheses/         multi-source thematic essays
│   ├── comparisons/       side-by-side: A vs. B
│   └── questions/         open questions / FAQ
└── derived/           ← optional charts, decks, exports

Three ways you interact with that folder

What the key files look like

Three files do most of the structural work. The excerpts below are real — pulled from the wiki this page is part of.

CLAUDE.md — the schema

The agent reads this on every open. Declares page templates, workflows, style rules. Co-evolves with use.

# CLAUDE.md — LLM Wiki Schema

> Pattern adapted from Karpathy's *llm-wiki* gist.

## TL;DR for the agent

You are the maintainer of a wiki about <your topic>. The user
curates sources in `sources/`. You compile them into pages under
`wiki/`. You never modify `sources/`. You always update `wiki/log.md`.

## Page templates

### Concept page (`wiki/concepts/<slug>.md`)
Opens with a blockquote tagline, then sections:
"What it is", "Why it matters", "Key ideas", "Related",
"Sources", "Continue reading". Cross-references use [[wiki-links]].

### Entity page
Same shape with: Summary, Key facts, Timeline, Related,
Sources, Continue reading.

(Plus templates for synthesis, comparison, question.)

## Workflows

### `ingest` — new file appeared in `sources/`
1. Read the source. Generate *.meta.md if missing.
2. Decide: extend an existing page, or warrant a new one?
3. Apply the change. Append to wiki/log.md.
4. Update wiki/index.md if a new top-level page was created.

### `lint` — periodic hygiene pass
Every page has blockquote tagline, ≥ 2 outgoing links,
## Sources, ## Continue reading. No orphans. No dead links.

## Style rules
- Short, plain sentences. One idea per page.
- Cite everything. No claim without a source link.
- Dates: ISO YYYY-MM-DD.

wiki/index.md — the curated table of contents

Hand-curated by the agent. Each entry has a one-line description so a reader can scan and dive in.

# Index

> A curated table of contents. Every link has a one-line
> description so you can scan and dive in.

If this is your first visit, start with [[overview]] for a
narrative tour.

## Concepts
- [[concepts/llm-as-judge]] — using an LLM to score outputs
- [[concepts/golden-dataset]] — the labelled benchmark you trust
- [[concepts/eval-design]] — what makes a benchmark useful
- [[concepts/evaluator-drift]] — when judges change their minds
- [[concepts/chain-of-thought-eval]] — scoring the reasoning, not just the answer

## Entities
- [[entities/hendrycks]] — author of MMLU
- [[entities/eleuther-ai]] — built lm-eval-harness
- [[entities/percy-liang]] — leads HELM at Stanford

## Syntheses
- [[syntheses/when-llm-judges-fail]] — patterns of judge failure
- [[syntheses/eval-vs-production-correlation]] — what really matters

## Open questions
- [[questions/how-to-eval-creativity]]
- [[questions/handle-evaluator-drift]]

wiki/log.md — the append-only change history

Every ingest, lint, or schema change appends an entry. Audit trail for the wiki. Newest at the top.

# Change Log

Append-only. Newest at the top.

---

## 2026-05-18 — schema migration: human-friendly conventions
- updated: CLAUDE.md page templates
  - one-liner is now a blockquote (> …) lead, not a labeled field
  - **Status:** dropped from concept/entity/synthesis pages
  - every page now ends with ## Continue reading footer
- migrated all 18 existing pages to the new format

## 2026-04-26 — ingest: hendrycks-mmlu-paper.pdf + helm-overview.md
- created concepts: golden-dataset, eval-design, llm-as-judge,
  chain-of-thought-eval, evaluator-drift
- created entities: hendrycks, eleuther-ai, percy-liang
- created syntheses: when-llm-judges-fail
- queued questions: how-to-eval-creativity, handle-evaluator-drift

## 2026-04-26 — wiki initialized
- created: CLAUDE.md (schema, v1)
- created: scaffolding under wiki/ and sources/
- notes: ready to ingest sources.

Where the pattern comes from

Andrej Karpathy proposed the LLM-Wiki pattern as a public gist in April 2026. His framing:

"Obsidian is the IDE; the LLM is the programmer; the wiki is the codebase."

Karpathy positions the pattern as the resolution to a problem first posed in Vannevar Bush's "As We May Think" (1945) — the Memex idea — that has waited eighty years for a maintainer that doesn't get bored.

Up next: see how the LLM-Wiki pattern differs from RAG and Knowledge Graphs — both at the mechanism level and at the complexity level — in Tab 02 · vs. RAG & KG.

The three patterns

Pattern 1 / RAG

The warehouse with a scanner

A vast warehouse of unsorted books. When you ask a question, the librarian uses a scanner to find books whose contents look similar to your question, reads relevant pages aloud, and re-shelves them. The same question tomorrow → the same sprint. Nothing is learned.

The mechanism · embeddings + vector index
your question embedding → vector VECTOR SPACE top-K nearest chunks
  • It's similarity, not understanding. The system knows chunk-47's vector is close to your question's vector.
  • Failures are silent. "Marketplace fairness" might miss a chunk that talks about "rebalancing orderbooks."
  • Frozen at index time. Vectors don't update. Your phrasing has to live in their neighborhood.
Pattern 2 / Knowledge Graph

The card catalog

Every fact in every book has been extracted, normalized, and filed as a typed card. You query by structured request and get precise results. But someone had to design the card system — what types of cards exist, what relationships are allowed — before the first card could be filed.

The mechanism · typed triples + ontology
TYPED GRAPH Hendrycks :Person MMLU :Benchmark Liang :Person HELM :Suite invented studied with part of
  • Triples (subject → predicate → object). Every fact is structured: (Beer)—invented→(VSM).
  • Ontology is the schema. If refutes isn't in it, you can't represent disagreement.
  • Multi-hop traversal is the superpower. "All proteins encoded by genes on chromosome 17 expressed in liver tissue" — RAG can't, KG can.
Pattern 3 / LLM-Wiki

The personal library + librarian

A modest library of books you care about. A great librarian read every one, wrote a Wikipedia-style article per concept, cross-linked the articles, flagged contradictions, and keeps a dated log of every change. When you ask, they hand you the article — already written, already linked, already curated.

The mechanism · agent-synthesized markdown pages
SOURCES AGENT WIKI paper talk notes blog post PDF immutable agent reads, synthesizes, writes MMLU llm-judge synthesis Hendrycks Liang ? concept entity synthesis question
  • The wiki is a graph of pages. Each page is a synthesis, not a summary. Edges are [[wiki-links]] drawn in the prose.
  • The agent does cognitive work at ingest. Decides what to extend, what to create, what to cross-link. This is the move RAG and KG don't have.
  • It compounds. Each new source improves multiple pages, not just one. The graph grows denser with use.
  • Just markdown. Humans can read it. Git can version it. No lock-in, no specialized tools.

Side-by-side · the mechanism

  RAG Knowledge Graph LLM-Wiki
What gets storedVectors of raw chunksTyped triplesSynthesized markdown pages
How retrieval worksTop-K nearest vectorsStructured query → graph traversalAgent reads relevant pages directly
Reasoning at ingest?No — just embedExtract typed triples per schemaYes — synthesis, cross-link, flag contradictions
Schema design upfront?NoneHeavy (formal ontology)Light (CLAUDE.md; evolves)
Cross-referencesNoneTyped, structuredUntyped, prose-embedded
AuditabilityOpaque — why this chunk?Structured provenanceCited markdown + dated log.md
Human-readableNoWith specialized toolsYes — just markdown

Time & space complexity

Variables: N = chunks (RAG) or sources/pages (wiki); L = avg chunk/page length; d = embedding dimension (~1536); K = top-K retrieved or pages read; T = triples; h = hops; LLM = forward-pass cost.

  RAG Knowledge Graph LLM-Wiki
Ingest per sourceO(L) embed + O(d · log N) insertO(L · LLM) extract triplesO((L + K·L) · LLM) synthesis
One-time setupNoneHeavy: ontology (human-weeks)Light: CLAUDE.md (human-hours)
QueryO(d · log N) + O(K · L · LLM)O(h · log T · branching)no LLMO(K · L · LLM)
StorageO(N · d) — typically GBO(T) — typically MB–GBO(N · L) — typically MB
Calibration1M chunks at d=1536 → ~6 GB; query ~1 s1M triples → ~50–500 MB; query 10–100 ms100 pages → ~1 MB; query 1–3 s
Scales gracefully toN ≈ 10⁸+T ≈ 10⁹+N ≈ 10² – 10³
The honest punchlines. RAG = cheap ingest, fat storage, query cost dominated by an LLM reading chunks. KG = expensive ingest, modest storage, query cost is structural — no LLM in the retrieval step. LLM-Wiki = expensive ingest (the agent does cognitive work), tiny storage, query cost dominated by an LLM reading a few pages. The wiki is only feasible because LLMs are now cheap enough to do per-source synthesis at all.

When to use which

Is your corpus huge (≫1K sources) AND queries diverse? └── yes → RAG Do you need typed, multi-hop reasoning (e.g. "all proteins that interact with X expressed in tissue Y")? └── yes → Knowledge Graph Do humans need to read it AND the same questions recur AND audit / explainability matter? └── yes → LLM-Wiki Two yeses? → hybrid territory (graph-RAG, wiki + RAG, KG + wiki).

Real-world hybrids

The four operations

The wiki has a small, fixed vocabulary of things you ask the agent to do. Each is a verb that operates on the same folder.

sources/ raw files wiki/ cross-linked pages index.md · log.md the living artifact answer with citations ingest new source → updated pages query read pages → answer lint periodic hygiene recompile (escape hatch) delete wiki/, re-derive from sources + CLAUDE.md

ingest

A new source appeared in sources/.

The agent reads it, generates a *.meta.md sibling if missing, decides whether to extend an existing page or create a new one, makes the change, and appends to log.md.

query

You ask a question.

The agent searches wiki/ first, falls back to sources/, and surfaces gaps as new questions/ entries. Always cites.

lint

Periodic hygiene pass.

Checks: every page has a tagline, ≥ 2 outgoing links, a ## Sources block, a ## Continue reading footer; no orphans; no dead links; log.md is dated.

recompile

The escape hatch.

Delete wiki/, re-derive every page from sources/ + CLAUDE.md. A reproducibility check — proves your sources can fully regenerate the wiki.


The schema is the contract

CLAUDE.md (or AGENTS.md) is the file the agent reads first. It defines what counts as a thing, what a page looks like, and how the operations work. Here's the concept-page template from the starter:

# <Concept Name>

> <single-sentence summary that doubles as a tagline>

## What it is
<2–6 sentence explanation, plain English first>

## Why it matters
<the practical or theoretical consequence>

## Key ideas
- bullet
- bullet

## Related
- [[concepts/<other>]]
- [[entities/<paper-or-person>]]

## Sources
- [[sources/<file>]] — <one-line note>

## Continue reading
- **<short reader-facing label>** → [[<target-page>]]
- **<short reader-facing label>** → [[<target-page>]]

There are five page templates total — concept, entity, synthesis, comparison, question — each with its own shape. The schema also declares style rules (kebab-case filenames, ISO dates, no claim without a source), forbidden behaviors (don't edit sources, don't invent citations), and the four operations.

Editing the schema is the loop

After your first ingest, you'll notice things you'd have done differently — a page split where you'd have merged, the tone is off, a template doesn't fit your domain. Don't fix the wiki by hand. Edit CLAUDE.md instead, ask the agent to re-ingest, and the next pass produces what you wanted.

The schema is the contract; the wiki is its output. Iterating on the schema is how a generic template becomes your wiki.


What a page actually looks like

This is what an agent renders, page by page — clean markdown with a blockquote tagline, structured sections, cross-links, citations, and a navigational footer.

LLM-as-Judge
Using a large language model to score the outputs of other models — fast, cheap, and shockingly correlated with human raters when designed well.
What it is

The technique of asking an LLM (often a stronger or more expensive one than the model being evaluated) to grade candidate outputs against criteria you specify. Replaces or supplements human rating in production eval pipelines.

Why it matters

Production LLMs need continuous eval, and human rating doesn't scale. A well-designed LLM-judge correlates with humans at roughly ~1% of the cost, enabling daily eval runs you'd never afford otherwise. The golden-dataset is the bedrock; the judge is the multiplier.

Related
Sources
Continue reading

Every page follows this shape. The agent writes them; you read them; the cross-links form the graph you see in Obsidian.

The pattern's sweet spot

LLM-Wikis win in a specific regime: a corpus you actually care about (not too big), questions that recur (not one-off), and an audience that includes humans. Below are the use cases I've seen pay off, grouped by who they serve.

Personal

A topic you're learning, mastering, or thinking through over weeks or months.

Literature review

Papers in a domain, synthesized as you go.

Sources: papers, conference talks, blog posts
Sample pages: concepts for techniques, entities for papers and authors, syntheses across themes

Research area

A topic you're mastering across textbooks and papers.

Sources: textbooks, papers, blog series, YouTube talks
Sample pages: concept pages for ideas, entity pages for key figures, open questions

Onboarding to a new domain

New job, new stack, new sub-field. The wiki becomes your ramp-up artifact.

Sources: company docs, runbooks, Slack threads
Sample pages: concepts for jargon, entities for systems and people, syntheses for "how we do X"

Long-running personal interest

A hobby with a literature: climbing, fermentation, tea, Go.

Sources: books, blog posts, podcast notes, your own experiments
Sample pages: techniques, gear and equipment, people in the field

Team / enterprise

The pattern as a context layer for an AI-augmented data or engineering team.

Domain context

The team's shared understanding of what this thing actually is.

Sources: PRDs, design docs, customer interviews
Pages: business concepts, system entities, decision syntheses

Playbooks

Runbooks, alert response, on-call procedures.

Sources: alert configs, postmortems, on-call notes
Pages: per-alert playbook, per-system runbook, cross-cutting "common failure modes"

Incident postmortems

Postmortems become sources; the wiki finds patterns across them.

Sources: postmortem docs
Pages: per-incident, per-system, recurring failure modes

ML experiment & ablation log

Every experiment is a source; the wiki synthesizes "what we've learned."

Sources: experiment writeups, eval reports, weights / metrics
Pages: per-dataset, per-architecture, lessons-learned syntheses

Architecture decisions (ADRs)

Proposals are sources; the wiki tracks themes, reversals, contradictions.

Sources: ADR docs, RFCs
Pages: per-decision, themed syntheses, contradictions

Customer / user feedback

Tickets, interviews, NPS → a living "why customers ask about X."

Sources: support tickets, interview notes, survey responses
Pages: per-feature, per-complaint, per-segment


Scaling up — what if I have multiple topics?

The LLM-Wiki pattern doesn't care how many wikis you have. The choice is one of relationship: are your wikis independent, or are they sub-topics of a larger theme?

If wikis are independent

Different domains that don't reference each other. E.g., your work wiki, a hobby wiki, a side-project wiki.

Setup: each is its own Obsidian vault.
Linking: none across vaults — switch with Obsidian's vault picker.
Graph: one per vault — they don't see each other.

If wikis are sub-topics of one theme — more common

Multiple narrow wikis that share a broader theme. E.g., an LLM Wiki vault containing Ontology, RAG, and Distributed systems sub-wikis.

Setup: one Obsidian vault with multiple sub-wiki folders, each with its own CLAUDE.md.
Linking: [[wiki-links]] resolve across sub-wikis natively.
Graph: unified — color-coded by sub-wiki folder.

How sub-topic wikis look on disk

The most common case — one vault, multiple sub-wikis, with a hand-curated README.md at the top:

LLM Wiki/                       ← Obsidian vault root
├── .obsidian/                  ← vault config (colors, plugins)
├── README.md                   ← hand-curated hub: "what's here"
├── Ontology/                   ← sub-wiki 1
│   ├── CLAUDE.md
│   ├── sources/
│   └── wiki/
├── RAG/                        ← sub-wiki 2
│   ├── CLAUDE.md
│   ├── sources/
│   └── wiki/
└── Distributed-Systems/        ← sub-wiki 3
    ├── CLAUDE.md
    ├── sources/
    └── wiki/

Three ways to cross-link inside this structure:

How the agent handles it: when you cd into a sub-wiki folder, the agent reads that sub-wiki's CLAUDE.md. Each sub-wiki has its own independent ingest / query / lint loop. Sub-wikis don't talk to each other agentically — only through Obsidian's link resolution.

When NOT to use it

The wiki isn't always the right tool. Where it loses:

Very large corpora

(> ~1000 sources). Vector RAG scales better — synthesis-at-ingest gets expensive at that scale.

Pure lookup / search

"Find me the doc that says X." Wiki transformations get in the way of raw retrieval.

Highly dynamic data

Real-time prices, logs, telemetry. Wikis are for slow-changing knowledge.

Regulated verbatim retrieval

Content needing exact-quote provenance. The transformation step complicates audit.


A worked example

Concretely: what does an ML team's "experiment log" wiki look like after a few months of use?

Sources you drop in

sources/
├── 2026-04-15-baseline-finetune.md
├── 2026-04-22-lr-sweep.md
├── 2026-05-03-data-cleaning.md
├── 2026-05-10-attention-ablation.md
├── 2026-05-18-eval-redesign.md
└── 2026-05-24-instruction-tuning.md

Pages the agent builds

wiki/
├── concepts/
│   ├── learning-rate-tuning.md
│   ├── data-quality-effects.md
│   └── attention-head-pruning.md
├── entities/
│   └── datasets/training-set-v2.md
├── syntheses/
│   └── what-actually-moves-the-needle.md
├── comparisons/
│   └── full-ft-vs-lora.md
└── questions/
    └── why-did-attention-ablation-help.md

Instead of six disconnected experiment writeups in Notion that nobody re-reads, the team gets a navigable wiki where "what we've learned about X" is a single page with citations back to the underlying experiments. New hires read the wiki; experienced team members keep adding sources; the synthesis is always current.

The shape of the win: the wiki turns episodic knowledge (one writeup per experiment) into accumulating knowledge (durable, cross-referenced understanding). The cost is upfront LLM work at ingest; the payoff is every future question that doesn't have to re-derive the answer.

You can start in five minutes

A working LLM-Wiki needs three things: a markdown editor (for reading), an LLM agent (for writing), and the template repo (for the schema). All three are free and take a couple of minutes each.

Prerequisites

An LLM agent

Any agent that reads a project-level instructions file:

  • Claude Code (recommended)
  • Codex CLI
  • Cursor
  • OpenClaw

The agent reads CLAUDE.md on open and behaves accordingly.

A markdown editor

Obsidian (recommended): native [[wiki-links]], backlinks, graph view.

VS Code, vim, or any markdown reader works for individual pages.

Optional: git, if you want a version history of how the wiki evolved.


The five steps

1

Clone the template

git clone https://github.com/hong-chu/llm-wiki-starter.git my-wiki
cd my-wiki
2

Pick a topic

Narrow enough that ~10 sources can cover it meaningfully. "Retrieval-augmented generation" works; "machine learning" does not. Good directions: a research area you're learning, your team's runbooks, a hobby with a literature, a sub-domain at work.

3

Customize CLAUDE.md

Open CLAUDE.md and replace the TL;DR for the agent block with one sentence describing your topic. This is the only edit required to make the template yours; everything else in the schema you can iterate on after the first ingest.

4

Drop 2–3 starter sources into sources/

PDFs, blog posts pasted as .md, transcripts, your own notes — anything you've already engaged with and want to remember. The agent will read each one on the first ingest.

5

Open the folder in your agent and say ingest

The agent reads sources/, decides what pages to create, and starts filling out wiki/. A first ingest of 2–3 sources typically produces 5–10 wiki pages. Read what came out — some will be exactly right; some will surprise you.

Workshop participants: your pre-work is steps 1 and 2. We'll do steps 3–5 together during the session — the first ingest is a shared moment, and you'll get more out of it that way. See WORKSHOP.md for the full pre-work checklist.

What you'll have at the end

A folder you own, full of markdown pages an agent wrote for you, cross-linked into a navigable graph you can browse in Obsidian. You add sources over time; the wiki compounds. The schema co-evolves with your taste.

Specifically, after a few sessions:

Don't want to clone?

If you'd rather build a wiki from scratch without cloning, open Claude Code in an empty folder and paste this prompt:

Scaffold an LLM-wiki for the topic <YOUR TOPIC>, following the
pattern in Andrej Karpathy's gist
(https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f).
Create:

- CLAUDE.md (the schema, with page templates for concepts/entities/
  syntheses/comparisons/questions and ingest/query/lint workflows)
- An empty sources/ directory I'll fill in
- An empty wiki/ tree: concepts/, entities/, syntheses/, comparisons/,
  questions/, plus index.md, overview.md, log.md

Use kebab-case.md filenames, [[wiki-links]] for cross-references, and
end every page with a ## Sources section.

The agent will create the structure from scratch. The result should look like the directory tree from Tab 01.

Best practices

Disciplines that separate "neat trick" from "actual living wiki." These come from running the pattern repeatedly and watching what fails.

Pick the right topic

The single biggest predictor of wiki health is topic narrowness. Most "my wiki isn't working" stories trace back to a topic that's too broad.

Each good topic is a narrow slice of the corresponding bad one. Same row → same domain, different scope.

Good topics — narrow

  • Prompt evaluation methods
  • Database query optimization
  • Distributed consensus algorithms
  • My team's deployment pipeline

You can name 5–10 sources you'd actually want to remember.

Bad topics — too broad

  • Machine learning
  • Databases
  • Distributed systems
  • DevOps

The agent can't decide what belongs — wiki sprawls and decays.

Ingest discipline

The first ingest sets the tone for everything that follows. Treat it like a calibration step, not the finish line.

Do

  • Start with 2–3 sources, not 50
  • Read each source yourself before ingesting
  • Read every page the agent produced
  • Update CLAUDE.md before adding more sources
  • Re-ingest after schema changes

Don't

  • Batch-ingest a backlog of 50 sources
  • Skip reading the agent's output
  • Edit individual pages by hand to "fix" them
  • Ingest something you haven't read yet

Page hygiene — what every page should have

This list is exactly what lint checks. Internalize it and your wiki passes lint by default.

Schema is the loop

The single most-important discipline. Master this and the wiki maintains itself.

The rule: when something feels off, edit CLAUDE.md, not the page. The schema is the contract; the wiki is its output. Hand-editing the output is fighting your own agent.

Workflow when a page disappoints:

  1. Identify the rule that produced the issue (e.g., "the agent split this concept across two pages when it should be one")
  2. Update CLAUDE.md to fix the rule
  3. Ask the agent to re-ingest the relevant sources
  4. Verify the new output matches your taste

The agent doesn't change CLAUDE.md on its own. That part stays human-initiated — the contract is yours.

Source rules

Lint cadence

Run lint weekly or after each major ingest. Two flavors of things it should catch:

Structural

  • Orphan pages (unreachable from index.md in ≤ 2 hops)
  • Dead [[wiki-links]] (target doesn't exist)
  • Pages missing required sections
  • Filename violations (spaces, uppercase)

Quality

  • Stubs older than 30 days (slap a **TODO** banner)
  • Pages with no ## Sources
  • log.md drift (last entry > 2 weeks old)
  • Pages with only one outgoing link

Anti-patterns to avoid

The six most common ways people break their own wiki:

1. Wiki-everything

Using the pattern for one-off questions or unbounded topics. Use it for specific, bounded, recurring domains only.

2. Hand-editing pages

You fight your own agent. Edit CLAUDE.md and re-ingest instead.

3. Vendor lock-in

Letting your wiki live inside Notion AI or ChatGPT memory. Keep it as portable markdown.

4. Silent edits

Every change should append to log.md. Otherwise the audit trail breaks and trust evaporates.

5. Averaging contradictions

When sources disagree, capture both in a ## Contradictions section. Don't silently pick one or split the difference.

6. Skipping the first read

Trusting the first ingest blindly. You must read what the agent wrote and iterate the schema — otherwise mediocre output becomes "fact."

The discipline summary: narrow topic, immutable sources, schema-as-the-loop, weekly lint, log everything. Do those five and the wiki maintains itself indefinitely.

A deeper lens: ontology & VSM

Optional — for the curious. Two frameworks from outside the LLM world (philosophy and cybernetics) that sharpen how you think about what an LLM-Wiki is and what it's missing.

You don't need this material to use the LLM-Wiki pattern. Tabs 01–05 will get you a working wiki. But once you have one, the two lenses below give you a precise way to think about where the pattern stops short — and the VSM analysis at the bottom shows you exactly which capabilities are missing and how to add them.

Ontology — five lenses on what's real

Ontology is the branch of philosophy that asks "what exists?". Five canonical answers have been proposed over the last 2,500 years. They aren't steps in a hierarchy — they're rival frames, each catching what the others miss.

LensWhat it seesWiki reading
SubstanceThings with properties (Aristotle)Files, the vault, the markdown itself
ProcessEvents, flow (Whitehead, Heraclitus)Ingest, query, lint — the live activity
RelationalConnections, networks (Leibniz)The link graph between pages
InformationalPatterns of distinction (Wheeler)CLAUDE.md, schemas, conventions
PhenomenologicalWhat shows up for a being (Heidegger)You — your taste, your refusal, what you care about

The river metaphor: water (substance), flow (process), the network of banks and rain (relational), the pattern of differences (informational), the river as it shows up to someone on the bank (phenomenological). All five descriptions are true; none is sufficient alone.

The wiki uses all five. Substance gives you a folder; process gives you ingest; relational gives you cross-links; informational gives you the schema; phenomenological is the human deciding what's worth a page in the first place. A wiki that uses only one lens is structurally incomplete.

VSM — six functions a system needs to stay viable

Stafford Beer (1926–2002) was a British cybernetician. He asked a different question: "what does any system — a cell, a team, a nation — need to stay alive in its environment?" His answer is the Viable System Model: six interacting functions. Drop any one and the system dies in a specific, recognizable way.

LayerFunctionKitchen analogy
S1 OperationsDoing the workLine cooks cooking
S2 CoordinationPreventing collisionsThe expediter
S3 RegulationOptimizing current serviceHead chef adjusting on the fly
S3* AuditIndependent inspectionFood-safety inspector walking through
S4 ScanningWatching the worldGM tracking trends, weather, reservations
S5 IdentityWhat this system is forThe owner's vision for the restaurant

Applying VSM to LLM-Wiki

Run LLM-Wiki through the framework. What does it cover, and what does it miss?

LayerWhat it would do in a wikiLLM-Wiki coverage
S1 OperationsIngest, query, lint✓ Present
S2 Coordinationindex.md, schema conventions✓ Present
S3 RegulationThe lint operation, schema-as-the-loop✓ Present
S3* Auditlog.md, citations on every page✓ Present
S4 ScanningProactively watching the world for new sources✗ Absent by design
S5 IdentityWhat this wiki is for, what it refuses⚠️ Implicit only

What's missing — and how to add it

LLM-Wiki gives you S1–S3* out of the box. To build a fuller system, two layers need to be added.

S4 — Scanning (absent)

LLM-Wiki doesn't watch the world. Sources are dropped in by hand. To add S4:

  • Cron jobs that scrape RSS, arXiv, papers-with-code
  • Heartbeats that ask "anything new on X?"
  • Webhooks from Slack, GitHub, your inbox

Tools like OpenClaw bring S4. Claude Code by itself is reactive — it waits for you.

S5 — Identity (implicit)

LLM-Wiki's S5 is hidden inside CLAUDE.md and your curation choices. To make it explicit:

  • Add an identity.md at the root
  • State what the wiki is for
  • State what it refuses to cover
  • Add a weekly ritual to revisit and revise

Without explicit S5, the wiki drifts: capable but directionless.


The autonomy ladder — L0 to L4

Removing VSM layers from the top down produces a hierarchy of autonomy. A practical framing for evaluating any AI infra project, not just wikis:

LevelWhat's lostState
L4All layers present · full cybernetic autonomy
L3– S5Capable but drifts · no direction
L2– S5, S4, S3*No outside sense, no self-inspection
L1– S5, S4, S3*, S3, S2Uncoordinated execution
L0Only S1 remnantsNot a system · just actions

Most "AI + notes" stacks today sit at L2–L3. LLM-Wiki out of the box is roughly L3: S1–S3* present, but no S4 watchers and an implicit S5. Adding watchers and an explicit identity.md lifts you to L4.

Diagnostic: if your wiki is growing but you have no explicit identity.md and no scheduled watchers, your system is structurally L3 — capability without direction. Lots of energy, no compass.

The composite architecture

Putting the lenses together: a complete Personal OS isn't LLM-Wiki alone. It's a composition of four pieces, each picked at its strongest.

Where to dig deeper

If this lens resonates, the worked example is the Ontology vault this page was generated from. It contains real pages on:

Read those pages, then come back to your own wiki and ask: what's my S5? What's my S4? Which lens am I underusing? Those answers sharpen the pattern from "neat trick" to "real architecture."