Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Prepare and publish DeepChat releases in this repository. Use when Codex needs to bump the app version, update CHANGELOG.md, keep release notes bilingual from v1.0.1 onward with English bullets first and Chinese bullets second, run release checks, create or update versioned release branches such as release/v1.0.1, continue a half-finished release, fast-forward main with the documented release flow, create or push version tags, or clean up release branches after publishing.
.claude/skills/thinkinaixyz-deepchat-release/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 6% | 0% |
Follow the repository-specific DeepChat release process. Prepare release metadata on dev, keep CHANGELOG.md concise, and publish through the documented fast-forward flow instead of merge commits on main.
Inspect git state before changing anything:
release/<version> exists locally or on origin.v<version> exists locally or on origin.If a local or remote tag already exists on the wrong commit, stop and ask before replacing it.
Pick the mode that matches the user's request and current git state:
prepare metadataUpdate package.json, CHANGELOG.md, and the release notes commit on dev.
cut release branchCreate release/<version> from the release-ready commit on dev and push it.
update existing release branchUse this when the release branch already exists but metadata changed afterward. Commit on dev, move release/<version> to the new dev commit, and force-push only the disposable release branch.
publishUse this only after the release PR is approved. Fast-forward main, create the version tag on the same commit, push the tag, and then delete the temporary release branch.
Use references/release-checklist.md for exact commands.
When preparing a release on dev:
package.json to the target version.CHANGELOG.md section at the top.For v1.0.1 and later, format changelog entries in this order:
md## vX.Y.Z (YYYY-MM-DD) - English bullet - English bullet - 中文条目 - 中文条目
Use the current local date in YYYY-MM-DD form. Preserve older changelog sections unless the user explicitly asks to rewrite them.
After editing release metadata, run these repo-required commands:
pnpm run formatpnpm run i18npnpm run lintPrefer running pnpm run typecheck before cutting the release branch. Run tests when the user asks, when the release touches behavior beyond metadata, or when risk is unclear. Report pre-existing failures separately from the release metadata work.
dev as the integration branch.release/<version> as disposable and identical to a commit already on dev.main.pnpm run release:ff -- release/<version> --tag v<version> to publish after approval.Read ../../../docs/release-flow.md when you need the full repository policy or if the checklist and repo docs ever diverge.
When the user says something like "the release branch already exists but the tag is not created yet" or "I fixed the changelog after cutting the release branch":
dev.dev.release/<version> to HEAD.release/<version> with --force-with-lease.main.v1.0.1 and 2026-04-02.Activate this skill for requests like:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,460 | 25,542 | +473% | 1 | 1 | 0% | 310 | 1,434 | +363% | 0 | 0 | — |
case-02 | fail→fail | 10,673 | 4,343 | -59% | 1 | 1 | 0% | 1,346 | 1,384 | +3% | 0 | 0 | — |
case-03 | fail→fail | 8,552 | 55,556 | +550% | 1 | 1 | 0% | 1,587 | 1,375 | -13% | 0 | 0 | — |
case-04 | fail→pass | 7,911 | 17,481 | +121% | 1 | 1 | 0% | 1,457 | 1,341 | -8% | 0 | 0 | — |
case-05 | fail→pass | 5,525 | 2,458 | -56% | 1 | 1 | 0% | 1,147 | 1,576 | +37% | 0 | 0 | — |
case-06 | fail→pass | 54,420 | 2,308 | -96% | 1 | 1 | 0% | 1,839 | 1,473 | -20% | 0 | 0 | — |
case-07 | fail→pass | 13,529 | 4,896 | -64% | 1 | 1 | 0% | 1,641 | 1,984 | +21% | 0 | 0 | — |
case-08 | fail→pass | 10,297 | 4,398 | -57% | 1 | 1 | 0% | 1,778 | 1,879 | +6% | 0 | 0 | — |
case-09 | pass→pass | 3,377 | 3,660 | +8% | 1 | 1 | 0% | 663 | 1,749 | +164% | 0 | 0 | — |
case-10 | pass→pass | 10,620 | 2,987 | -72% | 1 | 1 | 0% | 1,722 | 1,588 | -8% | 0 | 0 | — |
case-11 | pass→pass | 11,111 | 5,677 | -49% | 1 | 1 | 0% | 1,931 | 2,089 | +8% | 0 | 0 | — |
case-12 | fail→pass | 2,997 | 1,298 | -57% | 1 | 1 | 0% | 406 | 1,261 | +211% | 0 | 0 | — |
case-13 | pass→pass | 6,529 | 3,465 | -47% | 1 | 1 | 0% | 1,122 | 1,687 | +50% | 0 | 0 | — |
case-14 | pass→pass | 10,899 | 7,054 | -35% | 1 | 1 | 0% | 1,706 | 2,185 | +28% | 0 | 0 | — |
case-15 | pass→pass | 7,912 | 2,530 | -68% | 1 | 1 | 0% | 1,445 | 1,488 | +3% | 0 | 0 | — |
case-16 | pass→pass | 12,428 | 7,923 | -36% | 1 | 1 | 0% | 2,309 | 2,491 | +8% | 0 | 0 | — |
case-17 | pass→pass | 10,139 | 4,295 | -58% | 1 | 1 | 0% | 1,849 | 1,819 | -2% | 0 | 0 | — |
case-18 | fail→pass | 6,358 | 2,647 | -58% | 1 | 1 | 0% | 1,106 | 1,497 | +35% | 0 | 0 | — |
case-19 | pass→pass | 8,635 | 4,180 | -52% | 1 | 1 | 0% | 1,450 | 1,701 | +17% | 0 | 0 | — |
case-20 | pass→pass | 9,740 | 4,341 | -55% | 1 | 1 | 0% | 1,976 | 1,804 | -9% | 0 | 0 | — |
case-21 | pass→pass | 7,686 | 4,650 | -40% | 1 | 1 | 0% | 1,570 | 1,873 | +19% | 0 | 0 | — |
case-22 | pass→pass | 8,718 | 7,061 | -19% | 1 | 1 | 0% | 1,684 | 2,488 | +48% | 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 +32 percentage points is the difference between those two pass rates over the 19 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
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.