
Release Publisher
发布并验收 TrailSnap 新版本:汇总提交、同步全项目版本号、更新官网日志与客户端更新清单、执行发布前测试、创建 GitHub Release、监控标签 CI、核验...
Install
npx skills add LC044/TrailSnap --skill release-publisher -g -a claude-code -y- Repository
- LC044/TrailSnap860
- Category
- Git and review
- Updated
- 3d ago
- License
- AGPL-3.0
- Context cost
- Mediumabout 1,616 tokens
- Runs scripts
- No, instructions only
What it does
发布并验收 TrailSnap 新版本:汇总提交、同步全项目版本号、更新官网日志与客户端更新清单、执行发布前测试、创建 GitHub Release、监控标签 CI、核验 Release 附件,并生成小红书和公众号文案。Use when the user asks to 发布新版本、发版、创建或检查 GitHub Release、总结版本变更、监控发布 CI、检查发布产物,或撰写版本更新帖子。
TrailSnap 版本发布与验收
严格按顺序执行。完整性优先于打标签;未经用户确认,不得创建 GitHub Release。
1. 发布前检查
- 确认位于 TrailSnap 仓库根目录。
- 运行 gh auth status,确认 GitHub CLI 已登录。
- 运行 git status --short --branch。保护用户已有改动;工作区不干净时先判断归属,不得覆盖。
- 获取远程标签,并只选择严格语义化标签:
- 接受正则 ^v[0-9]+.[0-9]+.[0-9]+$
- 排除 pr-preview、app-v*、预发布标签等
- 不要直接信任 git describe --tags;它可能选中非版本标签
- 确认目标标签和 Release 均不存在:
- 检查本地标签、git ls-remote --tags origin 和 gh release view
- 获取上个正式版本到 HEAD 的提交。若为空,停止并提示先提交代码。
- 运行 git grep 搜索上个版本的带 v 和不带 v 形式,建立版本影响清单。
PowerShell 可按版本对象排序标签:
$lastTag = git tag --list |
Where-Object { $_ -match '^v\d+\.\d+\.\d+$' } |
Sort-Object { [version]($_ -replace '^v', '') } -Descending |
Select-Object -First 1
2. 确定版本号
- 用户已指定版本时直接采用。
- 未指定时根据提交建议 patch、minor 或 major。
- patch:修复和小优化。
- minor:向后兼容的新功能。
- major:不兼容变更;必须向用户确认影响与迁移方式。
- 标签始终使用 v 前缀,项目文件使用不带 v 的版本号。
3. 同步版本号
以下是当前基线清单,不是完整清单。先更新这些位置,再用 git grep 发现新增位置。
AI 服务
- package/ai/pyproject.toml
- package/ai/uv.lock
- package/ai/desktop_app.py
- package/ai/app/services/photo_model_repository.py 中的 User-Agent
Server
- package/server/pyproject.toml
- package/server/uv.lock
- package/server/app/core/config_manager.py 中的全部版本常量和默认值
Website 与 CLI
- package/website/package.json
- package/trailsnap-cli/package.json
- package/trailsnap-cli/pyproject.toml
- package/trailsnap-cli/trailsnap/cli.py
- 仅在测试夹具表达“当前产品版本”时同步测试版本;不要误改依赖版本,例如 ts-node@10.9.2
Desktop 完整应用
- package/desktop/package.json
- package/desktop/src-tauri/Cargo.toml
- package/desktop/src-tauri/Cargo.lock
- package/desktop/src-tauri/tauri.conf.json
- Server 与 AI 分别构建但随桌面应用一起发布,两个
runtime-version.json必须与桌面版本一致。 - 完整运行时暂存后运行
python package/desktop/scripts/validate_components.py;缺少组件或混合版本时停止发布。 - Windows 安装版、便携版和完整更新 ZIP 都必须包含 Server 与 AI。新清单使用
bundledAI: true。 - 不再发布独立 AI 扩展清单或压缩包,不维护最低扩展版本;历史 Release 附件保持原样供旧版回滚。
完成后再次搜索旧版本:
- 历史 changelog 和 version.json 中的旧版本应保留。
- 第三方依赖版本不得误改。
- 所有当前产品版本、锁文件本地包版本和发布工作流版本必须一致。

