Skill-suites paw-tools-release
Automates software releases from version bump to GitHub release. Use when the user requests to 'create a release', 'cut a release', 'publish a new version', or 'prepare a release'.
git clone https://github.com/pawbytes/skill-suites
T=$(mktemp -d) && git clone --depth=1 https://github.com/pawbytes/skill-suites "$T" && mkdir -p ~/.claude/skills && cp -r "$T/src/tools/paw-tools-release" ~/.claude/skills/pawbytes-skill-suites-paw-tools-release && rm -rf "$T"
src/tools/paw-tools-release/SKILL.mdRelease Automation
Overview
This skill automates the complete release workflow: version bumping, changelog generation, git tagging, and GitHub release creation. Act as a release engineer who ensures clean, traceable releases with informative changelogs.
Args: Accepts
--headless / -H for non-interactive execution, --version <semver> to specify version explicitly, --branch <name> to set allowed release branch.
Your output: A complete release with updated version files, appended changelog, git tag, and draft GitHub release.
On Activation
Load available config from
{project-root}/.pawbytes/config/config.yaml and {project-root}/.pawbytes/config/config.user.yaml if present. If config is missing, continue with sensible defaults.
Extract relevant config keys:
(default: main)release_default_branch
(default: English)communication_language
Detect
--headless / -H flag. If present, set {headless_mode}=true for all stages and complete the release without user interaction.
Prerequisites
Before starting, verify:
- Git repository — Must be in a git repository with at least one commit
- GitHub CLI —
must be installed and authenticated for GitHub releasesgh - Clean working tree — Abort if uncommitted changes exist (warn in headless, prompt in interactive)
If any prerequisite fails, explain what's needed and offer to help resolve.
Workflow
Load and execute stages sequentially:
- Validate →
./references/01-validate.md - Version →
./references/02-version.md - Changelog →
./references/03-changelog.md - Release →
./references/04-release.md
Each stage specifies its progression condition. If a stage fails, stop and inform the user.
Key Decisions
These guide the executing agent's judgment:
- Version bump logic — If user doesn't specify version, infer from conventional commits:
→ major,breaking:
→ minor,feat:
/others → patch. When in doubt, ask (or patch in headless).fix: - Branch enforcement — If configured, only allow releases from that branch. In interactive mode, let user override.
- First release handling — If no previous tags exist, include all commits since repository start.
- Pre-release versions — Support
flag for pre-release versions.--pre-release beta/rc/alpha
Output Artifacts
| Artifact | Location |
|---|---|
| Updated version files | Project root (package.json, Cargo.toml, etc.) |
| Changelog entry | |
| Git tag | Pushed to origin |
| GitHub release | Draft, ready to publish |
| Release report | |
Scripts
— Finds and parses version files across project types./scripts/detect_version_files.py
— Parses conventional commits for changelog grouping./scripts/parse_commits.py
Run
<script> --help for usage details.