---
date: 2026-05-16
type: methodology
tags: [skill-design, prd-review, multi-agent, dogfood, anti-pattern-correction]
related_skill: prd-multi-role-review
---

# prd-multi-role-review 重跑实验：纯重跑信号增量不为零，反驳 SKILL 早期反模式

## 背景

写完 `prd-multi-role-review` skill 后，借 FFAI Agent 模块 4 份 PRD（1276 行）做 dogfood。
第一轮 8 角色（产品/架构/安全/UX/工程/QA/SRE/Red Team）并行 spawn 找出 ~115 个 finding，
应用 Top P0（PRD v0.3 → v0.4，21 处 Edit）后，**用户提议"再跑两遍纯重跑"**。

我当时按 SKILL 反模式条目"同 lens 跑两次信号增量 ≈ 0"建议**不要纯重跑**，
推荐"差异化第二轮（聚焦 v0.4 改动）"或"加新角色（财务/法务/CSM）"。
用户说"试一下纯重跑"——结果完全反转我预测。

## 实验设计

- 输入：4 份 PRD（v0.4，已应用 Round 1 finding）
- Round 1 vs Round 2：**完全相同的 8 个 prompt**，subagent prompt 字面不变
- 唯一变量：subagent 这次 Read 的是 v0.4（不是 v0.3）

## 实验数据

| 指标 | Round 1 (v0.3) | Round 2 (v0.4) | 差异 |
|---|---|---|---|
| 总 finding | ~115 (40🔴 + 40🟡 + 35🟢) | **~150** (60🔴 + 50🟡 + 40🟢) | **+30%** |
| 跨角色 Top Blockers (≥ 2 角色 🔴) | 13 | **18** | +38% |
| Round 1 重复 finding | — | **~12 项 (8%)** | 重复率极低 |
| 真新 finding | — | **~80 项** | 信号密度高于 Round 1 |
| 跑完耗时（并行）| ~2.5 分钟 | ~2.5 分钟 | 同 |
| token 总成本 | ~570K | ~570K | 同 |

## Round 3 续作数据（同日完成）

| 指标 | Round 1 | Round 2 | **Round 3** | 趋势 |
|---|---|---|---|---|
| 总 finding | ~115 | ~150 | **~110** | 峰值在 R2 |
| 跟前一轮重复率 | — | ~8% | **~50%** | ↑（好信号）|
| **真新 finding** | 115 | ~80 | **~50** | -30% 递减但显著 |
| Top P0（≥ 2 角色 🔴） | 13 | 18 | **11** | 收敛中 |

**Round 3 真新 P0 例子**（Round 1+2 都没找到）：
1. PRD vs 02-architecture.md 文档 drift（v0.5 改了 PRD 但事实源未同步）
2. 「100% 拦截 100 样本」数学上不可达 = red team theater
3. LLM-as-judge 跟被测 agent 同源 LLM = systematic bias
4. INV-4 「FFAI 不存原始文件」反讽：OneDrive = Microsoft 持有 + 出境
5. TrajectoryEvent 不可篡改 vs PIPL "被遗忘权" 合规冲突
6. 检测器 100% 拦截 + 误报 < 1% 是不可能三角

**修正：收敛点不是 2 轮，是 3 轮**（**R3 后假设，被 R4 反驳**）

| 轮次 | 真新 finding 增量 | 建议 |
|---|---|---|
| Round 1 | 115（baseline）| **必跑** |
| Round 2 | ~80 | **必跑**（核心：抓 v_n+1 引入的新缺口）|
| Round 3 | ~50 | **建议跑**（边际收益虽降但仍找到 11 个真 P0）|
| Round 4+ | 预测 < 25 | 默认不跑；除非 PRD 有大改 |

## Round 4 验证实验：反驳 R3 收敛假设

R3 后跑了 **Round 4 对照实验**：PRD 不变（R3 finding 没应用），仅靠 LLM 非确定性。

