框架

DUCKERRY_Warehouse 修复变更记录 · 2026-09-13

本次为用户明确授权后的生产修复。

optimization · 资产·机制 · optimization/报告/修复记录_2026-09-13.md · 3252 B

DUCKERRY_Warehouse 修复变更记录 · 2026-09-13

范围

本次为用户明确授权后的生产修复。修复前完整备份:

/var/minis/shared/backup/DUCKERRY_Warehouse_pre_repair_20260913_194559

备份包含 263 个文件,并有 MANIFEST.paths、MANIFEST.sha256。

已实施

  • 发布硬闸门
  • fetch.py 现在要求 G1、抓取、源解析和 recompute2/4 全部成功才允许更新快照/MOC。
  • --no-fetch、--no-recompute 只能诊断,不能发布 PASS。
  • 失败运行生成数据缺失占位,保留诊断 latest.json,返回非零。
  • 数据计算安全
  • dkanalysis.py、recompute2.py、recompute4.py 显式使用 pct_change(fill_method=None)。
  • recompute2.py 只在 trading_day=True 上计算。
  • 缺失数据不会跨缺口生成收益率。
  • 修复 recompute4
  • 兼容当前 黄金 PM 表格格式和旧粗体格式。
  • 空样本不再除零,而是明确失败。
  • 当前真实运行:rc=0,14 个可比交易日,污染差异 ≥1pp 为 0 天。
  • 源响应校验
  • 拒绝 HTML 替代数据。
  • FRED/财政部 CSV 增加表头 schema 校验。
  • 原始响应和运行 manifest 使用原子写入。
  • 运行 provenance
  • 每次抓取创建 数据/runs/<run_id>/raw_manifest.json。
  • 每次管线创建 provenance.json,记录 run_id、脚本 SHA-256、输出 SHA-256、G1 和发布状态。
  • 风险状态降级
  • L0 在任一关键项无法评估时不再总体显示“正常”,当前状态为“降级(存在无法评估项)”。
  • 终极决策框架增加 undetermined/不可判定,删除强制 A/B/C 三选一和默认掩盖不确定性的文本。
  • 预测验证安全
  • 不带数值区间的“观望/等待/谨慎”现在返回 未覆盖。
  • 旧 Agent 状态页改为 legacy/废止当前评估,移除“运行正常/100%”。
  • MOC 静态 Agent 区块改为未启用/未建立结构化日志/未实现风格自适应。
  • 复盘模板安全
  • A/B/C 模板增加“不可判定”和进入/维持/反证条件。
  • “操作建议”改为非个人账户的风险动作规则。
  • L0–L4 模板不再默认使用绿色“正常”占位。
  • 自动化测试
  • 新增 tests/test_pipeline.py,覆盖 HTML、CSV schema、核心缺失、VIX 缺失、股指缺失、禁止前值填充、预测未覆盖、重算失败阻断发布等场景。

验收结果

  • Python 编译:通过。
  • 回归测试:10/10 通过。
  • recompute2.py:rc=0。
  • recompute4.py:rc=0。
  • 最终真实抓取:13 个数据源全部 HTTP 200 且 schema 通过。
  • G1:PASS。
  • 发布:PASS。
  • 目标交易日:2026-09-11。
  • 当前 L0:降级(VIX 目标日缺数据;债券腿为收益率代理)。
  • 当前 L1:down,弱,5 日累计 -1.81%。
  • run_id:20260913T201428+0800。

尚未修复/仍需验证

  • 债券真实价格或总回报腿未接入。
  • L0 阈值、四因子权重和中性区间仍为 [待验证]。
  • 历史预测日志仍缺少完整 prediction_id/created_at/model_version。
  • 历史旧文档中的废止数字仍保留在归档文件中,不能当当前状态读取。