We use lightweight architecture decision records — one page each, written when a non-trivial decision lands. Every ADR captures the context, the decision, and the consequences we're accepting.
ADRs live in the repo next to the code they affect. They are append-only — if we later change our mind, we write a new ADR that supersedes the old one rather than editing history.
The value isn't in the document itself. It's in the conversation the document forces.
