# Mac 回执 0918b — data-v2 权威包独立核验：8 件 sha 全对、三条算式**逐行复现**（5917/5919）、32 行 n_sig 变化独立证实；**仅 2 行异常**；落地前提与决议冲突待 Owner

日期：2026-09-18 CST ｜ 对象：`patches/v2_model_authority_20260919/` @ 分支 tip **9e08923**（取包全程 `git show`，未落盘、未动生产）

## 1. 逐件 sha256 全量核对 ✓（含包内 SHA256SUMS 自校）

| 文件 | 我算 sha256[:16] | 字节 | 与你方声明 | SHA256SUMS 自校 |
|---|---|---|---|---|
| strength_model.json | `cdfdf59edca33fc6` | 261621 | ✓ | ✓ |
| model_manifest.json | `b4e701ed30f6060d` | 1097 | ✓ | ✓ |
| strength_baseline.csv | `f31b8f1756d9ae03` | 1698810 | ✓ | ✓ |
| pool_daily_stats.csv | `79701734754160d2` | 233704 | ✓ | ✓ |
| pool_signal_count.csv | `3a0e8ba228823e9e` | 97705 | ✓ | ✓ |
| rebuilt_manifest.json | `e404da79493ee4d8` | 856 | — | ✓ |
| README.md | `c618b7a8d54247a0` | 5764 | — | ✓ |

**manifest ↔ model 交叉校验**：`model_manifest.model_sha256`（**全量 64 hex**）= `cdfdf59edca33fc60892e145e58f22f75b129f722ee3b5bc64e6fe875669c8a9` = model 实测全量 ✓；`model_version=data-v2`、`effective_from=2026-09-19`、**14 键 weights** ✓；行数分布 = `pools_n` = hs300 **174** / zz500 **323** / zz1000 **1183** / zz2000 **4239** ✓ 逐字相符。

## 2. 重建 baseline 自校 ✓（你方声明逐条复现）

- 行数 **5919** / 唯一键 **5919** ✓；`f12_crowd_pool` / `f13_pool_zt` / `f14_pool_avgret` **全行非空 5919/5919** ✓
- `ret` 非空 **5830** ✓（= 你方「全部 5830」）；buy_date ≤ 20260911 = **5825** ✓、≤ 20260914 = **5826** ✓

## 3. 池级三特征算式：我方**独立复现成功**（这是本次最关键的核验）

用你方包内 `pool_signal_count.csv` + `pool_daily_stats.csv`，对 5919 行逐行复算：

```
tb      = buy_date 的「池内前一交易日」
f12     = n_sig(tb) / max(1.0, mean(n_sig(tb-250) .. n_sig(tb-1)))
f13     = n_zt(tb) / 20.0
f14     = avg_ret(tb)
```

| 分区 | 行数 | f12 零差 | f13 零差 | f14 零差 |
|---|---|---|---|---|
| 近端行（buy_date ≥ 20260915） | 93 | **93/93**（max 4.4e-16） | **93/93** | **93/93** |
| 历史区（≤ 20260914） | 5826 | 5824/5826 | 5824/5826 | 5824/5826 |

⚠️ **两处须写进 README，否则他方必错**：
1. **重建 baseline 无 `tb` 列**，`tb` 必须按「该池缓存交易日序列中 buy_date 的**前一交易日**」推定。我第一轮按 `buy_date` 直接对齐 → `max|Δ|=69.83`（假差）；改按 tb 后 **零差到 4.4e-16**。请把对齐规则逐字写进 README §四。
2. **2 行不符（均为 zz2000 单例，疑沿用旧值未重算）**：
   - `300277.SZ / zz2000 / buy_date 20241111 / tb 20241108`：f12 存 **5.266854** vs 算 **2.551020**；f13 存 **3.95** vs 算 **2.90**（f14 相符 0.341794）
   - `002931.SZ / zz2000 / buy_date 20251225 / tb 20251224`：f14 存 **0.591161** vs 算 **1.319729**；f13 存 **1.20** vs 算 **1.85**；f12 存 1.104024 vs 算 0.975134
     - ⚠️ **更正（2026-09-19，研究侧 `6823e2f` 指出）**：本回执初版此处误抄了第一行的 f14 数值（2.440740 / 0.341794）；按列名直读该行实际为 **0.591161（存储）vs 1.319729（复算）**。全文表格数值本就正确（本次用 `patches/verify_pool_feat_identity_mac.py` 干净解包复跑，输出同表），错误仅在正文转录；**异常行数与结论不变**。
   - 请核这两行是否落入「链可定位者」例外集、或重建时未覆盖；**不建议**留到 0919 当天处理。

## 4. 缓存与「32 行 n_sig 变化」：**独立证实** ✓

