release
Prepare code for release (version bumps, changelog, README updates) and create an annotated tag to trigger the GoReleaser workflow.
Skill by jrswab
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jrswab-release
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity, ci-cd, version-control
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/release
What's inside
- Skill name
release- Description
- Prepare code for release (version bumps, changelog, README updates) and create an annotated tag to trigger the GoReleaser workflow.
- License
- Apache-2.0
- Instructions
- 104 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
Your job is to guide the user through a full release for this project. A release includes preparing the code (version bumps, README documentation, changelog), creating an annotated git tag with a `v` prefix (e.g. `v1.5.0`), pushing it to trigger the GoReleaser GitHub Actions workflow, setting release notes, and linking the GHCR Docker image.
## Rules
- Always create an **annotated** tag (`git tag -a`), never a lightweight tag.
- Tag format is `vMAJOR.MINOR.PATCH` following [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
- The changelog MUST follow [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/) format.
- Valid changelog categories: Added, Changed, Deprecated, Removed, Fixed, Security.
- All version strings MUST be updated before committing. There are three locations (listed in Reference). Run version tests after bumping to catch drift.
- README.md MUST document any user-facing changes — new config fields, CLI flags, behavior changes, exit codes.
- DO NOT push to master until the user confirms.
- DO NOT push the tag until the user confirms.
- DO NOT skip asking the user for the version number, tag annotation message, and changelog review.
## Steps
1. **Gather context**
- Check the current branch and ensure it is clean (`git status`).
- List existing tags (`git tag --sort=-v:refname`) to determine the next version.
- Collect the commit log since the last tag (or all commits if this is the first release).
2. **Ask the user**
- What version number to use.
- What the annotated tag message should say.
- Whether the auto-generated changelog looks correct or needs edits.
3. **Categorize commits** into Keep a Changelog sections:
- `Added` — new features and capabilities.
- `Changed` — changes to existing functionality.
- `Deprecated` — features marked for removal.
- `Removed` — features that were removed.
- `Fixed` — bug fixes.
- `Security` — vulnerability fixes.
- Exclude commits prefixed with `docs:`, `test:`, `ci:`, or merge commits.
4. **Bump version strings**
- Update all three version locations listed in the Reference section.
- Run `go test ./cmd/ -run TestVersion -count=1` to verify the bump is consistent.
5. **Update README.md**
- Explore new feature implementations (via subagents if available) to understand config fields, flags, defaults, and behavior before writing documentation.
- For each user-facing change, update the relevant README sections: Features list, Run Flags table, Agent Configuration example TOML, and add new sections as needed.
- Add or update the Exit Codes table if new exit codes were introduced.
- Do NOT guess at config fields or flag names — read the actual implementation first.
6. **Update CHANGELOG.md**
- Prepend the new release section under the `# Changelog` header.
- Add a reference link at the bottom of the file using the Keep a Changelog format:
- First release: `[1.0.0]: https://github.com/jrswab/axe/releases/tag/v1.0.0`
- Subsequent releases: `[1.1.0]: https://github.com/jrswab/axe/compare/v1.0.0...v1.1.0`
7. **Commit and push prep changes**
- Stage all modified files and commit with message: `Update changelog and version for vX.Y.Z`
- Push to master only after the user confirms.
8. **Verify**
- Run `go build .` to confirm the binary compiles.
- Run `go test ./cmd/ -run TestVersion -count=1` at minimum.
- Confirm tests pass before proceeding to tag creation.
9. **Ask user to confirm tag creation**
- Show the tag name, annotation message, and commit hash.
- Wait for explicit confirmation before creating the tag.
10. **Create the annotated tag** on the prep commit.
11. **Push the tag** to origin only after the user confirms. The `v*` tag push triggers the GoReleaser workflow which builds binaries and creates the GitHub release.
12. **Set release notes via `gh`**
- Extract the new version's section from `CHANGELOG.md` — everything between the `## [X.Y.Z]` heading and the next `##` heading, excluding the heading itself and trailing blank lines.
- Append a Docker section to the extracted notes:
````
## Docker
```bash
docker pull ghcr.io/jrswab/axe:X.Y.Z
```
See the [GHCR package page](https://github.com/jrswab/axe/pkgs/container/axe) for all available tags.
````
- Write the combined content (changelog section + Docker section) to a temporary file.
- Poll `gh release view vX.Y.Z` every 10 seconds (up to 120 seconds) until the GoReleaser workflow creates the release.
- Run `gh release edit vX.Y.Z --notes-file <tmp-file>` to set the release description.
- Clean up the temporary file.
- This is the authoritative source for release notes — do NOT rely on the workflow's awk extraction.
## Reference
### Project Files
- GoReleaser config: `.goreleaser.yml` (auto-changelog is disabled)
- Release workflow: `.github/workflows/release.yml` (builds binaries and Docker image; do NOT rely on it for release notes)
- Changelog: `CHANGELOG.md`
### Version Strings (all three must match)
- `cmd/root.go` — `const Version` (source of truth)
- `internal/mcpclient/mcpclient.go` — hardcoded `Version:` in `mcp.NewClient` call
- `cmd/version_test.go` — test assertions for the version string
### GHCR Image
- Package page: https://github.com/jrswab/axe/pkgs/container/axe
- Pull command: `docker pull ghcr.io/jrswab/axe:<version>`
- Tags generated per release: `X.Y.Z`, `X.Y`, `X`, `latest` (on default branch)From jrswab/axe, Apache-2.0.
More from jrswab/axe
- 0.584score
AGENTS.md · jrswab/axe
jrswab
AGENTS.md from jrswab/axe: 228 lines covering What This Is, Design Philosophy, Non-Obvious Constraints, What Good Contributions Look Like and more.
TemplateAFreshness: A★ 898Codex +5 - 0.392score
code-review
jrswab
No description from the publisher yet.
SkillAFreshness: A★ 898Claude Code +9 - 0.392score
commit-msg
jrswab
No description from the publisher yet.
SkillAFreshness: A★ 898Claude Code +9 - 0.392score
summarizer
jrswab
No description from the publisher yet.
SkillAFreshness: A★ 898Claude Code +9 - 0.389score
stub
jrswab
No description from the publisher yet.
SkillAFreshness: A★ 898Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 898
- Forks
- 35
- Open issues
- 13
- Last commit (this folder)
- Mar 20, 2026 (7 months ago)
- Last release
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/jrswab/axe
- Website
- docs.getaxe.dev
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jrswab
Cite this page
release skill. Agent Mart. https://agentmart.dev/skills/jrswab-release (last updated 2026-10-24)