Architecture Decision Records (ADRs) preserve important design choices and their tradeoffs. Atlantis adopted them in ADR 0001.
| ADR | Title | Status |
|---|---|---|
| 0001 | Record architecture decisions | Accepted |
| 0002 | API Enhancement and Drift Detection | Proposed |
| 0003 | Govern architecture proposals | Accepted |
| 0004 | Govern feature lifecycles | Accepted |
Update this table when adding or changing an ADR.
The decision matters more than the diff size.
Write an ADR when a change:
- changes persisted data, migrations, or on-disk layout;
- makes a breaking change to an API, config schema, server flag, default, or webhook contract;
- changes concurrency or locking behavior;
- adds a required runtime service, plugin, or extension point;
- changes authentication, authorization, secret handling, command execution, or webhook validation;
- is irreversible or reverses an accepted ADR.
An ADR is not required for bug fixes, additive optional fields, default-off features, performance work with unchanged behavior, refactors, tests, docs, tooling, CI, or dependency updates.
If unsure, open an issue before starting a large implementation.
- Agree on the problem in an issue.
- Copy template.md to
docs/adr/NNNN-short-title.md. - Use the next number after the latest merged ADR. Numbers in open proposals are provisional; renumber the record, references, and index before merge if another ADR lands first.
- Open a pull request with status
Proposedand update the index above.
Keep the ADR focused on one decision. Put implementation details in the issue or implementation pull request.
- Proposed: under discussion.
- Accepted: approved by the project.
- Rejected: considered and declined.
- Superseded by NNNN: replaced by a later ADR.
- Deprecated: no longer applies.
Merge accepted and rejected ADRs so both decisions remain discoverable. Do not rewrite them later; supersede them with a new ADR.
ADRs follow normal pull request review rules. Link accepted ADRs from their implementation pull requests.
