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'.

install
source · Clone the upstream repo
git clone https://github.com/pawbytes/skill-suites
Claude Code · Install into ~/.claude/skills/
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"
manifest: src/tools/paw-tools-release/SKILL.md
source content

Release 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:

  • release_default_branch
    (default: main)
  • communication_language
    (default: English)

Detect

--headless
/
-H
flag. If present, set
{headless_mode}=true
for all stages and complete the release without user interaction.

Prerequisites

Before starting, verify:

  1. Git repository — Must be in a git repository with at least one commit
  2. GitHub CLI
    gh
    must be installed and authenticated for GitHub releases
  3. 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:

  1. Validate
    ./references/01-validate.md
  2. Version
    ./references/02-version.md
  3. Changelog
    ./references/03-changelog.md
  4. 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:
    breaking:
    → major,
    feat:
    → minor,
    fix:
    /others → patch. When in doubt, ask (or patch in headless).
  • 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
    --pre-release beta/rc/alpha
    flag for pre-release versions.

Output Artifacts

ArtifactLocation
Updated version filesProject root (package.json, Cargo.toml, etc.)
Changelog entry
{project-root}/CHANGELOG.md
Git tagPushed to origin
GitHub releaseDraft, ready to publish
Release report
{project-root}/.pawbytes/tools-output/releases/

Scripts

  • ./scripts/detect_version_files.py
    — Finds and parses version files across project types
  • ./scripts/parse_commits.py
    — Parses conventional commits for changelog grouping

Run

<script> --help
for usage details.