Release Skill
Cut a new release for the ra-mcp project.
Workflow
Determine current state — run these in parallel:
git tag --sort=-v:refname | head -5to find the latest taggrep '^version' pyproject.toml | head -1to find the current versiongit log --oneline $(git describe --tags --abbrev=0)..HEADto list commits since the last tag
Decide the version bump — follow semver based on conventional commits:
- patch (0.x.Y): only
fix,refactor,perf,docs,style,test,build,ci,chore - minor (0.X.0): any
featcommit - major (X.0.0): any commit with
!orBREAKING CHANGEfooter - If the user specified a version, use that instead
- patch (0.x.Y): only
Confirm with the user — show:
- Current version and proposed next version
- Summary of commits going into the release
- Ask for approval before proceeding
Cut the release — run:
make release VERSION=<version>This bumps
pyproject.toml, commits, tags, and pushes. The tag push triggers two CI workflows in parallel:release.yml(changelog + GitHub Release) andpublish.yml(Docker build, push, sign, and attestations).Monitor CI workflows — after the tag push, watch both workflows:
- Run
gh run list --limit 5to find the triggered runs - Poll with
gh run view <run-id>until both "Release" and "Publish" workflows complete (check every ~30 seconds) - If either workflow fails, run
gh run view <run-id> --log-failedto get the error details and report them to the user - Only proceed to the report step once both workflows succeed
- Run
Report — confirm the tag was pushed and link to the GitHub releases page:
https://github.com/AI-Riksarkivet/ra-mcp/releases
Rules
- ALWAYS confirm the version with the user before running
make release - NEVER skip the confirmation step
- If there are uncommitted changes, warn the user and stop
- If there are no new commits since the last tag, tell the user and stop
- When making any git commits (e.g., committing uncommitted changes before
releasing), follow the conventions in
.claude/commands/commit.md— in particular: no co-author lines, no Claude attribution, clean conventional commit format