Repository navigation
docs(adr): ADR-043 — ADR lifecycle, one register, no RFC tier - #646
seanspeaks wants to merge 1 commit into
Conversation
ADR-014 and its amendment settle how an ADR is FILED. Nothing settles how one is DECIDED, and the register shows the cost: 15 of 28 merged ADRs (54%) are still Proposed, ADR-004 for twenty months; no ADR PR has ever had a human approval (reviewDecision empty on all nine open ones, every review a bot); ADR-018 carries a status the README does not define; and the README points at an RFC process that does not exist anywhere in the repo. Rejects the standard two-tier RFC-then-ADR split, for reasons specific to this repo: ADR-014 just merged two documentation bodies into one and the follow-up had to resolve eight number collisions across six branches, so a second register is not a theoretical cost; the RFC's job is already done by a draft PR; our constraint is deciding, not authoring, and a second tier adds only authoring; and a single authoritative register matters more, not less, now that agents read it as grounding. Decides instead: merging IS the decision event. An ADR does not merge as Proposed. Adds Exploratory (we have a real one in Integration Versioning) and legitimises Implemented (already used by ADR-018). Each transition rides along with work someone is already doing - ADR PR merge sets Accepted, the code PR that ships it sets Implemented, the superseding ADR updates its predecessor. Deciders must be named. Extends the existing adr-number-check workflow to enforce all of it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Code review is billed via overage credits. To resume reviews, an organization admin can raise the monthly limit at claude.ai/admin-settings/claude-code.
Once credits are available, comment @claude review on this pull request, or push a new commit, to trigger a review.
✅ Deploy Preview for friggframework-org ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
|
ADR reconciliation needed after Stack A/B — drafted with Claude Code at Sean's request Severity: cross-ref only. The new stacks test ADR-043's status rules in three ways, and it may be worth naming each one:
|



ADR-014 and its amendment settle how an ADR is filed. Nothing settles how one is decided. This proposes that.
What the register currently shows
Measured on
next— 28 merged ADRs, 14 more unmerged across nine open PRs:Proposed. ADR-015→026 are all dated 2026-06-09 and haven't moved in three months. ADR-004 has beenProposedsince 2025-01-25 — twenty months.reviewDecisionis empty on all nine. Every review on them is a bot (graphite-app,cursor,claude,chatgpt-codex-connector,github-advanced-security) — allCOMMENTED, noneAPPROVED.Implemented, which isn't one of them.Proposedas "Under discussion (use RFCs for new proposals)". There is no RFC directory, template or process anywhere in this repo.Proposedwhile fix(core): single-flight the 401 token refresh in Requester #636 implements half of it. Two merged ADRs carryDeciders: TBD.Proposedhas stopped carrying information. It means "merged" — because merging is the only event anyone performs, and it changes no status.Why not just add RFCs
A two-tier split (RFC explores, ADR records) is the standard recommendation, and I'm proposing we decline it — for reasons specific to this repo:
The gap isn't a missing proposal stage. It's that nothing marks the moment a proposal becomes a decision.
The proposal
Merging is the decision event. An ADR does not merge as
Proposed.If it isn't ready to be accepted it stays a draft PR — still numbered, still reviewable, still linkable, just not yet in the register as a decision. If it's genuinely undecidable today it merges as
Exploratorywith its open question stated.Proposed→AcceptedAccepted→ImplementedAccepted→SupersededEvery transition rides along with work someone is already doing. Nothing to remember, nothing to schedule.
Also: adds
Exploratory(we have a real one — Integration Versioning, whose own status line says the decision is deliberately deferred), legitimisesImplemented(already in use on ADR-018), requires named deciders, and extends the existingadr-number-checkworkflow to enforce all of it.Note on its own status
This is marked
Proposed, which under its own §3 means it cannot merge that way. That's intentional: merging it means flipping it toAcceptedin the same PR. If it isn't accepted, it shouldn't land.Consequences worth arguing with
ProposedADRs need a one-time pass to set real statuses — a judgement call per ADR, not automatable.Implementeddepends on someone flipping it in the code PR. Skipped, the ADR understates reality — softer than today's failure, but still one.Sequencing
Independent of #644 and #636. 043 is the next free number after #644's 041 and #636's 042, so all three can land in any order.
🤖 Generated with Claude Code