calibration_cases.md 8.42 KB

校准样本 v1 — workgraph-planning-methodology-trial

生成者:innovator-digest(Phase 2 Digest) 目的:用 benchmark_v1.md 给两个假想的"候选裁剪规则集"打分,验证这套 benchmark 本身是否真的有区分度(不是自说自话)。两个候选均为构造样本,非真实案例——因为 评分对象是"规则本身",而仓库里目前没有任何一份真实存在的裁剪规则集可供直接打分 (knowhow 块C:0 正样本)。 日期:2026-08-23


候选 (a):同义反复型规则集(预期低分/触发否决)

候选原文(构造样本,模拟一份"看起来在做判断,实际没有可操作判据"的规则集):

「裁剪规则:如果这个任务比较简单,就把 BRD 节点裁掉,直接从 PRD 起步;如果任务比较 复杂,就把五个节点都保留。」

逐维度打分

D1 信号可读性 = 1 唯一的触发条件是"任务比较简单/复杂",没有给出任何从 task-goal 原文可机械核对的判定 方法——"简单"和"复杂"本身就是待判断的结论,不是可读信号,是 benchmark_v1.md D1 1分档"通篇只有同义反复"的典型样板。触发否决规则。

D2 确定性/可复现性 = 1 "比较简单/复杂"这个判断本身不可复现——两次面对同一个 task-goal,不同评估者(甚至同一个 LLM 的不同 rollout)完全可能对"算不算简单"给出不同结论,规则集没有提供任何锚定判断的 机械依据。命中 1 分档"根据任务感觉决定裁不裁"。

D3 约束合规性 = 1 完全没有提及裁掉 BRD 之后 benchmark→validator 边的 needs:["brd","prd","sdd"] 要 怎么调整——如果真的照这条规则执行,会直接在真实场景里制造一次 rule=data-contract 拒绝(complexity_signals_v1.md 二·2 描述的确切失败模式)。

D4 覆盖完整性 = 2 只讨论了 BRD 一个节点的裁剪,prd/sdd/benchmark/validator 四个节点完全没有单独规则 ("复杂就都保留"是笼统带过,不构成"每个节点有明确规则")。命中 2 分档"只覆盖 1 个节点 (通常是BRD)"。

D5 矫枉过正平衡 = 3 名义上同时存在"裁"和"留"两个分支,没有变成"只会裁"的单向规则;但保留的理由同样是 "任务复杂"这个不可操作的判断,不是信号驱动,也没有声明任何地基级约束"不受任务复杂度 影响"。命中 3 分档"保留的理由含糊"。

计算

加权和 = 1/5×15 + 1/5×30 + 1/5×20 + 2/5×20 + 3/5×15
       = 3 + 6 + 4 + 8 + 9
       = 30

D1=1 触发否决 → 总分封顶 15
D3=1(≤2) → 总分上限 40
D2=1(≤2) → 总分上限 45

最终得分 = min(30, 15, 40, 45) = 15

15 分,"不合格"档,接近垫底——符合任务书预期:"应该在'信号可读性'维度被打到很低分/ 触发否决"。


候选 (b):信号驱动型规则集,直接套用在 C4 上(预期高分)

候选原文(构造样本,复用 complexity_signals_v1.md 定义的 S1-S5 信号):

「1. 若 S3=是(涉及数据持久化/多模块),无论其他信号如何组合,一律保留全部 5 个 节点——地基级约束不因任务复杂度降低而放松。

  1. 若 S5=是(有可直接复用的成熟先例),且先例任务在 S1-S4 上与本次任务取值一致, 直接复用先例的节点集合,跳过后续规则。
  2. 否则,若同时满足 S4=否(无多决策干系人)且 S2=是(task-goal 已含可直接使用 的验收清单/数值)且 S1=1(单一交付物),裁剪 brd 节点,把"why"内容并入 prd 文档的前言段;同步把 benchmark→validator 边的 needs 从 ["brd","prd","sdd"] 改为 [{"kind":"brd","required":false},"prd","sdd"](brd 变为可选输入,不阻断 该边)。若后续 remediation 发现 prd 前言段对干系人沟通不充分,允许下一轮重新引入 独立 brd 节点。
  3. prd 节点在任何信号组合下都不裁剪——它是 sdd/benchmark 两条边 needs 的 直接依赖,裁掉会导致下游全部找不到产出方。
  4. sdd/benchmark/validator 三个节点默认保留;仅当 S1=1 且 S3=否 且 该交付物不涉及任何跨模块技术整合决策时,sdd 的产出可以并入 prd 的实现要点段, 但节点本身在图上仍然存在(避免破坏 needs 链),只是内容变薄,不属于"裁剪",不在 本规则集讨论范围内。」

