Skip to content
release logo

Release Skill

release

Generic release assistant — analyzes repo release rules, caches them in .omc/RELEASE_RULE.md, then guides the release

SKILL.md

Full skill instructions

Release Skill

A thin, repo-aware release assistant. On first run it inspects the project and CI to derive release rules, stores them in .omc/​RELEASE_RULE.md for future use, then walks you through a release using those rules.

Usage

/​oh-my-claudecode:release [version]
  • version is optional. If omitted the skill will ask. Accepts patch, minor, major, or an explicit semver like 2.4.0.
  • Add --refresh to force re-analysis of the repo even when a cached rule file exists.

Execution Flow

Step 0 — Load or Build Release Rules

Check whether .omc/​RELEASE_RULE.md exists.

If it does NOT exist (or --refresh was passed): Run the full repo analysis below and write the file.

If it DOES exist: Read the file. Then do a quick delta check — scan .github/​workflows/ (or equivalent CI dirs: .circleci/, .travis.yml, Jenkinsfile, bitbucket-pipelines.yml, gitlab-ci.yml) for any modifications newer than the last-analyzed timestamp in the rule file. If relevant workflow files changed, re-run the analysis for those sections and update the file. Report what changed.


Step 1 — Repo Analysis (first run or --refresh)

Inspect the repo and answer the following. Write answers into .omc/​RELEASE_RULE.md.

1a. Version Sources
  • Locate all files that contain a version string matching the current version in package.json / pyproject.toml / Cargo.toml / build.gradle / VERSION file / etc.
  • List each file and the field or regex pattern used to find the version.
  • Detect whether there is a release automation script (e.g. scripts/​release.*, Makefile release target, bump2version, release-it, semantic-release, changesets, goreleaser).
1b. Registry / Distribution
  • npm (package.json with publishConfig or npm publish in CI), PyPI (pyproject.toml + twine/flit), Cargo (Cargo.toml), Docker (Dockerfile + push step), GitHub Packages, other.
  • Is there a CI step that publishes automatically on tag push? Which workflow file and job?
1c. Release Trigger
  • Identify what starts the release: tag push (v*), manual dispatch (workflow_dispatch), merge to main/​master, a release branch merge, a commit message pattern.
1d. Test Gate
  • Identify the test command and where it runs in CI.
  • Are tests required to pass before publish? Note any bypass flags.
1e. Release Notes / Changelog
  • Does a CHANGELOG.md or CHANGELOG.rst exist?
  • What convention is used: Keep a Changelog, Conventional Commits, GitHub auto-generated, none?
  • Is there a release body file (e.g. .github/​release-body.md) committed pre-tag?
1f. First-Time User Check
  • Does a release workflow exist in .github/​workflows/ (or equivalent)? If not, flag this and offer to scaffold one.
  • Is there a .gitignore entry preventing build artifacts from being committed? If not, flag it.
  • Are git tags being used? Run git tag --list to check. If no tags exist, flag and explain best practice.

Step 2 — Write .omc/​RELEASE_RULE.md

Create or overwrite the file with this structure:

# Release Rules
<!-- last-analyzed: YYYY-MM-DDTHH:MM:SSZ -->

## Version Sources
<!-- list of files + patterns -->

## Release Trigger
<!-- what kicks off the release -->

## Test Gate
<!-- command + CI job name -->

## Registry / Distribution
<!-- npm, PyPI, Docker, etc. + CI job that publishes -->

## Release Notes Strategy
<!-- convention + files -->

## CI Workflow Files
<!-- paths to relevant workflow files -->

## First-Time Setup Gaps
<!-- any missing pieces found during analysis, or "none" -->

Step 3 — Determine Version

If the user provided a version argument, use it. Otherwise:

  1. Show the current version (from the primary version file).
  2. Show what patch, minor, and major would produce.
  3. Ask the user which to use.

Validate the chosen version is a valid semver string.


Step 4 — Pre-Release Checklist

Present a checklist derived from the release rules. At minimum:

  • All changes intended for this release are committed and pushed
  • CI is green on the target branch
  • Tests pass locally (run the test gate command)
  • Version bump applied to all version source files
  • Release notes / changelog prepared (see Step 5)

Ask the user to confirm before proceeding, or run each step if they say "go ahead".


Step 5 — Release Notes Guidance

Help the user write good release notes. Apply whichever convention the repo uses. Default guidance when no convention is detected:

What makes a good release note:

  • Lead with what changed for users, not internal implementation details.
  • Group by type: New Features, Bug Fixes, Breaking Changes, Deprecations, Internal / Chores.
  • For each item: one sentence, link to the PR or issue, credit the author if external.
  • Breaking changes go first and must include a migration path.
  • Omit changes users never see (refactors, CI tweaks, test-only changes) unless they affect build reproducibility.

Example entry format:

