Repository navigation
docs(adr): reconcile the register — 13 unmerged ADRs into one contiguous sequence - #644
seanspeaks wants to merge 3 commits into
Conversation
…sequence The register had eight number collisions across six open PRs, four against numbers already merged to next. Three different decisions were all titled ADR-027 (next's SSM Parameter Offload, #624's Configuration & Secrets Model, #620's Integration Versioning) and a fourth reused ADR-010 (#545's Decouple AWS, against next's Reporting as an Admin Operation). ADR-014 created one register but no way to CLAIM a number, so every author picks max+1 in isolation and collides with branches they cannot see. Each PR is internally consistent; the conflict only exists between them. This PR moves every unmerged ADR into one sequence so the feature branches can drop their doc files and carry only code. Assignment: uncontested claims keep their numbers (032/033/034 from #641/#640/#643); contested ones re-assign by PR age (#545 < #619 < #620 < #624) with clusters kept contiguous. 028-030 are filled rather than left as holes — a number that has only ever existed in an unmerged branch is not yet claimed. Result is 001-041 with no gaps and no duplicates. 028, 029 Multi-Provider Support, Decouple AWS SDK from core <- #545 (was unnumbered, 010) 030 Integration Versioning <- #620 (was 027) 032-034 unchanged <- #641, #640, #643 035-037 App Init, Skills, Agent Pipeline <- #619 (was 028-030) 038-041 Configuration & Secrets cluster <- #624 (was 027-030) Cross-references were rewritten per source PR, because the same token means different things in different branches: ADR-010 in #624/#641 is next's merged Reporting ADR and is left alone, while ADR-010 in #545 is its own Decouple-AWS ADR and becomes ADR-029. Also completes two things ADR-014 mandated but did not finish: ADR-004 and ADR-005 still used the '## Status' heading form, and ADR-005 still had the old 'Architecture Decision Record:' title. Both now carry the standard block. Deciders were unrecorded for those two and are marked TBD rather than invented. ADR-014 gains an amendment specifying that numbers are claimed at PR-open time and enforced by CI, with the reasoning for not deferring assignment to merge time, plus the rule that merged numbers are permanent while unmerged ones are not yet claimed. .github/workflows/adr-number-check.yml enforces it. README.md and website/roadmap/data/adrs.json are regenerated from the files. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Claude Code Review
Claude Code Review is paused for this repository. To reconnect it, an admin of this repository's GitHub organization (or the account owner, for personal repositories) who can also manage your Claude organization's Code Review settings needs to re-link GitHub in Code Review settings. This is a one-time step.
Tip: disable this comment in your organization's Code Review settings.
✅ Deploy Preview for friggframework-org canceled.
|
The check failed on #644 itself, which is correct behaviour and a design gap: a PR that exists to re-assign contested numbers necessarily claims numbers the PRs it is reconciling still hold, so the cross-PR rule can never pass for it. Adds an `adr-reconciliation` label opt-out for that rule only. The merged-number check and the filename/heading check still apply, so a reconciliation PR cannot collide with `next` or ship a mismatched heading unnoticed. 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.
Adding `adr-reconciliation` did not re-evaluate the check, because the workflow only triggered on opened/synchronize/reopened. Adds labeled/unlabeled so the bypass takes effect without an empty commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Reviewing the register reconciliation surfaced four ADRs these four should defer to rather than re-argue. No redundancy found — none of 044-047 duplicates an existing or pending ADR — but several cross-references were missing. ADR-047: provider-agnosticism was argued as a standing principle. It is in fact already ratified. ADR-028 Multi-Provider Support is Accepted, and ADR-029 Decouple AWS SDK Dependencies is Accepted and defines the QueueClientInterface port the orchestrator should ride rather than reinvent. Also records the gap: 029 is accepted but unimplemented — Worker.js and queuer-util.js still require @aws-sdk/client-sqs directly on next — so the orchestrator's portability is contingent on 029 landing. ADR-046: the authoring skill is now authored per ADR-036 Skills rather than inventing a shape, and its scope/build/review flow is ADR-037 Agent Pipeline. ADR-044: distinguishes sync-record tombstones from ADR-032 Integration Deletion Data Cleanup, which governs orphaned Entity and Credential rows on teardown. Sync records are a third category that ADR-032's scope should name. 044, 046, 047: the versioning question is pointed at ADR-030 Integration Versioning (#620), the contract ADR-013 defers to, rather than at ADR-013 alone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AD57K2eA29SxojjgA5prG1
|
ADR reconciliation needed after Stack A/B — drafted with Claude Code at Sean's request Severity: must-reconcile. Stack A's #686 is the first code for ADR-028/029, and both stacks touch 030/032/034/038–039.
Merge order: this PR before #686 merges, so 028/029 describe what ships. |
|
Register note from the Stack B review (#692–#700): three branches each carry a file numbered ADR-028. This PR already resolves them, keeping 028 as Multi-Provider Support (Accepted, 2026-03-02) and moving App Init to 035 and the Secrets & Config Provider Plugin to 039. Their source PRs still use the old numbers:
They should take this PR's numbers when they're next touched, or merge after this PR and be renumbered then. ADR-063 (#692) cites 028 as Multi-Provider Support, so it is consistent with this register. Generated by Claude Code |
Frigg 2.0.1 ADR review (COMMENT only — not an approval)Verdict: changes needed before merge (rebase / register integrity) — number plan vs 049–063 is otherwise good. 049–063 checkPASS — this PR introduces 028–041 only; does not collide with 049–063. What this PR gets right
Blocking / merge-blocking hygiene
Should-fix / nits
No new test failures vs |



The problem
The register has eight number collisions across six open PRs, four of them against numbers already merged to
next. Three different decisions are currently titledADR-027:nextADR-014 created one register but no way to claim a number. Every author picks
max + 1in isolation, so each PR is internally consistent and only collides with branches its author cannot see. Nothing catches it.What this does
Moves every unmerged ADR into one sequence, so the feature branches can drop their doc files and carry only code.
Assignment rule: uncontested claims keep their numbers; contested ones re-assign by PR age (#545 < #619 < #620 < #624), with clusters kept contiguous.
docs/architecture/ADR-MULTI-PROVIDER-SUPPORT.md)Result: 001–041, no gaps, no duplicates. 028–030 are filled rather than left as holes — a number that has only ever existed in an unmerged branch is not yet claimed.
#545's two ADRs also move out of
docs/architecture/, which ADR-014 retired for ADRs; they were the last two left there.Cross-references
Rewritten per source PR, because the same token means different things in different branches:
ADR-010in docs(adr): Configuration & Secrets — 027 model · 028 provider · 029 management · 030 docs/maturation #624 and docs(adr): ADR-032 integration deletion data cleanup #641 refers tonext's merged Reporting as an Admin Operation (admin API key) → left aloneADR-010in feat: provider plugin architecture + Netlify adapter #545 refers to its own Decouple AWS ADR → rewritten to ADR-029Both intra-cluster link sets (#619's three, #624's four) were remapped, including two compound references (
ADR-027/028) that a naïve word-boundary pass would have half-rewritten.Two things ADR-014 mandated but didn't finish
ADR-004 and ADR-005 still used the
## Statusheading form, and ADR-005 still had the old# Architecture Decision Record:title. Both now carry the standard block. Deciders were unrecorded for those two and are markedTBDrather than invented — worth someone filling in.Preventing recurrence
ADR-014 gains an amendment: numbers are claimed at PR-open time and enforced by CI, not assigned at merge. It records why deferring to merge is worse (the file is named wrong for the whole review, cross-links can't be written, and someone repeats this reconciliation by hand at every merge), and the rule that merged numbers are permanent while unmerged ones are not yet claimed.
.github/workflows/adr-number-check.ymlenforces it: on any PR touchingdocs/architecture-decisions/**it checks the claimed numbers againstnextand against every other open PR, verifies filename matches heading, and reports the next free number on failure. It re-runs whennextmoves so the loser of a simultaneous claim goes red before merge.This is the one non-docs file here — drop that commit if you'd rather keep this docs-only, though then nothing stops the next collision.
Follow-up on the source PRs
Each should drop its ADR files and carry only code; I'm commenting on them individually. Nothing here touches their code, and no branch has been force-pushed.
README.mdandwebsite/roadmap/data/adrs.jsonare regenerated from the files rather than hand-edited.🤖 Generated with Claude Code