← ClaudeAtlas

releaselisted

Cut a booping plugin release — verify the version bump against the last published tag, draft public-voiced release notes, merge the release branch into master, tag, and publish the GitHub release. Use when cutting a vX.Y.Z release of this repo.
A/claude-booping · ★ 8 · AI & Automation · score 76
Install: claude install-skill A/claude-booping
# release — cut a booping plugin release Releases the `booping` plugin from a `release/X.Y.Z` branch: verifies the version, drafts public release notes, merges to `master`, tags `vX.Y.Z`, and publishes the GitHub release. Run from the repo root with the `release/X.Y.Z` branch checked out. Default branch is **`master`**. Version is single-source in `.claude-plugin/plugin.json`. ## Preflight — gather facts Run these read-only; report the resolved values back before doing anything that writes: ```bash git rev-parse --abbrev-ref HEAD # current branch — expect release/X.Y.Z jq -r .version .claude-plugin/plugin.json # the version to ship gh release list --limit 1 # last published release git status --porcelain # working tree must be clean git remote # remote name — this repo uses `gh`, NOT origin ``` Resolve: `VERSION` (from plugin.json), `TAG = v$VERSION`, `LAST_TAG` (newest existing `v*` tag), `BRANCH`, and `REMOTE` (the single remote — do not assume `origin`; use whatever `git remote` reports). Substitute `$REMOTE` into every push/fetch/log-range below. ## Phase 0 — Verify version + previous release Gate every check; if any fails, stop and report — do not proceed to merge. 1. **Clean tree** — `git status --porcelain` is empty. Dirty tree → stop. 2. **On the release branch** — `BRANCH` is `release/$VERSION`. If it is `master` or a mismat