Skills

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. 发布前检查

  1. 确认位于 TrailSnap 仓库根目录。
  2. 运行 gh auth status,确认 GitHub CLI 已登录。
  3. 运行 git status --short --branch。保护用户已有改动;工作区不干净时先判断归属,不得覆盖。
  4. 获取远程标签,并只选择严格语义化标签:
    • 接受正则 ^v[0-9]+.[0-9]+.[0-9]+$
    • 排除 pr-preview、app-v*、预发布标签等
    • 不要直接信任 git describe --tags;它可能选中非版本标签
  5. 确认目标标签和 Release 均不存在:
    • 检查本地标签、git ls-remote --tags origin 和 gh release view
  6. 获取上个正式版本到 HEAD 的提交。若为空,停止并提示先提交代码。
  7. 运行 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 中的旧版本应保留。
  • 第三方依赖版本不得误改。
  • 所有当前产品版本、锁文件本地包版本和发布工作流版本必须一致。
Read the whole SKILL.md on GitHub

More in Git and review