fix(adr): allow repeated supersession metadata #221

Closed
opened 2026-05-16 13:54:13 -07:00 by jwilger · 0 comments
Owner

Goal

Allow the ADR workflow tools to append supersession metadata to ADRs that are already Superseded or Partially superseded, not only ADRs whose current status is exactly Accepted.

Context

While recording ADR-0018, the tool rejected supersession entries for ADR-0013 and ADR-0014 because their statuses were already Partially superseded. That exposed a workflow gap: an older ADR may be superseded in whole or in part by multiple later ADRs over time, and each later decision should be able to record its own supersession note.

Scope

  • Relax ADR workflow validation so supersedes entries may target ADRs in accepted-family terminal states, including:
    • Accepted
    • Superseded
    • Partially superseded
  • Preserve the rule that Proposed or Rejected ADRs cannot be superseded as accepted architecture history.
  • When a later ADR partially supersedes an already partially-superseded ADR, append a new supersession note instead of overwriting existing notes.
  • Preserve existing supersession history and links.
  • Add focused tests for repeated partial supersession.

Acceptance Criteria

  • A new ADR can record supersession metadata against an ADR already marked Partially superseded.
  • Existing supersession notes are preserved and a new note is appended.
  • The target ADR status remains valid and reflects the strongest applicable status.
  • Attempts to supersede Proposed or Rejected ADRs are still rejected.

Verification

  • Focused ADR tooling tests for repeated supersession pass.
  • The aggregate release-tooling/opencode guard test suite passes if still present at that point.
## Goal Allow the ADR workflow tools to append supersession metadata to ADRs that are already `Superseded` or `Partially superseded`, not only ADRs whose current status is exactly `Accepted`. ## Context While recording ADR-0018, the tool rejected supersession entries for ADR-0013 and ADR-0014 because their statuses were already `Partially superseded`. That exposed a workflow gap: an older ADR may be superseded in whole or in part by multiple later ADRs over time, and each later decision should be able to record its own supersession note. ## Scope - Relax ADR workflow validation so `supersedes` entries may target ADRs in accepted-family terminal states, including: - `Accepted` - `Superseded` - `Partially superseded` - Preserve the rule that Proposed or Rejected ADRs cannot be superseded as accepted architecture history. - When a later ADR partially supersedes an already partially-superseded ADR, append a new supersession note instead of overwriting existing notes. - Preserve existing supersession history and links. - Add focused tests for repeated partial supersession. ## Acceptance Criteria - A new ADR can record supersession metadata against an ADR already marked `Partially superseded`. - Existing supersession notes are preserved and a new note is appended. - The target ADR status remains valid and reflects the strongest applicable status. - Attempts to supersede Proposed or Rejected ADRs are still rejected. ## Verification - Focused ADR tooling tests for repeated supersession pass. - The aggregate release-tooling/opencode guard test suite passes if still present at that point.
jwilger added this to the 1.0 milestone 2026-05-16 13:54:24 -07:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Slipstream/auto_review#221
No description provided.