Groundwork

Workflow

Build a knowledge base that compounds.

Most people re-read their own notes every time they have a question. A better pattern: feed your sources to an AI agent once, have it build a structured wiki, and keep that wiki updated forever. The knowledge accumulates instead of evaporating.

The shift

The usual way to use an AI with your documents is to dump files in and ask questions — the model re-discovers the answer from raw text every single time. Nothing is retained between questions. The wiki pattern flips that: each new source is processed once into durable pages, and every future answer builds on what's already there.

The cleanest way to think about it: your sources are source code, the agent is a compiler, and the wiki is the program it builds. Add a source and the agent doesn't just file it away — it reads it, updates the relevant pages, revises summaries, links it to what you already knew, and flags anything that contradicts. The wiki gets smarter; you don't redo the work.

Three layers

raw/ articles, PDFs, notes, transcripts immutable sources agent (compiler) AGENTS.md schema = build config wiki/ linked pages, summaries, index the built output
You curate raw/. The agent maintains wiki/. The schema in AGENTS.md tells it how — page shapes, naming, what to do on every ingest.
  • raw/ — the sources you collect. You decide what goes in; you never edit them.
  • wiki/ — the pages the agent writes: one concept each, cross-linked with [[wiki-links]], plus an index and a change log.
  • AGENTS.md — the schema. The most important file: it turns a general-purpose agent into a disciplined librarian that follows the same rules every time.

Three operations

ingestRead a new source, update or create pages, link it in, flag contradictions, record where it came from.
queryAnswer from the wiki first, citing the pages used; name the gap if it isn't covered yet.
save-answerTurn a useful answer into a durable page under wiki/questions/ or the right topic folder.
lintHealth check — orphan pages, broken links, duplicates, claims missing a source.

Start one in seconds

This setup ships a scaffolder. Point it at a new folder and it lays down the structure, the schema, Obsidian vault defaults, and a fresh Git repo. Obsidian plugins are installed by the Groundwork-managed obsidian-plugins command:

new-wiki
$ new-wiki ~/code/llm-wiki
$ obsidian-plugins ~/code/llm-wiki

Then open that folder with Claude Code or Codex, add a source, and tell it to ingest:

first-ingest
$ cd ~/code/llm-wiki
$ cp ~/Downloads/some-article.md raw/
$ claude
# then: "ingest raw/some-article.md"
Obsidian is the viewer

Open the folder as an Obsidian vault to browse the pages and follow the [[links]] as a graph. Obsidian only reads the markdown — the agent does the writing — so the two never fight over the files. The Groundwork repo owns the Obsidian plugin list, plugin installer, and Vim-mode default; each vault only receives the runtime files and settings it needs.

Web Clipper

Install Obsidian Web Clipper in your browser and set its destination to raw/clippings/. It saves web content as durable Markdown files in your vault, which fits this workflow exactly.

Keep it yours

A wiki is a record of what you're reading and thinking, so it lives on its own, separate from Groundwork — its own Git repo, synced through GitHub, private. The setup repo only ships the empty scaffold and this page; your actual knowledge never rides along with the configuration that may be shared publicly.

Start tiny

Pick one topic you're actively learning and ingest three sources. A small wiki you actually maintain beats a giant one you abandon. It compounds from there.

Don't hand-edit the output

Treat wiki/ like compiled output: let the agent maintain it. If a page is wrong, fix the schema or re-ingest — the same way you'd fix source code rather than patching the binary.