### Bug Fixes
- Fix session drop on token expiry (#123) — @contributor

If the repo uses Conventional Commits, generate a draft changelog from git log <prev-tag>..HEAD --no-merges --format="%s" grouped by commit type. Show it to the user and let them edit.


Step 6 — Execute Release

Using the rules discovered, walk through:

  1. Bump version — apply to each version source file.
  2. Run tests — execute the test gate command.
  3. Commit — git add <version files> CHANGELOG.md and commit with chore(release): bump version to vX.Y.Z.
  4. Tag — git tag -a vX.Y.Z -m "vX.Y.Z" (annotated tags are preferred over lightweight).
  5. Push — git push origin <branch> && git push origin vX.Y.Z.
  6. CI takes over — if the release trigger is a tag push, remind the user that CI will handle the rest (publish, GitHub release creation). Show the expected CI workflow file.
  7. Manual publish — if no CI automation exists, list the manual publish command (e.g. npm publish --access public, twine upload dist/​*).

Step 7 — First-Time Setup Suggestions

If gaps were found in Step 1f, offer concrete help:

No release workflow:

Your repo doesn't have a release CI workflow. A GitHub Actions workflow triggered on v* tag push is the most common best practice. It can:

  • Run tests
  • Publish to npm/​PyPI/​etc.
  • Create a GitHub Release with your release notes

Want me to scaffold a .github/​workflows/​release.yml for your stack?

No git tags:

This appears to be the first release. Git tags let GitHub, npm, and other tools understand your version history. We'll create your first tag in Step 6.

Build artifacts not gitignored:

Build artifacts are present in git history or not gitignored. This inflates repo size and creates merge conflicts. Want me to add them to .gitignore?


Step 8 — Verify

After the push:

  • Check CI status: gh run list --workflow=<release workflow> --limit=3 (if gh is available).
  • Check the registry (npm, PyPI) for the new version after a few minutes.
  • Confirm a GitHub Release was created: gh release view vX.Y.Z.

Report success or flag any failures.


Notes

  • This skill does not hardcode any project-specific version files or commands. Everything is derived from repo inspection.
  • .omc/​RELEASE_RULE.md is a local cache. Commit it to your repo if you want to share the derived rules with your team, or add it to .gitignore if you prefer it stays local.
  • For complex monorepos or multi-package workspaces, the skill will detect workspace patterns (npm workspaces, pnpm workspaces, Cargo workspace) and adapt accordingly.

More Release Management skills

firebase-hosting-basics logo
Release Management

firebase-hosting-basics

Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.

462 159.7K
View
firebase-app-hosting-basics logo
Release Management

firebase-app-hosting-basics

Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.

462 159.1K
View
deploy-to-vercel logo
Release Management

deploy-to-vercel

Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".

31.9K 146.6K
View
vercel-cli-with-tokens logo
Release Management

vercel-cli-with-tokens

Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".

31.9K 116.1K
View
ace-step logo
Release Management

ace-step

Tag-driven music generation, inpainting, and outpainting via StepFun-AI's ACE Step model.

52 108.9K
View
vercel-optimize logo
Release Management

vercel-optimize

Use for Vercel cost and performance optimization on deployed projects, especially Next.js, SvelteKit, Nuxt, and limited Astro apps. Collect Vercel metrics, usage, project config, and code scan results first; investigate only metric-backed candidates; produce ranked recommendations grounded in verified files and version-aware Vercel/framework docs. Trigger for Vercel bill reduction, slow or expensive routes, caching opportunities, Function Invocations, Build Minutes, Fast Data Transfer, Core Web Vitals, Bot Management, Fluid compute, or cost breakdown requests.

31.9K 89.6K
View
shipping-and-launch logo
Release Management

shipping-and-launch

Prepares production launches. Use when preparing to deploy to production. Use when you need a pre-launch checklist, when setting up monitoring, when planning a staged rollout, or when you need a rollback strategy.

101.4K 42.9K
View
baoyu-post-to-x logo
Release Management

baoyu-post-to-x

Posts content and articles to X (Twitter). Supports regular posts with images/videos and X Articles (long-form Markdown). In Codex, honor explicit requests for the Codex Chrome plugin/@chrome by using the Chrome Extension workflow; otherwise use Chrome Computer Use when available and fall back to real Chrome CDP scripts only when allowed. Use when user asks to "post to X", "tweet", "publish to Twitter", or "share on X".

26.3K 28.7K
View
release-skills logo
Release Management

release-skills

Universal release workflow. Auto-detects version files and changelogs. Supports Node.js, Python, Rust, Claude Plugin, GitHub Releases, annotated tags, historical release backfill, and generic projects. Use when user says "release", "发布", "new version", "bump version", "push", "推送", "release notes", "GitHub Release", or "回填 Release".

26.3K 25.4K
View
baoyu-post-to-weibo logo
Release Management

baoyu-post-to-weibo

Posts content to Weibo (微博). Supports regular posts with text, images, and videos, and headline articles (头条文章) with Markdown input via Chrome CDP. Use when user asks to "post to Weibo", "发微博", "发布微博", "publish to Weibo", "share on Weibo", "写微博", or "微博头条文章".

26.3K 21.4K
View
nuget-manager logo
Release Management

nuget-manager

NuGet package management for .NET projects using dotnet CLI with strict workflows for adds, removes, and version updates.

39.7K 14.3K
View

Coding & apps AI tools

Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View
Imagica logo
Coding & apps

Imagica

Build a no-code AI app in minutes.

Freemium
View
E
Coding & apps

Emergent.sh

An IDE for code migration from legacy to modern frameworks through coding agents.

Freemium
View
Wonder Dynamics logo
Coding & apps

Wonder Dynamics

Automate CGI animation in live-action scenes

Paid
View
M
Coding & apps

Mixo

Launch a website in seconds with AI.

Paid
View
AI Code Convert logo
Coding & apps

AI Code Convert

Streamline Your Coding Experience with AI Code Helper

Free
View