release · lis186 — Claude Code skill: what it does, how to install
Automates ccxray releases by parsing commits, updating CHANGELOG.md, bumping package versions, running tests, and publishing to npm.
npx skills add lis186/ccxray --skill release -a claude-codeWhat release does
The skill reads the current version from package.json and calculates the target semver bump. It defaults to a minor increment, while also accepting patch, major, or exact version strings like 1.6.0. It then parses git history since the previous tag, extracting only feat: and fix: commits while discarding chore:, ci:, and test: entries.
Work stops before altering any project files. The agent displays the draft change log alongside the proposed version, waiting for explicit user confirmation. Once approved, it updates CHANGELOG.md and package.json, then executes npm test. A single failed test halts the entire release immediately.
Publishing to npm cannot be undone. Because of this, the skill halts a second time right before executing npm publish. After your explicit confirmation, it commits the changes, creates tag vX.Y.Z, pushes to origin main, and deploys the package.
What it helps with
- parse user-facing commits from git history
- bump semver versions in package.json
- generate formatted release sections for CHANGELOG.md
- publish packages to npm with mandatory test validation
Example prompts for the agent
- Release a new minor version of ccxray
- Prepare a patch release for ccxray with updated changelog
- Publish ccxray version 1.6.0
How to install release
1Skills CLI (Vercel)
npx skills add lis186/ccxray --skill release -a claude-code2Manually: put the files in place
~/.claude/skills/release/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/release/
1Skills CLI (Vercel)
npx skills add lis186/ccxray --skill release -a codex2Manually: put the files in place
.agents/skills/release/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add lis186/ccxray --skill release -a cursor2Manually: put the files in place
.cursor/skills/release/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install lis186/ccxray release2Manually: put the files in place
.github/skills/release/SKILL.md1Skills CLI (Vercel)
npx skills add lis186/ccxray --skill release -a gemini-cli2Platform CLI
gemini skills install https://github.com/lis186/ccxray --path .claude/skills/releaseManually: put the files in place
.devin/skills/release/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add lis186/ccxray --skill release -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about release
How to install release in Claude Code?
Run npx skills add lis186/ccxray --skill release -a claude-code. Alternatively, add the skill definition file directly at ~/.claude/skills/release/SKILL.md.
What does the release skill do?
It manages release steps for ccxray: filters git commits, writes release notes to CHANGELOG.md, bumps package.json, runs tests, and deploys to npm.
Will it publish packages automatically without asking?
No. The skill pauses twice for manual approval: first before modifying any local files, and again right before running the irreversible npm publish command.
Source text
SKILL.md · MIT
---
name: release
description: Prepare and publish a ccxray release — bump version, update CHANGELOG, commit, tag, push, and npm publish.
license: MIT
metadata:
author: ccxray
version: "1.0"
---
# Release
Publish a new version of ccxray to npm.
**Input**: Optionally specify a version bump: `patch`, `minor` (default), `major`, or an exact version like `1.6.0`.
---
## Workflow
### 1. Determine version
Read current version from `package.json`. Apply the requested bump (default: `minor`):
```bash
node -e "const v=require('./package.json').version; const [a,b,c]=v.split('.').map(Number); console.log(a+'.'+( b+1)+'.0');"
```
Semver guide:
- **patch** — bug fixes only, no new features
- **minor** — new features, backwards-compatible (default)
- **major** — breaking changes
### 2. Collect changes since last tag
```bash
git describe --tags --abbrev=0
git log <last-tag>..HEAD --oneline --no-merges
```
Keep only user-visible changes (`feat:`, `fix:`). Exclude `chore:`, `ci:`, `docs:`, `test:`, and version bump commits.
### 3. Draft CHANGELOG entry
Format (match existing style in `CHANGELOG.md`):
```markdown
## X.Y.Z
### Added
- **Feature name**: one-line description
### Fixed
- **Bug name**: one-line description
```
**⚠ STOP HERE. Show the proposed version and CHANGELOG draft to the user. Wait for confirmation before making any changes.**
### 4. Update files
After user confirms:
**`CHANGELOG.md`** — insert new section at the top (after `# Changelog`):
```
## X.Y.Z
...
```
**`package.json`** — update `version` field.
### 5. Run tests
```bash
npm test
```
Stop and report if any tests fail.
### 6. Commit and tag
```bash
git add CHANGELOG.md package.json
git commit -m "X.Y.Z"
git tag vX.Y.Z
```
### 7. Push
```bash
git push origin main
git push origin vX.Y.Z
```
### 8. Publish to npm
**⚠ STOP HERE. Confirm with user before publishing — npm publish is irreversible.**
```bash
npm publish
```
Verify output contains `+ [email protected]`.
---
## Output on success
```
## Released: [email protected]
✓ CHANGELOG.md updated
✓ package.json bumped to X.Y.Z
✓ Tests passed (N pass)
✓ Committed and tagged vX.Y.Z
✓ Pushed to origin
✓ Published to npm
```
© ccxray · MIT · lis186/ccxray
Similar skills
All skills for Git and GitHub →release by other authors comes first.