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:
@@ -32,6 +32,7 @@
|
||||
"type": ["string", "null"],
|
||||
"pattern": "^[a-z][a-z0-9-]{0,63}$"
|
||||
},
|
||||
"intents": { "$ref": "#/definitions/intents" },
|
||||
"entrypoints": {
|
||||
"type": "object",
|
||||
"propertyNames": { "$ref": "#/definitions/id" },
|
||||
@@ -63,6 +64,21 @@
|
||||
"type": "string",
|
||||
"pattern": "^[a-z][a-z0-9-]{0,63}$"
|
||||
},
|
||||
"intents": {
|
||||
"type": "object",
|
||||
"required": ["testEnvironment", "release"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"testEnvironment": {
|
||||
"type": ["string", "null"],
|
||||
"pattern": "^[a-z][a-z0-9-]{0,63}$"
|
||||
},
|
||||
"release": {
|
||||
"type": ["string", "null"],
|
||||
"pattern": "^[a-z][a-z0-9-]{0,63}$"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relativePath": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
|
||||
@@ -7,6 +7,11 @@ project:
|
||||
enabled: false
|
||||
defaultProfile: null
|
||||
|
||||
# 测试环境部署和版本发布都写在本文件。null 表示用户尚未说明该操作。
|
||||
intents:
|
||||
testEnvironment: null
|
||||
release: null
|
||||
|
||||
# 所有可执行入口都使用结构化 argv 语义;requiredSecrets 只保存名称,不保存值。
|
||||
# 不在此保存 shell、env 或凭据正文。
|
||||
entrypoints: {}
|
||||
|
||||
@@ -48,7 +48,7 @@ receipt 全部以 `docs/ack/tasks.yaml` 的 `project.orchestration` 与顶层
|
||||
| Test | `codex-test-standard` | standard |
|
||||
| Developer 升级 | `codex-dev-strong` | strong |
|
||||
|
||||
项目如改用 Cursor,应修改结构化 profile、allowlist 和 defaults,再运行任务板
|
||||
项目如改用 Cursor 或 Grok,应修改结构化 profile、allowlist 和 defaults,再运行任务板
|
||||
校验;不能在这里粘贴 `orca --command`、Agent CLI 参数或自由 shell。
|
||||
每次自动派发必须先审阅 launcher plan,再把其中的 `launchFingerprint` 作为
|
||||
`--expected-launch-fingerprint` 启动 fresh worker。`receiptHash` 只作审计 checksum,
|
||||
@@ -79,7 +79,7 @@ Developer 白盒验证:
|
||||
<local_run_command>
|
||||
```
|
||||
|
||||
Test 黑盒复测:
|
||||
Test 黑盒复测(服务启动以 `delivery.yaml` 的 `intents.testEnvironment` 为准):
|
||||
|
||||
```bash
|
||||
<preflight_command>
|
||||
@@ -97,7 +97,8 @@ Skill 的 `scripts/run_verification.py` 执行,不直接拼接 path/args。检
|
||||
|
||||
项目状态校验由 `/ack` 使用 Skill 自带的 `scripts/validate_tasks.py`、
|
||||
`scripts/validate_knowledge.py` 和 `scripts/validate_delivery.py` 执行。
|
||||
构建/发布/部署的机器入口以 `delivery.yaml` 为准;本文件不维护第二套交付命令。
|
||||
构建、测试环境部署和版本发布的机器入口以 `delivery.yaml` 的 `intents` 为准;
|
||||
本文件不维护第二套交付命令。
|
||||
|
||||
## 硬规则(其余见 references/)
|
||||
|
||||
@@ -118,8 +119,9 @@ Skill 的 `scripts/run_verification.py` 执行,不直接拼接 path/args。检
|
||||
- Developer 回报 `knowledgeApplied` 与 `knowledgeCandidates`,Test 回报
|
||||
`knowledgeChecks`。关键约束应下沉为测试、lint、CI 或正式规范。
|
||||
- ACK 不自动修改 `AGENTS.md`、`CLAUDE.md` 或其它 Agent 指令文件。
|
||||
- `delivery.yaml` 默认关闭,只描述能力,不自动授权提交、推送、发布或部署;交付仅在
|
||||
任务 `verified` 且本次 profile/目标/停止点得到确认后运行。
|
||||
- `delivery.yaml` 默认关闭,只描述能力,不自动授权提交、推送、发布或部署。测试环境
|
||||
与发版都写在这份契约的 `intents` 里;用户明确要求重新部署测试环境或发布版本时
|
||||
才执行对应 intent。常规交付仍在任务 `verified` 且本次 profile 得到确认后运行。
|
||||
- 默认交付 profile 最多到 `validation_ready` 或 `review_ready`;stable 发布或 production 部署必须有
|
||||
approval 步骤并再次获得明确批准。配置变更只影响下一次 run。
|
||||
- 每个任务最多派发 3 轮,仍不过标记 `leftover` 并继续下一个。
|
||||
|
||||
@@ -338,7 +338,8 @@
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"codex": { "$ref": "#/definitions/modelRoleAllowlist" },
|
||||
"cursor-agent": { "$ref": "#/definitions/modelRoleAllowlist" }
|
||||
"cursor-agent": { "$ref": "#/definitions/modelRoleAllowlist" },
|
||||
"grok": { "$ref": "#/definitions/modelRoleAllowlist" }
|
||||
}
|
||||
},
|
||||
"workerProfile": {
|
||||
@@ -359,7 +360,7 @@
|
||||
},
|
||||
"cli": {
|
||||
"type": "string",
|
||||
"enum": ["codex", "cursor-agent"]
|
||||
"enum": ["codex", "cursor-agent", "grok"]
|
||||
},
|
||||
"tier": {
|
||||
"type": "string",
|
||||
@@ -517,7 +518,7 @@
|
||||
"properties": {
|
||||
"cli": {
|
||||
"type": "string",
|
||||
"enum": ["codex", "cursor-agent"]
|
||||
"enum": ["codex", "cursor-agent", "grok"]
|
||||
},
|
||||
"tier": {
|
||||
"type": "string",
|
||||
@@ -989,9 +990,14 @@
|
||||
"type": "string",
|
||||
"pattern": "^[a-z][a-z0-9-]{0,63}$"
|
||||
},
|
||||
"intent": {
|
||||
"type": "string",
|
||||
"enum": ["testEnvironment", "release"],
|
||||
"description": "用户触发的测试环境或发版操作;有 intent 时 taskIds 可为 []"
|
||||
},
|
||||
"taskIds": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"minItems": 0,
|
||||
"uniqueItems": true,
|
||||
"items": { "type": "string", "minLength": 1 }
|
||||
},
|
||||
|
||||
@@ -44,6 +44,12 @@ project:
|
||||
standard: ["auto"]
|
||||
test:
|
||||
standard: ["auto"]
|
||||
grok:
|
||||
developer:
|
||||
standard: ["grok-4.5"]
|
||||
strong: ["grok-4.6"]
|
||||
test:
|
||||
standard: ["grok-4.5"]
|
||||
profiles:
|
||||
codex-dev-standard:
|
||||
role: "developer"
|
||||
@@ -80,6 +86,27 @@ project:
|
||||
model: "auto"
|
||||
reasoningEffort: null
|
||||
permissionMode: "workspace-write"
|
||||
grok-dev-standard:
|
||||
role: "developer"
|
||||
cli: "grok"
|
||||
tier: "standard"
|
||||
model: "grok-4.5"
|
||||
reasoningEffort: "medium"
|
||||
permissionMode: "workspace-write"
|
||||
grok-test-standard:
|
||||
role: "test"
|
||||
cli: "grok"
|
||||
tier: "standard"
|
||||
model: "grok-4.5"
|
||||
reasoningEffort: "low"
|
||||
permissionMode: "workspace-write"
|
||||
grok-dev-strong:
|
||||
role: "developer"
|
||||
cli: "grok"
|
||||
tier: "strong"
|
||||
model: "grok-4.6"
|
||||
reasoningEffort: "high"
|
||||
permissionMode: "workspace-write"
|
||||
defaults:
|
||||
developer: "codex-dev-standard"
|
||||
test: "codex-test-standard"
|
||||
|
||||
Reference in New Issue
Block a user