Context
#19652 is the cut's record. It stays open until finish, npm and the Portal are verified. Its step 2 files this leaf: the release PR's close target, whose ACs the release PR itself delivers. 13.3.0 is the first cut on #19637's path, where a release goes through a pull request and dev's required checks like any other change.
The Problem
publish.mjs prepare --ticket <leaf> --body-file <body> refuses a body that does not resolve exactly its leaf. It also refuses one whose AC Evidence table has a different number of rows from the leaf's ACs (getPrBodyProblems, buildScripts/release/releaseState.mjs:213). The leaf has to exist, with ACs the release PR can show, before a rehearsal can check the body.
The Architectural Reality
prepare runs the preflight, drops the released notes (.github/RELEASE_NOTES/v13.2.0.md), stamps the note's release frontmatter and runs prepare.mjs and build-all. It then commits to release/v13.3.0, pushes, and opens chore(release): v13.3.0 (#<leaf>) against dev.
--rehearse reports the push gates (rules, bypass, permissions, the pre-push hook) and the preflight, and changes nothing.
- The preflight needs #19765 merged first: the version bumped, and a clean
dev at origin/dev.
The Fix
Once #19765 merges and the rehearsal prints every gate ✅, run prepare with this leaf and the drafted body. The operator merges after the required checks and CodeQL pass.
Acceptance Criteria
Out of Scope
The merge, which is the operator's. finish, npm and the Portal (#19652 AC-2–AC-5). The cut-prep pass (#19765).
Related
#19652 · #19637 · #19765 (blocks this)
Live latest-open sweep: latest 20 open issues at 2026-10-15T17:16:33Z; no equivalent found (#19765 was filed just before this one, as its prerequisite)
A2A claim sweep: last 30 messages, all read-states; no claim on the release-PR scope
MC sweep: "release PR preparation leaf publish.mjs prepare rehearse version bump banner removal counts at cut head 13.3", 4 results, no prior decision found
Own-assignment sweep: 4 open (#19765, #19762, #19652, #15000), none overlapping beyond the parent record and the prerequisite
Retrieval Hint: "v13.3.0 release PR preparation leaf publish.mjs prepare"
Origin Session ID: 77c3c004-7908-4549-9190-b4f9c3cfa9dc
Context
#19652 is the cut's record. It stays open until
finish, npm and the Portal are verified. Its step 2 files this leaf: the release PR's close target, whose ACs the release PR itself delivers. 13.3.0 is the first cut on #19637's path, where a release goes through a pull request anddev's required checks like any other change.The Problem
publish.mjs prepare --ticket <leaf> --body-file <body>refuses a body that does not resolve exactly its leaf. It also refuses one whose AC Evidence table has a different number of rows from the leaf's ACs (getPrBodyProblems,buildScripts/release/releaseState.mjs:213). The leaf has to exist, with ACs the release PR can show, before a rehearsal can check the body.The Architectural Reality
prepareruns the preflight, drops the released notes (.github/RELEASE_NOTES/v13.2.0.md), stamps the note's release frontmatter and runsprepare.mjsandbuild-all. It then commits torelease/v13.3.0, pushes, and openschore(release): v13.3.0 (#<leaf>)againstdev.--rehearsereports the push gates (rules, bypass, permissions, the pre-push hook) and the preflight, and changes nothing.devatorigin/dev.The Fix
Once #19765 merges and the rehearsal prints every gate ✅, run
preparewith this leaf and the drafted body. The operator merges after the required checks and CodeQL pass.Acceptance Criteria
publish.mjs prepareopened the release PR fromrelease/v13.3.0todev, branched atorigin/dev's head withpackage.jsonat 13.3.0.prepareproduced: the stamped note, the released notes dropped, and theprepare.mjsandbuild-alloutputs.dev's required checks and CodeQL pass on the release PR's head.Out of Scope
The merge, which is the operator's.
finish, npm and the Portal (#19652 AC-2–AC-5). The cut-prep pass (#19765).Related
#19652 · #19637 · #19765 (blocks this)
Live latest-open sweep: latest 20 open issues at 2026-10-15T17:16:33Z; no equivalent found (#19765 was filed just before this one, as its prerequisite) A2A claim sweep: last 30 messages, all read-states; no claim on the release-PR scope MC sweep: "release PR preparation leaf publish.mjs prepare rehearse version bump banner removal counts at cut head 13.3", 4 results, no prior decision found Own-assignment sweep: 4 open (#19765, #19762, #19652, #15000), none overlapping beyond the parent record and the prerequisite
Retrieval Hint: "v13.3.0 release PR preparation leaf publish.mjs prepare" Origin Session ID: 77c3c004-7908-4549-9190-b4f9c3cfa9dc