SuperAPI AI 工具集

upgrade-plan

编程与开发

查看项目

更新于 10-23 16:18

技能介绍

用途 upgrade-plan 用于规划一个或多个包从已安装版本升级到目标版本的完整方案。其输出是一份计划文件;整个运行过程为只读,不会修改清单文件,也不会执行 install、update 或 require。实际升级由用户拿着计划自行进行。

主要能力

  1. 版本解析:把参数拆成若干包,每个包可带可选 @target;把松散名称映射到已安装包(如 laravel → laravel/framework),多个匹配时询问。运行 versions.sh 获取已安装版本、约束、最新版本、跨过的稳定版本、目标要求以及依赖该包的已安装包;其他生态(pip、Cargo、Bundler、Go)从锁文件和注册表读取同样事实。
  2. 级联分析:找出必须一起迁移的包,包括目标约束之外的必需/对等包、约束排除目标的依赖方(若不存在允许目标的发布则记为阻塞项并给出其允许的最高目标)、需同步移动的伴随包(如 react + react-dom + @types/react)、以及被抬高的运行时要求(PHP、Node、扩展等)。Composer 可用 composer why-not 确认。超过 8 个包时列出其余并询问纳入哪些。
  3. 收集与盘点:把每个包的发布按大版本分片(每片不超过 20 个发布),并行派出收集器与盘点侦察,同时抓取每个跨越大版本的官方升级指南,并对已安装版本运行 composer audit 或 npm audit 查公告。
  4. 匹配:把每个包的条目分批(约 15 条)派匹配侦察,给出 hits、retires、adopt 或 none 判定;技能负责人亲自打开每个非 none 结论背后的站点核实,并裁定所有不确定项。
  5. 分诊:非 none 条目按规则归入 Must do(阻塞项、未满足的运行时或包要求、破坏性命中、影响已安装版本的安全项)、Should do(弃用命中、上游已冗余的补丁/固定/覆盖/变通方案及其注释、能删除代码或消除已知 bug 类的采纳、绕过 bug 的修复)、Do later(其他采纳,如需要设计工作的功能改进或收益较小的重构),并标注规模 S(一小时内)、M(一天)、L(更多)。
  6. 产出:按 PLAN-FORMAT.md 格式写到 .scratch/upgrades/<package-slug>-<from>-to-<to>.md,升级清单只填适用于本项目的行并给出确切命令;每个分桶条目引用站点和来源 URL。最后用 5–8 行汇报包与版本跳跃、阻塞项、各桶数量、最重要的三个 Must do 项和计划路径,阻塞行以 ⚠️ 开头。

使用方式 以技能形式在支持的智能体环境中调用,传入包名与可选目标版本;在 Claude Code 装有该插件时使用 leek-skills:release-notes-collector 和 leek-skills:upgrade-impact-scout 子代理,普通 Claude Code 用 general-purpose(收集器 haiku、侦察 sonnet),其他环境可用任意子代理或串行内联执行。

适用场景 需要对一个或多个依赖库或框架做版本升级前评估影响、找出破坏性变更、清理历史补丁与变通方案、识别可采纳的新特性时使用。

限制 只读,不执行实际升级;具体包管理生态的脚本细节、PLAN-FORMAT.md 与 BRIEFS.md 内容、支持的包类型范围等资料未完整提供,暂未提供。