SuperAPI AI 工具集

forge-land

编程与开发

查看项目

更新于 10-22 06:01

技能介绍

forge-land 是一个面向 Pull Request 合并决策的自动化技能,属于 forge 技能集。它的核心用途是:判断一个已经“变绿”的 PR 是否需要人工介入,如果需要,指出应该由谁来看。该技能默认无人值守,运行过程中不会向用户提问。

主要能力

  • 预检前置条件:检查 PR 是否可合并(mergeable)、CI 是否全部通过(排除基线分支上同样失败的检查)、评审线程是否已全部解决、PR 内容中是否包含 ## Exercised 章节。任一项不满足都会报告 needs-human 并说明失败项。
  • 风险研判:将指定提交的审阅任务委托给一个全新上下文的子智能体,避免编写代码的会话自评风险。子智能体依据风险清单执行所有检查,返回 ## Risk 章节。如果运行环境不支持子智能体,则仅依据清单直接判断。
  • 写入风险章节:将研判结果写入 PR 正文的 ## Risk 章节,并校验结果对应的提交 SHA 是否已变化;若已变化则重新从第一步开始,再次变化则报告 needs-human。
  • 执行动作:根据风险等级和项目配置,报告 merge-ready、review-ready 或自动合并(仅当项目设置 Auto-merge: low-risk 时)。可自动向链接 Issue 的负责人请求评审。
  • 输出摘要:以固定格式输出 PR 编号与标题、结果、研判提交与风险等级、检查命中项、评审请求对象。

使用方式

通过命令触发,支持传入 PR 编号或 URL;省略时从当前分支自动识别。可附加 -- <额外上下文>。例如:/forge-land 123 -- the billing module is new, be strict there。

核心调用示例如下:

gh pr view $PR_ARG --json number,author,baseRefName,headRefOid,closingIssuesReferences
git fetch origin "$BASE" "pull/$PR/head"
gh pr edit "$PR" --body-file "$BODY"
gh pr merge "$PR" --squash --auto --match-head-commit "$SHA"
gh api -X POST "repos/{owner}/{repo}/pulls/$PR/requested_reviewers" -f "reviewers[]=<LOGIN>"

需要注意:只有在项目明确设置 Auto-merge: low-risk 时才会自动合并,且合并仅针对已研判的提交(--match-head-commit),不会推送、不会关闭 PR。若自动合并被宿主拒绝且原因与提交变动有关,则报告 needs-human。

适用场景

  • 已经通过 CI、线程已解决的 PR 需要快速决定“能不能合、该谁看”。
  • 希望在合并前获得与代码作者无关联的独立风险判断。
  • 项目已启用低风险自动合并策略,希望进一步减少人工操作。
  • 需要向链接 Issue 的负责人或作者请求评审时,自动完成请求。

限制

  • 风险结论与具体提交绑定,新推送会使结论失效,需要重新运行。
  • 若无法命名“检查会漏掉什么”,则一律判定为 needs-review。
  • 如果没有符合条件且拥有写权限的请求对象,则跳过评审请求并在摘要中说明。
  • 该技能不负责让 PR 变绿,前置工作应使用 forge-guard;它也可由 forge-ship 在 guard 达到 review-ready 后组合调用。
  • 关于自动合并的具体配置细节、宿主行为差异等,资料仅给出上述规则,暂未提供更多说明。