SuperAPI AI 工具集

delivery-discipline

部署与运维

查看项目

更新于 10-16 05:47

技能介绍

用途:这是可选的交付后编排技能,负责在验证通过(或明确列出待办项)之后,判断本次运行是否需要提交代码与创建/更新 PR/MR,并完成提交、推送与 PR/MR 的创建或更新。它不负责合并、发布或仅提交无 PR 的场景。

分层关系:git-commit(提交/推送)→ 本技能(交付编排)→ feature-branch-closeout(菜单)→ merge-discipline(合并门禁)。合并与发布不纳入本技能。

前置检查:加载时验证 git-commit 是否可用;缺失则中止并给出安装提示:npx skills add FuDesign2008/open-skills -g --skill git-commit --yes,不做静默降级。

占位符契约:{pr-body-extra} 由引用宿主在调用点提供,用于宿主专属的 PR/MR 正文段落(如 Jira 链接、OpenSpec 路径、场景表等);{commit-context} 为可选提交字段(type、scope、subject、jira_id),由宿主提供或从分支/差异推断。

适用时机:验证为绿(或明确列出待办)之后,且宿主要求先归档时在 OpenSpec 归档之后,本次运行可能需要提交和/或 PR/MR 时。不适用:合并到受保护分支、发布标签或 release→main 流程、仅提交且无 PR 意图(直接调用 git-commit)。

一、是否需要交付的门禁。满足以下任一条件则跳过本技能其余部分(不提交、不建 PR):交付面干净(无未提交改动且无领先于目标 PR 基线的提交,或无待发布的功能分支工作);用户拒绝(用户表示本次不交付/不要 PR/仅分析);宿主标记为非交付(仅分析路径或无代码/产物改动可发布)。跳过时用一行说明原因并返回宿主,不创建空 PR。需要交付时(工作区脏、有领先提交,或用户/宿主要求 PR)继续。

二、提交/推送。若有未提交改动:以 execute=true 加载 git-commit(除非用户只要手动提交命令),宿主有 Jira ID 或固定消息格式时传入 {commit-context}。若工作区干净但分支领先远端:随 git-commit 自动流程推送,或提交被跳过时显式推送。若已提交且已推送:直接进入第三步,不重复提交。幂等性:绝不创建空提交,绝不为仪式感重复提交同一 tip。

三、创建或更新 PR/MR。检测远端宿主(gh / glab 或等价工具,由代理选择原生 CLI)。若该头分支已有打开的 PR/MR:在宿主提供新 {pr-body-extra} 时更新标题/正文,并确保分支已推送。若不存在:针对默认/受保护基分支创建一个。最小正文始终包含:意图摘要、改动文件概览、验证状态(按 completion-evidence-discipline 的诚实原则标注已执行/待办)。按宿主提供的内容原样追加 {pr-body-extra},不得丢弃 Jira/OpenSpec 字段。展示 PR/MR URL 后停止,不合并。

四、返回宿主。交回:分支名、tip SHA、PR/MR URL(或“已跳过 — 原因”)。宿主随后加载 feature-branch-closeout 进行合并/保留/继续(若先前跳过交付而用户后来选择开 PR,closeout 选项 1 会重新进入本技能)。

宿主集成:solve-workflow / opsx-solve-workflow 在验证后(opsx 还需归档)加载本技能,再 feature-branch-closeout,再 retrospective;jira-fix-workflow 第 9 阶段 / opsx-jira-fix-workflow 归档后交付薄引用本技能,通过 {pr-body-extra} 与 {commit-context} 传 Jira/OpenSpec 字段;feature-branch-closeout 的“打开/更新 PR”选项加载本技能(幂等)。尽量不在宿主中复制提交消息或 PR 正文文案,只保留字段映射。

禁止事项:从本技能合并 PR/MR;内嵌 merge-discipline 的 A–D 部分;要求每次宿主运行都必须有 PR(第一步门禁为强制);当用户明确要求开 PR 且工作区有交付物时静默无操作。