release
Assemble a reviewable release PR — versions computed from accumulated .changes/ intents, changelogs written, narrative synthesized, release meta emitted. Use when the user says "cut a release", "release the core train", "assemble a release", or invokes /release. Releases are deliberate; never run th
Install
mkdir -p .claude/skills/release-mattstyles && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16758" && unzip -o skill.zip -d .claude/skills/release-mattstyles && rm skill.zipInstalls to .claude/skills/release-mattstyles
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Assemble a reviewable release PR — versions computed from accumulated .changes/ intents, changelogs written, narrative synthesized, release meta emitted. Use when the user says "cut a release", "release the core train", "assemble a release", or invokes /release. Releases are deliberate; never run this automatically on merge.About this skill
Release assembly
Deterministic mechanics are scripts (internal/release, fixture-tested);
judgment — the release narrative — is yours. The release PR is the review
surface and merge is the commitment point ([[0004-release-strategy]]).
Flow
-
Preflight — on a clean
main, run:bun internal/release/src/cli.ts statusIf no train has pending intents, stop and say so. Confirm with the user which train(s) they expect to depart if the status disagrees with them.
-
Branch —
release/<train>-<next-version>(both trains departing →release/<date-slug>). -
Assemble — run:
bun internal/release/src/cli.ts assembleThis applies versions to every train member, prepends per-package
CHANGELOG.mdsections from intent prose, consumes the intent files, and emitsreleases/<train>-<version>.jsonplus a narrative skeletonreleases/<train>-<version>.md. -
Narrate — replace the skeleton body with a release narrative that will become the GitHub Release body. Synthesize from three sources; do not concatenate entries:
- the intent prose (consumer-addressed, already reviewed),
- manifest diffs (
git diff main -- '**/urban-manifest.json') for the factual API surface changes, - linked PR descriptions (
gh pr list --search <sha>/gh pr view) for motivation, migration detail, and screenshots — best effort only: if offline, the narrative from intents + manifests alone is still correct.
-
Verify —
mise run manifest-checkandhk check --allmust pass; changelog and version diffs should match the status output from step 1. -
PR — commit everything (versions, changelogs, consumed intents, releases/ meta + narrative) and open a PR titled
Release: <train> v<version>describing what departs and why now. Merging the release PR is what triggers the publish plane — do not merge without the user's say-so.