Files
Agent-System/.doc/audit/2026-09-13-document-revision-quality-gate-self-pollution.md
WeiCHEN 4baa1220ee docs(ops): close docrev UI audits after main+post-restart PASS
Record real Playwright ledgers, mark 20 audits and 9 remediations done, and leave management-implementation-plan as plan-only.
2026-09-23 04:00:49 +08:00

3.6 KiB
Raw Permalink Blame History

title, status, created, updated, severity
title status created updated severity
质量门禁自污染与 auto_repair 未启用导致 quality_failed done 2026-09-13 2026-09-22 high

质量门禁自污染与 auto_repair 未启用导致 quality_failed

W3 UI-rerun 关闭(2026-09-22):status=done。真实 Playwright 账本 PASS:ui-acceptance-results.json(main UI-00..16)+ ui-acceptance-results-post-restart.json(UI-15)。任务 tip 已合入本地 dev;详见 short-term 与 测试报告。

现象

同一整改范围真实 run(与 SSE/幂等现场同源):

  • workspace=data/dev/workspaces/bizdev/intake_1789308825666278807
  • run 于 14:17:51 结束为 quality_failed(仅 1 个 task_runs)
  • 质量门禁事件:score=40,命中 不做展开 / 篇幅有限 / 从略
  • output.md 第204行终稿自检表:无"不做展开""从略""篇幅有限"等敷衍套话 → 门禁 strings.Contains 自污染误报
  • 请求体未带 auto_repair;虽存在 EnsureQualityOrRepair,实际 maxRetries=0
  • chat_messages 同 client_turn 两对(1131/1132 正常;1133/1134 重连误写)——与 SSE 幂等缺陷同源,另案处理

根因

项 说明
A 修复预算依赖客户端 auto_repair(浏览器可省略,默认 false)
B 生成指令与自检表原样引用禁词;检测无否定/元语境豁免
C FE 将 quality_failed 映射为 completed,并在断线 catch 路径同步受控文档
D 缺真实失败形态单测

整改(同分支 fix/document-revision-sse-idempotency)

  • A:小队 repairBudget 只认 AutoRepair;bizdev 在解析出 docID+docRec 后强制开启;受控 HTTP task_run_handlers 仍设 true。小队 Success 仅表示执行完成,投影/阶段停链看 QualityReport
  • B:prompt 去原词;豁免仅限同一自检/规则行且同时具备 meta marker + 否定紧邻或引号引用(禁止 48 字窗口遇「无」即放过)
  • C:TerminalStatus 优先 quality;Materialize 仅 Passed;FE quality_failed 独立失败态且不同步激活
  • D:现场 L204 / repair budget / TerminalStatus / FE 映射单测
  • E(投影边界):finalizeSquadDeliverable 在任何 SetDocumentWorkDir / Materialize / MarkDocumentContentUpdated / 完成活动之前按 QualityReport.Passed=false 短路;保留隔离工作区与失败摘要;正式 work_dir/head/hash/候选不变。单测:TestFinalizeSquadDeliverable_QualityFailed_NoDocProjectionSideEffects(敌意 Success=true)
  • F(阶段链):ExecuteStage 在 err=nil 后经 classifyStageTaskHalt 检查质量/Success;失败立即停链,保留失败 artifact,不吸收 ExtractedData、不追加 PriorDoc、不写 completed workspace / 阶段跃迁。单测:TestExecuteStage_QualityFailed_StopsChainWithoutAbsorbingFactsOrPriorDoc

证据

关联