DUCKERRY_Warehouse 修复变更记录 · 2026-09-13
本次为用户明确授权后的生产修复。
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。 - 历史旧文档中的废止数字仍保留在归档文件中,不能当当前状态读取。