一键导入
version-release
// Version release workflow. Use when the user mentions 'release', 'hotfix', 'version upgrade', 'weekly release', or '发版'/'发布'/'小班车'. This skill is for release process and GitHub Release notes (not docs/changelog page writing).
// Version release workflow. Use when the user mentions 'release', 'hotfix', 'version upgrade', 'weekly release', or '发版'/'发布'/'小班车'. This skill is for release process and GitHub Release notes (not docs/changelog page writing).
[HINT] 下载包含 SKILL.md 和所有相关文件的完整技能目录
| name | version-release |
| description | Version release workflow. Use when the user mentions 'release', 'hotfix', 'version upgrade', 'weekly release', or '发版'/'发布'/'小班车'. This skill is for release process and GitHub Release notes (not docs/changelog page writing). |
This skill is only for:
auto-tag-release.yml)This skill is not for writing docs/changelog/*.mdx.
If the user asks for website changelog pages, load ../docs-changelog/SKILL.md.
For every /version-release execution, you MUST load and apply:
../microcopy/SKILL.mdThe primary development branch is canary. All day-to-day development happens on canary. When releasing, canary is merged into main. After merge, auto-tag-release.yml automatically handles tagging, version bumping, creating a GitHub Release, and syncing back to the canary branch.
Only two release types are used in practice (major releases are extremely rare and can be ignored):
| Type | Use Case | Frequency | Source Branch | PR Title Format | Version |
|---|---|---|---|---|---|
| Minor | Feature iteration release | ~Every 4 weeks | canary | 🚀 release: v{x.y.0} | Manually set |
| Patch | Weekly release / hotfix / model / DB migration | ~Weekly or as needed | canary or main | Custom (e.g. 🚀 release: 20260222) | Auto patch +1 |
Used to publish a new minor version (e.g. v2.2.0), roughly every 4 weeks.
git checkout canary
git pull origin canary
git checkout -b release/v{version}
git push -u origin release/v{version}
Determine the version number — Read the current version from package.json and compute the next minor version (e.g. 2.1.x -> 2.2.0)
Create a PR to main
gh pr create \
--title "🚀 release: v{version}" \
--base main \
--head release/v{version} \
--body "## 📦 Release v{version} ..."
[!IMPORTANT] The PR title must strictly match the
🚀 release: v{x.y.z}format. CI uses a regex on this title to determine the exact version number.
auto-tag-release detects the title format and uses the version number from the title to complete the release.bun run release:branch # Interactive
bun run release:branch --minor # Directly specify minor
Version number is automatically bumped by patch +1. There are 4 common scenarios:
| Scenario | Source Branch | Branch Naming | Description |
|---|---|---|---|
| Weekly Release | canary | release/weekly-{YYYYMMDD} | Weekly release train, canary -> main |
| Bug Hotfix | main | hotfix/v{version}-{hash} | Emergency bug fix |
| New Model Launch | canary | Community PR merged directly | New model launch, triggered by PR title prefix |
| DB Schema Migration | main | release/db-migration-{name} | Database migration, requires dedicated changelog |
All scenarios auto-bump patch +1. Patch PR titles do not need a version number. See reference/patch-release-scenarios.md for detailed steps per scenario.
bun run hotfix:branch # Hotfix scenario
auto-tag-release.yml)After a PR is merged into main, CI determines whether to release based on the following priority:
PR title matches 🚀 release: v{x.y.z} -> uses the version number from the title.
Triggered by the following priority:
hotfix/* or release/* -> triggers directly (skips title detection)style / 💄 stylefeat / ✨ featfix / 🐛 fixrefactor / ♻️ refactorhotfix / 🐛 hotfix / 🩹 hotfixbuild / 👷 buildPRs that don't match any conditions above (e.g. docs, chore, ci, test) will not trigger a release when merged into main.
package.json — commits 🔖 chore(release): release version v{x.y.z} [skip ci]v{x.y.z}sync-main-to-canary — syncs main back to canaryWhen the user requests a release:
Before creating the release branch, verify the source branch:
release/weekly-*): must branch from canarymain; run git merge-base --is-ancestor main <branch> && echo OKpackage.json to get the current version and compute the next minor versionrelease/v{version} branch from canary🚀 release: v{version}Choose workflow by scenario (see reference/patch-release-scenarios.md):
release/weekly-{YYYYMMDD} from canary; use git log main..canary for release note inputs; title like 🚀 release: 20260222hotfix/ from main; use gitmoji prefix title (e.g. 🐛 fix: ...)feat / style)release/db-migration-{name} from main; cherry-pick migration commits; include dedicated migration notespackage.json versionUse this section for writing GitHub Release notes (or release PR body when the PR body is intended to become release notes).
Do not use this as docs/changelog page guidance.
This release-note style is:
Collect these inputs first:
<prev_tag>...<current_tag>)If metrics cannot be reliably computed, omit unknown numbers instead of guessing.
Follow this section order unless the user asks otherwise:
# 🚀 LobeHub v<x.y.z> (<YYYYMMDD>)Release DateSince <Previous Version> metrics## ✨ Highlights (6-12 bullets for major releases; 3-8 for weekly)### subsections:
## 🏗️ Core Agent & Architecture (or equivalent product core)## 📱 Platforms / Integrations## 🖥️ CLI & User Experience## 🔧 Tooling## 🔒 Security & Reliability## 📚 Documentation (optional if meaningful)## 👥 Contributors**Full Changelog**: <prev>...<current>Use --- separators between major blocks for long releases.
(#1234) when IDs are available.**Fast Mode (/fast)** — Priority routing for OpenAI and Anthropic, reducing latency on supported models. (#6875, #6960)Highlights usually 8-12 bullets.Highlights usually 4-8 bullets.Migration overview, operator impact, and rollback/backup note.# 🚀 LobeHub v<x.y.z> (<YYYYMMDD>)
**Release Date:** <Month DD, YYYY>
**Since <Previous Version>:** <N commits> · <N merged PRs> · <N resolved issues> · <N contributors>
> <One release thesis sentence: what this release unlocks in practice.>
---
## ✨ Highlights
- **<Capability A>** — <What changed and why it matters>. (#1234)
- **<Capability B>** — <What changed and why it matters>. (#2345)
- **<Capability C>** — <What changed and why it matters>. (#3456)
---
## 🏗️ Core Product & Architecture
### <Subdomain>
- <Concrete change + impact>. (#...)
- <Concrete change + impact>. (#...)
---
## 📱 Platforms / Integrations
- <Platform update + impact>. (#...)
- <Compatibility/reliability fix + impact>. (#...)
---
## 🖥️ CLI & User Experience
- <User-facing workflow improvement>. (#...)
- <Quality-of-life fix>. (#...)
---
## 🔧 Tooling
- <Tool/runtime improvement>. (#...)
---
## 🔒 Security & Reliability
- **Security:** <hardening or vulnerability fix>. (#...)
- **Reliability:** <stability/performance behavior improvement>. (#...)
---
## 👥 Contributors
**<N merged PRs>** from **<N contributors>** across **<N commits>**.
### Community Contributors
- @<username> - <notable contribution area>
- @<username> - <notable contribution area>
---
**Full Changelog**: <previous_tag>...<current_tag>
Highlights plus domain-grouped sections