Merge branch 'main' into rename
Keep pouch naming and .pouch/ack project state, and bring in ACK regression mode, deployer test-environment binding, and manage-release updates from main.
This commit is contained in:
@@ -54,28 +54,33 @@ channel、environment 或 source revision 漂移时重新确认。
|
||||
|
||||
## 3.1 测试环境与发版写在同一份契约
|
||||
|
||||
`.pouch/ack/delivery.yaml` 是测试环境部署和版本发布的唯一文档。不要另写操作手册,
|
||||
`.pouch/ack/delivery.yaml` 是测试环境绑定和版本发布的唯一文档。不要另写操作手册,
|
||||
也不要把其中一项写进 `project.md`。用户用自然语言说明「怎么布测试环境」或
|
||||
「怎么发版」时,Coordinator 把两者都维护进这份文件的 `intents`、entrypoint、
|
||||
artifact、environment 和 profile。
|
||||
「怎么发版」时,Coordinator 把两者都维护进这份文件的 `intents`。
|
||||
|
||||
```yaml
|
||||
intents:
|
||||
testEnvironment: local-binary # profile ID,或 null
|
||||
release: null # profile ID,或 null
|
||||
testEnvironment:
|
||||
via: deployer
|
||||
env: test # 项目 .pouch/deployer/test;尚未说明时为 null
|
||||
release: null # profile ID,或 null
|
||||
```
|
||||
|
||||
- `testEnvironment` 指向 `stopAt: validation_ready` 的 profile:build 产物、部署到
|
||||
development/staging、健康检查。用户说「重新布测试环境」「我要测试」时执行它;
|
||||
派发 Test 复测前,若该 intent 已配置且 `enabled: true`,Coordinator 也先执行它。
|
||||
不要求当前有 `verified` 任务。Test 不对这个 intent 发明编译或启动命令。
|
||||
- `testEnvironment` 绑定 deployer skill 的项目环境目录。用户说「重新布测试环境」
|
||||
「我要测试」时,ACK 加载 deployer 的 `SKILL.md`,对 `.pouch/deployer/<env>`
|
||||
按服务执行 sync + up 和健康检查。派发 Test 复测或跑回归前,若该 intent 已配置
|
||||
且 `enabled: true`,Coordinator 也先执行它。不要求当前有 `verified` 任务。
|
||||
Test 不对这个 intent 发明编译或启动命令。旧的 profile ID 字符串不再执行,必须
|
||||
迁到 `{via: deployer, env: <env>}`。本地进程启动写在 `project.md`,不算这个
|
||||
intent。
|
||||
- `release` 指向 `stopAt: released` 的 profile。用户说「发布一个版本」时执行它。
|
||||
口头「发版」不能代替 stable/production 的 `approval` 步骤。
|
||||
- 对应 intent 为 `null` 或交付未启用:停止,请用户说明怎么做,按「交付配置维护」
|
||||
写入同一文件后再执行。不猜测 Makefile、镜像仓库或发布通道。
|
||||
- 用户触发的 intent 运行写入 `tasks.yaml.deliveryRuns`,`intent` 填
|
||||
`testEnvironment` 或 `release`,`taskIds` 可为空。绑定任务的常规交付 run 不填
|
||||
`intent`,仍只能引用 `verified` 任务。
|
||||
`testEnvironment` 或 `release`,`taskIds` 可为空。测试环境 run 的 `profile` 记
|
||||
`deployer-<env>`。绑定任务的常规交付 run 不填 `intent`,仍只能引用
|
||||
`verified` 任务。
|
||||
|
||||
## 4. 运行前检查
|
||||
|
||||
@@ -147,7 +152,9 @@ ID 指向不同 commit、digest 或目标时停止,不覆盖或另建伪装成
|
||||
## 7. 与低层 Skill 的边界
|
||||
|
||||
ACK 只负责读取项目交付契约、编排顺序、守住审批点并汇总证据,不复制低层 skill 的
|
||||
上传、镜像或 Git 发布实现。`builder` 和
|
||||
`manage-release` 仍是可独立使用、独立安装的能力;缺失时 ACK 使用契约中已审查的
|
||||
项目 entrypoint,二者都不可用时把对应步骤标为 `blocked`。低层 skill 自身要求显式
|
||||
调用时,ACK 不能绕过它的触发与授权边界。
|
||||
上传、镜像、Git 发布或远程 Compose 实现。`builder`、`manage-release` 和
|
||||
`deployer` 仍是可独立使用、独立安装的能力。运行测试环境时 ACK 必须加载
|
||||
deployer skill,不能把 compose/rsync/远程 docker 命令写进 ACK。发版步骤缺失
|
||||
builder 或 manage-release 时,ACK 使用契约中已审查的项目 entrypoint,二者都不可用
|
||||
时把对应步骤标为 `blocked`。低层 skill 自身要求显式调用时,ACK 不能绕过它的
|
||||
触发与授权边界;ACK 内部调用 deployer 布测试环境是该 skill 的合法调用路径。
|
||||
|
||||
Reference in New Issue
Block a user