release

Bumps version sites, writes the CHANGELOG entry, commits, and creates an annotated git tag as one operation.

Updated Jul 13, 2026
One-click install
npx skills add https://github.com/docktermj/senzing-bootcamp-claude-plugin-development --skill release-docktermj
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: release
Source: https://github.com/docktermj/senzing-bootcamp-claude-plugin-development/tree/main/.claude/skills/release
Command: npx skills add https://github.com/docktermj/senzing-bootcamp-claude-plugin-development --skill release-docktermj

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Releases often drift out of sync: the changelog advances while the git tag or version manifest does not, leaving downstream repositories that port from tagged releases unable to target the new version. This Skill performs the version bump, changelog entry, commit, and annotated tag as a single all-or-nothing operation so no release can ship half-done. ## Core Features & Use Cases - Atomic release execution: Rewrites every declared version site (plugin manifest, example recap), prepends or seeds CHANGELOG.md, commits only those files, and tags that exact commit — with rollback if any step fails. - Dry-run by default: Prints the exact diffs, changelog entry, and git commands for maintainer approval before --apply writes anything. - Refusal-based guardrails: Refuses on a dirty working tree, non-advancing versions, existing tags, manifest/tag divergence, missing version sites, or releasing from a branch other than main. - Use Case: A maintainer of the Senzing Bootcamp plugin wants to cut version 0.6.0. They run the dry run, review the diff and changelog entry, approve, and the script bumps both version sites, writes the changelog, commits, and creates the annotated tag in one step. ## Quick Start Ask the assistant to cut a new release of the plugin with a minor version bump and show the dry run for approval before applying it.

Frequently Asked Questions about release

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I cut a release with a version bump, changelog, and git tag together?▼

Run the release script with a bump flag or explicit version, review the dry run showing diffs and the changelog entry, then re-run with --apply. It rewrites all version sites, prepends the changelog entry, commits only those files, and creates an annotated tag on that commit.

Why must the git tag be created after the release commit?▼

Tagging before committing points the tag at HEAD, the commit before the version bump, so checking out the tag yields the previous release under the new name. The script commits first and tags that commit, and its tests read the files out of the tag to verify.

Does the release script push the tag or publish the release?▼

No, it never pushes the branch or the tag and never invokes the publishing step. Publishing is a separate deliberate action, since git push alone does not send tags and an unpushed tag is invisible to downstream repositories.

Why does the release script refuse to run with a dirty working tree?▼

A release commit must carry only the version bump, and the tree is what the publishing step mirrors, so an uncommitted file would be swept into the release or published untracked. This refusal has no override flag by design.

What happens if the manifest version and newest git tag disagree?▼

The script refuses, because releasing from a divergent base buries the inconsistency one version deeper. You must reconcile which value is correct first, or pass --allow-divergent-base only after making that decision.

Can I run only part of a release, like the changelog without the tag?▼

No, there is deliberately no flag for partial releases such as --no-tag or --changelog-only. Any such option would reintroduce the exact defect the tool prevents, and a test asserts the interface offers none.