Architecture Decision Records (ADRs)

What is an ADR?

An ADR documents a significant architecture decision: what was decided, why, and what the alternatives were. Dash creates a new ADR whenever a non-obvious technical decision is made.

ADR Template

## ADR-XXX: [Decision Title]

**Status:** Proposed | Accepted | Deprecated | Superseded  
**Date:** YYYY-MM-DD  
**Deciders:** [Names]

### Context
_What is the issue that motivated this decision?_

### Decision
_What was decided?_

### Rationale
_Why this approach vs. alternatives?_

### Consequences
_What are the trade-offs? What becomes easier/harder?_

Decisions Log

ADR-001: PostgreSQL 15 as primary database

Status: Accepted
Decision: Use PostgreSQL 15 (via Supabase) as the only database. No Redis, no Mongo.
Rationale: Simplicity. RLS (Row Level Security) handles multi-tenancy cleanly. Full SQL for LLM SQL generation.

ADR-002: Azure OpenAI over direct OpenAI API

Status: Accepted
Decision: All LLM calls go through Azure OpenAI, not api.openai.com directly.
Rationale: Data residency, enterprise compliance, and rate limit management.

ADR-003: Twenty CRM as company CRM

Status: Accepted (Mar 11, 2026)
Decision: Twenty-CRM is the ONLY CRM. Local JSON files deprecated.
Rationale: Central source of truth, API access, relationship tracking.

ADR-004: Twill Brain Obsidian Vault (Mar 21, 2026)

Status: Accepted
Decision: All agent memory and company knowledge lives in the Obsidian vault at Morty021/twill-brain.
Rationale: Shared context across Morty, Dash, Remi. Git-versioned. Web-accessible via vault.twill.biz.

Dash adds new ADRs here when significant decisions are made during implementation.

0 items under this folder.