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)

25 stars

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

$curl -o ~/.claude/skills/release/SKILL.md --create-dirs "https://raw.githubusercontent.com/ComeOnOliver/skillshub/main/skills/aiskillstore/marketplace/codename-11/release/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/release/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How release Compares

Feature / AgentreleaseStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

25
from ComeOnOliver/skillshub

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

25
from ComeOnOliver/skillshub

Use when the user asks to plan releases, manage changelogs, coordinate deployments, create release branches, or automate versioning.

github-release-assistant

25
from ComeOnOliver/skillshub

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

25
from ComeOnOliver/skillshub

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

25
from ComeOnOliver/skillshub

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

25
from ComeOnOliver/skillshub

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

25
from ComeOnOliver/skillshub

Comprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management

npm-release

25
from ComeOnOliver/skillshub

Use when ready to publish a new version of cc-devflow npm package to npm registry

semantic-release

25
from ComeOnOliver/skillshub

## Overview

minecraft-ci-release

25
from ComeOnOliver/skillshub

Fixture with valid workflow YAML but a warning-only secrets section.

CI Release Fixture

25
from ComeOnOliver/skillshub

## Required Secrets

press-release-writer

25
from ComeOnOliver/skillshub

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