# design.md 盲测复述 · spawn≠fork

Run: `lab-design-md-blind-retell-20261103`  
站点：https://hezekai.com/lab/design-md-blind-retell  
时区：Asia/Hong_Kong (UTC+8)

## 一句话

写码前，spawn **一个新的**子 agent（不是 fork），只给它 `design.md` 的路径、不给摘要，让它用自己的话复述计划。对不上的地方，先改文档，再写代码。Fork 会带着整段对话，「复述」看起来很完美，却测不出文档含糊。

## 动机

设计文档写完以后，作者本人和同一会话里的模型都会「脑补」没写清楚的边界。真正的读者——另一个人、或一个**没有**这段上下文的新 agent——会卡在歧义处。盲测复述就是把这段「脑补」关掉，看文档本身能不能站住。

灵感来自 Vox (@Voxyz_ai) 2026-11-02 的实践帖（见 `provenance.md`）。

## spawn ≠ fork 为何重要

| 模式 | 子 agent 看到什么 | 复述看起来怎样 | 能否抓住文档含糊 |
|------|-------------------|----------------|------------------|
| **spawn（新会话）** | 只有你给的路径/文件，没有父会话历史 | 可能卡壳、漏边界、臆造术语 | **能**——含糊会暴露 |
| **fork** | 父会话全量上下文 | 往往「复述得很完美」 | **不能**——上下文替文档补洞 |

本 Lab 的核心判据：**同一份 design.md，spawn 盲测应比 fork 基线更容易标出 blocker / 未定义术语。** 若 fork「完美」、spawn「卡住」，文档才需要先改。

## 本 Lab 做什么 / 不做什么

**做：**

- 可复制的盲测复述协议（对齐原帖 prompt）
- spawn-only vs fork 对照判据
- 故意含糊 / 清晰对照的假想 `design.md` fixtures
- 可粘进 `AGENTS.md` 的短片段
- 诚实的结果占位（本轮未跑 live spawn/fork）

**不做：**

- 编造 live Agent Activity 或假实验结果
- 把同作者另两条帖（修 bug 四规则、Claude Code 安全设置）做成主题
- 替代正式设计评审或 QA

## English gist

Before coding, spawn a **new** subagent (not a fork). Give it **only** the path to `design.md`—no summary. Have it restate the plan in its own words; mismatches reveal vague docs. Fork mode carries the whole conversation, so restatement looks perfect and fails to catch ambiguity. This Lab ships the protocol, criteria, intentional-ambiguity fixtures, and a pending results slot—not a fabricated live run.

## 产物一览

| 文件 | 用途 |
|------|------|
| `protocol.md` | 盲测步骤与 spawn vs fork 对照 |
| `criteria.md` | 通过 / 失败判据 |
| `agents-snippet.md` | 可复制进 AGENTS.md |
| `fixtures/design-ambiguous.md` | 故意含糊的假想设计 |
| `fixtures/expected-ambiguities.md` | 评分人可见的期望歧义（盲测 agent 不应拿到） |
| `fixtures/design-clear.md` | 同主题清晰对照版 |
| `fixtures/sample-restatement-miss.md` | 手写「漏抓歧义」复述样例 |
| `rubric/score_restatement.py` | 可选本地冒烟评分脚本 |
| `results/PLACEHOLDER.md` | 待跑占位 |
| `provenance.md` | 信源与诚实边界 |
| `run.json` | run 记录 |
