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:
+36
-8
@@ -3,7 +3,7 @@ name: ack
|
||||
description: >-
|
||||
初始化、检查并运行 ACK 三角色协作闭环。仅在用户显式调用 /ack 或 $ack,并要求
|
||||
初始化 ACK、检查 docs/ack 配置、按 ACK 规划需求、指挥 Coordinator/Developer/Test
|
||||
工作,或配置并执行任务验证后的项目交付流程时使用。
|
||||
工作,配置测试环境与发版方式,重新部署测试环境,或发布版本时使用。
|
||||
---
|
||||
|
||||
# ACK 项目协作入口
|
||||
@@ -21,7 +21,11 @@ description: >-
|
||||
- 用户要求初始化、接入或安装 ACK:执行“初始化”。
|
||||
- 用户要求检查 ACK 是否可用、配置是否完整:执行“检查”。
|
||||
- 用户要求用 ACK 做需求、修复问题或继续任务:执行“工作”。
|
||||
- 用户用自然语言要求增加、修改或关闭项目交付流程:执行“交付配置维护”。
|
||||
- 用户用自然语言说明怎么部署测试环境、怎么发布版本,或要求增加、修改、关闭交付
|
||||
流程:执行“交付配置维护”。测试环境和发版必须写进同一份
|
||||
`docs/ack/delivery.yaml`。
|
||||
- 用户要求部署、重新部署测试环境,或按已配置方式开始测试:执行“运行测试环境”。
|
||||
- 用户要求发布版本:执行“运行版本发布”。
|
||||
|
||||
始终先解析真实项目根目录。优先使用 `git rev-parse --show-toplevel`;不是 Git
|
||||
项目时使用用户指定目录或当前目录。不要修改项目的 `AGENTS.md`、`CLAUDE.md`
|
||||
@@ -169,8 +173,9 @@ description: >-
|
||||
任一条件不符、清理能力不存在或无法确认清理成功时创建 fresh worker。持久化
|
||||
receipt 只作审计与 dispatch 关联,不能单独授权复用。当前 Orca 终端接口不能提供
|
||||
可验证的历史消息清理,因此使用 Orca 时仍走 fresh worker。
|
||||
6. 用户已确认的任务按 ACK 闭环执行:Developer 实现与白盒验证,Test 独立黑盒
|
||||
复测,Coordinator 读取证据终检并唯一写入 `tasks.yaml`。Developer 回报
|
||||
6. 用户已确认的任务按 ACK 闭环执行:Developer 实现与白盒验证;若
|
||||
`intents.testEnvironment` 已启用,Coordinator 先按「运行测试环境」拉起服务,再
|
||||
派 Test 独立黑盒复测。Coordinator 读取证据终检并唯一写入 `tasks.yaml`。Developer 回报
|
||||
`knowledgeApplied` 和 `knowledgeCandidates`,Test 回报 `knowledgeChecks`;
|
||||
`candidate` 只有在独立验证和 gate 后才能由 Coordinator 写入或激活。
|
||||
7. 执行知识项的 `verification.ref` 时,只调用
|
||||
@@ -202,8 +207,10 @@ description: >-
|
||||
## 交付配置维护
|
||||
|
||||
1. 读取 `references/delivery.md`、模板、schema、现有 `delivery.yaml`、项目构建/发布
|
||||
入口和 CI;把用户自然语言描述转换为结构化 entrypoint、artifact、destination、
|
||||
environment 与 profile。配置只引用仓库内脚本或声明式工具 target,不保存 shell。
|
||||
入口和 CI;把用户自然语言描述转换为结构化 `intents`、entrypoint、artifact、
|
||||
destination、environment 与 profile。测试环境部署和版本发布都写进这一份
|
||||
`delivery.yaml`,不要拆成第二份文档。配置只引用仓库内脚本或声明式工具 target,
|
||||
不保存 shell。
|
||||
2. 若旧项目首次启用,生成 `docs/ack/delivery.yaml`,在 `tasks.yaml.project` 增加
|
||||
`deliveryFile: docs/ack/delivery.yaml`,并增加顶层 `deliveryRuns: []`;不改写其它
|
||||
项目状态。首次生成保持 `enabled: false`,先展示 diff 和解析出的执行顺序。
|
||||
@@ -213,13 +220,34 @@ description: >-
|
||||
执行的 run 使用开始时审阅的 commit/config revision 快照,不能借当前分支修改
|
||||
扩大权限。
|
||||
|
||||
## 运行测试环境
|
||||
|
||||
1. 读取 `docs/ack/delivery.yaml` 与 `references/delivery.md`。
|
||||
2. `enabled` 不为 true,或 `intents.testEnvironment` 为 null:停止,请用户说明如何
|
||||
部署测试环境,转入交付配置维护。不猜测编译或启动命令。
|
||||
3. 不要求任务已 `verified`。按该 profile 执行 build → deploy → health-check。
|
||||
4. 把访问地址交给用户或随后的 Test 黑盒。证据写入 `deliveryRuns`,
|
||||
`intent: testEnvironment`,`taskIds` 可为空。
|
||||
5. 派发 Test 前若该 intent 已启用,必须先完成本步骤。
|
||||
|
||||
## 运行版本发布
|
||||
|
||||
1. 读取同一份 `docs/ack/delivery.yaml` 与 `references/delivery.md`。
|
||||
2. `enabled` 不为 true,或 `intents.release` 为 null:停止,请用户说明如何发版,
|
||||
写入同一文件后再执行。
|
||||
3. 按该 profile 顺序执行。stable 发布和生产部署的 `approval` 不能用口头「发版」
|
||||
代替。
|
||||
4. 证据写入 `deliveryRuns`,`intent: release`;绑定了任务时 `taskIds` 仍只能引用
|
||||
`verified` 任务。
|
||||
|
||||
## 边界
|
||||
|
||||
- 不修改或追加任何项目 Agent 指令文件,包括 `AGENTS.md`。
|
||||
- 不在项目中维护第二份 ACK 通用规范、模板或任务 schema。
|
||||
- 不猜测项目命令、服务地址、worker handle 或模型名称。
|
||||
- 不把 full-access、bypass、YOLO/force、关闭 sandbox 或项目内“授权”字段当成
|
||||
v0.10 自动 worker 的合法配置;当前一律 fail closed。
|
||||
- 不把 full-access、bypass、YOLO/force、Grok `--yolo` / bypassPermissions、
|
||||
关闭 sandbox 或项目内“授权”字段当成 v0.10 自动 worker 的合法配置;当前一律
|
||||
fail closed。Grok worker 由 launcher 固定带 `--always-approve`,仍必须带 sandbox。
|
||||
- 不把无密钥 `receiptHash` 或 Orca live metadata 当作旧终端的启动 attestation;
|
||||
没有可信空闲状态、配置匹配和历史消息清理证明时不复用既有 worker。
|
||||
- launcher 返回 `indeterminate` 或 `reconcile required` 时,不直接重试;先按
|
||||
|
||||
Reference in New Issue
Block a user