Sub-issue of #9465.
Blocked-by: #9498
Restart-when: .changeset/pre.json exists on origin/main with "mode": "pre" — i.e. the next RC window has been entered.
On hold by design, not by neglect. Everything #9497 and #9498 measure happens in a throwaway clone or on a PR; the behaviour this epic exists to protect — a real cut, over a real accumulated changeset set, under the enforced cut-rc.yml allowlist — only exists inside a genuine pre-mode window. A migration that is green on a PR and wrong at cut time is exactly the failure mode we are buying insurance against, so the insurance is not claimed until it is testable.
What to check when it fires
Non-goals
This card observes a release window; it does not create one. No pre-mode entry or exit, no publish, no tags, no release-workflow dispatch. If something is wrong, the deliverable is a precise report plus a fix card — not a hot fix applied mid-cut.
Acceptance
Sub-issue of #9465.
Blocked-by: #9498
Restart-when:
.changeset/pre.jsonexists onorigin/mainwith"mode": "pre"— i.e. the next RC window has been entered.On hold by design, not by neglect. Everything #9497 and #9498 measure happens in a throwaway clone or on a PR; the behaviour this epic exists to protect — a real cut, over a real accumulated changeset set, under the enforced
cut-rc.ymlallowlist — only exists inside a genuine pre-mode window. A migration that is green on a PR and wrong at cut time is exactly the failure mode we are buying insurance against, so the insurance is not claimed until it is testable.What to check when it fires
pnpm run versionof the window: does it produce the file set [v3 migration 1/4] Rehearse @changesets/cli v3 in a throwaway clone and answer U1–U6 with measurements — no repo changes #9497 measured, and doescut-rc.yml's allowlist accept it without an override?.changeset/pre/vs the root), and whether the count matches what the migrated gates expect.check-changeset-no-major.mjsagainst a live pre-mode repo: does its exemption behave as the migration assumed, and does a typo-sized PR in the window see a sane verdict rather than the 171-file absurdity the old shape produced?objectui-changeset-digest.mjsagainst the livepre.json.check-changeset-no-major --self-testgoes red repo-wide after a release exits pre mode — its control requires major-declaring changesets AND apre.jsonthat no longer exists #8654's self-test failure lived.Non-goals
This card observes a release window; it does not create one. No pre-mode entry or exit, no publish, no tags, no release-workflow dispatch. If something is wrong, the deliverable is a precise report plus a fix card — not a hot fix applied mid-cut.
Acceptance