feat(ack): add one-off delivery routing
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
- 派发 prompt 模板:`references/prompt-templates.md`
|
||||
- Orca 编排命令(可选):`references/orca-adapter.md`
|
||||
- 验证后交付与配置维护(可选):`references/delivery.md`
|
||||
- 一次性源码/DEB/镜像发布路由(可选):`references/delivery-routing.md`
|
||||
|
||||
## Worker 路由
|
||||
|
||||
@@ -46,6 +47,7 @@ receipt 全部以 `docs/ack/tasks.yaml` 的 `project.orchestration` 与顶层
|
||||
|------|------------|------|
|
||||
| Developer | `codex-dev-standard` | standard |
|
||||
| Test | `codex-test-standard` | standard |
|
||||
| Operator | `codex-operator-standard` | standard(模型/effort 与 Test 相同) |
|
||||
| Developer 升级 | `codex-dev-strong` | strong |
|
||||
|
||||
项目如改用 Cursor,应修改结构化 profile、allowlist 和 defaults,再运行任务板
|
||||
@@ -102,6 +104,8 @@ Skill 的 `scripts/run_verification.py` 执行,不直接拼接 path/args。检
|
||||
## 硬规则(其余见 references/)
|
||||
|
||||
- 三角色独立:Coordinator 只编排、Test 只验证、Developer 只实现(验证者 ≠ 实现者)。
|
||||
- 一次性交付 Operator 不进入三角色闭环;它使用 Test 同档模型执行被路由的低层 Skill,
|
||||
只回传证据,不写 ACK 状态文件。
|
||||
- 模型分层:Coordinator 用强模型且不亲自跑测试,Test/Developer 用中低模型,必要时升级(见 references/model-routing.md)。
|
||||
- 自动 worker 只能由 ACK 的 `scripts/launch_worker.py` 按结构化 profile 启动;
|
||||
禁止直接拼 `orca terminal create --command`,禁止 `command`、`extraArgs`、`env`
|
||||
|
||||
@@ -249,7 +249,8 @@
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"developer": { "$ref": "#/definitions/modelTierAllowlist" },
|
||||
"test": { "$ref": "#/definitions/modelTierAllowlist" }
|
||||
"test": { "$ref": "#/definitions/modelTierAllowlist" },
|
||||
"operator": { "$ref": "#/definitions/modelTierAllowlist" }
|
||||
}
|
||||
},
|
||||
"modelAllowlist": {
|
||||
@@ -274,7 +275,7 @@
|
||||
"properties": {
|
||||
"role": {
|
||||
"type": "string",
|
||||
"enum": ["developer", "test"]
|
||||
"enum": ["developer", "test", "operator"]
|
||||
},
|
||||
"cli": {
|
||||
"type": "string",
|
||||
@@ -304,6 +305,7 @@
|
||||
"properties": {
|
||||
"developer": { "$ref": "#/definitions/profileId" },
|
||||
"test": { "$ref": "#/definitions/profileId" },
|
||||
"operator": { "$ref": "#/definitions/profileId" },
|
||||
"developerUpgraded": { "$ref": "#/definitions/profileId" }
|
||||
}
|
||||
},
|
||||
@@ -482,7 +484,10 @@
|
||||
},
|
||||
"environmentPolicy": {
|
||||
"type": "string",
|
||||
"const": "per-cli-allowlist-v1"
|
||||
"enum": [
|
||||
"per-cli-allowlist-v1",
|
||||
"per-cli-plus-operator-publish-v1"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -591,7 +596,7 @@
|
||||
},
|
||||
"role": {
|
||||
"type": "string",
|
||||
"enum": ["developer", "test"]
|
||||
"enum": ["developer", "test", "operator"]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -954,6 +959,22 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"deliveryOperation": {
|
||||
"type": "object",
|
||||
"required": ["skill", "request"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"skill": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"manage-release",
|
||||
"deb-publisher",
|
||||
"publish-docker-image"
|
||||
]
|
||||
},
|
||||
"request": { "type": "string", "minLength": 1, "pattern": "\\S" }
|
||||
}
|
||||
},
|
||||
"task": {
|
||||
"type": "object",
|
||||
"required": ["id", "title", "status"],
|
||||
@@ -999,6 +1020,7 @@
|
||||
"stepsToReproduce": { "type": "array", "items": { "type": "string" } },
|
||||
"expected": { "type": "string" },
|
||||
"actual": { "type": "string" },
|
||||
"operation": { "$ref": "#/definitions/deliveryOperation" },
|
||||
"evidence": { "type": "object" },
|
||||
"verification": { "type": "object" },
|
||||
"dispatch": {
|
||||
@@ -1010,6 +1032,7 @@
|
||||
"worker": { "type": ["string", "null"] },
|
||||
"developer": { "$ref": "#/definitions/roleDispatch" },
|
||||
"test": { "$ref": "#/definitions/roleDispatch" },
|
||||
"operator": { "$ref": "#/definitions/roleDispatch" },
|
||||
"rounds": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/round" }
|
||||
@@ -1047,6 +1070,21 @@
|
||||
},
|
||||
"required": ["resolution"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"properties": { "type": { "const": "delivery-operation" } },
|
||||
"required": ["type"]
|
||||
},
|
||||
"then": {
|
||||
"required": ["operation", "dispatch"],
|
||||
"properties": {
|
||||
"dispatch": {
|
||||
"type": "object",
|
||||
"required": ["operator"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -39,11 +39,15 @@ project:
|
||||
strong: ["gpt-5.6-sol"]
|
||||
test:
|
||||
standard: ["gpt-5.6-luna"]
|
||||
operator:
|
||||
standard: ["gpt-5.6-luna"]
|
||||
cursor-agent:
|
||||
developer:
|
||||
standard: ["auto"]
|
||||
test:
|
||||
standard: ["auto"]
|
||||
operator:
|
||||
standard: ["auto"]
|
||||
profiles:
|
||||
codex-dev-standard:
|
||||
role: "developer"
|
||||
@@ -59,6 +63,13 @@ project:
|
||||
model: "gpt-5.6-luna"
|
||||
reasoningEffort: "low"
|
||||
permissionMode: "workspace-write"
|
||||
codex-operator-standard:
|
||||
role: "operator"
|
||||
cli: "codex"
|
||||
tier: "standard"
|
||||
model: "gpt-5.6-luna"
|
||||
reasoningEffort: "low"
|
||||
permissionMode: "workspace-write"
|
||||
codex-dev-strong:
|
||||
role: "developer"
|
||||
cli: "codex"
|
||||
@@ -80,9 +91,17 @@ project:
|
||||
model: "auto"
|
||||
reasoningEffort: null
|
||||
permissionMode: "workspace-write"
|
||||
cursor-operator-standard:
|
||||
role: "operator"
|
||||
cli: "cursor-agent"
|
||||
tier: "standard"
|
||||
model: "auto"
|
||||
reasoningEffort: null
|
||||
permissionMode: "workspace-write"
|
||||
defaults:
|
||||
developer: "codex-dev-standard"
|
||||
test: "codex-test-standard"
|
||||
operator: "codex-operator-standard"
|
||||
developerUpgraded: "codex-dev-strong"
|
||||
|
||||
workerReceipts: []
|
||||
|
||||
Reference in New Issue
Block a user