Agent skill

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)

Stars 232
Forks 15

Install this agent skill to your Project

npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/codename-11/release

SKILL.md

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

Expand your agent's capabilities with these related and highly-rated skills.

aiskillstore/marketplace

perigon-backend

Perigon ASP.NET Core + EF Core + Aspire conventions

232 15
Explore
aiskillstore/marketplace

perigon-agent

Pointers for Copilot/agents to apply Perigon conventions

232 15
Explore
aiskillstore/marketplace

perigon-angular

Angular 21+ standalone/Material/signal conventions for Perigon WebApp

232 15
Explore
aiskillstore/marketplace

fastapi-mastery

Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.

232 15
Explore
aiskillstore/marketplace

context7-efficient

Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.

232 15
Explore
aiskillstore/marketplace

browser-use

Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.

232 15
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results