# Codex 提示：发布前实验离线回放

读取填好的 `prepublish-experiment-replay-input.template.json`，先核对候选确实存在于绑定的第 012 课 shortlist，再调用仓库中的发布前实验回放命令。不得跳过验证自行编写“结果”。

## 先输出四栏预检

1. 来源：候选 ID、来源实验、来源文件 SHA-256。
2. 指标：分子、分母、观察窗、最低样本、guardrail。
3. 合成数据：provenance 必须逐字为 `synthetic-teaching-fixture`。
4. 未知项：真实发布、真实 CTR、平台数据、真人学员、Daniel 人审。
5. 历史承接：Run036 的 manifest/receipt、历史 20 节、第 022 课哈希与当前 21 节必须闭合。

## 实际执行受控失败

从 `reversed-window`、`missing-synthetic-provenance`、`zero-denominator-nonzero-numerator` 中选择一种 `failure_rehearsal`。必须由生成器构造坏副本、再次调用验证器并实际捕获拒绝；不得让学员手写退出码冒充失败。

## 固定产物

只生成八个文件：`manifest.json`、`experiment-contract.json`、`synthetic-fixture.json`、`replay-result.json`、`decision-record.md`、`failure-log.md`、`qa.md`、`run-receipt.json`。拒绝覆盖已有目录。

## 强制边界

- 只允许 `wait / revise / stop / prepare-real-test`，不得输出 winner 或 scale。
- 0–2 内部评分不是 CTR。不得把合成数值称为真实 CTR、真实平台表现或增长预测。
- `publish_count` 与 `platform_data_count` 必须都是 0；`external_actions` 必须为 `none`。
- 不登录、不打开真实账号、不上传、不发布，不调用浏览器、Computer Use 或平台 API。
- 真人学员与 Daniel 人审保持 `pending`，公开与商业保持 `blocked`。
- 六项来源必须是 Git 唯一 stage 0、工作树与 index 字节一致的普通文件；Run036 20 → 第 022 课 +1 → 当前 21 的 supersession 必须来自 producer 回执，不由页面补写。
