feat(ack): add grok workers and allow --always-approve

Grok is a first-class worker CLI. Launcher argv includes --always-approve so
unattended tool calls are not blocked; sandbox stays required.
This commit is contained in:
2026-08-23 19:08:54 +08:00
parent c113f68bf4
commit 7dfdf80e9e
28 changed files with 679 additions and 78 deletions
+25
View File
@@ -52,6 +52,31 @@ channel、environment 或 source revision 漂移时重新确认。
凭据系统或执行环境注入。复杂逻辑放在受版本控制的项目入口中。entrypoint 使用 argv
语义执行,不能拼成 `sh -c` 字符串。
## 3.1 测试环境与发版写在同一份契约
`docs/ack/delivery.yaml` 是测试环境部署和版本发布的唯一文档。不要另写操作手册,
也不要把其中一项写进 `project.md`。用户用自然语言说明「怎么布测试环境」或
「怎么发版」时,Coordinator 把两者都维护进这份文件的 `intents`、entrypoint、
artifact、environment 和 profile。
```yaml
intents:
testEnvironment: local-binary # profile ID,或 null
release: null # profile ID,或 null
```
- `testEnvironment` 指向 `stopAt: validation_ready` 的 profilebuild 产物、部署到
development/staging、健康检查。用户说「重新布测试环境」「我要测试」时执行它;
派发 Test 复测前,若该 intent 已配置且 `enabled: true`Coordinator 也先执行它。
不要求当前有 `verified` 任务。Test 不对这个 intent 发明编译或启动命令。
- `release` 指向 `stopAt: released` 的 profile。用户说「发布一个版本」时执行它。
口头「发版」不能代替 stable/production 的 `approval` 步骤。
- 对应 intent 为 `null` 或交付未启用:停止,请用户说明怎么做,按「交付配置维护」
写入同一文件后再执行。不猜测 Makefile、镜像仓库或发布通道。
- 用户触发的 intent 运行写入 `tasks.yaml.deliveryRuns``intent`
`testEnvironment``release``taskIds` 可为空。绑定任务的常规交付 run 不填
`intent`,仍只能引用 `verified` 任务。
## 4. 运行前检查
1.`tasks.yaml.project.deliveryFile` 解析文件;未引用或 `enabled=false` 时保持旧 ACK