Manages complete release workflows for sidecar Go projects. Handles versioning, dependency verification, and build automation.
Install
mkdir -p .claude/skills/release-sidecar && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6514" && unzip -o skill.zip -d .claude/skills/release-sidecar && rm skill.zipInstalls to .claude/skills/release-sidecar
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Release new versions of sidecar. Covers version tagging with semver, td dependency updates, go.mod validation, CHANGELOG updates, GoReleaser automation, Homebrew tap updates, and verification steps. Use when preparing or executing a release.Key capabilities
- →Automate semantic version tagging
- →Update Go module dependencies
- →Validate build integrity
- →Update CHANGELOG.md files
- →Automate Homebrew tap updates
How it works
The skill executes a pipeline that verifies build integrity, updates dependencies, tags the repository, and triggers automated GitHub Actions for distribution.
Inputs & outputs
When to use release-sidecar
- →Execute new version release
- →Update Go dependencies
- →Verify build before release
- →Automate Homebrew tap updates
About this skill
Releasing a New Version
Operator contract: docs/guides/active/releasing.md. Enforcement lives in scripts/ and
RELEASE_VERSION=vX.Y.Z make release. Prefer the one-shot command over replaying
this checklist by hand.
Prerequisites
- Go matching
go.mod - Clean working tree;
mainidentical to liveorigin/main - Tests and Go CI green on the commit you will tag (tests and lint) —
check-release-state.shnow checks this itself viagh run list --workflow=go-ci.ymland fails closed if it's red/running/missing, so you don't have to remember to look - GitHub CLI authenticated with push access to
marcus/homebrew-tap - No
replacedirectives ingo.mod HOMEBREW_TAP_TOKENsecret present in the GitHub repo (CI tap job)
Beware of go.work: always use GOWORK=off when updating dependencies and
when validating install paths.
Local lint must match CI's golangci-lint v2.12.2, or trust CI:
gh run list --workflow=go-ci.yml --limit=1
Prepare (sidecar-specific)
1. Version
git tag -l 'v*' | sort -V | tail -1
SemVer: major / minor / patch as usual.
2. td dependency
GOWORK=off go get github.com/marcus/td@latest
GOWORK=off go mod tidy
If td jumped several minors, decide deliberately (pin for a focused release vs take latest and note it under Dependencies). Launch the app and open the td tab when td moved.
3. CHANGELOG
## [vX.Y.Z] - YYYY-MM-DD
### Features
- …
### Bug Fixes
- …
### Dependencies
- …
Commit the changelog (and any dependency bump) on main, then push so
HEAD == origin/main.
Publish
# Dry-run (optional but recommended for tooling changes)
make release-snapshot
./scripts/verify-release-archives.sh dist
./scripts/test-release-guards.sh dist
./scripts/test-release-publication.sh
# Cut the release (fail-closed preflight → tag → CI → formula verify/publish)
RELEASE_VERSION=vX.Y.Z make release
What make release enforces and does is documented in docs/guides/active/releasing.md.
Resume only the tap step if the tag/release already exists:
RELEASE_VERSION=vX.Y.Z make release-tap
CI jobs (on tag push)
verify— tag points at livemain, tests, snapshot archives, release guardsrelease— GoReleaser publishes GitHub release + binariesupdate-homebrew-tap— renderspackaging/homebrew/sidecar.rb.tmpland pushesFormula/sidecar.rbwith downgrade/idempotency/race guards
td/nightshift formulas are not auto-bumped; edit them by hand when co-releasing.
Verify
gh run list --workflow=release.yml --limit=1
gh release view vX.Y.Z --json assets -q '.assets[].name'
GOBIN=$(mktemp -d) GOWORK=off go install github.com/marcus/sidecar/cmd/[email protected]
"$GOBIN/sidecar" --version
go install @vX.Y.Z can 500 from the checksum DB for a minute or two after the
tag — wait and retry. Prefer a throwaway GOBIN so verification does not
clobber a dev machine's sidecar.
Dev machine after release
# Return to the canonical main development build:
make install-local
# Or keep the released Homebrew build active:
make use-homebrew
# In either case, prove the managed link and both login-shell modes:
make install-status
Recovery
Prefer a new patch release. Keep tags. Resume tap with make release-tap.
See docs/guides/active/releasing.md.
Checklist
- Go CI green (tests + lint) on the commit to tag — enforced automatically by
check-release-state.sh - Working tree clean;
main==origin/main - td bump considered; td tab smoke if td moved
- No
replacein go.mod;GOWORK=offbuild works - CHANGELOG entry
## [vX.Y.Z] - … -
RELEASE_VERSION=vX.Y.Z make releasesucceeded - Release assets present; formula URL/sha match (automatic)
-
go installverified into throwawayGOBIN -
make install-statusproves the dev machine is on the intended binary
When not to use it
- →When working on projects without GoReleaser configuration
- →When the working tree is not clean
Prerequisites
Limitations
- →Requires GoReleaser configuration
- →Requires specific GitHub secrets for distribution
How it compares
It replaces manual release steps with a verified, automated pipeline that ensures build consistency and dependency accuracy.
Compared to similar skills
release-sidecar side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| release-sidecar (this skill) | 1 | 6mo | Review | Advanced |
| bump-go-dependencies | 1 | 3mo | Review | Intermediate |
| upgrade-deps | 0 | 2mo | No flags | Advanced |
| update-go-version | 1 | 6mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
bump-go-dependencies
docker
Update direct Go module dependencies one by one, validating each bump with tests and linter, committing individually, and producing a summary table for a PR description
upgrade-deps
obot-platform
Upgrade dependencies and runtimes safely, run CI, and report higher-risk options.
update-go-version
grafana
Update Go version across the Tempo codebase (go.mod, tools/go.mod, Dockerfile, CI workflows, tools image tag)
qcc-release
yxhpy
Use for version release, GoReleaser automation, and publishing workflows in qcc_plus project
realmfall-devops
cTux
Use for GitHub Pages deploy flow, branch operations, git workflow, and release-adjacent maintenance.
cm-identity-guard
tody-agent
Verify and lock project identity before ANY git push, Cloudflare deploy, or Supabase operation. Essential when working with multiple GitHub accounts (personal + work), multiple Cloudflare accounts, or multiple Supabase/Neon projects. Prevents wrong-account deploys, cross-project secret leaks, and gi