gstack-upgrade

其他 已审计 @garrytan v1.1.0
信任分
92/100
兼容 Agent
1
速查档案 只列事实:领域、Agent、信任分、作者、原文章节。装与不装请看下方作者解读。
领域
通用
兼容 Agent
Claude Code
信任分
92 / 100 · 已通过审计
作者 / 版本 / 许可
@garrytan · v1.1.0 · 未声明 license
安装命令数
1 条

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗

解读由编辑根据原文凝练而成,命令、链接、术语均与作者原文一致;想看完整论述请切到右侧

设计思路

gstack-upgrade 是 gstack 自身的「自我升级」skill——支持两种触发:preamble 检测到新版自动跑(inline upgrade flow),用户主动 /gstack-upgrade 跑(standalone)。还要处理「全局装一份 + 项目里 vendored 一份」这种双轨布局,team mode 时要自动清理项目里残留的 vendored 副本,保证团队共享同一全局版本。

Inline upgrade flow(被 preamble 触发)

Step 1-3:检测 UPGRADE_AVAILABLE <old> <new>,按用户配置(auto-upgrade 或 4 选项 AskUserQuestion)决定走 / 跳过 / 推迟。

Step 4-5:跑实际升级(git pull / curl 安装脚本 / 复制 release tarball),写「just-upgraded-from」标记,清掉 last-update-check / update-snoozed 缓存让下一次 preamble 不再误报。

Step 6:Show What's New$INSTALL_DIR/CHANGELOG.md,找 old → new 之间的全部条目,按主题汇成 5-7 条 bullet。focus on user-facing changes——内部 refactor 除非很关键否则跳过。

gstack v{new} — upgraded from v{old}!

What's new:
- [bullet 1]
- [bullet 2]
- ...

Happy shipping!

Step 7:Continue——升级完成,回到用户原本调用的 skill。

Standalone usage(/gstack-upgrade 直调)

  1. gstack-update-check --force 强制刷新(绕过 cache)。
  2. 看是否 UPGRADE_AVAILABLE
    • 有 → 走 Steps 2-6
    • 无 → 检查项目里有没有 stale vendored 副本:
      • 没 vendored 副本:「You're already on the latest version (v{version}).」
      • 有 vendored 副本 + team mode = true:移除 vendored 副本,告诉用户提交 .gitignore 的变化
      • 有 vendored 副本 + team mode ≠ true:对比 PRIMARY_VERLOCAL_VER,差异时同步 local;一致时确认两份都最新

适合谁

  • 用 gstack 工具链的所有人
  • 团队负责人——确保大家都跑同版本
  • 多项目切换、有 vendored 历史的工程师

何时不该用

  • 不是 gstack 用户
  • 离线 / 内网环境无法访问 release 源

配套

gstack(生态入口)、document-release(发布前文档体检)、ship(发布主流程)。