From 4cc1756c2550bba3e1786baecec3d30eb152edd1 Mon Sep 17 00:00:00 2001 From: Dean Sharon Date: Wed, 2 Sep 2026 00:29:03 +0300 Subject: [PATCH] chore(release): require explicit version confirmation before dispatch Record the user directive from the v2.4.0 release in the learned release config: semver-auto now derives a PROPOSED bump only, and the resulting version must always be confirmed explicitly with the user before dispatching, even when derivation is unambiguous. Also clarify that a squash-body "## Breaking Changes: None" section is a negative declaration, not a breaking change requiring major-vs-minor discussion. --- .release/RELEASE-FLOW.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.release/RELEASE-FLOW.md b/.release/RELEASE-FLOW.md index 513f5b19..0cda96fa 100644 --- a/.release/RELEASE-FLOW.md +++ b/.release/RELEASE-FLOW.md @@ -10,10 +10,14 @@ Learned by `/release` on 2026-08-23 from: `package.json`, `.github/workflows/rel ## Version Strategy -- `semver-auto`: derive bump from conventional commits since last tag (`!`/BREAKING → major) +- `semver-auto`: derive a PROPOSED bump from conventional commits since last tag + (`!`/BREAKING → major). ALWAYS confirm the resulting version with the user before + dispatch, even when derivation is unambiguous (user directive, 2026-09-02) — present + the version explicitly, not just folded into the release-plan summary. Also scan squash-commit BODIES for breaking-change sections (`## Breaking Changes`) — - PR templates document them there without the `!` marker; confirm major-vs-minor with - the user when found (2.1.0 shipped such changes as a minor by explicit user choice) + PR templates document them there without the `!` marker; a section stating "None" is + a negative declaration, not a breaking change (2.1.0 shipped real breaking changes as + a minor by explicit user choice; 2.4.0 resolved two "None" sections as minor) - Tag format: `vX.Y.Z` (annotated). Release title: `vX.Y.Z`. No `v` prefix in CI input. - Branching model: main-only, squash merges, no version PRs. CI bot commits directly to main (ruleset bypass). `.devflow/conventions.md` absent — heuristics above learned from history.