release
Create a new version release with git tag and GitHub Release. Use when user asks to release, publish, create a new version, or ship a release. (project)
Best use case
release is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create a new version release with git tag and GitHub Release. Use when user asks to release, publish, create a new version, or ship a release. (project)
Teams using release should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/release/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How release Compares
| Feature / Agent | release | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create a new version release with git tag and GitHub Release. Use when user asks to release, publish, create a new version, or ship a release. (project)
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Release Skill Create a new version release using prefixed tag-based workflow for monorepo plugins. ## When to Use - User explicitly asks to "release" or "create a release" - User asks to "publish" or "ship" a new version - User asks to "tag" a version - User says "let's release v0.2.0" or similar ## Plugin Identification This is a **monorepo** with multiple plugins. First, identify which plugin to release: | Plugin | Version File | Tag Format | Example | |--------|-------------|------------|---------| | **Stash Downloader** | `plugins/stash-downloader/package.json` | `downloader-vX.Y.Z` | `downloader-v0.5.2` | | **Stash Browser** | `plugins/stash-browser/package.json` | `browser-vX.Y.Z` | `browser-v0.1.0` | If the user doesn't specify, ask which plugin to release. If both changed, release each separately. ## Pre-Release Checklist Before creating a release, verify: 1. On dev branch: `git branch --show-current` 2. No uncommitted changes: `git status` 3. Type-check passes: `npm run type-check` 4. Lint passes: `npm run lint` 5. Tests pass: `npm test -- --run` 6. Build succeeds: `npm run build` ## Release Process (Tag-Based) ### Step 1: Determine Version Bump 1. **Check current version**: Read the plugin's `package.json` version field 2. **Review commits since last tag**: `git log $(git describe --tags --match "downloader-v*" --abbrev=0)..HEAD --oneline` (or `browser-v*` for Browser) 3. **Determine bump type**: | Commit Types | Bump | Example | |--------------|------|---------| | Breaking changes (`feat!:`, `BREAKING CHANGE`) | MAJOR | 0.1.0 → 1.0.0 | | New features (`feat:`) | MINOR | 0.1.0 → 0.2.0 | | Bug fixes, patches (`fix:`, `docs:`, `chore:`) | PATCH | 0.1.0 → 0.1.1 | ### Step 2: Merge dev to main and Release **For Stash Downloader:** ```bash # From dev branch, checkout main and merge git checkout main git merge dev # Update version in plugin's package.json cd plugins/stash-downloader npm version patch # or minor/major # Commit the version bump git add . git commit -m "$(cat <<'COMMIT' 🔖 chore: release downloader-vX.Y.Z 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> COMMIT )" # Create and push tag (with downloader- prefix!) git tag downloader-vX.Y.Z git push origin main --tags ``` **For Stash Browser:** ```bash # From dev branch, checkout main and merge git checkout main git merge dev # Update version in plugin's package.json cd plugins/stash-browser npm version patch # or minor/major # Commit the version bump git add . git commit -m "$(cat <<'COMMIT' 🔖 chore: release browser-vX.Y.Z 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> COMMIT )" # Create and push tag (with browser- prefix!) git tag browser-vX.Y.Z git push origin main --tags ``` ### Step 3: Wait and Sync Dev **⚠️ CRITICAL: Do NOT push to dev immediately!** GitHub Pages uses a concurrency group. If you push to dev before the stable workflow finishes, the stable deploy gets CANCELLED. ```bash # 1. Wait for workflow to complete # Check: https://github.com/Codename-11/Stash-Downloader/actions # 2. AFTER workflow completes, sync dev with main git checkout dev git merge main git push origin dev ``` ## What Happens After Tag Push GitHub Actions automatically: 1. Runs CI (type-check, lint, tests) 2. Builds the plugin 3. Updates GitHub Pages (Stash plugin index) 4. Generates AI release notes (if GOOGLE_API_KEY configured) 5. Creates GitHub Release with: - Auto-generated changelog - Installation instructions - ZIP file attached ## If Release Was Cancelled If you accidentally pushed to dev too early and cancelled the stable deploy: ```bash # Re-push the tag to trigger the workflow again git push origin --delete downloader-vX.Y.Z # or browser-vX.Y.Z git push origin downloader-vX.Y.Z ``` ## PR-Based Release (Optional) For significant releases where you want Claude review before merging: ```bash # Create release branch from dev git checkout -b release/downloader-vX.Y.Z dev # Update version in plugin's package.json, commit cd plugins/stash-downloader npm version patch git add . git commit -m "🔖 chore: release downloader-vX.Y.Z" # Push and create PR to main git push -u origin release/downloader-vX.Y.Z gh pr create --base main --title "🔖 Release downloader-vX.Y.Z" --body "Release notes..." # After PR merge, checkout main and tag git checkout main git pull origin main git tag downloader-vX.Y.Z git push origin downloader-vX.Y.Z ``` ## Important Notes - Tag format MUST include plugin prefix: `downloader-vX.Y.Z` or `browser-vX.Y.Z` - Version in the plugin's `package.json` must match tag version (without prefix) - **Always start from dev branch** - never commit directly to main - **Wait for workflow to complete** before syncing dev - Push to `main` without a tag triggers NOTHING - Verify release succeeded in GitHub Actions after pushing tag - **Release plugins separately** - if both plugins changed, create separate tags
Related Skills
release-notes-generator
Release Notes Generator - Auto-activating skill for DevOps Basics. Triggers on: release notes generator, release notes generator Part of the DevOps Basics skill category.
release-manager
Use when the user asks to plan releases, manage changelogs, coordinate deployments, create release branches, or automate versioning.
github-release-assistant
Generate bilingual GitHub release documentation (README.md + README.zh.md) from repo metadata and user input, and guide release prep with git add/commit/push. Use when the user asks to write or polish README files, create bilingual docs, prepare a GitHub release, or mentions release assistant/README generation.
release-skills
Release workflow for baoyu-skills plugin. Use when user says "release", "发布", "push", "推送", "new version", "新版本", "bump version", "更新版本", or wants to publish changes to remote. Analyzes changes since last tag, updates CHANGELOG (EN/CN), bumps marketplace.json version, commits, and creates version tag. MUST be used before any git push with uncommitted skill changes.
marketplace-release
Use when creating releases for Claude Code plugin marketplaces. Supports independent plugin versioning - each plugin can be released separately. Triggered by "release", "bump version", "create release", "publish plugin".
when-releasing-software-use-github-release-management
Comprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management. Coordinates release-manager, cicd-engineer, tester, and docs-writer agents through hierarchical topology to handle semantic versioning, changelog generation, release notes, deployment validation, and post-release monitoring. Supports multiple release strategies (rolling, blue-green, canary) and automated rollback. Use when creating releases, managing deployments, or coordinating version updates.
github-release-management
Comprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management
npm-release
Use when ready to publish a new version of cc-devflow npm package to npm registry
semantic-release
## Overview
minecraft-ci-release
Fixture with valid workflow YAML but a warning-only secrets section.
CI Release Fixture
## Required Secrets
press-release-writer
Write professional press releases for any occasion, media type, and country. Use when the user wants to write, draft, or improve a press release, communiqué de presse, media announcement, news release, or PR statement — including product launches, funding rounds, partnerships, crisis communications, earnings, executive hires, events, M&A, open source milestones, and media advisories. Covers all release types, media targets (print, digital/wire, broadcast, social/SMPR, trade press), and region-specific conventions (Western/Eastern Europe, Americas, Middle East, Africa, Asia, Oceania). Also trigger when the user says 'I need to announce something' or 'how do I tell the press about X.'