Release Generator
Overview
Use this skill only for a manual release workflow with the bundled
scripts/release.sh template when the user explicitly asks for shell-script
release handling without a CI workflow. For the default repo pattern, use the
publish-release skill instead. Treat scripts as references unless the user
explicitly asks to execute them.
Routing Rule
- Default choice: use
publish-releasefor tag-driven GitHub Releases with a CI workflow. - Use
release-generatoronly when the user explicitly requests manual release prep/publish withrelease.shand explicitly does not want a CI release workflow.
Prerequisites
- Ensure the target repo is the intended project for the release workflow.
- Ensure
release.shexists at the repo root. Copy it fromscripts/release.shin this skill if needed, and customize defaults. - Ensure
git,python3,python -m build, andghCLI are available. - Ensure GitHub auth is configured via
GH_TOKEN,GITHUB_TOKEN, orgh auth login.
Tag Format
Use one of the supported tag formats:
vMAJOR.MINOR.PATCH
# or
<prefix>-vMAJOR.MINOR.PATCH
Prepare a Release
Use on a working branch to update CHANGELOG.md, commit only that changelog
change, and push.
./release.sh --prep vX.Y.Z
Note: --prep is idempotent and keeps ## [Unreleased] clean while merging
new entries into the target tag section. On a brand-new local release branch,
the first --prep push auto-sets origin/<branch> as upstream.
Publish a Release
Use only on main when the working tree is clean and up to date with
origin/main.
./release.sh --publish vX.Y.Z
The script tags, builds the wheel, creates the GitHub release, and uploads the wheel asset.
Verify a Release
Use to download the wheel from GitHub Releases and verify integrity.
./release.sh --verify vX.Y.Z
Retagging Safety
Use --force-retag only when explicitly requested. Retagging deletes the
existing tag and any GitHub release with that tag.
Modes
- Default: Treat scripts as reference. Copy or adapt code into the repo, do not execute anything.
- Execute mode: Only execute scripts if the user explicitly asks using one of these phrases: "run" or "execute".
Note: If execute mode is not clearly requested, do not run anything. The user
must explicitly begin the request with Run/Execute (or equivalent). Example:
$release-generator Run the release script now.
Resources
scripts/release.shcontains the canonical release workflow. Copy it to the repo root asrelease.shbefore using commands. UpdateTAG_PREFIXandWHEEL_PATTERNdefaults inside the script as needed.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.