adr: add actions to decide and supersede a record #495

Open
opened 2026-09-15 21:07:21 +00:00 by hexajon · 1 comment
Owner

What happens

A status change is a hand edit today. To decide a record, the author must:

  • set the status in the front matter,
  • remove every leftover template text,
  • close the linked issue with a comment that names the record.

To supersede a record, the author must also set "superseded by ADR-NNNN" on the old record and add a link back from the new one.

Each step is easy to miss, and adr check only reports the miss afterward.

Ask

CLI and MCP actions that change a record's status and do the related edits together:

  • Decide (accepted or rejected): set the status, refuse while template text remains, and close the linked issues with a comment that names the record.
  • Supersede: set "superseded by ADR-NNNN" on the old record, add the back-link in the new record, and update the index rows.

Action and flag names follow docs/contributing/naming-conventions.md. The issue part depends on how the linked-issue rule ships (the open decision in the same epic).

Acceptance

  • One call decides a record, and adr check passes afterward.
  • One call supersedes a record, and the two-way link and the index are correct.
  • The action refuses a decided record that still has template text.
## What happens A status change is a hand edit today. To decide a record, the author must: - set the status in the front matter, - remove every leftover template text, - close the linked issue with a comment that names the record. To supersede a record, the author must also set "superseded by ADR-NNNN" on the old record and add a link back from the new one. Each step is easy to miss, and `adr check` only reports the miss afterward. ## Ask CLI and MCP actions that change a record's status and do the related edits together: - **Decide** (accepted or rejected): set the status, refuse while template text remains, and close the linked issues with a comment that names the record. - **Supersede**: set "superseded by ADR-NNNN" on the old record, add the back-link in the new record, and update the index rows. Action and flag names follow `docs/contributing/naming-conventions.md`. The issue part depends on how the linked-issue rule ships (the open decision in the same epic). ## Acceptance - One call decides a record, and `adr check` passes afterward. - One call supersedes a record, and the two-way link and the index are correct. - The action refuses a decided record that still has template text.
Author
Owner

Prior art to borrow from: ADG (adr/ad-guidance-tool, Go) has decide (writes an Outcome section and sets the status), link (precedes/succeeds links between decisions), and revise (copies a decision and reopens it). ADG writes its own metadata, not MADR front matter, so these actions here write MADR fields: status, date, and the "superseded by ADR-NNNN" status with a link back from the new record.

#494 is decided (on by default), so the issue-closing part of decide goes ahead: close the linked issues with a comment that names the record.

Prior art to borrow from: ADG (`adr/ad-guidance-tool`, Go) has `decide` (writes an Outcome section and sets the status), `link` (precedes/succeeds links between decisions), and `revise` (copies a decision and reopens it). ADG writes its own metadata, not MADR front matter, so these actions here write MADR fields: `status`, `date`, and the "superseded by ADR-NNNN" status with a link back from the new record. #494 is decided (on by default), so the issue-closing part of decide goes ahead: close the linked issues with a comment that names the record.
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.

Reference
sixfold-space/madtea#495
No description provided.