ADR-0038: Keep ADR schema discussion-oriented and avoid broad migration
Status: accepted | Date: 2026-04-06
Tags:
schema
References: ADR-0027, ADR-0036, ADR-0037
Context
We have two goals that now need to be balanced more carefully.
Problem Statement
- The canonical edit surface from ADR-0037 is valuable and should remain.
- The broader ADR schema redesign from ADR-0036 proved too heavy for the value it provides.
- In practice, ADR authoring works best when alternatives are written first, discussed, and then one option is marked as selected before the final decision prose is written.
- The
selected_optionplus structured-consequences redesign pushed the model toward a final-state representation and away from the natural discussion flow. - The migration burden is not justified while this work is still on a PR branch and has not landed on the main branch.
Constraints
- Preserve the canonical edit-surface work already captured in ADR-0037.
- Preserve the discussion-oriented alternative model from ADR-0027.
- Avoid a repository-wide ADR migration for a change that is not yet merged.
- Keep the ADR schema simple enough that humans and agents can both use it reliably.
Options Considered
We considered keeping the full ADR-0036 redesign, keeping the current ADR schema and workflow, and adopting a smaller additive field for the selected option only.
Decision
We will keep the current ADR schema discussion-oriented and avoid the broad schema/migration redesign from ADR-0036 because:
- Authoring flow matters more than final-shape normalization. ADRs are written by exploring alternatives first and only then recording the final decision. The current alternatives-with-status model supports that flow directly.
- The migration cost is disproportionate. A schema and repository-wide migration is not justified for a redesign that has not landed on the main branch.
- The canonical edit surface already solves the more valuable problem. ADR-0037 gives us the regular mutation interface we wanted without requiring the ADR artifact itself to become deeply restructured.
- Future ADR refinement can still happen incrementally. If we later need a machine-readable chosen-option field or richer consequence structure, that should be justified by a narrower problem and designed without coupling it to a broad migration.
Implementation Notes
- Keep
content.consequencesas prose markdown. - Keep
content.alternatives[]withstatus = considered|rejected|accepted. - Continue to model the selected option by marking one alternative as
acceptedand then writing the final decision prose. - Do not introduce
selected_option, structured consequences, or migration-specific ADR metadata in this line of work.
Consequences
Positive
- Preserves the natural ADR writing flow: alternatives first, decision last.
- Avoids a repository-wide ADR migration for a redesign that has not merged.
- Keeps canonical edit-surface gains from ADR-0037 without tying them to a broader artifact rewrite.
- Keeps ADR authoring understandable for humans and agents using today’s schema.
Negative
- The chosen option remains represented partly by alternative status and partly by decision prose.
- ADR tooling will have less machine-readable structure than ADR-0036 proposed.
- Some future refinement pressure is deferred rather than eliminated. (mitigation: revisit only when a narrower, clearly justified problem emerges.)
Neutral
- This decision supersedes the schema-and-migration redesign from ADR-0036 but does not change the canonical edit-surface direction from ADR-0037.
- Existing ADR files remain valid without conversion.
Alternatives Considered
Keep ADR-0036 full redesign with selected_option, structured consequences, and migration metadata (rejected)
- Pros: Makes the chosen option explicit, Provides more machine-readable structure
- Cons: Encourages premature final-state authoring, Requires schema and repository migration
- Rejected because: The migration and authoring costs are too high for a change that has not landed on the main branch.
Keep the current ADR schema and reinforce the alternatives-first workflow (accepted)
- Pros: Matches the natural authoring flow of ADR discussion, Avoids repository-wide migration, Works with the canonical edit surface from ADR-0037
- Cons: Keeps chosen-option state partly in alternative status and partly in decision prose
Add only a lightweight selected_option field and leave other ADR fields unchanged (rejected)
- Pros: Gives tooling a direct chosen-option field
- Cons: Still encourages agents to write the conclusion too early, Adds schema surface without solving the broader authoring-flow issue
- Rejected because: It keeps the premature-conclusion problem while still introducing schema churn.