- v2 缓存 5544 行 / 每池 **1386** 行 / 覆盖 20210104~20260918 ✓；zz2000 `n_codes` 0916 = **1998** ⇒ 与「按现行成员表（2000 只）过滤」相符 ✓（我方 zz2000 目录恰为 2000 文件，基准对齐）
- 以我方 **0914 两端一致版**存档 `patches/pool_caches_v1_20260914/` 与 v2 逐键比：`n_zt` **5528/5528 精确相等** ✓、`n_codes` **5528/5528 精确相等** ✓、`avg_ret` `max|Δ|=3.55e-14` ✓、**`n_sig` 零差 5496/5528、非零 32 行、`max|Δ|=14`** ⇒ **与你方 §③「残留唯一差异」逐字相符**，归因（窗口延伸致链触发判定变化）我方接受。

## 5. `5786` 判据改口：我方**接受** ✓

你方机制说明（`ideal_backtest` 只收已平仓交易 ⇒ 计数是**数据窗口的函数**）与我方数据吻合：你方「全部 5830」= 我实测 `ret 非空 5830`。⇒ **判据改为「两端各自重建出的键集合双向 0 差」**（不与常数比），这与我 0918a 的意见一致；并请一并采用 0918a 的分层：**历史区键差必须收敛，近端行差按侧保留登记**。

## 6. ⚠️ 落地前提：这不是「只换一个 model 文件」（请务必写进 README §五）

data-v2 把 **f12 的算式改了**（分母由「baseline 自身历史行日均」→「池级 C 序列前 250 个交易日均值」）。实测我方现行 f12 与新算式：**近端 93 行 max|Δ|=3.245、中位 0.566**，而 data-v2 里 `f12_crowd_pool` 权重 **0.0773** ⇒ 不换算式就必然令 strength 超出 1e-4。

⇒ 落库动作实际包含 **scan 侧口径变更**（我方独立实现，须版本号 + 生效日 + 两端同日；属红线，须 Owner 批）。可行性与同源性已由我方证明：
- f12 分母序列两端**可同源**：我方本地缓存与 v2 缓存 `n_zt`/`n_codes` **逐键精确相等**、`avg_ret` 3.6e-14、`n_sig` 仅 32 行差（窗口延伸）。
- 建议 0919 验收的 f12 判据落法：**两端同日以同一窗口各自重建 C 序列 → 逐 (pool,date) `n_sig` 双向 0 差 → 再判 f12 1e-4**。否则「32 行窗口差」会以 f12≈1e-2 级假差出现在候选判定里。

## 7. ⚠️ 我方**不自行落库**：存在决议冲突，须 Owner 直接确认

| 来源 | 内容 |
|---|---|
| 你方本包 | `effective_from=**2026-09-19**`，要求 0919 10:00 我方落库、14:00 联合验收 |
| 此前同步的 Owner 裁定（转述） | **0919 验收对象 = 现行冻结包**；**data-v2 放研究收口之后**作为第一次正式重开，**另行定时点**；A 层 0919 照做、B 层另排 |

两者**正相反**（一个要求 0919 生效，一个要求延后）。模型换代属 COLLAB_RULES §3 **红线**（须 Owner 批准 + 版本号 + 生效日），且我方纪律为「Owner 批准类记载一律直接问 Owner、不由 agent 转述互引」⇒ **在 Owner 直接确认前，我方不落库、不改 scan、不切 f12**。

**我方建议（供 Owner 裁决）**：按「先机制、后数值」两步走更稳 ——
- **0919 照 A 层**：字节同 + fail-fast + 幂等 + 候选集合双向 0 差（对象=现行冻结包），**不启用 data-v2**；
- **data-v2 另定时点**落地（建议紧随 A 层后 1~2 个交易日），届时一并落 scan 的 f12 新算式 + 两端同日重建 C 序列对拍；这样两件口径变更不与验收同期，避免验收对象漂移（这与你方 0916 自己的理由一致）。

若 Owner 裁定 0919 即落 data-v2，我方可在 10:00 前完成：①备份 v1-record 冻结档案 ②落 model+manifest 并复校全量 sha ③改 scan 的 f12 算式（读同一份池级 C 序列）④沙盒端到端（正向 + 删 manifest + 改坏 model 两个负向）⑤14:00 联合验收；但**该路径需要 Owner 明确批准「0919 即生效」+ f12 算式变更的版本号/生效日**。

## 8. 我方现状

- 生产未动：model `8f1a792279842bb9`（v1-record）、manifest `94837bd508d8878a`、baseline 6106 行（末日 20260918）、候选 `target=20260918 n=33 n_ge85=9`；cron 仍 17:05、体检闸门未实施、成分来源仍旧表。
- 本回执全部结论可由 `git show origin/research/hybrid-20260912:<包内文件>` + 我方 `patches/pool_caches_v1_20260914/` 复跑。