Clarify O2 A01 plan test fixtures and needs_user downgrade
Why: The second independent review passed and left three clarifications
for the implementer.
Evidence: Review round 2 PASS at 6db2d614 (fresh session).
Impact: Docs and task card only.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/662
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -47,8 +47,8 @@
|
||||
|
||||
## 方案与计划
|
||||
|
||||
- 方案引用:`docs/superpowers/specs/2026-10-20-fast-slow-o2-a01-evidence-design.md`(sha256 前缀 fcbaa6c9b259a235;Backend 依据 74e5396)
|
||||
- 实施计划引用:`docs/superpowers/plans/2026-10-20-fast-slow-o2-a01-evidence-plan.md`(sha256 前缀 c5fec599f581d96c;增量 I1 Backend、I2 Dev 改钉、P2 付费复验)
|
||||
- 方案引用:`docs/superpowers/specs/2026-10-20-fast-slow-o2-a01-evidence-design.md`(sha256 前缀 d99475c4ae6741ee;Backend 依据 74e5396)
|
||||
- 实施计划引用:`docs/superpowers/plans/2026-10-20-fast-slow-o2-a01-evidence-plan.md`(sha256 前缀 5925f66ae205d6d2;增量 I1 Backend、I2 Dev 改钉、P2 付费复验)
|
||||
- 测试计划引用:同计划 §2 T1–T9(全部离线;eval/live 用 -tags live 单独运行)
|
||||
- 资源提案:`~/.local/share/agent-system-evidence/fast-slow-o2-a01e-20261020/resource-proposal.md`(源码外,sha256 前缀 bd00293f0b8240e7)
|
||||
|
||||
@@ -59,11 +59,11 @@
|
||||
| 需求拆解 | R1–R3 | 完成 | host | 2026-10-20 | 用户选定 design_both |
|
||||
| 需求评估 | R1–R3 | 完成 | host | 2026-10-20 | 零付费调查与离线重放(SELF) |
|
||||
| 需求表确认 | R1–R3 | 完成 | 用户 | 2026-10-20 | AskQuestion a01_next=design_both |
|
||||
| 方案设计 | fcbaa6c9b259a235 | 成稿,待人审 | host | 2026-10-20 | 方案文档 |
|
||||
| 实施计划 | c5fec599f581d96c | 成稿,待人审 | host | 2026-10-20 | 计划文档 |
|
||||
| 方案设计 | d99475c4ae6741ee | 成稿,待人审 | host | 2026-10-20 | 方案文档 |
|
||||
| 实施计划 | 5925f66ae205d6d2 | 成稿,待人审 | host | 2026-10-20 | 计划文档 |
|
||||
| 实施与自检 | — | 不适用(未授权实施) | — | — | 授权与交付终点 |
|
||||
| 正式测试与验收 | — | 不适用(仅文档) | — | — | — |
|
||||
| 代码 Review | 待定 | 待执行 | — | — | — |
|
||||
| 代码 Review | 6db2d614 | PASS(第 2 轮) | code-reviewer 子智能体(fresh session) | 2026-10-20 | 见合入与清理节 Review 记录 |
|
||||
| 合入 | 待定 | 待执行 | — | — | — |
|
||||
| 合入核验与收口 | 待定 | 待执行 | — | — | — |
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
|
||||
- Review 记录:
|
||||
- 第 1 轮:Cursor code-reviewer 子智能体(fresh_session=true,session `8826f456`,只读),base 556201541c / head 9c6c2f0,结论 BLOCK。B1:方案让分析类使用 `direct_relation`,但宿主仅对单一来源完整原句的 `material_record` 保留,其余转待确认;B2:`eval/live` 带 `live` 构建标签,计划验证命令会失败且 CI 不覆盖。host 复核两项属实(`material_evidence.go:215-227`;`go list ./eval/live/` exit 1),已修订方案 §2/§3.1/§3.2 与计划 §2(允许路径、T1/T4/T5、新增 T8/T9、验证命令);非阻塞建议 1–5 一并吸收。
|
||||
- 第 2 轮:Cursor code-reviewer 子智能体(fresh_session=true,新 session `c9f1fce3`,只读,未转交第 1 轮会话),head 6db2d614,结论 PASS;B1/B2 确认闭合,审阅者重放 `go test -tags live -run '^TestFollowupA01KeepsItsOwnOneShotResult$' ./eval/live/` 与 `go vet -tags live ./eval/live/` 通过(REPLAY,Backend 74e5396)。3 条非阻塞提示(T5 夹具同缺 `}`、无 evidence 的 `needs_user` 原文被替换、T3 比较基准)已作为澄清写入文档,未改变方案结论。
|
||||
- 冲突记录:NOT_RUN(最新目标同步、冲突处置、组合兼容核验及复审/补测)
|
||||
- CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果)
|
||||
- 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
|
||||
|
||||
@@ -39,9 +39,9 @@ I1 是一个可独立实施的单元:文案与评测两处改动都在 Backend
|
||||
|---|---|---|
|
||||
| T1 | 说明示例可校验 | 从 `Description` 抽出的示例 JSON(`material_record` 无 evidence、`material_record`+`direct_relation`、`difference`、`unresolved_relation`)套入最小合法检查点后 `core.ValidateWorkCheckpoint` 通过 |
|
||||
| T2 | 反例仍被拒 | `direct_relation` 带 result、`unresolved_relation` 带 result 均被核心校验拒绝(锁定说明与校验一致) |
|
||||
| T3 | Schema 结构不变 | 现有 `work_checkpoint_test.go` schema 断言保持通过;新增断言:去掉所有 `description` 键后的 schema 与改动前一致 |
|
||||
| T3 | Schema 结构不变 | 现有 `work_checkpoint_test.go` schema 断言保持通过;新增断言:新旧 schema **都**去掉全部 `description` 键后一致(旧 schema 的 `quote` 已带 description,不能直接与改动前原文比) |
|
||||
| T4 | 一次被拒可继续 | 改写 `TestEvaluationStopsPaidRequestsAfterRejectedCheckpoint`:先修正该测试 SSE 夹具缺失的结尾 `}`(否则真实调用会触发终态异常);输入含 1 次被拒 → 允许 1 次 provider 调用且无错误;输入含 2 次被拒 → 不调用、原因 `repeated rejected work checkpoint`;其后再发一次无被拒输入的请求仍被拒(停止状态保持) |
|
||||
| T5 | 跨 run 累计 | 改写 `TestEvaluationStopsAcrossRunsAfterPersistedCheckpointRejection`:库内 1 次被拒 → 允许;2 次(不同 callId)→ 停;同一 callId 重复事件只计 1;库内 1 次 + 输入中同一次 → 仍只计 1 |
|
||||
| T5 | 跨 run 累计 | 改写 `TestEvaluationStopsAcrossRunsAfterPersistedCheckpointRejection`(同样先修正其 SSE 夹具缺失的结尾 `}`;因 `terminalFault` 在同一评测流内保持,各子用例各用新的评测流与数据目录):库内 1 次被拒 → 允许;2 次(不同 callId)→ 停;同一 callId 重复事件只计 1;库内 1 次 + 输入中同一次 → 仍只计 1 |
|
||||
| T6 | fail closed 不变 | `TestEvaluationFailsClosedWhenCheckpointEventsUnavailable` 保持通过 |
|
||||
| T7 | 新标签 | `evalA01Budget` 与 `checkpointEvalOutputName` 表驱动用例覆盖新标签;未知标签仍拒绝 |
|
||||
| T8 | 宿主降级与说明一致 | `material_evidence_test.go`:`analysis`+`direct_relation` 经 `normalizeMaterialEvidence` 转 `needs_user`;`material_record` 无 evidence 保持 `material_record` |
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
- `difference`:前提 `total`、`phase` 各 1 个且都写 value;`result` 必须等于 total − phase。
|
||||
- `unresolved_relation`:前提 `total`、`phase`、`dependent` 各 1 个且都写 value;**不写 result**。
|
||||
- 各给一个最小 JSON 示例(字段名与 schema 一致)。
|
||||
- 删除“宿主会把不能证明的判断改为待确认”中与校验器不一致的承诺,改为如实描述两类结果:(a) evidence 结构不符(如 `direct_relation` 带 result)会**整次被拒**并在工具结果给出原因,须按原因修正后重发;(b) 结构合规但宿主核不上的——前提数字与短引不符、`direct_relation` 不满足上述条件、原句语境不唯一、无 evidence 的非审慎分析——该条转为待确认并在工具结果说明。
|
||||
- 删除“宿主会把不能证明的判断改为待确认”中与校验器不一致的承诺,改为如实描述两类结果:(a) evidence 结构不符(如 `direct_relation` 带 result)会**整次被拒**并在工具结果给出原因,须按原因修正后重发;(b) 结构合规但宿主核不上的——前提数字与短引不符、`direct_relation` 不满足上述条件、原句语境不唯一、无 evidence 的非审慎分析、无 evidence 的 `needs_user`(原文会被替换为通用待确认文案)——该条转为待确认并在工具结果说明。
|
||||
2. **Schema 字段说明**:仅在现有字段上补 `description`(`evidence`、`mode`、`premises`、`role`、`value`、`result`),写明上面的按 mode 约束;**不改类型、枚举、必填和嵌套结构**,不引入 `oneOf`(部分 OpenAI 兼容服务对复合 schema 支持不确定)。
|
||||
3. **材料任务提示**(`material.go`):把“分析判断必须写 assumptions,并说明单位、算式或前提”限定为分析类;补一句“原样记载用 material_record,只附 sources,不附 evidence”;保留现有 12/8/3 反例。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user