用途:当目标 issue 存在 2 个及以上未关闭依赖,且调度器因没有单一基线分支而无法自动堆叠时,使用 oh-join 完成多依赖汇聚。调用方式为 /oh-join <issue-number>,参数为目标 GitHub issue 编号(如 1178 或 #1178)。
主要能力:读取目标 issue 的 Depends on 依赖;查找依赖 issue 关联的开放 PR;校验依赖 PR 是否可合并;按依赖 issue 编号升序的确定顺序将 PR 合并到共同基线分支;显式关闭依赖 issue;把目标 issue 的依赖改写为单一可被调度器读取的基线依赖,并追加机器可读区块。
必要用法:用 gh issue view <issue-number> --json number,title,body,state,url 加载 issue;用 gh pr list --state open --json number,title,headRefName,baseRefName,body,url 发现 PR,通过分支模式 issue/<N>、issue-<N> 或 PR 正文中的 Closes/Fixes/Resolves #N 建立映射;用 gh pr checks <pr-number> --fail-on-error 与 gh pr view <pr-number> --json reviewDecision,isDraft,mergeable 做就绪检查;合并使用 gh pr merge <pr-number> --squash,关闭依赖 issue 使用 gh issue close <dep-issue-number> --comment "...";改写目标 issue 使用 gh issue edit <issue-number> --body-file <temp-file>。
限制与安全规则:依赖少于 2 个、任一依赖无开放 PR、找不到安全共同基线、基线不是 issue 分支(如 main/master)、PR 为草稿、不可合并、CI 未通过、评审为 CHANGES_REQUESTED、缺少最终提交的 /ship 证据或独立 /review 批准时,均以 blocked 停止。不得直接调用 gh pr merge 绕过最终 diff 门禁;不得合并与目标依赖无关的 PR;首次合并失败后立即停止;合并到非默认分支不会自动关闭 issue,必须显式关闭;不得把依赖改写为无。结束时必须调用 signal_completion,不可用时以 COMPLETION: status=... 单行收尾。
适用场景:多依赖 issue 的汇聚合并与依赖收敛。具体收费、价格、平台支持等信息暂未提供。