Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Cuts a new versioned release of claude-code-trace end-to-end without asking any questions. Detects commits since the last ancestral tag, classifies them with conventional-commit rules to pick the semver bump, bumps every version-bearing file in sync, writes the CHANGELOG entry, commits and tags on a release branch, pushes the tag to trigger the GitHub Actions release pipeline, fast-forwards `main` onto the release commit and pushes it, then cleans up the local branch. Use this skill whenever the
.claude/skills/delexw-cut-release/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 62% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 268% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 27% | 0% |
| case-08 | ✓→✓ | = Same ✓ | -2% | 0% |
claude-code-traceTurns "we should release this" into a tagged, pushed, pipeline-triggered, publicly published release with a curated CHANGELOG, in a way that survives the project's strict pre-commit hook chain and stays honest about what's actually shipping.
The skill is project-local because the steps depend on this repo's specific shape (three version files, two lockfiles, GH Actions release on v* tag, the spec-drift + test-reflection pre-commit hook pair).
The skill is fully automated end-to-end and fully synchronous. It never calls AskUserQuestion, never waits for "yes", never branches on user preference, and never runs any command in the background. Every Bash invocation runs in the foreground so the session holds continuously from Phase 1 through Phase 9 — no run_in_background: true, no trailing &, no nohup, no disown. This includes long-running steps like gh run watch in Phase 7; set the Bash timeout parameter to match the expected duration (e.g. 1800000 ms for the release pipeline) rather than detaching.
Defaults are deterministic:
git describe --tags --abbrev=0 ships.${CLAUDE_SKILL_DIR}/references/conventional-commits.md). BREAKING CHANGE: or !: produces a minor bump while the version is 0.X.Y (pre-1.0 caveat) and a major bump otherwise; the skill never silently promotes to 1.0.0.
chore: / docs: / test: / ci: are always skipped.
after).
The skill aborts (loudly) only on hard preconditions that would corrupt the release:
vX.Y.Z tag already exists on origin. Abortwith Error: vX.Y.Z already exists on origin (commit <sha>). Refusing to release the same version twice. The user must delete the remote tag intentionally if they want a re-release, or bump again.
list of dirty files.
npm run check fails — abort and surface the failure verbatim.Read these references on the first invocation in a session — they describe constants the phase files refer to.
${CLAUDE_SKILL_DIR}/references/project-shape.md — version files, lockfiles, pre-commithooks, release pipeline wiring.
${CLAUDE_SKILL_DIR}/references/conventional-commits.md — how commit prefixes map tosemver bump level.
${CLAUDE_SKILL_DIR}/references/changelog-template.md is loaded when you reach Phase 4.
Read ${CLAUDE_SKILL_DIR}/steps/phase1-inspect-and-scope.md and follow all instructions.
Read ${CLAUDE_SKILL_DIR}/steps/phase2-build-release-branch.md and follow all instructions.
Read ${CLAUDE_SKILL_DIR}/steps/phase3-bump-versions.md and follow all instructions.
Read ${CLAUDE_SKILL_DIR}/steps/phase4-changelog.md and follow all instructions.
Read ${CLAUDE_SKILL_DIR}/steps/phase5-verify-commit-tag.md and follow all instructions.
Read ${CLAUDE_SKILL_DIR}/steps/phase6-push-tag.md and follow all instructions.
Read ${CLAUDE_SKILL_DIR}/steps/phase7-publish-github-release.md and follow all instructions.
mainRead ${CLAUDE_SKILL_DIR}/steps/phase8-back-to-main.md and follow all instructions.
Read ${CLAUDE_SKILL_DIR}/steps/phase9-cleanup.md and follow all instructions.
--no-verify — always fix the underlying issue.git push -f) to main, the release tag, or any shared branch.X.0.0) while the version is still 0.X.Y — pre-1.0 the skillcaps at minor even when a breaking change is detected.
The harness's auto-mode classifier may still intercept pushes to shared branches (e.g. git push origin main) — that is out of skill scope. When it does, surface the error and continue with the remaining phases; the user resolves the push themselves.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→fail | 3,412 | 7,340 | +115% | 1 | 1 | 0% | 330 | 1,971 | +497% | 0 | 0 | — |
case-01 | fail→fail | 7,645 | 7,041 | -8% | 1 | 1 | 0% | 1,303 | 1,620 | +24% | 0 | 0 | — |
case-03 | fail→fail | 3,677 | 6,170 | +68% | 1 | 1 | 0% | 373 | 1,688 | +353% | 0 | 0 | — |
case-04 | pass→pass | 7,802 | 4,741 | -39% | 1 | 1 | 0% | 1,342 | 2,170 | +62% | 0 | 0 | — |
case-05 | pass→pass | 3,191 | 4,066 | +27% | 1 | 1 | 0% | 548 | 2,019 | +268% | 0 | 0 | — |
case-06 | pass→pass | 7,835 | 2,843 | -64% | 1 | 1 | 0% | 1,430 | 1,813 | +27% | 0 | 0 | — |
case-07 | fail→pass | 8,779 | 2,917 | -67% | 1 | 1 | 0% | 1,385 | 1,689 | +22% | 0 | 0 | — |
case-08 | pass→pass | 12,501 | 3,321 | -73% | 1 | 1 | 0% | 1,926 | 1,891 | -2% | 0 | 0 | — |
case-09 | pass→pass | 9,340 | 3,091 | -67% | 1 | 1 | 0% | 1,487 | 1,779 | +20% | 0 | 0 | — |
case-10 | fail→fail | 9,049 | 3,937 | -56% | 1 | 1 | 0% | 1,492 | 1,967 | +32% | 0 | 0 | — |
case-11 | pass→pass | 7,808 | 2,580 | -67% | 1 | 1 | 0% | 1,255 | 1,669 | +33% | 0 | 0 | — |
case-12 | pass→pass | 4,844 | 4,951 | +2% | 1 | 1 | 0% | 801 | 2,156 | +169% | 0 | 0 | — |
case-13 | pass→pass | 14,626 | 3,486 | -76% | 1 | 1 | 0% | 2,365 | 1,821 | -23% | 0 | 0 | — |
case-14 | pass→pass | 10,079 | 2,936 | -71% | 1 | 1 | 0% | 1,579 | 1,791 | +13% | 0 | 0 | — |
case-15 | pass→pass | 10,198 | 4,595 | -55% | 1 | 1 | 0% | 1,603 | 2,137 | +33% | 0 | 0 | — |
case-16 | pass→pass | 3,629 | 4,001 | +10% | 1 | 1 | 0% | 668 | 1,926 | +188% | 0 | 0 | — |
case-17 | pass→pass | 3,525 | 3,770 | +7% | 1 | 1 | 0% | 572 | 1,939 | +239% | 0 | 0 | — |
case-18 | pass→pass | 2,776 | 2,895 | +4% | 1 | 1 | 0% | 487 | 1,767 | +263% | 0 | 0 | — |
case-19 | pass→pass | 8,773 | 6,016 | -31% | 1 | 1 | 0% | 1,311 | 2,238 | +71% | 0 | 0 | — |
case-20 | pass→pass | 10,380 | 6,371 | -39% | 1 | 1 | 0% | 1,897 | 2,288 | +21% | 0 | 0 | — |
case-21 | pass→pass | 3,691 | 3,917 | +6% | 1 | 1 | 0% | 608 | 1,535 | +152% | 0 | 0 | — |
case-22 | pass→pass | 4,323 | 2,776 | -36% | 1 | 1 | 0% | 824 | 1,780 | +116% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +5 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.