mcpField
D
delivery-discipline

delivery-discipline

github.com/fudesign2008开发648 次安装2 天前更新
代码仓库

关于 delivery-discipline

delivery-discipline 协调验证后的可选代码交付,从判断是否需要交付到提交、推送及新建或更新 PR/MR。它面向需要统一交付门槛的工作流宿主,并在合并前停止。

主要功能

  1. 01检查是否需要交付
  2. 02通过 git-commit 协调提交和推送
  3. 03新建或更新 PR/MR
  4. 04纳入宿主提供的 PR/MR 内容
  5. 05在合并前停止

适用场景

  1. 01没有待发布改动时跳过交付
  2. 02通过 PR/MR 发布已验证的分支改动
  3. 03用宿主提供的信息更新现有 PR/MR

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fudesign2008/open-skills --skill delivery-discipline

安装后在 Claude Code 中输入/delivery-discipline确认已加载。

详细介绍

交付规范

共享技能 — 可选验证后代码交付的唯一事实来源:交付需求门槛 → 提交/推送 → 打开或更新 PR/MR。宿主在 dependencies 中声明此技能,缺失时中止 — 不会静默回退。

分层: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)。

1. 交付需求门槛

满足以下任一条件时,跳过本技能余下部分(不提交、不创建 PR):

信号含义
交付内容为空没有未提交的更改,且没有领先于预期 PR 基础分支的提交(或没有需要发布的功能分支工作)
用户拒绝用户表示本次运行不应交付 / 不创建 PR / 仅做分析
宿主标记为非交付宿主路径仅用于分析或类似用途,没有代码(或构件)更改需要发布

跳过时:用一行说明原因并返回宿主(通常是 feature-branch-closeout 或复盘流程)。不要创建空 PR。

如果需要交付(工作树有更改、分支存在领先提交,或用户/宿主要求 PR):继续。

2. 提交 / 推送

  1. 如果有未提交的更改:以 execute=true 加载 git-commit(除非用户只要求手动提交命令)。如果宿主提供了 Jira ID 或固定消息格式,则传入 {commit-context}。
  2. 如果工作树干净,但分支领先于远程分支:通过 git-commit 的自动流程推送,或者在跳过提交时显式推送。
  3. 如果已提交且已推送:不再提交,继续执行 §3。

幂等性:绝不创建空提交;绝不为了“走流程”而重复提交同一个最新提交。

3. 打开或更新 PR/MR

  1. 检测远程主机(gh / glab / 等效工具 — Agent 选择原生 CLI)。
  2. 如果此头部分支已存在打开的 PR/MR:宿主提供了新的 {pr-body-extra} 时,更新标题/正文;并确保分支已推送。
  3. 如果不存在:针对默认 / 受保护的基础分支创建 PR/MR。
  4. 正文最低要求(始终包含):意图摘要、更改文件概览、验证状态(若宿主有验证说明,则依据 completion-evidence-discipline 如实标注为已执行 / 待处理)。
  5. 按宿主提供的原样附加 {pr-body-extra}(不要遗漏 Jira/OpenSpec 字段)。

展示 PR/MR URL 后停止。不要合并。

4. 返回宿主

交还以下信息:分支名、最新提交 SHA、PR/MR URL(或“已跳过 — <原因>”)。随后宿主加载 feature-branch-closeout,以决定合并 / 保留 / 继续(如果此前跳过交付,而用户后来选择打开 PR,则收尾选项 1 会重新进入本技能;仅创建 PR 也适用)。

宿主集成

  • solve-workflow / opsx-solve-workflow:验证后(opsx 还需归档后),加载此技能,然后加载 feature-branch-closeout,最后进行回顾。
  • 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(§1 中的门槛是强制要求)
  • 用户明确要求创建 PR 且工作树中有交付内容时,静默地不执行任何操作

评论

支持 Markdown