Files
Genarrative/apps
lhk229 85823eb732
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Successful in 3m29s
Project CI / Native shell tests (pull_request) Failing after 10m27s
澄清续跑不再被当成唯一返工轮,做游戏链路的返工文案原样保留
master 只有一道平坦的 depth<=1 门,任何第二跳都拒,所以委派 task 末尾那句
「这是对已认领委派 X 的唯一返工轮」对澄清跳也是真的。本分支改成按谱系分类
(澄清跳不吃 repair_depth、上限 3)之后没同步这句话,它就变成了假天花板。

本机 13 个生产 project 的委派账本:4 次澄清续跑 4 次命中这句话,命中后全部
直接出稿,没有任何一个 run 走到第 2 轮。

三处一起收口:

1. render_static_delegate_task_contract 的入参从 Option<repairOf> 换成显式的
   StaticDelegateHopNote。Repair 分支逐字保留原文——design-foundation /
   art-director / art-asset-plan 的角色提示词把「任务正文明确标识这是带
   repairOfDelegationId 的唯一返工轮」当作 replaceExisting=true 的唯一授权
   信号,改一个字就会让返工轮拿不到许可。新增的 PlanClarification 分支写明
   已用轮次与上限;预算用尽时改为要求收稿,因为出卡侧本来就会拒掉第四张卡。

2. 同一句里写明本轮 header 该用第几轮。planning_coordinator 出卡时要求
   header 精确等于「第N轮·关键决定」,N 由 Runtime 从谱系派生,而此前没有
   任何地方告诉子 Agent 当前轮号——修完第 1 条后第 2 轮信封会栽在这里。
   轮次与上限都用 static_delegate_lineage_counters / *_round_limit_at 现算,
   和出卡校验器同源。

3. plan/common.md 对 Supervisor 说子 Agent 返回「1-3 个结构化问题」,而
   plan 链路的校验器只收恰好 1 题,Supervisor 照抄进了委派 task。修正放
   plan/supervisor-playbook.md:prompt.rs 有断言钉死 planCommon 必须是
   common.md 的逐字子集,而通用 common.md 的 1-3 对其它专业 Agent 是对的。

判据用 clarification_continuation_identity.is_some() 加 target 是
project-planning:后者由 validate_project_planning_child_binding_at 强制挂在
project-supervisor-plan 根下,所以做游戏 / 做素材 / game-chat 的澄清续跑与
全部质量返工仍走 Repair 分支,渲染结果与 master 逐字相同。

实测(9 个 --swarm-chat --plan run):6 次澄清续跑全部拿到新句、0 次误用返工
文案;2 次真正的质量返工仍拿到原文;有 1 个 run 走到第 2 轮并被出卡侧接受,
最终提交 GDD。0 轮直出那一档基本没动——决定要不要开口问的是首轮委派 task 由
Supervisor 自由撰写,那是另一件事,本次不动。

这个 renderer 此前零直接测试覆盖,补一条钉住两支文案、轮号和预算用尽。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 09:39:27 +00:00
..
2026-07-17 16:56:46 +08:00