| name | prepare-release |
| description | Create the local release commit and tags by setting TELEPRESENCE_VERSION and running make prepare-release. Stops at the local commit+tags - pushing is the ship-release skill's job. Use when the user explicitly asks to prepare a release, RC, or test build. User-only. |
| disable-model-invocation | true |
prepare-release
Wraps the make prepare-release step so the local-tag-creation portion of a release is one explicit user action, not a chain of remembered commands. Stops at local tags; the ship-release skill takes over from there.
This is user-only by design (disable-model-invocation: true). The tags this skill creates will eventually drive a public release, so creating them must be an explicit user decision — never a side-effect of Claude inferring intent.
Confirm before doing anything
Ask the user explicitly:
- Version string (
TELEPRESENCE_VERSION) — must be one of:
vX.Y.Z-test.N — pre-release, no Homebrew, no "latest"
vX.Y.Z-rc.N — pre-release, no Homebrew, no "latest"
vX.Y.Z — GA, marked latest, triggers Homebrew update
- Branch — should be a release branch (typically
release/v2). Refuse to proceed from main-style branches.
- Working tree — must be clean. Run
git status; if there are uncommitted or untracked files relevant to the build, stop.
- CHANGELOG.yml status — the top entry should have version matching
TELEPRESENCE_VERSION (without the leading v). If it's still date: (TBD), that's expected: make prepare-release sets the date for GA versions.
Show all four checks to the user before running anything. Wait for explicit "go".
Steps
export TELEPRESENCE_VERSION=vX.Y.Z[-suffix.N]
make prepare-release
This creates:
- An annotated tag
vX.Y.Z[-suffix.N]
- An annotated tag
rpc/vX.Y.Z[-suffix.N]
- A commit that bumps go.mod references inside the repo
Verify with:
git log -1 --stat
git tag --points-at HEAD
Next: hand off to ship-release
This skill stops here, with the local commit and the two annotated tags. Do not push anything. To carry the release through CI, the docs PR, the Releases workflow, and the PR merges, invoke the ship-release skill (after pushing the branch and opening a PR on it — that's a manual handoff step the user does between the two skills).
Refuse to
- Push anything (branch, commit, or tags). That's
ship-release's job.
- Skip
make prepare-release and just tag manually. The make target updates go.mod references; manual tagging skips that and ships a broken module.
- Re-run
make prepare-release on top of a previous attempt without first cleaning up the leftover tags. If git tag --points-at HEAD already lists the target tag, stop and report — the user has to decide whether to delete it.