From thrashr888-agent-kit
Create releases for Rust CLI tools, macOS apps, Python/uv projects, and Next.js apps. Use when asked to release, tag, ship, publish, or deploy any project.
How this skill is triggered — by the user, by Claude, or both
Slash command
/thrashr888-agent-kit:github-releasesThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Project-specific release workflows covering Rust CLI tools, macOS apps, Python/uv deployments, and Next.js apps.
Project-specific release workflows covering Rust CLI tools, macOS apps, Python/uv deployments, and Next.js apps.
| Project Type | Workflow | Trigger |
|---|---|---|
| Rust CLI (AllBeads, QDOS) | Tag-triggered CI | git tag -a vX.Y.Z → GitHub Actions builds binaries |
| macOS App (ethertext, AllBeadsApp) | Makefile-driven | make archive → notarize → make release |
| Python/uv (rookery) | CI Deploy | Push to main → tests pass → auto-deploy to EC2 |
| Next.js (AllBeadsWeb) | Vercel | Push to main → auto-deploy |
# Quality gates (ALL must pass)
cargo fmt -- --check && cargo clippy -- -D warnings && cargo test
# Check current version
grep '^version' Cargo.toml
# Verify clean working tree
git status
Update version in Cargo.toml
version = "X.Y.Z"
Commit version bump
git add Cargo.toml Cargo.lock
git commit -m "Bump version to X.Y.Z"
Create annotated tag (triggers CI release)
git tag -a vX.Y.Z -m "AllBeads X.Y.Z Release
## Highlights
- Key feature 1
## Changes
- Change 1
## Bug Fixes
- Fix 1"
Push to trigger release
git push && git push --tags
Monitor release build
gh run list --limit 3
gh run watch <run-id>
Update release title/notes (optional)
gh release edit vX.Y.Z --title "vX.Y.Z - Feature 1, Feature 2"
Update Homebrew tap (manual)
# Get SHA256 for macOS binary
curl -sL https://github.com/USER/REPO/releases/download/vX.Y.Z/binary-macos-aarch64 | shasum -a 256
# Update homebrew-REPO/Formula/binary.rb
# - Update version "X.Y.Z"
# - Update sha256 hash
cd ~/Workspace/homebrew-REPO
git add . && git commit -m "Update to vX.Y.Z" && git push
The release workflow builds multi-platform binaries:
Prerelease detection: tags containing alpha, beta, or rc are marked as prereleases.
create-dmg installed: brew install create-dmgbrew install --cask sparkleUpdate version in Xcode
MARKETING_VERSION in project settingsCreate Xcode archive
make archive
Notarize in Xcode Organizer
~/Downloads/Run release
make release
This:
Commit and push
git add -A && git commit -m "Release $(VERSION)" && git push
make tag && git push --tags
# Push homebrew tap
cd ~/Workspace/homebrew-APPNAME
git add -A && git commit -m "Update to $(VERSION)" && git push
| Target | Description |
|---|---|
make version | Show current version |
make archive | Create Xcode archive |
make dmg | Create DMG from exported app |
make upload | Upload DMG to S3 |
make appcast | Generate Sparkle appcast.xml |
make brew-update | Update Homebrew cask |
make release | Full release (upload + appcast + brew) |
make tag | Create git tag |
make install-sparkle # Install tools + generate keys
make sparkle-pubkey # Show public key for Info.plist
make sparkle-sign # Sign DMG for appcast
Continuous deployment triggered by successful tests.
pytestuv sync dependenciesalembic upgrade head migrations# Trigger deploy workflow manually
gh workflow run deploy.yml
Deployments are stamped with build version:
printf "%s\n" "$(date -u +%Y%m%dT%H%M%SZ)_$(git rev-parse --short HEAD)" > VERSION
Auto-deploy on push to main. No manual release process.
bun install
bun run typecheck
bun run test
Vercel handles deployment automatically.
gh run cancel <run-id>
# Delete and recreate tag
git push origin :refs/tags/vX.Y.Z
git tag -d vX.Y.Z
git tag -a vX.Y.Z -m "Release"
git push origin vX.Y.Z
# Delete tag
git tag -d vX.Y.Z
git push origin :refs/tags/vX.Y.Z
# Delete release
gh release delete vX.Y.Z
# Revert if needed
git revert HEAD
Export from Xcode Organizer ensures stapling. Verify with:
xcrun stapler validate ~/Downloads/AppName.app
scripts/create-release.sh: Automated Rust release scriptCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.
npx claudepluginhub thrashr888/thrashr888-agent-kit