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 |
Update this table when adding or changing an ADR.
| Change | Process |
|---|---|
| Bug fixes, docs, tests, CI, dependency updates, and behavior-preserving refactors | Open a pull request. |
| New user-visible behavior, flags, or commands | Agree on the change in an issue, then open a pull request. |
| A change matching the criteria below | Open an issue, submit an ADR, then implement it after the ADR is accepted. |
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 across merged ADRs and open ADR pull requests. Renumber if another ADR merges 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.