Consolidate release workflow into skill and remove hack/release.sh
Context
The current release process has two PRs and two CI waits:
- Changelog catchup PR (write entries to Unreleased section, wait for CI, merge)
- Release PR via
hack/release.sh(stamps version + date on changelog, wait for CI, merge)
The release script does mechanical work (sed on changelog, branch, commit, push, gh pr create) that the release skill already understands how to do. Combining these into a single PR saves ~5 min of CI wait per release.
Proposal
Move the release script's logic into the release skill so it can do changelog content + version stamp as two commits on one branch/PR:
- Skill gathers PRs, drafts changelog, iterates with user (unchanged)
- Skill creates
release/vX.Y.Zbranch - Commit 1: changelog entries in Unreleased section
- Commit 2: stamp version + date (what
hack/release.shdoes today) - Push, create PR — one CI wait
- Merge, then tag with
hack/release-tag.sh
Keep all the safety checks from hack/release.sh:
- Version format validation (
v<major>.<minor>.<patch>) - Must be on main, clean working tree, up to date with origin
- Tag doesn't already exist
- Changelog has Unreleased section
- Add new check: Unreleased section has actual content (not just the header)
Remove hack/release.sh once the skill handles this flow.
Keep hack/release-tag.sh — tagging is a distinct step that triggers the GHA workflow.
Also update the skill for
- Use
--yesflag onhack/release-tag.sh(added in #626) - Correct docs domain:
miren.mdnotmiren.dev - Correct changelog anchor format:
#v050not#v0.5.0