Agent skill
release-and-versioning
Cuts a new release with semantic versioning and GoReleaser. Use when the user wants to release a new version, tag a release, or understand release workflow.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/release-and-versioning-devopsfactory-io-neptune
SKILL.md
Release and Versioning
Semantic Versioning
- Tags use the form vMAJOR.MINOR.PATCH (e.g.
v0.2.0,v1.0.0). - The
vprefix is required for the release workflow. Do not add a version ingo.modfor release; the binary gets version from ldflags at build time.
Release Steps
- Ensure main is green – CI (test, lint) must pass on the branch you will tag.
- Create and push the tag:
git tag vX.Y.Zgit push origin vX.Y.Z
- Let CI run –
.github/workflows/release.ymlruns on tag push. GoReleaser creates the GitHub Release with neptune binaries (lowercase archives e.g.neptune_linux_amd64.tar.gzand raw binaries),neptune-webhook.zipand rawneptune-webhook_linux_amd64(Lambda binary isneptune-webhook), checksums, and release notes. The release body is generated by GitHub (changelog.use: github-native) and categorized by.github/release.ymland PR labels. - Do not run destructive commands (e.g.
git pushor creating tags) without user confirmation.
GoReleaser
- .goreleaser.yml: Builds
neptunefrom the repo root (ldflags setmain.version,main.commit,main.date) and Lambdaneptune-webhookfromlambda/(released asneptune-webhook.zipand rawneptune-webhook_linux_amd64). Produces lowercase-named archives (e.g.neptune_linux_amd64.tar.gz), raw binaries, and checksums. Withchangelog.use: github-native, the release body is generated by GitHub and categorized via.github/release.ymland PR labels. Release footer links to full changelog. - release.yml: Uses
goreleaser/goreleaser-actionwithrelease --cleanandcontents: writepermission.
Breaking changes and changelog
With github-native changelog, release-note sections are determined by PR labels and .github/release.yml, not by commit subject. Apply the breaking-change label to PRs that introduce breaking changes so they appear under "Breaking Changes" in the generated release notes. The commit subject convention (!:) is still recommended for semver and human readers (e.g. feat!: remove old API) but does not drive the release notes sections. Maintainers should apply the appropriate label (e.g. breaking-change, enhancement, bug) when merging so the next release is correctly categorized.
If the user only wants to understand the workflow, explain the steps and point to .goreleaser.yml, .github/release.yml, and .github/workflows/release.yml without running any commands.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?