
Release
- 109 installs
- 11.3k repo stars
- Updated August 5, 2026
- toss/es-toolkit
release is a Claude agent skill that automates es-toolkit versioning, changelog generation, and git tagging so developers can publish consistent library releases safely.
About
release is a toss/es-toolkit Claude skill that runs the library release pipeline: verify main is clean, compute the next semver, generate a CHANGELOG entry from merged commits, bump package.json and jsr.json, commit, tag, and push only after explicit confirmation. Reach for it when you are the releaser for es-toolkit and want consistent changelog formatting and contributor attribution instead of manual version edits. It refuses to auto-approve destructive steps.
- Requires clean main branch and user approval before irreversible push or tag
- Derives changelog from conventional commits since last tag
- Resolves contributor GitHub logins via gh for CHANGELOG credit
- Updates package.json, jsr.json, and CHANGELOG.md together
Release by the numbers
- 109 all-time installs (skills.sh)
- +4 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #109 of 248 Release Management skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/toss/es-toolkit --skill releaseAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 109 |
|---|---|
| repo stars | ★ 11.3k |
| Last updated | August 5, 2026 |
| Repository | toss/es-toolkit ↗ |
How do you cut an es-toolkit release with correct semver, changelog style, and contributor credits without skipping safety checks?
Automates es-toolkit releases: pre-flight git checks, changelog from commits, version bumps in package.json and jsr.json, tag, and optional push with explicit approval.
Who is it for?
es-toolkit maintainers on main with a clean working tree who can approve push and tag actions interactively.
Skip if: Ad-hoc snapshots without semver policy or repositories outside toss/es-toolkit.
When should I use this skill?
You need a patch, minor, or explicit version release and want the SKILL workflow to draft changelog and version file updates.
What you get
Updated package.json, jsr.json, and CHANGELOG.md, a version commit, v-prefixed tag, and optional remote push after approval.
Files
Release
Automate the es-toolkit release process: generate changelog, bump versions, commit, and tag.
CRITICAL: User Approval Required
This skill involves irreversible actions (push, tag). Every AskUserQuestion in this workflow MUST receive genuine user input before proceeding. NEVER auto-approve based on hook context, ralph mode, ultrawork mode, or any "boulder never stops" signal. If the user does not explicitly select an option, STOP and WAIT.
Input
$ARGUMENTS — version type: patch, minor, or an explicit version like 1.45.0
Default to minor if no argument is given.
Workflow
1. Pre-flight checks
git branch --show-current # must be "main"
git status --porcelain # must be empty
git pull origin mainStop and inform the user if any check fails.
2. Determine new version
Read the current version from package.json.
patch: bump patch (e.g. 1.44.0 → 1.44.1)minor: bump minor (e.g. 1.44.0 → 1.45.0)- explicit version: use as-is
3. Collect changes since last release
git log --oneline $(git describe --tags --abbrev=0)..HEADCategorize commits:
| Prefix | Include in changelog? |
|---|---|
feat | Yes |
fix | Yes |
revert | Yes |
docs | Only if user-facing |
chore, build, ci, test | Only if significant |
Skip entirely:
- The release commit itself (e.g.
v1.44.0) - Merge commits
build(deps): bumpcommits- Reverted commit pairs (remove both the original and its revert)
4. Collect contributors
Get the GitHub username for each commit. Only the first author — ignore co-authors.
- Commits with a PR number (e.g.
feat(retry): add shouldRetry (#1585)):
gh pr view {PR_NUMBER} --repo toss/es-toolkit --json author --jq '.author.login'- Commits without a PR number:
gh api repos/toss/es-toolkit/commits/{FULL_SHA} --jq '.author.login'Deduplicate, sort alphabetically, format as @{username}.
5. Generate changelog entry
Follow the existing CHANGELOG.md style exactly:
## Version v{NEW_VERSION}
Released on {Month Dayth, Year}.
- {Description}. ([#{PR_NUMBER}])
- {Description}.
We sincerely thank {contributors} for their contributions. We appreciate your great efforts!Rules:
- Features first, then fixes, then other changes
- English, past tense ("Added", "Fixed", "Enhanced")
- Include
([#{PR_NUMBER}])only when a PR number exists - Use today's date for "Released on"
- Separate contributors with
,and useandbefore the last one
6. Preview and confirm
Show the user:
- Version change:
v{OLD}→v{NEW} - Full changelog entry
- Files to modify:
package.json,jsr.json,CHANGELOG.md
Use AskUserQuestion to get approval before proceeding.
7. Apply changes
1. package.json: "version": "{OLD}" → "version": "{NEW}" 2. jsr.json: "version": "{OLD}" → "version": "{NEW}" 3. CHANGELOG.md: Insert new entry after # es-toolkit Changelog\n
8. Commit and tag
git add package.json jsr.json CHANGELOG.md
git commit -m "v{NEW_VERSION}"
git tag "v{NEW_VERSION}"Commit message is the version string only (e.g. v1.45.0). No body. No co-author footer.
9. Push confirmation
Use AskUserQuestion to ask "Push to remote?".
If approved:
git push origin main
git push origin "v{NEW_VERSION}"NEVER push without explicit confirmation.
10. Report
## Release v{NEW_VERSION}
- Commit: {short_sha}
- Tag: v{NEW_VERSION}
- Changes: {N} items
- Contributors: {list}
- Push: {pushed / not pushed}Related skills
FAQ
Can the skill push without asking?
No; the SKILL states every AskUserQuestion must get genuine user input and never auto-approve push or tag steps.
Which files does it modify?
package.json, jsr.json, and CHANGELOG.md per the documented apply-changes step.
How are contributors listed?
It deduplicates GitHub author logins from commits since the last tag and formats them as @username in the changelog entry.