From oh-my-claudecode
Analyzes repo CI workflows, version files, and release scripts to derive rules, caches them in .omc/RELEASE_RULE.md, then guides semver releases.
How this skill is triggered — by the user, by Claude, or both
Slash command
/oh-my-claudecode:releaseThe summary Claude sees in its skill listing — used to decide when to auto-load this 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.
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.
/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.--refresh to force re-analysis of the repo even when a cached rule file exists.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.
Inspect the repo and answer the following. Write answers into .omc/RELEASE_RULE.md.
package.json / pyproject.toml / Cargo.toml / build.gradle / VERSION file / etc.scripts/release.*, Makefile release target, bump2version, release-it, semantic-release, changesets, goreleaser).package.json with publishConfig or npm publish in CI), PyPI (pyproject.toml + twine/flit), Cargo (Cargo.toml), Docker (Dockerfile + push step), GitHub Packages, other.v*), manual dispatch (workflow_dispatch), merge to main/master, a release branch merge, a commit message pattern.CHANGELOG.md or CHANGELOG.rst exist?.github/release-body.md) committed pre-tag?.github/workflows/ (or equivalent)? If not, flag this and offer to scaffold one..gitignore entry preventing build artifacts from being committed? If not, flag it.git tag --list to check. If no tags exist, flag and explain best practice..omc/RELEASE_RULE.mdCreate 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" -->
If the user provided a version argument, use it. Otherwise:
patch, minor, and major would produce.Validate the chosen version is a valid semver string.
Present a checklist derived from the release rules. At minimum:
Ask the user to confirm before proceeding, or run each step if they say "go ahead".
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:
New Features, Bug Fixes, Breaking Changes, Deprecations, Internal / Chores.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.
Using the rules discovered, walk through:
git add <version files> CHANGELOG.md and commit with chore(release): bump version to vX.Y.Z.git tag -a vX.Y.Z -m "vX.Y.Z" (annotated tags are preferred over lightweight).git push origin <branch> && git push origin vX.Y.Z.npm publish --access public, twine upload dist/*).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.ymlfor 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?
After the push:
gh run list --workflow=<release workflow> --limit=3 (if gh is available).gh release view vX.Y.Z.Report success or flag any failures.
.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.npx claudepluginhub kwizera-caleb/agent-claudecode42plugins reuse this skill
First indexed Jul 7, 2026
Showing the 6 earliest of 42 plugins
Discovers and executes a project's release procedure with preflight checks and step-by-step confirmation. Proposes version bump from CHANGELOG and halts on first failure.
Validates release readiness, generates changelogs, bumps versions, creates release commits and annotated tags, and verifies CI on the exact tagged SHA.
Automates releases for projects using Keep a Changelog and GitHub: bump detection, CHANGELOG promotion, merge to main, tag, and GitHub Release with a single confirmation gate.