SuperAPI AI 工具集

merge-discipline

部署与运维

查看项目

更新于 10-16 05:47

技能介绍

merge-discipline 是内部共享技能,作为合并时纪律的唯一事实来源,适用于任何合并到受保护分支的操作(glab mr merge、gh pr merge、git merge <target>),包括工作流分支收尾决策、用户直接合并命令或 AI 准备合并调用。它按 A→B→C→R→D 顺序执行五个部分。

Part A 是 OpenSpec 归档关联门控,防止先合并后归档:若 PR 或分支 diff 包含 openspec/changes/<name>/ 下非 archive 路径,或会话绑定的 change 在 openspec list 中仍为 active,则阻止合并,要求在同一源 tip 上完成归档后从 Part A 重新进入。

Part B 是 rebase/冲突预检,防止盲目合并到移动的目标:通过 git fetch、git rev-list、git merge-tree 检测落后提交数与冲突,报告后等待用户确认,确认后执行 git rebase origin/<target-branch> 与 git push --force-with-lease origin <source-branch>。此部分不等待 CI,每次合并尝试最多触发一次 rebase。

Part C 是覆盖率门控,先解析项目偏好 coverage-gate(always/never/ask,未设置视为 ask),再检测 test-coverage-analyzer 是否可用,运行 python3 "<SKILL_DIR>/scripts/analyze_coverage.py" "<project-root>" [--base <target>],根据结果继续或暂停。

Part R 是 PR 代码审查,强依赖 pr-code-review 技能。解析 pr-review-gate 偏好(always/never/ask/non-code-light/auto,未设置视为 auto),进行表面分类与规模/风险升级,以 full 或 light 深度运行审查,任一轴存在 ≥80 的 Critical/Important 则阻止合并。

Part D 是 squash 决策与 tip 固定,在审查通过后、合并命令前执行:列出待合并 tip 的提交,进行折叠预检,按提交历史推荐 squash 或 no-squash,并要求用户显式选择,防止默认合并策略与陈旧 tip 合并竞争。

加载时会扫描 frontmatter 依赖,若缺少 pr-code-review 等强依赖则打印缺失通知并中止,不静默降级。安装缺失技能可用 npx skills add FuDesign2008/open-skills -g --skill pr-code-review --yes。各门控跳过或漏跑需按模板留痕。