Decision catalogue
Decision catalogue
Every architectural decision on this project lives here as a numbered ADR. This is a cache for agents and collaborators: before resolving a fork, look for the ADR that already answers it.
If no ADR covers the fork, the rule in ../standards/decisions.md applies — draft the ADR, label the work item needs:adr, and stop for a human. Never decide silently and proceed.
Index
| ADR | Decision | Status |
|---|---|---|
| 0001 | Cloudflare over Vercel | Accepted |
| 0002 | No Next.js | Accepted |
| 0003 | Neon Postgres over Cloudflare D1 | Accepted |
| 0004 | Hyperdrive, not the Neon serverless driver | Accepted |
| 0005 | Clerk for auth, but own the users table | Accepted |
| 0006 | Event-first data model | Accepted |
| 0007 | Progressive disclosure for logging | Accepted |
| 0008 | Drizzle as query layer and schema source of truth | Accepted |
| 0009 | Astro SSR + islands for web | Accepted |
| 0010 | Catalogue behind a CatalogueSource interface | Accepted |
| 0011 | Docker Postgres locally, Neon branch in CI | Accepted |
| 0012 | Work items: GitHub Issues + in-repo specs | Accepted |
| 0013 | Docs subsite: Astro Starlight on Pages | Accepted |
| 0014 | WSL2 as the development environment | Accepted |
| 0015 | PR-gated agent autonomy | Accepted (amended by 0018) |
| 0016 | Open-data catalogue seeding with per-record provenance | Accepted |
| 0017 | AI-assisted normalisation with confidence gating | Accepted |
| 0018 | Branch protection is advisory, not enforced | Accepted |
| 0019 | Pin TypeScript 6 to keep type-aware linting | Accepted |
| 0020 | Own the schema-integrity check rather than trust drizzle-kit check | Accepted |
Provenance
ADR-0001 to ADR-0007 were extracted verbatim in substance from docs/architecture.md §3, where they originated as ADR-1..7 during the pre-implementation architecture work. ADR-0008 to ADR-0015 were taken during the delivery-system planning conversation on 30 July 2026. ADR-0016 and ADR-0017 cover the catalogue seeder added to scope later the same day.