Gumroad CLI Release
SkillDev toolsRelease gumroad-cli after a PR lands by inspecting origin/main, creating the next Go-compatible date tag, pushing only that tag, and verifying GitHub release/Homebrew follow-through. Use for requests like "cut a gumroad-cli release", "push the release tag", or "release the merged gumroad-cli changes".
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Gumroad CLI Release skill
What this skill tells your AI
The instructions your AI receives, as published by antiwork/gumroad-cli in .agents/skills/gumroad-cli-release/SKILL.md and read by ahel’s review.
Use When
Use this only after the intended changes are merged to origin/main.
Do not use it to release from a feature branch, local HEAD, or an unmerged PR branch. The release workflow is tag-driven: push an annotated tag that points at the current origin/main commit.
Version Format
Tags use Go-compatible date versioning:
v0.YYYYMMDD.N
YYYYMMDDis the UTC release date.Nstarts at0and increments only for multiple releases on the same UTC date.- The binary and Homebrew formula display
v0.20260609.0as2026.06.09. - Do not create
v2026.06.09; it is not a valid Go module release shape for this repo.
Workflow
- Confirm repository and state:
git status --short --branch
git remote -v
- Fetch current main and tags:
git fetch origin main --tags
- Inspect what will be released:
latest_tag="$(git describe --tags --abbrev=0 origin/main)"
git log --oneline --first-parent "${latest_tag}..origin/main"
git rev-parse origin/main
If there are no first-parent changes since latest_tag, stop and report that no new release is needed.
- Choose the next tag:
release_date="$(date -u +%Y%m%d)"
release_seq=0
tag="$(make release-tag RELEASE_DATE="$release_date" RELEASE_SEQ="$release_seq")"
while git rev-parse -q --verify "refs/tags/${tag}" >/dev/null ||
git ls-remote --exit-code --tags origin "${tag}" >/dev/null 2>&1; do
release_seq=$((release_seq + 1))
tag="$(make release-tag RELEASE_DATE="$release_date" RELEASE_SEQ="$release_seq")"
done
- Validate and create the annotated tag on
origin/mainexplicitly:
./script/validate-release-tag.sh "$tag"
git tag -a "$tag" origin/main -m "Release $tag"
- Push only the tag:
git push origin "refs/tags/${tag}"
Never force-push or rewrite an existing release tag unless the user explicitly asks for a tag repair and understands the release artifact implications.
- Verify the remote tag peels to
origin/main:
main_sha="$(git rev-parse origin/main)"
local_tag_sha="$(git rev-parse "${tag}^{}")"
remote_tag_sha="$(git ls-remote --tags origin "${tag}^{}" | awk '{print $1}')"
test "$main_sha" = "$local_tag_sha"
test "$main_sha" = "$remote_tag_sha"
- Check release automation:
gh run list --workflow Release --event push --limit 5
gh release view "$tag" --json tagName,name,isDraft,isPrerelease,publishedAt,url
If the workflow is still running, watch the relevant run:
gh run watch <run-id>
Closeout
Report:
- tag pushed
- commit SHA it points to
- first-parent changes released
- release workflow status
- GitHub release URL, once available
If Homebrew publishing is part of the workflow result, verify it from the workflow logs or the antiwork/homebrew-cli update before calling the release complete.
Signals
- GitHub stars
- 53
- Forks
- 34
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
gumroad-cli-release- Source
- github.com/antiwork/gumroad-cli