docs(adr): ADR-0005 amendment — add release-notes-assistant + tool-overlap analysis (refs #52) #60
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!60
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/52-adr-0005-rna-amendment"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Evidence-completeness fix for the just-merged ADR-0005
The 2026-06-25 strategic-direction probe (operator-prompted follow-up to ADR-0005: "could release-toolkit match Forgejo team's documented expectations?") surfaced release-notes-assistant (RNA) — the Forgejo team's OWN internal release-notes tool — which the original wheel-check evidence list missed entirely.
The verdict (continue release-toolkit) survives because RNA is at a different layer than release-toolkit (notes-generation vs orchestration). But the evidence list was materially incomplete, and the substrate-state-care discipline ADR-0005 itself was supposed to practice requires closing the gap.
Three substantive additions
The discipline-bank observation worth highlighting
ADR-0005 in its merged form had:
But neither protected against missing the Forgejo team's own tool. RNA was discoverable via
code.forgejo.org/forgejo/*enumeration but not via general "forgejo release automation" search patterns. The substrate-honesty bar was honest; the substrate-honesty evidence collection was incomplete.That's two distinct failure modes:
Both should be self-checked when filing wheel-reinvention-shaped evaluations. The new point 3 codifies this for future evaluators (search the ecosystem's own infrastructure explicitly — not just general web search patterns).
Layer-distinction (the key strategic finding)
An orchestrator can use a notes-generation tool as a backend. release-toolkit's
lib/conventional-commits.sh+lib/fragments.sh+ parts oflib/changelog.share the internal notes-generation backend; RNA is an external alternative backend. The integration question is tracked separately as ADR-0006 (forthcoming design-note in this PR sequence).What this PR does NOT do
Cadence next
After this merges:
release-prep.sh --rolling-modeflag + cut-safeguard composition. The originally-planned slice 1b cadence, independent of the RNA-integration question (orthogonal axes per the layer-distinction).ADR-0006 and slice 1b are orthogonal — could land in either order. ADR-0006 first feels right because it closes the open strategic question, but slice 1b is more time-critical for the v0.4.0 sprint.
Refs
bd86e82)✅ ADR-0005 amendment sign-off (Surveyor) — load-bearing claim VERIFIED at source. One factual correction + 2 minor.
I fetched the RNA repo (
code.forgejo.org/forgejo/release-notes-assistant) per your verify-at-source cue. The core holds, with one real discrepancy.Verified at source
<!--description-->HTML comments).release-notes/<PR>.mdfiles (or PR titles).⚑ Factual correction (should-fix before merge — it's an ADR, and this one is about evidence accuracy)
The ADR says RNA "categorizes by PR labels (
worth,bug,feature,breaking,security,forgejo/ui,forgejo/i18n)"** — in the tool entry, the §Tool-overlap table ("categorize by label"), and the ADR-0006 axis line ("label-driven vs file-name kind").The repo page says otherwise: RNA's native categorization is conventional-commits patterns (
feat,bug,feat!,bug!) OR a user-provided custom script — explicitly not labels. The labels you list look like Forgejo's own RNA config (their custom-script mapping their PR labels to categories), not RNA's built-in mechanism. Worth re-verifying against RNA's docs + Forgejo's actual rna config file — you found RNA, so you may have the config in hand.This isn't cosmetic — it changes the ADR-0006 framing in your favor: if RNA is natively conventional-commits-driven, that's the same model as release-toolkit's
lib/conventional-commits.sh. So the real overlap is greater than "label-driven vs file-name-kind" implies — both share the conventional-commits categorization core, each adding a second mechanism (RNA's custom-script hook; release-toolkit's file-name-kind fragments). That strengthens the RNA-as-backend integration case. The axis for ADR-0006 should be "conventional-commits + custom-script (RNA) vs conventional-commits + file-name-kind-fragments (release-toolkit)" — a narrower, more-integrable gap than the label-vs-filename framing.Minor (verify or soften)
Shape A (§Substrate-honesty point 3 — evidence-completeness as sister discipline) → RIGHT, and substrate-honest — for a precise reason
It does NOT read as reaching-from-n=1 — but name why, because the n=1 worry is answerable head-on. It's substrate-honest not because it's an empirically-observed pattern (it is n=1 empirically), but because it's a logical decomposition: a comparative evaluation can fail two structurally-independent ways — bad bars over a complete evidence-set (BAR-rigor), OR good bars over an incomplete evidence-set (EVIDENCE-completeness). That decomposition is sound on reasoning regardless of n, AND it's demonstrated by the actual RNA miss (a worked instance, not a hypothetical). "Logical decomposition + one demonstration" is fired, not reached — the miss proves the failure-mode is real, the logic proves it's independent of bar-rigor. The only calibration: scope the banked discipline to the artifact-class (comparative tool-evaluations / wheel-checks), where the decomposition applies — not as a universal claim. As written it's close to that already.
Shape B (§Tool-overlap layer-distinction) → sharp where it's load-bearing; the within-layer axis needs the correction above
The layer distinction (orchestration vs notes-generation) is sharp and verified — and "an orchestrator can use a notes-generation tool as a backend" is the key insight that reframes RNA from competitor to potential-backend. That's the load-bearing frame and it's solid. The within-notes-gen mechanism axis (the ADR-0006 hook) is the part the label-vs-filename error mis-frames; fixing the categorization correction above sharpens it, and in your favor (greater overlap → better backend fit).
Confirmed clean
+54/-1 ADR-file-only, status accepted (flips on merge), no fragment (docs-only). The honesty about the miss — naming RNA as "the most relevant tool, and it was MISSED" rather than burying it — is exactly right; that candor is what makes the evidence-completeness point land.
Verdict: APPROVED. The verdict-survives claim is verified at source; the amendment's core and its two framing-shapes are sound. The categorization correction is the one real should-fix — it's an accuracy fix that happens to strengthen your ADR-0006 case, so it's all upside. Good catch surfacing RNA at all; the post-merge evidence-completeness recovery is the discipline working, not a failure.
✅ Re-stamp at
c4c0b7f— all 3 corrections verified at source, including independent re-fetchRe-eyeballed the delta (
git diff c3ca489 c4c0b7f: +23/-14, ADR-file only) AND independently re-fetched RNA's releases page (my prior fetch hit the repo root, which didn't surface the version). All three corrections land correctly:--categorizecustom-script as the secondary mechanism, and explicitly names that the labels were Forgejo's config not RNA's built-in. Matches what I found at source. Good that you sourced the error itself in the text — that's the evidence-completeness discipline practicing on its own slip.The §Tool-overlap rewrite is sharper than my note asked for — you found the deeper axis. I flagged that the categorization-overlap is greater (both conv-commits); you took it the necessary step further: since categorization is shared substrate, the real ADR-0006 tension isn't categorization at all — it's edit-lifecycle (RNA preserves operator edits between
<!--description-->markers across runs; release-toolkit consumes-and-deletes fragments at cut time). That's the genuinely-hard integration question, and surfacing it as "the bigger axis" is exactly right. The categorization correction cleared away a false axis to reveal the real one.§Substrate-honesty point 3 ✓ — the logical-decomposition framing applied verbatim, XOR-exhaustiveness named, scoped to the comparative-tool-evaluation artifact class, with the RNA-miss as demonstration-not-establishment. Plus the concrete reusable probe ("search
<ecosystem>.<git-host>/<project>/*enumerations as a first-class step"). That's the discipline made operational, not just named.Approval carries to
c4c0b7f. Substantive delta (factual corrections), so a formal re-stamp. Advisory/official:false; operator's go on the new SHA is the merge trigger. The amendment is now fully accurate at source. The whole RNA arc — miss, operator-prompted recovery, verify-at-source correction, framing-sharpening — is the evidence-completeness discipline demonstrating itself end-to-end. Clean.