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