add delivery workflow skills
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# delivery-loop
|
||||
|
||||
供其他交付类 skill 复用的状态机,统一处理验证、PR、合并、回归、构建和部署的顺序与安全门。
|
||||
|
||||
## 什么时候使用
|
||||
|
||||
通常由 `$bugfix-ship`、`$pr-ship` 或 `$requirement-flow` 内部读取,不需要单独调用。
|
||||
|
||||
## 使用前准备
|
||||
|
||||
- 项目已有有效的 ACK delivery profile 或等价交付配置。
|
||||
- 已明确任务的目标分支、测试范围和允许的停止点。
|
||||
- 需要外部写入时,当前请求已经授权对应动作。
|
||||
|
||||
## Agent 会做什么
|
||||
|
||||
按配置推进任务,逐阶段记录验证证据;遇到缺配置、失败或高风险变更时停止,不自动猜测。
|
||||
|
||||
## 如何判断完成
|
||||
|
||||
最终报告会明确停在 PR、合并、回归、产物或部署中的哪一状态,并给出可复核证据。
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
name: delivery-loop
|
||||
description: >-
|
||||
为修复、PR 和需求任务提供可配置的验证、发 PR、合并、回归、构建、发布与部署状态机。
|
||||
仅作为 bugfix-ship、pr-ship、requirement-flow 的共享执行规则使用。
|
||||
---
|
||||
|
||||
# Delivery Loop:共享交付状态机
|
||||
|
||||
这是三个交付入口共用的内部规则,不直接替用户选择生产发布,也不替项目保存环境事实。
|
||||
|
||||
## 使用方式
|
||||
|
||||
只有在入口 skill 明确要求执行交付时才读取
|
||||
`references/state-machine.md`。入口 skill 负责确定任务类型和目标;本 skill 负责阶段、
|
||||
停止点、证据和安全门。
|
||||
|
||||
## 不可违反的规则
|
||||
|
||||
- 复用现有 `hunt`、`tester`、`check`、`builder`、`deployer`、`releaser` 和
|
||||
`orchestration` 能力;不要在本 skill 里复制它们的实现。
|
||||
- 先读取项目的 delivery profile、分支策略和当前工作树,再决定可执行的停止点。
|
||||
- `stopAt` 未配置或与用户目标冲突时停止并报告缺口,不猜测是否应合并或部署。
|
||||
- 提交、推送、合并、打 tag、发布产物和生产部署都必须同时满足项目配置与当前请求的授权。
|
||||
- 不绕过审核、CI、测试失败、脏工作树、冲突、未确认的迁移或不可回滚的外部变更。
|
||||
- 每个阶段都保存可复核证据;没有证据不得把阶段标为完成。
|
||||
- 失败时保留现场和回滚信息,不用重试掩盖失败,不伪造发布或部署成功。
|
||||
|
||||
## 结果
|
||||
|
||||
完成时返回状态机最终状态、停止点、变更 commit、PR/tag、测试与回归证据、产物摘要、部署
|
||||
目标和回滚指针。若停在中间状态,明确下一步和阻塞原因。
|
||||
@@ -0,0 +1,6 @@
|
||||
interface:
|
||||
display_name: "Delivery Loop"
|
||||
short_description: "Shared delivery state machine for workflow skills"
|
||||
default_prompt: "Use $delivery-loop to inspect a delivery workflow state and its safe stopping point."
|
||||
policy:
|
||||
allow_implicit_invocation: false
|
||||
@@ -0,0 +1,49 @@
|
||||
# Delivery Loop 状态机
|
||||
|
||||
## 状态
|
||||
|
||||
```text
|
||||
change_ready -> verified -> pr_opened -> merged -> regression_passed -> artifact_built -> published -> deployed
|
||||
```
|
||||
|
||||
入口可以从已有状态开始,但不能跳过本次变更所需的验证。内部里程碑可以更细,但项目
|
||||
ACK 配置必须使用以下 canonical `stopAt`:
|
||||
|
||||
- `verified`:只完成代码和验证。
|
||||
- `validation_ready`:不可变产物已部署到开发/测试环境并通过健康检查,可交给用户验证。
|
||||
- `review_ready`:PR/MR、预览产物和非生产验证证据已齐备,等待审核。
|
||||
- `released`:经过本次 approval 后完成稳定发布或生产部署。
|
||||
|
||||
入口 skill 的自然语言停止点映射如下:
|
||||
|
||||
| 用户目标 | ACK stopAt | 必要内部里程碑 |
|
||||
| --- | --- | --- |
|
||||
| 只验证 | `verified` | `verified` |
|
||||
| 发 PR | `review_ready` | `pr_opened`,必要时预览构建/测试 |
|
||||
| 部署测试环境 | `validation_ready` | `artifact_built`、`deployed`、健康检查 |
|
||||
| 合并后回归但不发布 | `review_ready` 或任务级中间状态 | `merged`、`regression_passed` |
|
||||
| 完整正式部署 | `released` | `merged`、`regression_passed`、`artifact_built`、`published`、`deployed` |
|
||||
|
||||
## 每个阶段的要求
|
||||
|
||||
- `change_ready`:记录基线 commit、工作树、目标分支、任务范围和风险。
|
||||
- `verified`:根因或需求验收明确;自动测试和必要的黑盒/真机验证通过。
|
||||
- `pr_opened`:提交说明、测试证据、风险和回滚信息已写入 PR;不能把草稿 PR 当 `review_ready`。
|
||||
- `merged`:目标分支的合并 commit 已确认,不能只确认源分支 commit。
|
||||
- `regression_passed`:以合并 commit 执行项目规定的完整回归;失败则回到修复或停止。
|
||||
- `artifact_built`:产物由合并后的 commit 构建,记录版本、文件和 SHA256。
|
||||
- `published`:镜像/APK 等外部分发位置可复核,记录 digest 或文件校验和。
|
||||
- `deployed`:目标服务运行在预期版本,健康检查和关键路径验证通过;生产部署还必须进入 `released`。
|
||||
|
||||
## 配置和授权
|
||||
|
||||
读取项目自己的 delivery 配置,不把命令、主机、秘密复制到通用 skill。优先使用 ACK
|
||||
的 `delivery.yaml`、builder/deployer/tester 契约和项目版本策略;缺失时停止在最近的安全状态。
|
||||
|
||||
生产部署必须同时满足:项目 profile 允许、目标明确、构建来源已固定、回归证据完整、当前
|
||||
请求覆盖生产部署。没有这些条件时只能报告,而不能用“用户之前说过发布”替代当前授权。
|
||||
|
||||
## 证据账本
|
||||
|
||||
至少记录:基线和最终 commit、工作树状态、测试命令及结果、黑盒/真机证据、PR/MR URL、
|
||||
合并 commit、tag、产物路径与摘要、部署节点/服务、健康检查、失败项和回滚指针。
|
||||
Reference in New Issue
Block a user