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.