create-releaselisted
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 |
|------|-------|