πADR
Architecture Decision Records capture decisions with lasting consequences: the context that forced a choice, the choice made, and what it costs. They are the "why" behind Architecture.
Process
Copy ADR/Template to a new page
ADR/NNNN <short title>(next free number), setstatus:: proposed, and open a PR.Discussion happens on the PR; merging with
status:: acceptedmakes it canon.ADRs are immutable once accepted β a change of course gets a new ADR that lists the old one in
supersedes::, and the old one flips tostatus:: superseded.ADRs 0001β0008 were backfilled on Jul 8th, 2026 to document decisions already in effect; their dates approximate when the decision actually landed.
The records
ADR/0001 GitOps apply model β operators apply desired state; humans only merge
ADR/0002 Monorepo layout β one repo: apps/, packages/, images/, terraform/, clusters/, nix/
ADR/0003 Cluster topology single source of truth β network facts live in per-cluster JSON ConfigMaps
ADR/0004 Disko with GPT partlabels β declarative partitioning keyed on
disk-main-*labelsADR/0005 Cilium BGP load balancing β Cilium advertises VIPs; the gateway firewall gates cross-site
ADR/0006 Dotfiles vendored in-repo with chezmoi β no home-manager, no separate repo
ADR/0007 Offline root CA with YubiKey and SLIP-0039 β root stays offline; Vault runs the intermediate
ADR/0008 Diskless netboot for rackpi5 β stateless RAM image served from spore
ADR/0009 Logseq wiki on Cloudflare Pages β this wiki
ADR/0010 First-party Bun SSG for the wiki β the renderer that actually builds it
Sub-pages
- ADR/0001 GitOps apply model
- ADR/0002 Monorepo layout
- ADR/0003 Cluster topology single source of truth
- ADR/0004 Disko with GPT partlabels
- ADR/0005 Cilium BGP load balancing
- ADR/0006 Dotfiles vendored in-repo with chezmoi
- ADR/0007 Offline root CA with YubiKey and SLIP-0039
- ADR/0008 Diskless netboot for rackpi5
- ADR/0009 Logseq wiki on Cloudflare Pages
- ADR/0010 First-party Bun SSG for the wiki
- ADR/Template
Linked references 5
Copy ADR/Template to ADR/NNNN <short title> (next free number), fill in Context / Decision / Consequences, set status:: proposed, PR it. Process details on ADR.
docs/ becomes a Logseq graph (pages/, journals/, logseq/): edited with the Logseq desktop app or as plain markdown, linked densely, with ADRs as a [[ADR]] namespace carrying status::/date:: page properties.
Decisions are recorded. Anything with lasting consequences gets an ADR.
Seeded Architecture (all four layers plus networking, secrets, and GitOps), Fleet, Runbooks (migrated from loose files in docs/), and backfilled ADRs 0001β0008.