SuperAPI AI 工具集

forge-batch

部署与运维

查看项目

更新于 10-18 05:02

技能介绍

用途:forge-batch 用于把一批 Issue 分组为可并发实施的 Wave,决定哪些 Issue 可以并排推进、以及先后顺序,避免实现时相互踩踏。

输入范围:支持 milestone:<name>、label:<name>、epic:<number> 或 Issue 编号;可用 -- 追加额外上下文(如波次容量上限、需要绑定在一起的 Issue),--unattended 跳过批准步骤。

主要流程:

  1. 收集候选:列出范围内 Issue,仅保留编号、标题、标签、执行模式与依赖引用,随后拉取开放 PR 并按编号匹配,排除 HITL Issue、标记 blocked 的 Issue、已有开放 PR 的 Issue,以及依赖范围外开放 Issue 的条目,每项都给出排除原因。
  2. 估算 touch set:为每个候选估算实现时最可能改动的文件与目录。范围内超过 5 个 Issue 时,并行委派 forge-scout 子代理(每个约 5 个 Issue);否则就地估算。做法是先列出 Issue 显式点名的路径,再检索其提到的路由、表、组件、消息键等概念并加入定义它们的文件,只返回路径。
  3. 构建 Wave:touch set 共享文件、或同时命中 unattended-config 中同一序列化资源通配符的两个 Issue 视为冲突;正文声明 depends on、blocked by、after 的视为依赖。按优先级标签再按编号贪心放置,每个 Issue 进入最早的、与已有成员无冲突且依赖均位于更早 Wave 的位置;每波默认上限 10 个 Issue;共享目录但无文件冲突的 Issue 可同波并标记为相邻,供人工否决。
  4. 确认:通过 AskUserQuestion 呈现批次,可选择批准、移动或排除某个 Issue;unattended 模式跳过并直接打印。
  5. 输出:按固定格式打印批次,含各 Wave 的表格(编号、标题、touch set、备注)、launch 行与排除清单;设置了 FORGE_LAUNCHER 时启动行使用该启动器,否则仅列编号供手动启动。

使用方式示例: /forge-batch milestone:v1.1.0 /forge-batch label:ready /forge-batch epic:601 /forge-batch 610 611 612 613 -- cap waves at 4 /forge-batch --unattended label:ready

适用场景:在多 Issue 并行开发前进行排期与冲突规避,尤其适合按里程碑或标签批量推进、需要控制并发规模、或希望人工审批波次划分的团队流程。

限制与注意:touch set 只是估算,一个 Wave 是供人批准的赌注而非证明;序列化资源(如数据库迁移)优先级最高,同波两个迁移必然冲突;后续 Wave 为暂定,某个 Wave 合并后应重新运行,因为代码落地后 touch set 会变化。该技能与 forge-create-issue(前置,区分 AFK/HITL,仅 AFK 进入 Wave)和 contrib/launchers/ 中的启动器(后续,按 Issue 运行 forge-ship --guard)配合使用。