epic-merge 用于把一条线性堆叠的 PR 链按依赖顺序依次 squash-merge 到 epic 分支,使每个 PR 在 epic 上保留一个独立的 squash 提交,便于逐 PR 审查。使用前必须先阅读授权契约(@skills/push-ci/references/authorization-contract.md),若读取失败则停止,不执行任何 push 或 merge。
主要能力:按依赖顺序 rebase、创建防冲突的备份标签(backup/pr-*)、监控 CI(委派给 /watch-ci)、通过 gh pr merge --squash 合并。核心原理是:合并 PR N 后,其原始提交被单个 squash 提交替代,PR N+1 仍以 N 的原始提交为基底,需用 git rebase --onto 先切除这段历史,切点由 Phase 1 备份标签捕获。
使用方式:分四阶段。Phase 0 先做有界刷新与分析链是否为线性;Phase 1 创建备份标签;Phase 2 迭代执行 rebase、force-with-lease push、gh pr edit --base、CI 监控与 squash 合并,每轮由 AskUserQuestion 统一审批(可用 --per-step 改为逐步审批);Phase 3 只读验证最终 epic 日志。支持 --dry-run,仅执行一次有界本地操作(Phase 0 step 0 的 fetch),其余步骤只打印命令不执行。
限制与不适用:仅处理线性链,不处理菱形或并行合并链;仅假设 squash-merge,不适用于使用 merge-commit 或 rebase-merge 的仓库;单 PR 合并、无堆叠依赖的简单 rebase、仅做合并前冲突/影响分析,均应改用其他技能。若任一 PR head 以 - 开头则中止运行。资料未提供平台要求、收费与价格信息。