prepare-releaselisted
Install: claude install-skill a-novel-kit/stack
# Prepare a release — size it, and write its migration guide
A release has two questions this skill answers before anyone clicks "Run":
1. **How big is it?** — patch or minor, read from the commit history, not guessed. (A major is not sized
here; it is a planned `vX`-line initiative — see step 2.)
2. **What must a consumer do to adopt it?** — captured as a **migration guide** that ships with the
code and lives forever, so the answer is never lost in a PR description or a Slack thread.
You are advisory: read the diff, propose the version, draft the guide. The human reviews and cuts the
release from the Actions tab. You never tag, push, or publish — releases are human-only (see
`manage-versions`).
> This skill is the manual stand-in for a future agent that runs it automatically before every
> release. Until then, invoke it deliberately when a release is near.
---
## 1. Read the unpublished diff
Find the last release and everything since, on the branch you'll release from (the default branch):
```bash
git fetch --tags origin
last=$(git tag --list 'v*' --sort=-v:refname | head -1) # or <subdir>/v* for a sub-dir module
git log --no-merges --pretty='%s' "$last..origin/master"
```
Read the **subjects** (the conventional-commit type/scope/`!`) and, for anything that might break or
deprecate, the **body/footers** (`BREAKING CHANGE:`). A squash-merge repo has one commit per PR, so the
subjects are the PR titles — usually enough; open the PR/diff when a subject is ambig