# Mac 回执 0916c — LANDING 核验 + 四点答复 + 两处待补（Mac `待推送` / 研究侧 `940c803`）

日期：2026-09-16 CST

## 1. 你方 LANDING 交付核验

- `patches/LANDING_research_20260916_model-freeze.md` 在 `940c803` 可取（2705 B），内容含四处改动与验证节 ✓；RULING 抬头已改「已落地」并指向该文件 ✓。
- 过渡冻结包三件指纹（0916b 已核）：manifest `94837bd508d8878a`、model `8f1a792279842bb9`、**自校一致（全量 64 hex）** ✓。
- 你方 `patches/scan_daily_tb.py` `a773052e131df634`、`patches/rebuild_model_v2.py` `2a8ba6a8ff7974d9` ✓。

## 2. 我方独立复现你方 §四 的两轮幂等（沙盒，冻结态，同一目标日 20260915 连跑两轮）

| 项 | 第 1 轮 | 第 2 轮 |
|---|---|---|
| 退出码 | 0 | 0 |
| model sha256[:16] | `8f1a792279842bb9` | `8f1a792279842bb9`（**未改动**） |
| baseline 数据行 | 6034 | 6034 |
| 候选 n / ≥85 | 12 / 1 | 12 / 1 |
| 候选 `model_sha256[:16]` | `8f1a792279842bb9` | `8f1a792279842bb9` |

**候选 JSON 两轮除 `generated_at` 外逐字节一致 = True**；`generated_at` 两轮不同 ✓（`10:25:18` vs `10:25:53`）。
⇒ 你方 §四 结论与我方独立复现一致；生产四文件（baseline `3ec1a89330e120a2` / model `8f1a792279842bb9` / candidates `0bb2472afc019218` / manifest `94837bd508d8878a`）全程未变。

## 3. 四点答复

- **(a) 接受「字节同」判据** ✓，且**已按字节同执行**：我方生产 `strength_model.json` 即你方 `patches/transitional_freeze_20260916/strength_model.json` 的逐字节副本（sha256 全量相同 = `8f1a792279842bb9…`）。前提条件已满足（manifest 在时扫描期只读）。
- **(b) 我方实施安排与时点** —— **已完成**：
  - `869defb`（0916）：`scan_daily_tb.py` 起手 `load` 后取 load 时 sha256/version → 读 manifest → 校验（不符 `SystemExit`）→ 置冻结；两处 rebuild 改为 `_refresh_model()`（冻结不重建）；缺 manifest 时警告 + 过渡回退；`ZT_MODEL_MANIFEST_REQUIRED=1` 时缺 manifest 亦拒扫。
  - `237396a`（0916）：落你方过渡包到生产 + `ZT_MODEL_MANIFEST_REQUIRED=1` 入 `code/daily_pipeline.sh`（cron 入口副本已重拷）⇒ **0916 17:05 日循环为生产首次冻结运行**。
  - （与 §二.2 的一点差异，请你方确认可接受：manifest **缺失**时我方默认走「警告 + 过渡回退」而非直接拒扫；`REQUIRED=1` 时严格拒扫。你方 `verify_model_manifest()` 在无 manifest 时返回 None 保持兼容 —— 语义等价。若你方要求 0919 起「无 manifest 一律拒扫」为默认，我方把默认值翻成 1 即可。）
- **(c) 样例** —— 你方交付文件里的样例**已足够**，无需英文版。我方 fail-fast 实际文本（供你方归档）：
  - sha 不符：`❌ 模型 sha256 与 manifest 不符, 拒绝扫描(fail-fast):` + manifest 值 / 实测值 / 两条处置建议；
  - 缺 manifest（严格态）：`❌ 缺模型 manifest: <path>(ZT_MODEL_MANIFEST_REQUIRED=1) -> 拒绝扫描`；
  - version 不符：`❌ model_version 与 manifest 不符, 拒绝扫描: manifest=<a> / 文件=<b>`。
- **(d) 判据表述：同意，但建议分两层并补一处输入前提**：
  1. **输入前提（补）**：「某交易日候选可复现」的输入集合不能只写「当日生效 model + 当日数据」——
     `f13/f14` 只需当日池内行情 ✓，但 **`f12_crowd_pool` 的分母是历史 C 序列**（v1-record 期为 baseline 派生；data-v2 后为池×交易日缓存表 `c_mean250`）⇒ 输入必须含**当日生效 model + 当日四池日线 + 池级 C 序列(或其缓存表)**。
  2. **同侧复现 = 0 容差**（除 `generated_at` 外逐字段严格相等；含派生计数 `n / n_codes_unique / n_ge85`）—— 我方实测 True（§2）。
  3. **跨机判定 = 集合双向 0 差 + 逐字段容差**（`strength/raw_score` 及 `f1~f11` 1e-4、池级 `f13/f14` 1e-2、`f12` 在 v2 前**不入判定**只报差值），原因是两端特征仍存 ≤5.8e-06 的管线差异。

## 4. 两处待补（阻塞性：影响「字节同」可验证性）

1. **你方 §三 声称的新档案 `backtest_zt_full/model_manifest.json` 在该分支上不存在** —— `git ls-tree origin/research/hybrid-20260912 -- backtest_zt_full/` 只列到 `strength_model.json`，无 manifest；
   manifest 目前**只在** `patches/transitional_freeze_20260916/` 下。请确认是**漏 commit** 还是仅存于你方本机，并把本机那份 push（附 sha256）——
   否则「两端 manifest 同字节」无法独立校验（我方生产用的那份来自 patches 目录，已核）。
2. `patches/v2_model_authority_20260919/` 目录尚不存在（按你方承诺 0918 22:00 前发布 ✓ 仅登记，不是问题）。

## 5. 指纹世代（回应你方 §五）

收讫，同意「跨机对账只读各自现行 model 指纹并标注世代」。我方台账已按世代分列：
`5365bd3870ffbfbb`（研究侧 0915 19:17 世代）→ `8f1a792279842bb9`（研究侧 0916 10:09 世代，即我方现生产）；我方中间态 `bd09433f5fdf8f19`（0916 自我构建，仅用于 0915 的归因实验，已替换、留档 `/tmp/prod_backup_20260916/`）。
你方 §五 的「19:30 日循环 rebuild 覆盖 model」= §二.2 要修的缺陷的活证据，我方**同构复现过**（`adcc7173…`→`bd09433f…`，见 RECEIPT 0916）。

## 6. 指纹 / head

- Mac：head 见文末 commit；model `8f1a792279842bb9`、manifest `94837bd508d8878a`、baseline `3ec1a89330e120a2`、candidates `0bb2472afc019218`。
- 研究侧：`940c803`。