From buyoung-skills
Configures release-it CLI for automated versioning, changelog generation, npm publishing, GitHub/GitLab releases, git tagging, hooks, CI/CD pipelines, monorepos, and custom plugins. Triggers on .release-it configs.
npx claudepluginhub buyoung/skills --plugin backend-skillsThis skill uses the workspace's default tool permissions.
release-it is a generic, pluggable CLI tool that automates versioning and package publishing.
evals/evals.jsonreferences/cli-and-workflow.mdreferences/configuration.mdreferences/custom-plugin-development.mdreferences/git-integration.mdreferences/github-gitlab-releases.mdreferences/hooks-and-lifecycle.mdreferences/initial-setup.mdreferences/npm-publishing.mdreferences/plugins.mdreferences/troubleshooting.mdCreates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
release-it is a generic, pluggable CLI tool that automates versioning and package publishing. It handles version bumping, Git committing/tagging/pushing, npm publishing, and GitHub/GitLab release creation -- all in a single configurable workflow. Language-agnostic with a powerful plugin system for extending behavior.
npm install -D release-it
# Create minimal config
echo '{ "github": { "release": true } }' > .release-it.json
# First release (interactive)
npx release-it
# CI release
npx release-it --ci
For first-time setup with project-aware configuration, follow initial-setup.md.
Read the reference file that matches your task:
| Reference | When to Read |
|---|---|
| initial-setup.md | First-time setup. Analyze project → propose config → ask user for decisions → generate tailored config |
| configuration.md | Setting up or modifying .release-it.* config in any format, config extends/merging, CLI overrides |
| hooks-and-lifecycle.md | Adding pre/post release commands, understanding execution order, template variables |
| cli-and-workflow.md | CLI flags, increment types, pre-release flow, dry-run, CI mode, programmatic API |
| git-integration.md | Tag naming/matching, changelog command, commit messages, branch restrictions, push config |
| npm-publishing.md | npm auth, scoped packages, dist-tags, OTP/2FA, OIDC Trusted Publishing, monorepo, private registry |
| github-gitlab-releases.md | GitHub/GitLab release creation, tokens, assets, release notes, comments, draft/pre-release |
| plugins.md | Setting up official/community plugins (conventional-changelog, bumper, keep-a-changelog, etc.) |
| custom-plugin-development.md | Building a custom release-it plugin from scratch, Plugin class API reference |
| troubleshooting.md | Debugging release failures, auth errors, CI issues, common error messages |
release-it supports 6 config file formats. Pick one:
| Format | File | Notes |
|---|---|---|
| JSON | .release-it.json | Most common. Supports $schema for IDE autocomplete |
| TypeScript | .release-it.ts | Type hints via satisfies Config |
| JS/CJS | .release-it.js / .release-it.cjs | Dynamic config, functions for releaseNotes |
| YAML | .release-it.yaml / .release-it.yml | Compact syntax |
| TOML | .release-it.toml | Table-based config |
| package.json | "release-it": {} property | Zero extra files |
JSON schema: "$schema": "https://unpkg.com/release-it@20/schema/release-it.json"
Only override options that differ from defaults. See configuration.md for all defaults and the extends mechanism.
Initial setup: initial-setup.md — analyzes project, proposes config, asks for decisions
Add changelog generation: plugins.md → conventional-changelog or keep-a-changelog section
CI/CD pipeline (GitHub Actions): cli-and-workflow.md → CI mode + npm-publishing.md → authentication
Pre-release (alpha/beta/rc): cli-and-workflow.md → pre-release workflow
Custom release steps: hooks-and-lifecycle.md → hook configuration
Monorepo: npm-publishing.md → monorepo section + plugins.md → workspaces/bumper
Something broke: troubleshooting.md
Build a plugin: custom-plugin-development.md
major, minor, patch (semver), premajor/preminor/prepatch/prerelease (pre-release)--dry-run): Shows what would execute without side effects. $ = read-only (runs), ! = write (skipped)--ci): Non-interactive, auto-detected in CI environments. No prompts, uses spinners insteadlatest (default), next, beta, alpha -- controls what npm install resolves toinit → getName → getLatestVersion → beforeBump → bump → beforeRelease → release → afterReleasebefore:init, after:bump, after:release, etc.)${version}, ${latestVersion}, ${tagName}, ${changelog}, ${name} -- available in config stringsextends base > built-in defaults