SuperAPI AI 工具集

forge-ship

部署与运维

查看项目

更新于 10-16 04:16

技能介绍

用途

forge-ship 用于将一个已完成的 forge 阶段正式落地(land)。它把“阶段完成”到“合并进基线”之间的流程固化为可执行的契约,确保每次落地都满足:rebase 到最新基线 → 在 rebase 后的代码树上门禁为绿 → 在基线分支上恰好一个 squash 提交 → 一条构建日志记录。它明确拒绝在门禁未通过、基线过期或历史混乱的情况下落地。

主要能力

  • 识别阶段并检查当前位置:读取 wiki/plan.md,确认阶段编号、声明的可验证门禁和分支名;要求当前位于阶段分支 phase/<n>-<slug>。
  • 与基线同步后再验证:先 git fetch 与 git rebase,使门禁针对真实代码树运行,而非过期的分支点;冲突在阶段分支上解决。
  • 运行门禁与范围化验证:执行阶段规范中的确切门禁命令,并运行类型检查、lint 以及覆盖本次 diff 所触及范围的测试(受影响包/模块,而非整个 monorepo)。
  • 落地前写入记录:在阶段分支上更新 wiki/build-log.md(最新置顶)、ADR、wiki/notes/、wiki/architecture.md,并运行 wiki-maintain.mjs --fix 维护索引;若 diff 触及文档表面,则运行 forge-docs。
  • 落地:默认在本地 squash 合并到基线分支;使用 --pr 时推送阶段分支并创建 PR,由合并负责人 squash 合并。
  • 报告:说明阶段已落地(基线提交或 PR URL)、通过的门禁、构建日志条目、forge-docs 是否改动,以及下一阶段及其分支和门禁,并以 FORGE_RESULT 结果行结束。

使用方式

该技能以流程步骤驱动,核心命令包括:

git branch --show-current git fetch origin git rebase origin/<base> git switch <base> git merge --ff-only origin/<base> git merge --squash phase/<n>-<slug> git commit -m "phase <n>: <one-line summary> (gate: <gate>)"

使用 --pr 时:推送阶段分支并执行 gh pr create --fill(或交给 shepherd --once),报告 PR URL。

适用场景

适用于采用 forge 阶段式工作流的项目,尤其是需要严格门禁、单一 squash 提交和完整构建日志记录的仓库。--pr 模式适用于工厂环境或受保护的基线分支。

限制

  • 门禁在 rebase 后的代码树上未变绿则不得落地,应升级处理;唯一例外是代理无法运行的 crack-on 门禁(人工、浏览器、设备),此时以 gate: deferred 落地并在构建日志中写明确切检查。
  • 基线分支上每个阶段恰好一个 squash 提交,包含代码、构建日志、wiki 和文档;基线分支上不得有其他提交。
  • 除非用户要求,否则不要推送到基线。
  • 未记录日志的阶段视为不完整阶段。
  • 若 git 仍报告冲突,说明基线已移动:中止并回到同步与验证步骤;绝不在基线上解决冲突。

暂未提供

该技能的安装方式、依赖版本、收费或价格信息在给定资料中暂未提供。