ADR-NNNN — ¶
Status: Proposed | Accepted | Superseded | Rejected | Deprecated Date: YYYY-MM-DD Supersedes: ADR-NNNN, or — Superseded by: ADR-NNNN, or —
Context¶
What is the situation that forces a decision? Be concrete and neutral.
Include:
- the constraint or problem;
- what the legacy implementation did, with a citation into Documentation/Legacy/;
- any engine facts that bear on it, with a link to the S&box documentation;
- what happens if we decide nothing.
Do not argue for the outcome here. Someone who disagrees with the decision should still agree this section is accurate.
Decision¶
What we are doing, stated in one or two sentences, in the active voice.
We will …
Then the detail: interfaces, formats, boundaries — enough that the decision is unambiguous.
Alternatives considered¶
For each, in a form that is fair to it:
¶
What it is. Why it is attractive. Why we did not choose it.
An alternative dismissed in one line was not seriously considered, and the ADR is weaker for it. If there genuinely was no alternative, this decision probably did not need an ADR.
Consequences¶
Positive¶
What gets easier or safer.
Negative¶
What gets harder, slower, or more expensive. Be honest. An ADR with no negative consequences is either trivial or dishonest, and the next reader will trust it less.
Neutral¶
What changes without being better or worse — new conventions, things people must now learn.
Compliance¶
How we will know this decision is being followed: a test, an analyzer, a review checklist item, or an explicit note that it is enforced by convention only.
Notes¶
Open questions, things to revisit, and the conditions under which we would reconsider.