release

Cut semver releases of the gokit multi-module Go monorepo via toven release workflows.

Updated Feb 15, 2026
One-click install
npx skills add https://github.com/kbukum/gokit --skill release-kbukum
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: release
Source: https://github.com/kbukum/gokit/tree/main/.github/skills/release
Command: npx skills add https://github.com/kbukum/gokit --skill release-kbukum

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Releasing a multi-module Go monorepo is error-prone: every module needs its own semver git tag, the Go module proxy makes published versions immutable, and hand-rolled tagging produces broken pseudo-versions. This Skill walks maintainers through the complete two-phase gokit release process safely. ## Core Features & Use Cases - Pre-release gates: Runs the full build, vet, test, lint, vuln, and tidy checks via toven before any tag is cut. - Version decision support: Cross-checks the Go module proxy for every module path to pick a version strictly greater than anything already published. - Two-phase release: Stages the version bump and CHANGELOG rotation through a reviewed PR (Phase 1), then cuts lock-step module tags and the hosted GitHub Release via CI or toven release publish (Phase 2). - Use Case: Preparing gokit v0.3.0-alpha.1 — verify the proxy shows the version unpublished for all 50 modules, bump versions on a release branch, merge the PR, then dispatch the Release workflow with dry-run preview before publishing. ## Quick Start Ask the agent to prepare the gokit v0.3.0-alpha.1 release by running the pre-release gates and staging the version bump on a release branch.

Frequently Asked Questions about release

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I release a multi-module Go monorepo?▼

Run the full pre-release gates with toven (format-check, lint, build, vet, test, vuln, tidy), then stage the version bump through a PR with `toven release bump --set-version`, and finally publish tags and the hosted Release with `toven release publish` or the CI Release workflow.

How do I choose the next semver version for a Go module?▼

Query the Go module proxy for every module path and pick a version strictly greater than the highest published one, since the proxy is immutable. In 0.x, a breaking change in the Unreleased CHANGELOG section bumps MINOR; otherwise bump PATCH.

Why does Go assign broken pseudo-versions without tags?▼

Each module in a multi-module repo needs its own semver git tag; without proper tags, Go cannot resolve versions and generates pseudo-versions. Toven tags every discovered module in lock-step to prevent this.

Can I delete or move a published Go module version tag?▼

No. Published version tags are immutable because the Go module proxy caches them permanently. Recover from a bad release by fixing forward with a new version, never by deleting or force-pushing tags.

What happens if git tags diverge from the Go module proxy?▼

Toven anchors on reachable git tags, so deleted or divergent tags can let you pick a version already permanently published on the proxy. Always verify the target version returns 404 on the proxy for every module path before releasing.