Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

release · yeachan-heo — Claude Code skill: what it does, how to install

A repo-aware skill that discovers release rules from CI files, caches them in .omc/RELEASE_RULE.md, and guides releases. Helpful when preparing tags and version bumps.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add Yeachan-Heo/oh-my-claudecode --skill release -a claude-code
Open on GitHub

What release does

The skill inspects the repository before preparing a release. It locates version entries across package.json, pyproject.toml, Cargo.toml, or plain VERSION files, and detects helper tools such as changesets or semantic-release. All discovered settings are saved to .omc/RELEASE_RULE.md. On subsequent runs, it checks timestamps in .github/workflows/, .circleci/, or other CI configs. If any pipeline file changed, the skill updates the affected sections in the rule cache.

Execution follows an interactive checklist. You can pass patch, minor, major, or a version string like 2.4.0. The skill verifies local tests, updates version files, and drafts release notes grouped by commit type. Next, it creates an annotated git tag and pushes changes. If the repository lacks a release workflow, the assistant offers to scaffold GitHub Actions. That gap is worth fixing right away.

What it helps with

  • detect version sources across package and build manifests
  • cache project release rules into .omc/RELEASE_RULE.md
  • run pre-release test gates and verify target branch readiness
  • draft structured release notes from git commit history
  • bump version files, create annotated tags, and push changes

Example prompts for the agent

  • /oh-my-claudecode:release
  • /oh-my-claudecode:release minor
  • /oh-my-claudecode:release 2.4.0 --refresh

How to install release

1Skills CLI (Vercel)

npx skills add Yeachan-Heo/oh-my-claudecode --skill release -a claude-code

2Manually: put the files in place

~/.claude/skills/release/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/release/

From the same set26

The whole set →
ai-slop-cleaner Yeachan-Heo Cleans bloated AI-generated code by deleting dead logic and duplicate abstractions. It keeps current behavior locked under regression tests. Claude Code CX Codex Cursor +1 1,500installs ralplan Yeachan-Heo A skill that runs iterative planning with three agents (Planner, Architect, Critic) until consensus. Blocks vague requests before execution, never runs changes without your approval. Claude Code CX Codex Cursor +1 1,200installs hud Yeachan-Heo The hud skill configures a HUD display in Claude Code's statusline, showing git branch, context usage, running subagents, and other metrics. Track session state and keep tabs on complex work without losing context. Claude Code CX Codex Cursor +1 1,100installs deepinit Yeachan-Heo Walks a repository and writes an AGENTS.md per directory: what sits there, how the parts connect, what an agent should know before editing. Claude Code CX Codex Cursor +1 1,000installs autopilot Yeachan-Heo A skill that takes a task description and runs the full development cycle: requirements analysis, design, implementation, testing, and validation—all hands-off. Use it when you want to describe what you need and get working code back. Claude Code CX Codex Cursor +1 999installs deep-interview Yeachan-Heo A skill that runs a Socratic interview on your idea, scores ambiguity across weighted dimensions, and blocks coding until the score falls under the threshold. Claude Code CX Codex Cursor +1 998installs omc-setup Yeachan-Heo Canonical setup and repair wizard for oh-my-claudecode. It configures CLAUDE.md files, HUD statusline, and agent team defaults. Claude Code CX Codex Cursor +1 987installs ralph Yeachan-Heo A persistence loop that works through tasks in prd.json until all stories pass and get reviewer verification. Useful for multi-step jobs that need guaranteed completion. Claude Code CX Codex Cursor +1 971installs

Other versions of release

Similar

pr-review MiniMax-AI Two-phase pull request review for skill repositories, combining automated schema checks with content audits. Claude Code CX Codex Cursor +1 1,800installs second-opinion trailofbits Runs external CLI code reviews via Codex or Antigravity. It inspects dirty working trees, branch diffs, and specific commits without editing files. Claude Code CX Codex Cursor +1 5,200installs review-and-ship cursor This skill automates code review before shipping: checks for bugs, tests, and intent fit, then commits and opens a PR. Use it to verify your work is ready before merge. Claude Code CX Codex Cursor +1 2,500installs difit yoshiko-pg Starts a local difit viewer with your changes and asks you for the review. Whatever you type in the browser comes back to the agent on stdout. Claude Code CX Codex Cursor +1 2,200installs prek j178 Guides agents in configuring and running Git hooks with prek, a Rust alternative to pre-commit. Useful when you need speed, workspace support, or native TOML configuration. Claude Code CX Codex Cursor +1 728installs triage Matt Pocock This skill moves issues and external PRs through triage states, verification, and agent briefs. It fits maintainers managing an issue queue. Claude Code 990,453installs code-review Matt Pocock Reviews changes from a chosen reference point against repository standards and the originating spec. Use it for a branch, PR, or work in progress. Claude Code 789,521installs implement Matt Pocock Implements work from a specification or tickets, following a test-driven flow and ending with review and a commit. Use it when a coding task needs a defined delivery routine. Claude Code 774,700installs

Questions about release

How to install release in Claude Code?

Run npx skills add Yeachan-Heo/oh-my-claudecode --skill release -a claude-code.

What does the release skill do?

It reads repository build configs, caches the detected release rules in .omc/RELEASE_RULE.md, and walks you through version bumping, changelog preparation, and tagging.

How does the skill handle changes in CI workflows?

It compares the modification times of files in .github/workflows/ or other CI directories against the last-analyzed timestamp in .omc/RELEASE_RULE.md. If workflows were updated, it refreshes those sections, or you can force a full scan with --refresh.

Source text

SKILL.md · MIT
---
name: release
description: Generic release assistant — analyzes repo release rules, caches them in .omc/RELEASE_RULE.md, then guides the release
level: 3
---

# 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:

```markdown
# 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.

© Yeachan-Heo · MIT · Yeachan-Heo/oh-my-claudecode

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor