feat(org): add standard parallel v0.1 blueprint, dispatch rules, and acceptance checklist
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# 标准并行 v0.1 验收清单
|
||||
|
||||
日期:2026-03-09
|
||||
|
||||
## A. 并发能力
|
||||
- [ ] 同时提交 3 个任务,全部进入状态机
|
||||
- [ ] 无 task_id 冲突
|
||||
- [ ] 无跨任务日志串线
|
||||
|
||||
## B. 路由正确性
|
||||
- [ ] 新任务先到 Helix
|
||||
- [ ] Helix 完成后进入 Sentinel
|
||||
- [ ] Sentinel PASS 才可进入 Anvil
|
||||
- [ ] SOFT_BLOCK 能回流 Helix
|
||||
- [ ] HARD_BLOCK 直接触发 Val 汇报
|
||||
|
||||
## C. 审计与门禁
|
||||
- [ ] Sentinel 每次都有明确审计结论
|
||||
- [ ] 外发动作均触发上报
|
||||
- [ ] 不可逆动作均触发上报
|
||||
- [ ] 预算超阈均触发上报
|
||||
|
||||
## D. 失败处理
|
||||
- [ ] 任一失败均记录阶段与根因
|
||||
- [ ] 任一失败均有修复 A/B
|
||||
- [ ] 连续两次失败自动升级
|
||||
- [ ] 回滚动作可复验
|
||||
|
||||
## E. 可观测性
|
||||
- [ ] 每任务日志字段完整(task_id/role/status/tool_calls/artifacts...)
|
||||
- [ ] 每条任务有最终报告
|
||||
- [ ] 2 分钟内可定位失败根因
|
||||
|
||||
## F. 汇报质量
|
||||
- [ ] 汇报包含:结论 / 证据 / 风险 / 选项
|
||||
- [ ] 建议项明确且可执行
|
||||
|
||||
---
|
||||
|
||||
## 验收结论
|
||||
- 结果:PASS / PARTIAL / FAIL
|
||||
- 结论说明:
|
||||
- 待修复项:
|
||||
- 下阶段建议:
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"version": "v0.1",
|
||||
"updated_at": "2026-03-09T11:40:00+08:00",
|
||||
"global": {
|
||||
"max_concurrency": 3,
|
||||
"queue_limit": 20,
|
||||
"failure_streak_degrade_to": 1
|
||||
},
|
||||
"roles": {
|
||||
"helix": {
|
||||
"stage": "draft",
|
||||
"max_concurrency": 2,
|
||||
"allowed_tools": ["read", "web_search", "web_fetch", "memory_search", "sessions_spawn", "sessions_send"],
|
||||
"forbidden_actions": ["external_send", "irreversible_change"]
|
||||
},
|
||||
"sentinel": {
|
||||
"stage": "audit",
|
||||
"max_concurrency": 2,
|
||||
"allowed_tools": ["read", "memory_search", "session_status"],
|
||||
"audit_decisions": ["PASS", "SOFT_BLOCK", "HARD_BLOCK"]
|
||||
},
|
||||
"anvil": {
|
||||
"stage": "execute",
|
||||
"max_concurrency": 2,
|
||||
"allowed_tools": ["read", "write", "edit", "exec", "process"],
|
||||
"requires_audit": "PASS"
|
||||
}
|
||||
},
|
||||
"routing": [
|
||||
{ "when": "new_task", "to": "helix" },
|
||||
{ "when": "helix.done", "to": "sentinel" },
|
||||
{ "when": "sentinel.PASS", "to": "anvil" },
|
||||
{ "when": "sentinel.SOFT_BLOCK", "to": "helix" },
|
||||
{ "when": "sentinel.HARD_BLOCK", "to": "val.report" }
|
||||
],
|
||||
"escalation": {
|
||||
"must_escalate_if": [
|
||||
"external_send",
|
||||
"irreversible_action",
|
||||
"privacy_boundary_crossing",
|
||||
"budget_threshold_exceeded",
|
||||
"audit_uncertainty_high"
|
||||
],
|
||||
"double_sign_rule": {
|
||||
"required": ["sentinel", "bastion"],
|
||||
"proxy_if_bastion_missing": "val"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user