| 指标 | R3 (PRD 改了) | **R4 (PRD 没改)** |
|---|---|---|
| 总 finding | ~110 | ~116 |
| 重复率 | 50% | ~50% |
| **真新 finding** | ~50 | **~50** |

**结果**：PRD 不变 + 纯 LLM 非确定性 → 仍贡献 ~50 个真新 finding，跟 R3 几乎一样。**预测的"<25"完全错了**。

**为什么收敛比想象慢**：4 份 PRD 共 1300+ 行 + 8 角色 charter 各自有 5-7 个关注维度 + LLM 非确定性 → 探索空间数十万可能 finding，单轮采样覆盖 < 1%；多轮采样覆盖率累加缓慢。

## 修正后的真实收敛规则（4 轮数据后，比前两次假设更稳）

不是看"finding 数量衰减"——**看 finding 性质变化**：

| Phase | finding 性质 | 应用方式 | 是否继续跑 |
|---|---|---|---|
| **R1-R2** | "PRD 缺漏"（onboarding 缺 / SLA 拆分缺 / PR 拆分粗 / 错误态缺）| 直接 Edit 应用 | 必跑下一轮 |
| **R3** | "深层 PRD 矛盾"（PR12.5 顶层 vs phase1 drift / PR4c over-scope / 100% 拦截数学不可达）| Edit 应用 + 修正 v_prev 引入的不一致 | 建议跑下一轮 |
| **R4+** | **混合类**：① 仍有 PRD 缺漏（如 N200 文档 drift / N202 PII 5% 量化）② **战略 trade-off**（north star 设计 / 跨 org 对比禁掉）③ **meta 元层质疑**（dogfood 实验本身有效性、AI 2 天闭环 vs 真实 stakeholder 异步发酵） | ① 应用 ② 用户决策 ③ 反思流程 | **元层信号 = 该停** |

**真正的"停跑"信号**：
1. ✅ R4 出现 meta-finding（质疑实验本身）→ 已经挖到方法论层 = 该停
2. ✅ Top P0 比例下降 + 战略 trade-off 占比上升 → 不再是 PRD 问题
3. ✅ 持续 N 轮真新数稳定（不再衰减）→ 进入 LLM 非确定性 baseline

**轮次推荐（基于 4 轮 dogfood 实测）**：
- 标准 PRD review：**3 轮起，最多 4-5 轮**
- 简单 PRD（< 500 行）：2 轮足够
- 关键 PRD（核心模块 / 核心 vision）：4 轮，第 4 轮特别关注 meta-finding
- **不要承诺"<N 真新就停"** —— 这是基于单数据点的过度推断，实际 LLM 非确定性 baseline 比想象高

## 元教训（最重要的沉淀）

**不要在 1 个数据点后就修正反模式条目**：
- R0：直觉 "信号 ≈ 0" → R1+R2 数据反驳
- R2 后：假设 "默认 2 轮" → R3 数据反驳
- R3 后：假设 "<25 就停" → R4 数据反驳
- **每次 1-2 个数据点的修正都被下一次实验反驳**

**正确做法**：
- 至少 3-4 轮数据点 + 控制变量（如 R4 PRD 不变对照 R3 PRD 变）才能给出建议
- 如果"反复修正反模式"是 anti-pattern，**这本身就是 self-improvement 的核心方法论**——任何基于直觉的判断必须用 dogfood 数据验证

## 三轮加在一起的实战价值

跑完 3 轮后，PRD 从 v0.3 → v0.5 + Phase v0.4：
- 应用 Top P0 finding ~30 个
- 文档行数：1169 → 1348 行（+15%）
- 跨角色 Top Blocker 13 → 11 → 5（最后一轮基本是产品决策类，不是 PRD 缺漏）
- 标志着 PRD 进入"细节充分 + 剩下是战略 trade-off"阶段

## 总成本 vs 价值（dogfood）

