The second brain that writes itself

Bartosz Sojka

Claude Community Meetup · Amsterdam · 15 September 2026

research-atlas

From an empty folder to 403 markdown files

17 Aug → 10 Sep 2026

Why markdown

Agents are trained on it

It's their native input and output

Files are how agents act

They live on a computer: read a file, write a file, run a command

No integration

A file appears as a side effect of working. No tool call, no schema.

You can read and fix it

Any sentence, in any editor

research-atlas

How to find information, written by agents

raw/fetched docs and probes, never edited
needs/a kind of question, with its source ladder
sources/one API or index: access, limits, status
methods/a technique that works across sources
guides/how to assemble a research setup
concepts/why sources behave as they do
summaries/one per raw document
_meta/scope, roadmap, health, open defects

What holds it together

CLAUDE.mdthe rules and page types
index.mdthe catalogue, read first
log.mdone line per operation
[[wikilinks]]a ladder links its sources, and back
templatesone shape per page type, in its skill

Demo 2 · live

One change, propagated

readwrittenexpected

Made up. Bluesky's search API is keyless today.

Heads up: Bluesky announced on 10 September that its public search API now needs an API key. Don't probe or fetch anything. Record it as reported and update every page that relies on it being keyless.

Must read

sources/bluesky-appview.md, then one grep for [[bluesky-appview]] finds every page that links it

Must write

sources/bluesky-appview.md · needs/finding-communities.md · needs/finding-people.md · index.md · _meta/roadmap.md · log.md

Both need pages list its auth as none, so lint fails until they change

Demo 2 · recording

One change, propagated

replays/demo-2/

pausedDemo 2 · one change, propagatedP play · +/- speed · . , step

How a wiki decays, and what keeps it true

Decays

  • Contradicts itself
  • Goes stale
  • Only grows

Keeps it true

Loopsscheduled scan, check and grow
[[wikilinks]]a change finds everything that depends on it
Page templateseach page type has a fixed shape
lint.pymechanical checks on every change

Is the structure right?

Demo 1: a new guide, from the right reads

replays/demo-1/

pausedDemo 1 · is the structure right?P play · +/- speed · . , step

Live

An interface on top

readwritten

Why markdown, not MCP or an API

A folder of markdown

  • See whether the agent read the right things
  • Change the structure until it does
  • Links show what else a change must reach

Behind MCP, an API or a CLI

  • Hard to verify it read the right sources
  • You can't change how the data is stored or delivered
  • Update one record, and nothing says what else should change

Only on files can you verify, and change, what the agent reads.

Take home

  1. 1Make a custom structure for your use case
  2. 2Measure how your agent works
  3. 3Keep it up to date and check for problems
  4. 4Grow your wiki into a new structure when the current one gets inefficient

Bartosz Sojka