项目

一般

简介

行为

Sprint 4 规划会议 Agenda:业务标签生成与绝对边界防线落地

会议目标:拒绝“随手写个循环算收益”的草台班子做法,将 S4 转化为“严格遵循闭式向量化公式、绝对物理隔离特征、死锁索引边界”的数学管线;敲定 DCA 标签与 S5 特征空间的解耦契约,输出首版 S4 架构决策记录(ADR)。
参会角色:项目经理(PM)、算法/研发工程师、基础架构/运维工程师、数据资产管理员(特邀)。
会议时长:60 分钟
强制准入条件:全员已精读《最终设计规约 v3.2.4》第 3 章节(标签系统数学定义)及第 2.3 章节(短缺失占位行收益置 NULL 的业务防御)。


议程一:架构对齐与企业级业务价值定义(15 mins)

主导人:PM、算法工程师

讨论焦点:

  1. S4 价值重塑与“反直觉”防御:明确本 Sprint 的核心不是“算标签”,而是“防越界”。规约 D-2 死锁了 150 周与 20% 止盈线,但真正的工程灾难潜伏在 0-based 与 1-based 索引错位(会吃掉第 150 周合法样本)以及 Segment 物理断裂处。S4 的业务价值在于为下游 LambdaRank 提供绝对纯净、无时序穿越的标签锚点。
  2. NFRs(非功能性需求)确认:
    • 算力底线:确认在处理 S2 产出的 270 万行纯净净值数据时,S4 严禁加载特征宽表(防 OOM 铁律),内存波峰需限制在极低水位。
    • 可审计性:确认对于 label=0(未达标)与 label=150(边界达标)的特殊样本,日志需具备可追溯性,不打印明细,但需输出截面级统计摘要。

议程二:跨团队依赖与前置契约敲定(15 mins)

主导人:PM、研发工程师
讨论焦点:

  1. 数据血缘契约:
    • [需确认] S4 的唯一合法输入源为 data/processed/s2_{year}.parquet。明确 scan_parquet 后必须立即 .select(["fund_id", "net_value_date", "segment_id", "cumulative_net_value"])。[红线重申] 严禁拉入 weekly_return 列,严禁关联任何 S3 特征文件,违者一票否决。
  2. 物理存储契约:
    • [需确认] S4 产出必须严格落盘为 4 列(fund_id, net_value_date, segment_id, label),强依赖 PhysicalStorageContract.sink_parquet_strict() 与 validate_schema_symmetry()。
  3. 数学常量契约:
    • [需确认] 确认 STOP_LOSS_THRESHOLD = 0.20 与 MAX_LABEL_WEEKS = 150 已硬编码于 core/constants.py,严禁从 config.yaml 读取。

议程三:核心 Story 拆解与 ADR(架构决策记录)输出(20 mins)

主导人:研发工程师
讨论焦点(不深挖代码实现,仅定技术路线与防御边界):

  1. DCA 闭式向量化公式落地(S4-02):
    • [需决策] 确认“倒数累加范式”(inv_nv -> cum_inv -> weeks -> returns)为唯一合法路径。明确在此闭包内,Python for 循环属于“死刑级”禁止项。对于输入数组的纯净性断言(np.isfinite 且 > 0),如果触发,是直接抛出阻断异常,还是记录 Warning 并输出全 0?
  2. Segment 物理断裂与防穿越防线(S4-01):
    • [需决策] S4 必须按 segment_id 拆分计算。明确在 group_by().map_groups() 闭包内,NumPy 数组的索引强制从 0 起始。严禁跨 Segment 拼接净值序列。
  3. 0-based 转 1-based 索引偏移拦截(S4-03):
    • [需决策] 针对规约 7.1 节的骨架代码,确认 hit_indices[0] + 1 的偏移逻辑。讨论是否需要针对“刚好 150 周达标但序列长度仅 150”的极端边界做单元测试强卡点(防 IndexError)。
  4. 按年流式落盘闭环(S4-04):
    • [可复用逻辑指出] 确认复用 S2/S3 的统筹器按年循环拓扑,落盘后必须立即触发 Schema 对称差校验(4列契约)。

议程四:M4 验收标准终审与技术债预防(10 mins)

主导人:PM
讨论焦点:

  1. Done 标准无歧义对齐:逐条过审 M4 的硬卡点(纯向量化覆盖率 100%、边界 assert 覆盖率 100%、4 列 Schema 门禁生效)。
  2. 技术债预防登记:
    • 识别本 Sprint 可能引入的“临时妥协”(例如:若个别 Segment 净值序列首行存在非正数导致断言抛出,是否需要降级为返回 0 并记录日志?),必须在 Redmine 提前建单登记清理 Deadline,严禁带入 Sprint 5(S5 标准化阶段)。

会议产出物要求:
会后需由研发工程师在 Gitea /docs 目录下提交首份 adr/004-s4-label-generation-and-math-boundary.md,记录本次会议敲定的 DCA 闭式公式实施路径、Segment 隔离策略及索引错位防御机制。

由 Huarui Lin 更新于 5 个月 之前 · 1 修订