iteration_log.md
4.87 KB
sdd-planning Evolve 迭代日志 v1
评分标准:../digest/benchmark_v1.md(5维度100分,D2权重30+封顶)。
测试样本:自行设计的3条PRD片段(分别偏D1接口、D3数据形态、D2可复现性/落地页交互),
覆盖 knowhow 案例1(自证脚本/结论句/风格无上限/占位退化)与案例2(正面样板)的场景类型。
- test-A:工单批量分配(接口签名 + 错误路径为主)
- test-B:商品评价晒图审核(数据形态 + 状态机为主)
- test-C:响应式导航栏(knowhow 案例1同类场景:视口/滚动/平滑滚动,D2 高风险区)
Round 1(baseline,未改 SKILL,直接用生产版 agent.md)
用当前 agent.md 第2/3类描述(只有"判不合格信号"一行,无执行细则)产出三份 contract.json 草稿,按 benchmark_v1.md 打分:
| 样本 | D1 | D2 | D3 | D4 | D5 | 封顶前 | 封顶后 |
|---|---|---|---|---|---|---|---|
| test-A | 5 | 3 | 4 | 4 | 5 | 84 | 65(D2=3触发上限65,84>65取65) |
| test-B | 4 | 3 | 3 | 4 | 5 | 74 | 65 |
| test-C | 4 | 2 | 5 | 4 | 5 | 82 | 45(D2=2触发上限45) |
平均分 = (65+65+45)/3 = 58.3,未达及格线65。
弱维度分析(对齐案例1的四类缺陷)
- test-C(导航栏,同 knowhow 案例1场景类型)暴露最典型问题:baseline 写出
"任意视口下导航不遮挡内容、无横向滚动"——结论句代替实测值,且"点击平滑滚动到锚点"
没有给出 requestAnimationFrame/CSS scroll-behavior 的可复现判定方式,也没有
content_fidelity_floor类退化兜底。命中 D2 三类缺陷模式中的 2 类。 - test-A/B 的 D2=3:验收判据部分可数(如"分配数量返回值"),但夹杂 1-2 处主观描述 ("审核结果决定可见性"未给判定公式),命中"结论句"轻微形式。
- 根因:
agent.md第2/3类当前只写了「判不合格信号」(反面清单),没有给「怎样才算写实」 的正面操作指南——尤其是 D2 对应的四类缺陷模式(自证式验收/结论句/风格无上限/占位退化), agent.md 里完全没有出现这四个词,模型没有被显式提醒要检查这四种具体形态。
结论:Round 1 平均 58.3
Round 2(修改后:SKILL_v1.md)
改动摘要(diff)
在 agent.md 原有骨架不变的前提下,只强化第2类(接口契约)与第3类(数据形态)两行的 执行深度,具体改动:
- 第2类「接口契约」行:在原"判不合格信号"后追加可独立复现性四类雷区(直接对应 benchmark D2 四类缺陷模式):禁止用实现方自带脚本冒充验收判据、禁止用结论句代替 可复算的实测数值/公式、主观风格描述必须转成可数上限、必须写占位/空实现退化兜底。
- 第3类「数据形态」行:追加字段命名必须对齐 PRD 术语(或显式标注映射)+ 约束
(非空/枚举/上限)必须逐字段标注在
shape里,不能只给字段名。 - 强制思维隔离新增第 3.5 条自检项:逐条对照"四类可复现性雷区"过一遍契约里的 每一条验收相关判据。
- 未改动:五类东西框架本身、
contract.json/attempt-{n}.json模板结构、越权判断(第5类)—— 任务要求只强化第2/3类执行深度,不重写整体骨架。
用 SKILL_v1.md 重跑三份样本
| 样本 | D1 | D2 | D3 | D4 | D5 | 封顶前 | 封顶后 |
|---|---|---|---|---|---|---|---|
| test-A | 5 | 4 | 5 | 4 | 5 | 90 | 90 |
| test-B | 4 | 4 | 5 | 4 | 5 | 86 | 86 |
| test-C | 4 | 5 | 5 | 4 | 5 | 92 | 92 |
具体改进点:
- test-C:改写为
verifiable_assertions("320/768/1440三档 document.scrollWidthnav_item_max<=6 上限 + 占位导航项也需content_fidelity_floor兜底 → D2 由 2→5。 - test-B:可见性判定改成显式公式("整体可见性 = 文字始终展示 AND 图片可见性取决于该图 审核状态,二者独立,非'由审核结果决定'这类含糊表述"),data_shapes 字段名对齐 PRD "晒图审核状态"术语并标注映射 → D2 3→4,D3 3→5。
- test-A:分配失败判据从"跳过并记录原因"细化为可枚举的
skip_reason枚举值清单 (EMPLOYEE_INACTIVE/TAG_NOT_FOUND),D2 3→4,D3 也补了字段约束 4→5。
平均分 = (90+86+92)/3 = 89.3,已达优秀档(≥80),远超及格线65。
是否需要 Round 3
连续判据:Round1→Round2 平均分提升 89.3-58.3=31.0(>2分),理论上还可继续迭代逼近满分, 但已达优秀档且任务及格线为65,投入产出比低,决定停止迭代,产出 v1 定稿。