关于 delivery-discipline
delivery-discipline 协调验证后的可选代码交付,从判断是否需要交付到提交、推送及新建或更新 PR/MR。它面向需要统一交付门槛的工作流宿主,并在合并前停止。
主要功能
- 01检查是否需要交付
- 02通过 git-commit 协调提交和推送
- 03新建或更新 PR/MR
- 04纳入宿主提供的 PR/MR 内容
- 05在合并前停止
适用场景
- 01没有待发布改动时跳过交付
- 02通过 PR/MR 发布已验证的分支改动
- 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. 提交 / 推送
- 如果有未提交的更改:以
execute=true加载git-commit(除非用户只要求手动提交命令)。如果宿主提供了 Jira ID 或固定消息格式,则传入{commit-context}。 - 如果工作树干净,但分支领先于远程分支:通过
git-commit的自动流程推送,或者在跳过提交时显式推送。 - 如果已提交且已推送:不再提交,继续执行 §3。
幂等性:绝不创建空提交;绝不为了“走流程”而重复提交同一个最新提交。
3. 打开或更新 PR/MR
- 检测远程主机(
gh/glab/ 等效工具 — Agent 选择原生 CLI)。 - 如果此头部分支已存在打开的 PR/MR:宿主提供了新的
{pr-body-extra}时,更新标题/正文;并确保分支已推送。 - 如果不存在:针对默认 / 受保护的基础分支创建 PR/MR。
- 正文最低要求(始终包含):意图摘要、更改文件概览、验证状态(若宿主有验证说明,则依据
completion-evidence-discipline如实标注为已执行 / 待处理)。 - 按宿主提供的原样附加
{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 且工作树中有交付内容时,静默地不执行任何操作