소스 정보
- 저장소
- maguowei/code-manager
- 최근 소스 활동
- 2026년 7월 5일 13:55
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 6
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/maguowei/code-manager --skill release-new-version명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | release-new-version |
| description | 手动触发的发版流程:更新版本文件 → 提交 → 生成 release notes → 打 annotated tag → push。 |
| disable-model-invocation | true |
给定版本号,自动完成完整发布流程:更新版本文件 → 提交 → 生成 release notes → 打 annotated git tag(附带完整变更日志)→ push。
接收版本号(如 0.17.0 或 v0.17.0),可选接收对比基准版本(如 from v0.15.0、base=v0.15.0、对比 v0.15.0)。若未提供基准,自动取前一个 SemVer tag。按顺序执行以下步骤:
发布必须在 main 分支上执行(版本 bump 提交与 tag 都落在 main),不要在 dev 或功能分支上发版。
git fetch origin --tags
git rev-parse --abbrev-ref HEAD # 当前分支
git status --short # 工作区是否干净
git rev-list --count main..origin/main # 本地 main 是否落后远端
处理规则:
git status --short 为空);有无关改动先提示用户处理,不要裹挟进发布提交。git checkout main && git merge --ff-only origin/main。dev/功能分支未合入(git rev-list --count main..<分支> > 0),先提示用户走 PR 或 fast-forward 合并,不要在 main 上直接拉取未评审代码。dev/功能分支误建了 bump 提交、且其父提交正是 main 当前位置,可 git checkout main && git merge --ff-only <分支> 把 bump 并入 main,保持两分支一致(避免分叉)。⏸️ 用户确认点(当前不在 main、main 落后远端、或发布内容尚未合入 main 时):展示上述分支状态,说明将如何对齐,用户确认后再切换/合并。
1a. 解析用户输入
0.17.0 或 v0.17.0)→ 去掉前缀 v,使用纯 semver 格式。1b. 自动推断版本号(当用户未提供时)
# 同步远程 tags,确保基于最新数据推断
git fetch --tags
# 取最新 tag
LATEST=$(git tag --sort=-v:refname | head -1)
# 若无历史 tag,提示用户手动输入版本号
推断规则:minor + 1,patch 重置为 0。例如:
v0.16.0 → 0.17.0v1.0.0 → 1.1.0v1.2.3 → 1.3.0若无历史 tag,提示用户手动输入版本号。
⏸️ 用户确认点:展示推断或用户指定的版本号,提示用户确认。用户确认后再执行。
用 Edit 工具依次更新以下三个文件:
src-tauri/tauri.conf.json — 顶层 version 字段package.json — 顶层 version 字段src-tauri/Cargo.toml — [package] 段的第一个 version = "..." 行执行以下命令更新锁文件:
cargo update --manifest-path src-tauri/Cargo.toml --package code-manager
如命令失败(包名不匹配等),跳过并记录。
⏸️ 用户确认点:展示将要提交的文件列表和 commit message,提示用户确认。用户确认后再执行。
仅暂存版本相关文件,提交:
git add src-tauri/tauri.conf.json package.json src-tauri/Cargo.toml src-tauri/Cargo.lock
git commit -m "chore(release): bump version to {VERSION}"
确定用于生成 release notes 的基准版本,规则如下:
from v0.15.0、base=v0.15.0、对比 v0.15.0),将其规范化为 vX.Y.Z 格式后直接使用。git tag --sort=-v:refname | grep -v "^v{VERSION}$" | head -1
INITIAL,release notes 标题写 "Initial release"。校验基准 tag 是否真实存在(git rev-parse {BASE_TAG} 不报错);不存在则中止并询问用户。
⏸️ 用户确认点:展示确定的版本号和对比基准 tag,提示用户确认。用户确认后再继续。
执行以下流程生成结构化变更日志:
git log --pretty=format:'%h %s' {BASE_TAG}..HEAD
若基准为 INITIAL,改用 git log --pretty=format:'%h %s'(取全部历史)。
若 {BASE_TAG}..HEAD 区间无 commit(少见,如重打 tag),release notes 为空,需提示用户确认是否继续。
移除匹配 chore(release): bump version to 的行(版本升级 commit 本身)。
将剩余 commit 按以下前缀分组,无对应类型则省略该段:
| 类型前缀 | 中文标题 |
|---|---|
feat | 新功能 |
fix | 缺陷修复 |
perf | 性能优化 |
refactor | 重构 |
docs | 文档 |
test | 测试 |
build / ci | 构建与 CI |
chore / style / 其他 | 其他 |
同类型内按原始 commit 顺序排列(即时间从早到晚)。
git remote get-url origin
同时兼容两种格式:
git@github.com:owner/repo.git → https://github.com/owner/repo/compare/{BASE_TAG}...v{VERSION}https://github.com/owner/repo.git → 同上无法解析则省略 compare 链接行。
在 commit 分类列表之前,生成一段版本总结。规则:
将生成的 release notes 写入临时文件,模板如下(当基准为 INITIAL 时省略「对比基准」和「完整变更」行):
Release v{VERSION} ({YYYY-MM-DD})
对比基准:{BASE_TAG}
**版本总结**:{本版本重要变更的总结,3-5 句话}
## 新功能
- feat(xxx): ... ({short_sha})
## 缺陷修复
- fix(xxx): ... ({short_sha})
(其他类型按需出现,无该类型则省略整段)
完整变更:https://github.com/{owner}/{repo}/compare/{BASE_TAG}...v{VERSION}
⏸️ 用户确认点:展示生成的完整 release notes 内容(含版本总结),提示用户审核。用户确认后才写入临时文件。
使用 mktemp 创建临时文件,将上述内容写入其中,记录文件路径为 $NOTES_FILE。
⏸️ 用户确认点:提示用户即将执行不可逆操作(打 tag + push),展示即将执行的命令摘要,请求最终确认。用户确认后才执行 push。
在 main 上(见步骤 0)执行:
git tag -a v{VERSION} -F "$NOTES_FILE"
git push origin main
git push origin v{VERSION}
# 如需保持 dev 与 main 一致(bump 已并入 main),一并推送:git push origin dev
rm -f "$NOTES_FILE"
tag 必须用 annotated(-a):lightweight tag 不保存 message,git show v{VERSION} 将看不到变更内容。
release.yml 中的占位文案「查看 Assets 下载并安装此版本」。若希望 Release 页直接展示此 notes,可后续修改 release.yml 的 releaseBody 改为从 tag message 读取。releaseDraft: true 创建的是草稿,不会发出 published 事件。构建完成后需用户在 GitHub Releases 页面 review 产物,点击 Publish release 发布为正式版。只有发布后才会触发:① 应用自更新(latest.json 对用户可见);② update-homebrew-cask.yml(监听 release: published)自动 bump cask。停在草稿态则二者都不触发(cask 仅能靠 workflow_dispatch 手动补跑)。跨步骤的约定与环境依赖(单步内的规则已就近写在对应步骤里):
0.17.0),只有 git tag 才加 v 前缀(v0.17.0)。pnpm-lock.yaml,不手动编辑 Cargo.lock(步骤 3 用 cargo update 同步)。TAURI_SIGNING_PRIVATE_KEY 与 TAURI_SIGNING_PRIVATE_KEY_PASSWORD 两个 GitHub secret,否则不会生成 .sig 与 latest.json,自更新不可用;src-tauri/tauri.conf.json 的 plugins.updater.pubkey 必须是对应公钥,不能留占位符。