skills/github-releases/SKILL.md
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.
npx skillsauth add thrashr888/thrashr888-agent-kit github-releasesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 scriptdevelopment
Generate standardized project documentation using the 5-style system. Use when asked to create plans, specs, skills, RFCs, ADRs, or other project documentation. Ensures consistent, high-quality documentation across the codebase.
tools
Release workflow for Rust CLI tools with multi-platform binaries, GitHub Releases, and Homebrew distribution. Use when releasing a new version of a Rust project.
tools
Onboard a new Rust project with standard tooling, CI/CD, and best practices. Use when starting a new Rust project or setting up an existing one with proper infrastructure.
development
Rust development workflow with quality gates, testing, and iteration patterns. Use when developing Rust code, running tests, or iterating on Rust projects.