SuperAPI AI 工具集

plugin-release

智能体与模型

查看项目

更新于 10-16 07:25

技能介绍

用途:帮助把已开发、已测试的 DSH 插件安全发布出去。发布是单向对外动作,技能要求在真正 publish 或推送 tag 前先展示计划并取得确认,且不会自动决定或递增版本号。

主要能力与流程:

  1. 确认目标版本与发布轨道。轨道包括 GitHub 直接安装(dsh plugin --profile <p> add github:owner/repo,消费方解析默认分支 HEAD,发布即推送 main)、npm registry(npm publish,仅官方发布线,alpha/rc 前缀的 @deepseek-ai/* 版本不保证在 npm 上,发布前用 npm view <pkg> versions 核实)、hub 列表登记(独立动作,不替代打包校验)、collection(成员插件打包进 pack 产物,遵循所属仓库流程)。未发布队列走 references/publish-playbook.md 的 overrides 流程。
  2. 打包与校验产物。使用仓库唯一的包管理器与锁文件(package-lock.json→npm,pnpm-lock.yaml→pnpm),先跑完整 gate 再 npm pack / pnpm pack;解包校验 files 覆盖所有运行时相对导入与资源、无 .ts 残留、cordis.patch.yml / dsh.plugin.json / SKILL.md 等清单齐全;将 tarball 装入隔离 profile 做消费验证(插件行出现在 dsh --profile compat --dump-config 且工具真正注册并执行)。
  3. 版本依赖基线(alpha 期):devDependencies 用 npm 发布线作类型基线,peer 范围放宽(如 <0.2.0),必要时用双兼容模式,禁止把本地绝对路径写入提交的 package.json。
  4. 发布 gate 分层:依赖解析、静态(typecheck+测试+build)、真实挂载(隔离 profile 固定到确切 DSH tag 冷启动,Web Client 插件还需验证资源可达、bundle 注册、DOM 挂载与无页面错误)、行为(核心路径实际执行)、包装(退出码与 stdout/stderr 归属)。
  5. 发布语义 gate:GitHub Release tag 须等于 v${package.json.version};预发布后缀与 Release 预发布状态一致;预发布只能进项目声明的非 latest dist-tag,稳定版才进 latest;稳定发布前查询 npm view <pkg> dist-tags.latest,semver 低于现有 latest 时拒绝发布。
  6. 发布与回滚:发布前干净提交+tag 并记录锁文件与组成基线哈希;发布后以消费方身份重装并冒烟测试;回滚优先撤销发布(删 tag/重指旧提交),不用补丁掩盖问题。

限制与安全边界:任何 publish/tag push/hub 登记写入前须展示计划并确认;绝不自动递增版本;不得发布含凭据、.npmrc 内容、会话日志或私有路径的产物;不得切换包管理器或改写锁文件;失败时只回滚本次运行拥有的路径并报告残留。

参考文件:references/publish-playbook.md(未发布队列安装、双兼容模式、CI/发布 gate、真实坑列表与回滚配方)、references/profile-dependency-management.md(profile 安装/更新配方、github 依赖锁缓存、包重命名三处同步、junction 清理与宿主升级联动)。