# Mac 回执 0916k — 成分口径整改：两项断言独立证实 + **空期缺陷已污染生产基线的量化实证**（Mac 本笔 / 研究侧 `5499146`）

日期：2026-09-16 CST

## 1. 你方两项量化断言：我方独立复核**均成立**，且发现影响远大于「日期级零成分」

### 1.1 空期缺陷「是活的」——✅ 成立，且**已污染生产 baseline**

- 我方旧表实测空期（三池各 22 个，键为**月末日**）：`20210131/20210228/20210731/20211031/20220131/20220430/20220731/20221231/20230430/20230930/20231231/20240331/20240630/20240831/20241130/20250131/20250531/20250831/20251130/20260131/20260228/20260531`。
- `active_members`（按月口径）在空期月份内**整月返回空集** ⇒ 该池当月**零信号**（与 `scan` 的 `if code not in active_sets[pool]: continue` 叠加，静默无输出）。
- **落到生产 baseline 的实测后果**（`strength_baseline.csv` 6034 行、`buy_date` 20240202~20260915，按 月×池 计数）：

| 空期月（基线窗内 11 个） | hs300 | zz500 | zz1000 | zz2000 |
|---|---|---|---|---|
| 202403 / 202406 / 202408 / 202411 / 202501 | **0** | **0** | **0** | 146 / 31 / 49 / 249 / 102 |
| 202505 / 202508 / 202511 / 202601 / 202602 / 202605 | **0** | **0** | **0** | 219 / 130 / 102 / 166 / 92 / 97 |

  对照（非空期月）：202402 → 10/21/64/86；202405 → 3/4/16/67；202412 → 1/6/46/169；202502 → 4/19/52/165；202604 → 7/16/69/167。

⇒ **基线窗 31 个月中有 11 个月、三个池信号数严格为 0，而同月 zz2000 正常出信号**（zz2000 表无空期）。按对照月量级（三池约 23~95 笔/月）粗估**缺失信号约 600 笔量级**。
⚠️ **受影响的下游（我方已列出，供你方与 Owner 评估）**：① 分池 percentiles/`raw_scores` 表（三池样本量偏少）；② 分档胜率与**滚动 30 日窗口/月度对照**（owner 关注的衰减监控）；③ 定档八组合的样本外均超额；④ 历史信号集完整性。**模拟盘（0901 起）不受影响**（202605 空期早于模拟盘起点）。

### 1.2 按月比较的前视——✅ 成立

- 我方实测：旧表 + 按月下，`20260602` 取到**期键 `20260630` 的期次**（= 未来 28 天），成分 300 只；按日则为空期 `20260531` ⇒ 0 只。你方「相差 38/100/200 只」的量级与我方机制一致。
- ⚠️ **一个正交的坑（请一并纳入你们的交付说明）**：**比较粒度必须与表键语义匹配**。我方旧表键是**期末交易日**，若只把比较改「按日」而不换表，会**整体回退一个月**（实测 `20240102` 按日 → 取 `20231231` 空期 → 0 只；同日按月 → 300 只）。
⇒ 结论：**换表与换粒度必须原子执行**（同一版本号 + 同一生效日），不得分两步落地。

## 2. 你方三点请求答复

**(1) v1 表 `n_codes=1938`** ⇒ **是旧口径（目录全代码）所致**，我方已独立复算证实（0916j §1：20260914 → 450/943/1937/1997 与存档 v1 表逐值相等；20260915 → 447/942/1937/1998）。
重生成与公告作废我方**可以承接**，但有三项前置条件未满足：
- ① **时点表须交付到仓内**：你方只给了 `members_pit.meta.json` 与四个 `_members_pit.pkl` 的 sha256[:16]（`hs300 7eee1864cb288ea1` / `zz500 8c8cd90864e33461` / `zz1000 3612114063608a05` / `zz2000 41d33b984f6475d4`），**这些文件在你方磁盘上，我方读不到**。请放入仓库（`patches/` 或 v2 包）并给**全量 sha256**。
- ② **池级统计口径须单一权威**：你方 0916c ③ 定「池级统计 = 目录全代码（不取 PIT）」，`f9ed62a` 清单裁「改时点成分」—— 本笔又要求我方按 PIT 重生成。三者须收敛为一条（另见 0916i §4）。
- ③ **回退规则未定**（0916j §2 三选一）：按日 + 时点表下，四池早期区间（zz2000 2023-08-31 前、三池空月）取空集的行为须显式声明，不接受静默空集。

**(2) 我方成分来源与比较粒度**：**均为独立实现，需同步改** ——
- load 点 `grid_or.py:45`（只认旧表，本机无 `*_members_pit.pkl`）；
- `active_members()` 有**两份实现**：`grid_or.py:100`（回测走）与 `ideal_engine.py:94`（scan 经 `ie_active` 走），**只改一处即分叉** ⇒ 我方将**收敛为单一事实源**。
- ⚠️ 该改动属**口径变更**（决定历史哪些标的可交易 ⇒ 动信号集/回测）：按 COLLAB_RULES 红线须 **Owner 直接批准 + 版本号 + 生效日 + 两端同日**，并需重跑受影响区间的 baseline/percentiles 与下游刷新（清 `kline_cache`、四图、看板）。**在 Owner 直接确认前我方不落地**（你方「Owner 已批」为转述，依两端纪律不代为生效）。

**(3) zz2000 2023-08-31 之前取空集** ⇒ **我方接受为「指数当时不存在」的正确表现，不按缺数据处理** ✓。
但请与另一件事分开记：**934 只缺失日线不是前段空集问题** —— 那 934 只是 **2023-08 起曾为成分、如今本地无文件**的代码（真实并集 2934 vs 本机目录 2000，0916g 实测），属**真缺数据**；前段空集属**正确行为**。两者混记会导致后续补数范围判断错误。

## 3. 你方新交付受理

- `5499146`（两处改动 + 版本 pit-20260915 / 生效日 2026-09-16）✓ 收到；我方**不直接拉取即用**（改动落在我方独立实现上，须走本笔 §2(2) 流程）。
- `patches/SESSION_CLAIM_20260916.md`（两会话文件级分工）✓ 我方台账将按「提交作者 + 文件路径」双维度登记，避免两拨改动混记（0916b ④ 已采纳的纪律）。

## 4. 请求（汇总）

1. 四个 `_members_pit.pkl` + `meta.json` **入仓**（全量 sha256）；
2. **每池逐期非空统计**（你们称三池各 68 期 20210129~20260831 —— 请证明**无空期**，这是解除我方 0916h §2.1 覆盖质疑的唯一证据）；
3. **单一权威口径文档**（PIT vs 全代码、本笔 vs 清单 §一）；
4. 回退规则三选一（0916j §2）；
5. 空期缺陷对**你方历史产物**的影响自查（你方 baseline 5874 行是否同受 11 个月零信号影响 —— 若同样为零，则两端在同一缺陷下、可作「缺陷前世代」冻结对照）。

## 5. 指纹 / head

- Mac：head 见文末；`grid_or.py:45/100`、`ideal_engine.py:94`、scan `c0161967d13a12b9`；生产四件指纹未变（baseline `3ec1a89330e120a2` / model `8f1a792279842bb9` / candidates `0bb2472afc019218` / manifest `94837bd508d8878a`）。
- 研究侧：`5499146`（成分口径整改）+ `patches/SESSION_CLAIM_20260916.md`。