应用到 C4(p-v1mpcl / T-mt1qx0c4-95bf):任务原文"读 lemonboss 仓库文档+代码, 产出 apple.com 风格的静态官网……含核心价值点、功能模块、独特性说明,至少 3-4 张界面 截图"。按 complexity_signals_v1.md 逐条判定:S1=1(单一网站)、S2=是("至少 3-4张截图"是具体数值清单)、S3=否(无持久化/多模块字样)、S4=否(无第二方说服 对象)、S5=否(未提及历史参照)。代入候选规则第 3 条:S4=否 且 S2=是 且 S1=1 全部 满足 → 确定结论:裁剪 brd 节点,why 并入 prd 前言,needs 里的 brd 改 required:false。

逐维度打分

D1 信号可读性 = 5 全部触发条件都是 complexity_signals_v1.md 定义好的、有明确文本判定方法的信号 (S1-S5),没有任何"简单/复杂"类形容词单独作为判据。

D2 确定性/可复现性 = 4 对"S4=否+S2=是+S1=1"这一具体组合(覆盖 C4)给出了唯一确定的输出(裁 brd + 具体 needs 改法),S3=是分支、S5=是分支也都是确定输出,不存在"综合判断"这类留白。扣 1 分: 规则集没有穷举所有 25 种信号组合(例如 S3=否 且 S5=否 且 S4=是 这种组合缺显式规则, 只能靠"默认保留"这条兜底句推断),不是 100% 组合都有显式映射,未达 5 分档"不存在 '具体看情况'的留白"的严格要求,但已覆盖的组合本身确定,故命中 4 分档。

D3 约束合规性 = 5 裁剪 brd 时明确给出 needs 调整方案(required:false),且第 4 条单独声明 prd 不可 裁的理由直接对应 needs 链依赖关系,第 1 条对 S3=是 场景显式保留全部节点、不触碰 数据契约。三条硬约束(needs级联/prd不可裁/五项校验隐含不受影响)都有显式处理。

D4 覆盖完整性 = 4 五个节点里,brd(条件裁剪)、prd(永不裁剪+理由)、sdd(有专门第5条说明何时 "变薄但不裁")都有明确规则;benchmark/validator 只在"默认保留"和 S3=是 分支里 被提及,没有像 brd/prd/sdd 那样单独展开专属规则,命中 4 分档"1 个节点未提及但 可从上下文合理外推"(此处严格说是 2 个节点外推,取相邻较保守档位 4 而非满分)。

D5 矫枉过正平衡 = 5 同时存在明确的裁剪分支(第3条)和保留分支(第1/4/5条),且显式声明"地基级约束不因 任务复杂度降低而放松"(第1条原句)、给出 prd 不可裁的具体理由(第4条),并为裁剪 结论保留了"remediation 可回退"的安全阀(第3条末句),不是无差别裁剪。

计算

加权和 = 5/5×15 + 4/5×30 + 5/5×20 + 4/5×20 + 5/5×15
       = 15 + 24 + 20 + 16 + 15
       = 90

D1=5,未触发否决
D2=4,未触发封顶(D2≥4不封顶)
D3=5,未触发封顶(D3>2)

最终得分 = 90

90 分,"优秀"档,超过 industry_avg_score.md 目标线(80)。


结论:benchmark 区分度校验通过

两个候选的评分差距 90 - 15 = 75 分,且落在完全不同的判定等级("优秀" vs "不合格", 中间跨越了"合格"与"待改进"两档)——证明这套 benchmark_v1.md 不是对所有候选给出趋同 分数的摆设:

  • 候选 (a) 证明了"看起来在做条件判断、实际是同义反复"的规则集会被 D1 否决规则和 D2/D3 的低分共同摁到 15 分,不会被 D5 的"名义上有裁有留"稀释成体面分数;
  • 候选 (b) 证明了一份真正信号驱动、能对 Hunt 唯一真实可比样本(C4)给出确定结论、 且显式处理 needs 级联和地基级约束的规则集,能够拿到"优秀"档,即便它没有穷举全部 信号组合(D2 因此只拿 4 分而非满分,D4 因未逐一展开 benchmark/validator 也只拿 4 分)——说明这套 benchmark 对"接近满分但仍有具体可指出的缺口"的候选也有区分度, 不是只能区分"很好"和"很差"两个极端。