Release Assistant Skill
Automate release workflows: Lint → Build → Test → Version Bump → Tag → Push.
Activation Triggers
- "release", "version bump"
/patch-release→ Patch Release flow
Project Type Detection
| Indicator | Project type | Version source | Bump method |
|-----------|-------------|---------------|-------------|
| package.json present | Node/Bun | package.json | Edit file + tag |
| go.mod only (no package.json) | Go | git tag | Tag only (no file edit) |
| Cargo.toml | Rust | Cargo.toml | Edit file + tag |
| Other | Unknown | Ask user | Abort and confirm |
Git tag format is vX.Y.Z for all types.
Workflow
Phase 1: Pre-flight Checks
Do NOT proceed until ALL checks pass.
git status— abort if uncommitted changes- Run project's lint / build / test commands (check
package.jsonscripts,Makefile, or standard defaults likego build ./.../go test ./...)- lint failure: try auto-fix (
--writeetc.), abort if not fixable - build failure: abort
- test failure: abort (skip phase if no test target defined)
- lint failure: try auto-fix (
Phase 2: Version Analysis
- Determine current version:
- Node:
package.json+ latestv*tag - Go: latest
v*tag only
- Node:
- Analyze commits:
git log <last-tag>..HEAD --oneline - Determine bump type (Conventional Commits):
- MAJOR:
BREAKING CHANGEortype!:present - MINOR:
feat:present (no breaking) - PATCH: only
fix/refactor/docs/chore
- MAJOR:
- Group commits by type, present summary to user
Phase 3: Version Bump & Commit
- Propose new version, get user confirmation (override allowed)
- Node/Rust: Edit manifest file. Go: skip file edit
- Commit (Node/Rust only) and create tag:
chore(release): Bump version to X.Y.Z Co-Authored-By: Claude <noreply@anthropic.com>git tag vX.Y.Z
Phase 4: Push
- Confirm push with user (show branch name and tag)
git push origin <branch> && git push origin vX.Y.Z- Show release summary, prompt to check CI/CD pipeline
Patch Release (/patch-release)
Simplified flow for bug-fix-only releases (no feat commits).
- Skip version analysis (always PATCH)
- Tests optional (build includes type checking for Node)
- Skip changelog, minimize confirmation steps
Error Handling
| Error | Action |
|-------|--------|
| Lint failure | Auto-fix with --write → abort if not fixable |
| Test/Build failure | Abort, prompt to fix |
| Uncommitted changes | Suggest commit/stash, abort |
| Tag already exists | Abort, suggest delete or different version |
| Push failure | Suggest solution based on error message |