- 总 token：~1.7M（3 轮 × 570K）
- 总耗时：~10 分钟（3 × 2.5 分钟并行 + 应用时间）
- 实战发现：30+ 个真 P0（包括跨组织安全、SLA 物理可达性、合规冲突、PR 拆分、关键路径等）
- **对比人工 multi-stakeholder review**：通常 1 轮要两周（约 stakeholder 时间），多角度盲点重叠率高于 50%
- ROI 估算：3 轮 multi-role review ≈ 8-10 倍人工等价时间

**Round 2 真新且高价值的 P0 例子**（Round 1 没找到，但确实是真硬伤）：
1. INV-1 "< 1 事故/季度" SLO **本质上不可证伪**（要等季度才能统计）→ 需要"上线前 100 个红队样本拦截率 = 100%"代理指标
2. 4 份 PRD **零部署架构图 + 零 RPO/RTO**（SRE 角度阻断级缺口）
3. INV-7 inbound 适配器**找不到任何验证机制**（PRD 应许的"生态兼容"是空头支票）
4. 关键路径 14 PR **串行 depends_on**（工程角度：MVP 9-10 周下限被严重低估）
5. UI 错误态文案 8 条**全是中文硬编码**（跟刚加的 INV-6 i18n 直接打架）
6. **PR12.5 政治前置矛盾**（v0.4 应用 Round 1 时引入的新问题——把"owner 团队签字"绑死在 MVP 启动）

注意 #6：这是 **v0.4 修复 Round 1 finding 时引入的新缺口**——只有 Round 2 才能抓到。

## 三个机制解释为什么信号增量不为零

1. **PRD 在两轮之间被改动**：Round 1 的 finding 应用进 PRD 后会引入新结构、新约束、新冲突，这些只能由"新 round" 才看得到（如 PR12.5 矛盾、PR0.5 与 PR3 法务前置时序冲突等）
2. **LLM 非确定性 + 角色 charter 引导探索不同路径**：同样的"产品负责人" charter，第一次盯到 vision，第二次盯到 north star 测量机制操纵风险——都在 charter 范围内，但探索深度不同
3. **修了浅问题后深问题浮现**：Round 1 改了"INV-1 SLO 措辞"后，Round 2 立即看出"季度统计 SLO 本质不可证伪"——只有把表层"= 0"改掉之后，深层"统计窗口与 SLO 周期不匹配"才显现

## 修正后的反模式 + 收敛建议

旧反模式（错的）：
> ❌ "同 lens 跑两次信号增量 ≈ 0"

新建议：
- **默认跑 2 轮**（Round 1 抓粗 + 应用 → Round 2 抓 v 后 PRD 的新缺口）
- Round 2 prompt 不需要修改，纯重跑即可
- **Round 3 之后才有边际收益递减风险**（单次实验数据，待更多 dogfood 验证）
- 何时停：Top Blockers ≤ 1 + 新轮新 finding < 10 + 用户 ship 意愿

何时单轮就够：
- PRD 极小（单文件 < 200 行）
- 用户已显式说"快速过一遍"
- 非关键 PRD（占位/草案）

## 应用范围

- 任何 multi-agent review skill 设计：不要默认"重跑无价值"
- 任何依赖 LLM 非确定性 + 角色 charter 的探索任务：用多轮采样代替单轮深挖
- skill 反模式条目要标"基于实验"而非"基于直觉"——直觉可能错

## 与现有规则的关系

- CLAUDE.md「能做都做」原则：本条印证——AI 时代多跑一轮 token 成本可承受，不要凭直觉省
- prd-multi-role-review SKILL.md：已同步更新「收敛与重跑建议」段
- 跟 doc-review SKILL.md 的"4 lens > 重跑"区别：doc-review 是确定性 lens（不是 LLM 角色），重跑确实增量低；本 skill 是 LLM 角色，机制不同

## 副产物

- 4 份 PRD 从 v0.4 → v0.5（顶层）/ v0.4（phase1/2/3），应用 Round 2 Top P0 18 项 + 7 个 🟡
- prd-multi-role-review SKILL.md 反模式段重写
- skill 自身完成首次完整 dogfood 验证
