Swarmux release playbook
Skill ghillb/swarmux/.agents/skills/swarmux-release-playbook
Agent-first tmux async task orchestration CLI
npx -y skills add ghillb/swarmux --skill swarmux-release-playbookAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Execute and verify GitHub Releases for this repo. Use when the user asks to cut a release, publish artifacts, trigger release workflow, or check why a release did not publish.
SKILL.md
3.2 KB, as published. Nobody here has run it
Release Playbook
Run only the minimum commands needed to publish a release.
Preflight First
Before triggering anything, inspect three states:
- Latest published tag.
gh release list --limit 1
- Version on
main.
gh api repos/$(gh repo view --json nameWithOwner -q .nameWithOwner)/contents/Cargo.toml?ref=main --jq .content | base64 -d | sed -n '1,20p'
- Open release PRs.
gh pr list --state open --search "release in:title"
Interpretation:
- If
main'sCargo.tomlversion is behind the latest published tag,mainhas not caught up to already-published state yet. - If an open release PR version is less than or equal to the latest published tag, that PR is stale/catch-up only. Merging it will not publish a new release; it only advances
mainto already-published state. - Only expect a publish after
mainreflects the latest published version and the next release PR targets a strictly newer version.
Release Now
- Run preflight first.
- If there is an open release PR whose version is less than or equal to the latest published tag, merge it first. Repeat preflight until any remaining open release PR targets a version greater than the latest published tag.
- If there is an open release PR whose version is greater than the latest published tag, merge that PR, then trigger release on
main.
gh workflow run Release --ref main
- If there is no open release PR and
main's version equals the latest published tag, trigger release onmainto letrelease-propen the next release PR. Then merge that PR and trigger release again. - Watch latest run.
gh run list --workflow Release --limit 1
gh run watch <run-id> --exit-status
- If run opened/updated release PR but no artifacts were published:
gh pr list --state open --search "release in:title"
Merge that release PR, then trigger release workflow again:
gh workflow run Release --ref main
- If the post-merge run still publishes nothing and the
releasejob log showsAlready published - Tag ... already exists, the merged release PR was stale/catch-up. Merge the newly opened release PR and triggerReleaseagain until a new tag is published.
Verify Published Release
gh release list --limit 5
gh release view <tag> --json tagName,name,publishedAt,url,assets
Inspect Why It Skipped
gh run view <run-id> --json jobs
gh run view <run-id> --job <job-id> --log
Look for:
release_output: {"releases":[]}means no publish happened.dist-*jobsskippedmeans no release tag output fromrelease.Already published - Tag ... already existsmeans the merged release PR targeted a version that was already released; expect a newer release PR to be created.- A release page can appear before assets upload finishes; only call assets uploaded after
upload-releasesucceeds.
Always report:
- run URL
- whether a PR was created/updated
- release tag published
- assets uploaded