← ClaudeAtlas

create-releaselisted

Use when the user asks to "create a release", "cut a release", "tag a version", "publish release notes", or ship a new versioned GitHub release for the current repo.
richkuo/rk-skills · ★ 49 · AI & Automation · score 80
Install: claude install-skill richkuo/rk-skills
# create-release Cut an annotated semver tag and publish a GitHub release with auto-generated notes. ## Preconditions — verify ALL before doing anything ```bash git status # must be clean — stop if dirty, surface the diff git branch --show-current # must be on default branch (main/master) git fetch origin && git status # must be up to date with origin gh auth status # must succeed ``` If any check fails: **stop and tell the user**. Do not proceed. ## Steps 1. **Inspect actual tags** — never rely on memory or CHANGELOG: ```bash git tag --sort=-v:refname | head -10 ``` 2. **Review commits since last tag:** ```bash git log <last-tag>..HEAD --oneline ``` 3. **Determine semver bump and state rationale** — breaking = major, new feature = minor, fixes/polish = patch. Proceed immediately. Only pause to ask the user if the bump type is genuinely ambiguous (e.g. unclear whether commits are breaking). 4. **Bump the repo's declared version — MANDATORY whenever a version field exists.** This is the package/manifest version, not just a "user-facing app" version: a library, CLI, or installer package (e.g. one with a `package.json` `"version"`) counts and **must** be bumped. Do not skip this because the repo "isn't an app." Grep the repo for version fields and update every match to `X.Y.Z` so the tag points at a commit carrying the correct version. Common locations (check all, update every match): | File | Field | |------|-------|