Decisions (ADR index)
Architecture Decision Records are the binding “why” behind the system. They live in the
repo at docs/architecture/adr/ — this index links to the source files rather than
duplicating them; a decision changes only by superseding its ADR.
| ADR | Decision |
|---|---|
| ADR-001 | Clean-room implementation — reference source is never consulted |
| ADR-002 | Internal-first, SaaS-ready: multi-tenant from day one, dogfood before public |
| ADR-003 | Mobile is offline-tolerant, not offline-first |
| ADR-004 | Email auth with app-owned authorization |
| ADR-005 | P0 scope = the daily work loop |
| ADR-006 | Baseline product taste and defaults |
| ADR-007 | Better Auth behind an internal adapter |
| ADR-008 | Drizzle as the query layer, repository-guarded |
| ADR-009 | Mac Studio internal alpha deployment |
| ADR-010 | Name and domains |
| ADR-011 | Workspace authorization + the negative-auth test contract |
| ADR-012 | Versioned contract registry → generated client |
| ADR-013 | Work-item mutation semantics (revisions, idempotency, identifiers) |
| ADR-014 | Web transport and state management |
| ADR-015 | Expo managed mobile app |
| ADR-016 | Continuous staging deployment |
| ADR-017 | Mentions, watchers, and the inbox |
| ADR-018 | The board composes existing APIs |
| ADR-019 | Project-scoped, date-only cycles |
| ADR-020 | Postgres-native filters and saved views |
| ADR-021 | Command palette and narrow quick search |
| ADR-022 | Provider-neutral transactional email |
| ADR-023 | Email outbox + retry worker |
| ADR-024 | Roadmap: objectives and modules |
| ADR-025 | Constrained markdown rich text |
| ADR-026 | SSE-over-outbox realtime transport |
| ADR-027 | Task detail split pane — one URL, two presentations |