Skip to content
Back to skills

Release

ASecurity

This skill should be used when the user wants to create a new release — bump version, tag, push, create GitHub release, and publish to npm through the release workflow. Use when user says "release", "bump version", "publish", "cut a release", or "release candidate".

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsrustgobashgit

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 29, 2026

npx -y skills add NikiforovAll/claude-code-marketplace --skill release --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Release?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Release
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nikiforovall-release/badge)](https://www.skillsdirectory.com/skills/nikiforovall-release)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: release
description: This skill should be used when the user wants to create a new release — bump version, tag, push, create GitHub release, and publish to npm through the release workflow. Use when user says "release", "bump version", "publish", "cut a release", or "release candidate".
argument-hint: "[version | rc]"
allowed-tools: Read, Bash(git *), Bash(gh *), Bash(npm *)
---

# Release

Bump version, tag, push, create a GitHub release with auto-generated notes, and watch the workflow that publishes to npm. Supports both stable releases and release candidates (RC).

## Inputs

- `$ARGUMENTS` — target version (e.g. `1.15.0`), `rc` for release candidate, or empty for auto-detection.

## Release Type Detection

Determine release type from `$ARGUMENTS` and current branch:
- If `$ARGUMENTS` contains `rc`, or current branch is not `main`/`master` → **RC release**
- If `$ARGUMENTS` is a version like `1.15.0-rc.1` → **RC release** with that exact version
- Otherwise → **Stable release**

## Workflow

### Step 1: Verify Clean Working Tree

Run `git status --short`. If there are uncommitted changes, warn the user and **stop**.

### Step 2: Determine Branch & Release Type

```bash
git branch --show-current
```

- **Stable release**: must be on `main` or `master`. If not, warn and ask to confirm or switch to RC.
- **RC release**: can ship from any branch.

### Step 3: Determine Version

Read current version from `package.json`. If `$ARGUMENTS` is an exact version, use it directly.

**For stable releases:**

Analyze commits since the last stable tag (exclude RC tags) to suggest a bump type:
- **major** — breaking changes
- **minor** — new features (feat commits)
- **patch** — bug fixes, chores, docs only

Present the suggested bump type and resulting version to the user using `AskUserQuestion` with options: patch, minor, major (put the recommended one first with "(Recommended)" suffix).

**For RC releases:**

- If current version is already an RC (e.g. `1.19.0-rc.1`), auto-increment: `1.19.0-rc.2`
- If current version is stable (e.g. `1.18.0`), determine the next minor/patch version and append `-rc.1`
- Present the suggested RC version to the user using `AskUserQuestion` with options showing the auto-incremented version and a "next minor RC" / "next patch RC" alternative.

### Step 4: Bump Version

Update `version` field in `package.json` to the target version.

### Step 5: Commit & Push

```bash
git add package.json
git commit -m "chore: Bump version to <version>"
git push origin <current-branch>
```

Note: push to the **current branch**, not hardcoded `main`.

### Step 6: Tag & Push Tag

```bash
git tag v<version>
git push origin v<version>
```

### Step 7: Generate Release Notes

Collect commits since previous tag:

```bash
git log --oneline <prev-tag>..HEAD
```

Group by type:
- Features (feat)
- Fixes (fix)
- Other notable changes

Write concise user-facing notes (not raw commit messages). Include a **Full Changelog** compare link using the repository URL from `package.json`.

### Step 8: Create GitHub Release

**Stable release:**
```bash
gh release create v<version> --title "v<version>" --notes "<notes>"
```

**RC release:**
```bash
gh release create v<version> --title "v<version>" --notes "<notes>" --prerelease
```

### Step 9: Watch the Publish

The tag push in Step 6 starts `.github/workflows/release.yml`. It publishes to npm through trusted publishing and then deploys the docs site for a stable release. Nobody runs `npm publish` locally.

```bash
gh run list --workflow release.yml --limit 1
gh run watch <run-id> --exit-status
```

An RC version (with `-`) goes to the `rc` dist-tag and skips the docs deploy, so it never becomes `latest`. Users install it with `npm install <pkg>@rc` or `npx <pkg>@rc`.

If the run fails, fix the cause, then run it again from the tag: `gh workflow run release.yml --ref v<version>`. The publish step skips a version that is already on the registry.

Report the release URL, the workflow run URL, and the published npm version.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…