mcpField
P
paw-tools-release

paw-tools-release

github.com/pawbytesDevelopment115138 installsUpdated 4w ago
Repository

About paw-tools-release

A release automation skill for projects that use Git and GitHub. It guides version updates, changelog creation, tagging, and draft GitHub release creation, with interactive and headless modes.

Key features

  1. 01Version bump selection
  2. 02Changelog generation
  3. 03Git tagging and push
  4. 04Draft GitHub release creation
  5. 05Headless execution option
  6. 06Release report output

Use cases

  1. 01Prepare a release from conventional commits
  2. 02Run releases without interaction
  3. 03Create a draft release for review

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/pawbytes/skill-suites --skill paw-tools-release

After installing, type/paw-tools-releasein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
01-validate.md
02-version.md
03-changelog.md
04-release.md
scripts/
detect_version_files.py
parse_commits.py
scripts/tests/
test_detect_version_files.py
test_parse_commits.py

Details

From the project README

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.

Comments

Markdown supported