feat: automatic version cut on ship with fixed cut-push-publish sequencing - #103
Merged
utx0 merged 35 commits intoAug 27, 2026
Merged
Conversation
…rd instruction emission
…rd instruction emission
…rd instruction emission
…rd instruction emission
…rch synthesis and per-approach findings
…ODIFIED deltas for gh publication and degradation
…rd instruction emission
…rd instruction emission
…n_ship and allow_major_pre_1 to ReleaseConfigSchema Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AA8wwFpob25iYZFCBBEtKK
…te metta-release skill for cut-push-publish sequencing Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AA8wwFpob25iYZFCBBEtKK
… metta-fix-gap mint scope with release:cut Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AA8wwFpob25iYZFCBBEtKK
…anonical post-merge release stage to six ship-path skills Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AA8wwFpob25iYZFCBBEtKK
…assert post-merge release stage across ship skills Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AA8wwFpob25iYZFCBBEtKK
…old release on_ship block in install when package.json exists Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AA8wwFpob25iYZFCBBEtKK
…release cut local-only with notes emission and status echo Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AA8wwFpob25iYZFCBBEtKK
…mentation summary
…ete implementation
…d review — 3x PASS_WITH_WARNINGS, no criticals
… warning fixes — off-mode wording and status field names
added 5 commits
August 26, 2026 18:39
…ication results — all gates pass
…nerated docs from finalize
utx0
deleted the
metta/automatic-version-cut-ship-user-decision-2026-08-26-make
branch
August 27, 2026 04:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes version cutting an automatic, default-on part of the ship step, governed by
release.on_ship(auto | prompt | off, defaultauto), and fixes the--githubsequencing failure that broke the GitHub release on both v0.5.0 and v0.6.0.ReleaseConfigSchemagainson_ship(Zod.default('auto'), three-legged default-on pattern likeuat.enforce_on_ship) andallow_major_pre_1(defaultfalse).metta installscaffolds the release block explicitly whenpackage.jsonexists.--shipopt-in, metta-quick, metta-auto, metta-fix-issues, metta-fix-gap): after the user-approved PR merge + main fast-forward, a canonical byte-identical post-merge release stage runsrelease status --json→ derives the bump →metta release cut --bump <level> --yes --json→ tag rides the single authorizedgit push --follow-tags origin main→ only whengithub_release: true,gh release viewprobe thengh release create <tag> --verify-tag --notes-file -. Warn-and-continue: no failure blocks or unwinds a completed ship.ReleasePipeline.cut()is now purely local — the in-cut gh call andgh-release.tsare deleted;--githubis an erroring stub pointing at the fixed sequence.--verify-tagcloses gh's silent wrong-tag creation (the actual v0.5.0/v0.6.0 corruption mode).cut --jsonemits the extracted changelog notes;status --jsonechoesonShip/allowMajorPre1/githubRelease.allow_major_pre_1: true); prompt mode fails closed non-interactively; absentreleaseconfig skips with a one-line notice; tokens/UAT/gates untouched.metta-fix-gapmint scope gainsrelease:cut; fork-tier ship skills were already authorized. No guard table changes.tests/skill-release-ship-stage.test.tsgrep-assert suite (57 assertions, mutation-check proven); full suite 2873 passed / 0 failed;tsc --noEmitclean; all 34 spec scenarios evidenced.UAT results
Result: 22 pass / 0 fail / 46 skip (of 68 steps) — PASS
Run: 2026-08-26 · record committed as
docs(automatic-version-cut-ship-user-decision-2026-08-26-make): UAT run record(b759e6a) ·spec/archive/2026-08-26-automatic-version-cut-ship-user-decision-2026-08-26-make/UAT.mdSkipped — needs manual acceptance
🤖 Generated with Claude Code
https://claude.ai/code/session_01AA8wwFpob25iYZFCBBEtKK