Swarmux release playbook
Skill ghillb/swarmux/.agents/skills/swarmux-release-playbook
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.From its SKILL.md
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.
2 things to look at
- 5 stars5 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.
- runs commandsInstructs the agent to run 8 commands, including `gh release list --limit 1` and 7 more.
SKILL.md
3.2 KB, 733 tokens by cl100k_base, 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
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.