Skip to content

How it's built

catastr is written almost entirely by Claude Code (Claude Opus). My part is direction, decisions and review. The interesting question was: how far does this go if the process is taken seriously?

By the numbers

  • Started on 6 October 2026
  • 655 commits, nearly all co-authored by Claude
  • ~94,000 lines of Rust in six crates
  • ~1,400 tests
  • 82 ADRs (architecture decision records)

The first month in Forgejo:

What keeps it on track

  • A written plan. Architecture, data model and phases are in one document. The agent reads it first and must not quietly deviate from it.
  • ADRs for every decision. Each one records context, decision and consequences. Old ADRs are never rewritten; a changed mind gets a new one.
  • A task tree. Open work, observations and half-done steps live in one Org file, with states and priorities.
  • A definition of done. make check — format, clippy, tests — has to pass before anything is committed.
  • Independent audits. Separate, read-only agents review the code for drift from the plan, for bugs and for security issues.
  • Real data. Measurements against a real mailbox of 59,533 messages, not just test fixtures.

Why Rust

A strict compiler is a good safety net when most of the code is generated. Rust also gives one core for the daemon, the browser (WASM) and Android.