SuperAPI AI 工具集

ship

通用与其它

查看项目

更新于 10-16 03:37

技能介绍

用途:把当前工作树里已有的改动,从分支一路送进已合并的 PR。它只发布现有改动,不在过程中修复、重构、整理或重新格式化;顺路发现的问题写进收尾说明,不塞进提交。

参数:clean 会跳过第五步的合并确认,直接继续(/ship clean)。只有这一项被跳过,第一步的无关改动询问和第五步的 CI 门禁仍然生效。

主要流程:第 0 步预检,并行运行 git status,以及 gh auth status 和 git remote get-url origin;工作树干净就停止,gh 缺失或未认证、没有 origin 也先停止。所有 gh 与 git 的 fetch/pull/push/ls-remote 需在沙箱外运行,否则可能被网络限制伪装成认证错误。第 1 步分组并检测无关改动,先做提交分组,再决定分支;若多组无法诚实地放在同一个 PR 标题下,询问是否拆成多个分支与 PR,功能加自身测试文档不算拆分,存疑默认一个分支。第 2 步选分支,在 main 上就新建分支;功能分支需检测是否已合并及是否有开启的 PR,已合并且无新提交视为过期,未合并视为进行中直接沿用,已合并又有新本地提交则询问。新分支命名为 <type>/<short-slug>。第 3 步按 smart-git-commit 工作流每组一个约定式提交,不可用时退回每组一个约定式提交,随后 git push -u origin HEAD。第 4 步用 gh pr create 开 PR,标题为约定式提交主语,正文含 ## Summary,每组一条要点,标题与正文不得使用破折号。第 5 步先过 CI 门禁:gh pr checks <number> --watch --fail-fast 与 gh pr checks <number> --json name,bucket,按 JSON 而非退出码分流;失败或取消即停止且不删除任何东西,仍待定则重跑监听,全部通过或跳过则继续。无检查上报时需确认该提交是否触发 PR CI,仍无结果需询问用户是否无 CI 合并。门禁通过后,clean 直接合并,否则询问是否 squash 合并并删除本地与远端分支;合并后读取 PR 最终状态并据此分流,未合并的分支不会被删除。合并完成后切回 main 并 pull,用三条命令确认提交在本地 main、远端分支已删除、本地分支已删除,任何一条未通过则说明清理不完整。收尾先给出一句话结论、PR URL 与检查行,并列出仍存活的分支。

限制:不得强制推送、跳过钩子或提交疑似密钥;分支只能通过合并时的 --delete-branch 删除;合并只允许在 CI 门禁为绿且 clean 或明确同意时进行;中途失败应停止报告,不要自行恢复。具体安装命令与配置暂未提供。