01-Sprint4规划会议纪要:S4 业务标签生成与绝对边界防线落地 » 历史记录 » 版本 1
Huarui Lin, 2026-04-25 16:37
| 1 | 1 | Huarui Lin | # <div align="center"> Sprint 4 规划会议纪要:S4 业务标签生成与绝对边界防线落地 </div> |
|---|---|---|---|
| 2 | |||
| 3 | **会议日期**:2026-04-25 |
||
| 4 | **项目名称**:基金量化定投选基系统 (2026-04-11-01) |
||
| 5 | **会议目标**:锁定 M4 交付标准,对齐 S4 绝对物理隔离与防越界防线,输出 S4 架构决策记录(ADR),确立“纯净标签零穿透”的数学管线基线。 |
||
| 6 | **参会角色**:项目经理(Henry Lin)、算法/研发工程师。 |
||
| 7 | |||
| 8 | --- |
||
| 9 | ## 一、 会议确认项 |
||
| 10 | |||
| 11 | 1. **CONF-01 S4 内存波峰红线**:S4 处理单年数据时,由于严格过滤列(仅 4 列)且不加载 S3 特征宽表,内存波峰死锁在极低水位(预估 < 500MB)。 |
||
| 12 | 2. **CONF-02 S4 日志审计基线**:S4 严禁打印单条基金的标签明细(防数据泄露与日志爆炸),但必须在 `stderr` 输出每个截面的 `label > 0` 样本总量统计摘要。 |
||
| 13 | 3. **CONF-03 S4 数据血缘入口双重保险断言**:在按年循环读取 `s2_{year}.parquet` 时,采用读取 Parquet Footer 元数据的轻量级 Schema 校验,硬编码校验 4 个核心列,阻断脏数据流入。 |
||
| 14 | 4. **CONF-04 S4 净值纯净性断言全局阻断策略**:在 DCA 闭式向量化公式计算前,若触发非正数或 NaN 断言,必须抛出 `SegmentDataCorruptedError`,由统筹器捕获并执行全链路 `sys.exit(1)`,严禁局部容错继续跑残缺流水线。 |
||
| 15 | |||
| 16 | --- |
||
| 17 | ## 二、 会议待办项 |
||
| 18 | |||
| 19 | | 编号 | 责任人 | 任务描述 | 截止时间 | 验收标准 | |
||
| 20 | | :--- | :--- | :--- | :--- | :--- | |
||
| 21 | | **TODO-01** | 研发工程师 | 常量池 S4 列名补充 | Sprint 4 交付前 | 在 `src/core/constants.py` 中补充 `S4_OUTPUT_COLUMNS: list[str] = ["fund_id", "net_value_date", "segment_id", "label"]`。 | |
||
| 22 | | **TODO-02** | 研发工程师 | 全局异常类扩展 | Sprint 4 交付前 | 在 `src/core/exceptions.py` 中补充 `SegmentDataCorruptedError` 异常类,供 S4 净值纯净性断言使用。 | |
||
| 23 | |||
| 24 | --- |
||
| 25 | ## 三、 会议风险项 |
||
| 26 | |||
| 27 | *本轮无新增风险项。* |
||
| 28 | |||
| 29 | --- |
||
| 30 | ## 四、 会议架构决策记录(ADR)产出要求 |
||
| 31 | |||
| 32 | 基于本次会议确认的 CONF-03 与 CONF-04,要求研发工程师在会后首个 PR 中,于 Gitea 仓库 `/docs/adr/` 目录下提交 `004-s4-label-generation-and-math-boundary.md`,必须固化以下两点技术选型理由: |
||
| 33 | 1. 为何在已有 S2 落盘门禁的前提下,S4 仍需采用 Footer 级双重 Schema 断言。 |
||
| 34 | 2. 为何在遇到非法净值时,选择全局阻断而非降级输出 `label=0`。 |
||
| 35 | |||
| 36 | --- |
||
| 37 | ## 五、 Sprint 4 交付物全景清单(已对齐) |
||
| 38 | |||
| 39 | 以下为本次会议最终锁定需新增/修改的文件及核心约束简述: |
||
| 40 | | 分类 | 文件路径 | 核心约束简述 | |
||
| 41 | | :--- | :--- | :--- | |
||
| 42 | | **核心常量** | `src/core/constants.py` | 新增 `S4_OUTPUT_COLUMNS`。 | |
||
| 43 | | **核心异常** | `src/core/exceptions.py` | 新增 `SegmentDataCorruptedError`。 | |
||
| 44 | | **核心源码** | `src/pipelines/s4/step_s4_label_generation.py` | 闭式向量化公式落地,Segment 隔离,0-based 转 1-based 偏移修正。 | |
||
| 45 | | **质量保障** | `tests/src/pipelines/s4/test_step_s4_label_generation.py` | 覆盖正常达标、极长尾部未达标、第 150 周截断边界三个极值单测。 | |
||
| 46 | | **技术真相** | `docs/adr/004-s4-label-generation-and-math-boundary.md` | 记录本次会议核心工程选型。 | |
||
| 47 | |||
| 48 | --- |
||
| 49 | **会议闭环状态**:✅ 全部议程结束,无遗留阻塞项。研发团队可依据本纪要启动 Sprint 4 实施。 |