--- name: delivery-loop description: >- 为修复、PR 和需求任务提供可配置的验证、发 PR、合并、回归、构建、发布与部署状态机。 仅作为 ship、pr-ship 的共享执行规则使用。 --- # Delivery Loop:共享交付状态机 这是 ship 与 pr-ship 共用的内部规则,不直接替用户选择生产发布,也不替项目保存环境事实。 ## 使用方式 由 `ship` / `pr-ship` **派出来的 worker** 读取本 skill 和 `references/state-machine.md`。入口主会话不要读取或执行本 skill。 入口决定任务类型、停止点和派哪一步;本 skill 负责该步的阶段要求、证据和安全门。 ## 不可违反的规则 - 复用现有 `hunt`、`tester`、`check`、`builder`、`deployer`、`releaser` 和 `orchestration` 能力;不要在本 skill 里复制它们的实现。`artifact_built` 只调用 builder `obtain.sh`,不要在本 skill 里 poll GitLab/GitHub。 - 先读取项目的 delivery profile、分支策略和当前工作树,再决定可执行的停止点。 - `stopAt` 未配置或与用户目标冲突时停止并报告缺口,不猜测是否应合并或部署。 - 提交、推送、合并、打 tag、发布产物和生产部署都必须同时满足项目配置与当前请求的授权。 - 不绕过审核、CI、测试失败、脏工作树、冲突、未确认的迁移或不可回滚的外部变更。 - 每个阶段都保存可复核证据;没有证据不得把阶段标为完成。入口已绑定 `ship-id` 时,把 指针写入 `.pouch/ship//current.yaml` 的 `evidence`(规则见 ship `record.md`); 缺指针则该阶段未完成。 - 失败时保留现场和回滚信息,不用重试掩盖失败,不伪造发布或部署成功。 ## 结果 完成时返回状态机最终状态、停止点、变更 commit、PR/tag、测试与回归证据、产物摘要、部署 目标和回滚指针。若停在中间状态,明确下一步和阻塞原因。