框架

DUCKERRY_Warehouse 全库审计与重构报告(v2.1 修复后更新版)

已检查根目录、框架/、数据/、scripts/、复盘/、回测/、因子/、资产/、概念/、optimization/、优化/、audit_evidence/ 及 MOC。

optimization · 资产·机制 · optimization/报告/系统审计与重构报告_2026-09-13_v2.1修复后.md · 20844 B

DUCKERRY_Warehouse 全库审计与重构报告(v2.1 修复后更新版)

审计性质:只读审计 + 用户授权修复后的复算更新。

修复日期:2026-09-13。最终 run_id:20260913T203733+0800。

生产库:/var/minis/mounts/DUCKERRY_Warehouse。

修复前备份:/var/minis/shared/backup/DUCKERRY_Warehouse_pre_repair_20260913_194559,263 文件,SHA-256 校验 0 缺失/0 变化。

重要限制:本报告的 66/100 是工程和治理修复后的评分,不代表模型已有收益优势。

1. 审计声明

1.1 已读取与执行

已检查根目录、框架/、数据/、scripts/、复盘/、回测/、因子/、资产/、概念/、optimization/、优化/、audit_evidence/ 及 MOC。修复后库内排除 .obsidian 共 305 个文件,活动区有 71 个真实交易日收盘复盘。

实际执行:

python3 -m compileall -q scripts tests          -> PASS
python3 -m unittest discover -s tests -v        -> 10/10 PASS
python3 scripts/recompute2.py                   -> rc=0
python3 scripts/recompute3.py                   -> rc=0
python3 scripts/recompute4.py                   -> rc=0
python3 scripts/fetch.py --force                -> rc=0,G1=PASS,publish=PASS

1.2 当前数据边界

面板 数据/panel.csv:75 行、71 个 trading_day=True,覆盖 2026-06-01→2026-09-11;VIX 最新 2026-09-10,WTI 最新 2026-09-09,FRED 广义美元指数最新 2026-09-04。滞后源均保留真实数据日,不前值填充。

1.3 未能完成

债券价格/总回报、盘中数据、账户执行、3 年以上 L0 标定、结构化历史预测日志、A/B/C 事件因果证据、四因子样本外增量检验仍未完成。不能把这些空缺写成“已验证”。


2. 一页执行摘要

2.1 修复后最大风险

  • 已消除的 P0:重算失败、HTML/错误 CSV、核心缺失和源解析错误不再允许更新当前快照/MOC 绿标。
  • 最大剩余数据风险:尚无逐值 normalized provenance 长表;当前已达到 run/文件/脚本/输出哈希级追溯。
  • 最大剩余统计风险:结构化事前预测样本为 0;不能评估 Agent 是否超过任何基准。
  • 最大剩余风控风险:债券仍是 10Y 收益率方向代理,不是真实债券价格回报;L0-3 仍只能部分可评估。
  • 最大剩余知识风险:历史归档仍含旧 100% 数字和约 100 个未解析链接目标,但已加废止语境/历史隔离标记。

2.2 修复后最值得保留的五项

  1. 真实原始源留档:LBMA、美国财政部、FRED、ECB/Frankfurter。
  2. G1/G8 失败关闭发布机制。
  3. L0/L1 机械重算和明确的缺失降级。
  4. 框架/数据口径定义.md 的 SSOT 治理。
  5. 数据/runs/<run_id>/ 的原始响应、manifest、provenance 归档。

2.3 当前应停止的行为

继续使用 Agent “100%/连续 21 次”;把裸“观望/等待”算命中;把收益率当债券回报;用 3 个月样本调阈值;把机械相关性当作因果或 A/B/C 结论。

2.4 当前不可做出的结论

不能宣称四因子有效、A/B/C 有稳定基率、Agent 有预测优势、L0 已完成长期标定或债券三杀已严格验证。当前 A/B/C 输出应为不可判定,不是强行三选一。


3. 当前系统健康评分

维度满分修复前基线修复后主要依据
数据真实性与来源治理251720原始响应+HTML/CSV schema+run hash 已有;逐值 provenance/债券腿未有
风险防御与故障安全201015发布闸门和缺失降级已生效;渐进降档/组合回撤未实现
预测可证伪性与统计有效性1536裸观望改为未覆盖;但有效事前日志 n=0,无 Brier/校准/样本外
状态机稳定性与可重放性1569L0/L1 可重放,加入不可判定;A/B/C 事件状态迁移未编码
因子边界与事前能力1055权重仍主观,周期无数据,价格因子与 L1 重叠
自动化、测试与可执行性104710/10 测试、原子写、run 归档、重算全通过;无 CI/并发锁
文档一致性与知识治理524当前入口冲突清零;历史链接与归档隔离仍未完全清理
合计1004766工程可靠性显著提升,预测能力仍未证明

评分裁决:修复后 66/100;不是对收益能力的评分。预期上限约 82/100,需完成结构化预测、长期样本外、债券总回报和逐值 provenance 才能接近。


4. 全库审计发现与修复状态

ID级别发现修复后状态证据/验收
F01P0recompute 失败仍发布✔ 已修recompute2/3/4 rc=0;失败纳入 publish gate
F02P0fetch 失败仍更新 MOC✔ 已修失败生成占位、不更新快照/MOC、返回非零
F03P0200 HTML/错误 CSV 可进入管线✔ 已修validate_text_response + 单测
F04P0recompute4 解析 0 后除零✔ 已修兼容当前/旧格式;空样本显式失败
F05P0pct_change() 默认前值填充✔ 已修生产 Python 脚本剩余 pct_change()=0
F06P0假日混入收益/连续计数✔ 已修recompute2/3 过滤 trading_day;统计数字发生修正
F07P1缺失项总体仍显示正常✔ 已修L0 总体为“降级(存在无法评估项)”
F08P1manifest 只能保留当前一次✔ 已修7 个 run;最新 run 12 份 raw + manifest + provenance
F09P1panel 无逐值 provenance🟡 部分文件/run 哈希已实现;normalized 长表待做
F10P1债券腿为收益率代理⏳ 未修快照/L0 明确标 partial;需真实总回报
F11P1L0 无渐进组合降档🟡 部分缺失降级已实现;风险预算/回撤未实现
F12P1A/B/C 强制三选一✔ 已修当前规则统一为 A/B/C/不可判定四态
F13P1C 门槛仅相关性且硬跳变⏳ 未修当前 streak=7<10;长期标定和事件确认待做
F14P1裸观望奖励沉默✔ 已修裸“观望中”→未覆盖;数值区间才可证伪
F15P1无 prediction_id/created_at/model_version⏳ 未修当前有效结构化预测样本 0
F16P1旧 Agent 页写运行正常/100%✔ 已修legacy 标记、废止当前评估,MOC 改未启用
F17P2模板默认绿标和具体操作建议✔ 已修改为状态枚举和非个人账户风险动作规则
F18P2历史链接/旧数字残留🟡 部分当前入口已降级;未解析链接目标约100个、131次
F19P1测试套件缺失✔ 已修tests/test_pipeline.py 10/10
F20P1固定绝对路径/运行版本分叉🟡 部分核心管线已统一;recompute 部分仍有固定路径,生产/冻结 hash 不同

5. 修复后证据地图

ID事实路径/命令结果
E01当前 run数据/latest.json20260913T203733+0800
E02发布状态latest.jsonG1=PASS,publish=PASS,source=PASS
E03面板规模数据/panel.csv75 行,71 个真实交易日
E04L0latest.json.l0总体降级;VIX 目标日无法评估;债券为代理
E05L1latest.json.l1down、弱、−1.81%、同向 3/5
E06相关性latest.json.corr−0.538、−0.089;streak=7,门槛10
E07重算python3 scripts/recompute2.pyrc=0;修复后交易日过滤
E08污染复算python3 scripts/recompute4.py14 个可比日,≥1pp 差异 0 天
E09预测判定validate_prediction.py裸观望=未覆盖;显式区间可证伪
E10预测统计recompute3.py有效样本0,方向覆盖率0%,命中率不可计算
E11测试python3 -m unittest discover -s tests10/10 通过
E12归档数据/runs/<run_id>/最新 run 含12份raw、manifest、provenance
E13备份/var/minis/shared/backup/...263文件,校验通过
E14当前快照复盘/2026-09-11 收盘数据快照.mdL0 明确为降级,不再写正常
E15MOC00 驾驶舱(投资MOC).mdAgent 未启用/日志未建立/风格自适应未实现
E16历史页复盘/长期记忆-2026-08-16.md已加历史废止头
E17规则框架/终极决策框架.md不可判定为合法四态
E18模板框架/标准化复盘生成流程.md无默认绿标和具体个人交易建议
E19源校验dkfetch.pyHTML/CSV schema 校验与原子下载
E20源交叉校验dkpanel.crosscheckLBMA隐含汇率最大偏差0.46%;10Y两源差0

6. 数据治理 vNext

已生效

  • 原始响应按 run 追加归档;正式文件仅在内容校验后原子替换。
  • JSON 解析、HTML 拒绝、FRED/财政部 CSV 表头校验已生效。
  • G1:黄金 PM、10Y nominal、10Y TIPS 必须为目标日真实合法值。
  • G8:抓取、源校验、重算、测试、发布全部通过才允许 current PASS。
  • 缺值不补、不插值、不外推;滞后按真实 asof 展示。

待建设 schema

date, asset, metric, value, unit, currency,
source_primary, source_cross_check, source_url,
source_timestamp, market_timestamp, timezone,
trading_day_flag, market_open_flag, observation_status,
confidence, raw_file, raw_sha256, transform_version, correction_log

目标目录:数据/raw/、数据/normalized/、数据/derived/、数据/manifests/runs/、数据/quarantine/。当前实际 raw 与 derived 仍有兼容性并存,迁移必须保留哈希和路径映射。


7. L0–L4 修复后审计

  • L0:缺 VIX 目标日时,L0-2 为无法评估,整体降级;SPX/NDX 已接入,但债券腿为 10Y 收益率代理。固定阈值 19 日触发 0 次;2.5σ 回放触发 09-01 一次。所有阈值仍 [待验证]。
  • L1:黄金 PM 真实序列 4415.40→4399.10→4414.90→4365.45→4386.25;5 日累计 −1.81%,状态 down/弱。
  • L2:不再强制三选一;当前数据不足以自动宣布 A/B/C,应为不可判定。
  • L3:只审计制度;没有账户/成交数据,不评价执行效果。模板禁止个人账户买卖指令。
  • L4:裸文本不可验证;有明确区间、创建时间、参考价和证伪条件才可评估。

风险动作矩阵

数据/L0L1/L2系统动作
verified、正常、状态证据充分up/down + 已确认仅允许按已批准规则研究,不自动下单
single_source/partial/stale任意降级、人工复核,禁止扩大风险
missing/invalid 核心不生效占位、保留上一有效 run,禁止结论
L0 警告任意执行已批准的减风险规则,不新开多仓(参数待验证)
L0 断路停止只做减法/对冲规则,等待退出条件

8. A/B/C 与不可判定

修复后机械统计:A 入场条件 69 个交易日中 2 天、基率 2.9%;B 条件 25 天、36.2%;A∪B 27 天;相关性失效最长连续 7 天,低于 C 的 10 日门槛。上述只是条件计数,不是模式因果证明。

兼容迁移:

输出进入条件反证/退出
A美元↑、TIPS↑、金↓,至少2个交易日且数据完整任一腿反向/缺失
B风险事件证据+黄金抗跌/发力事件证据消失
C相关性失效≥10日且独立新叙事/联动证据叙事未证实或传统解释恢复
不可判定关键数据缺失、冲突、证据不足数据恢复后重新评估

所有状态均须记录 state_id、created_at、available_inputs、entry、maintenance、falsification、rule_version。迁移/冷却尚未编码,参数 [待验证]。


9. Agent 预测和验证 vNext

当前修复后的结果:结构化有效样本 0;方向覆盖率 0%;命中率不可计算。旧“100%/连续21次”已废止。裸“观望/等待/谨慎”在 validate_prediction.py 中返回 未覆盖;例如:

validate("观望中", 4353.15, 4382.25)       -> 未覆盖
validate("观望 ±0.30%", 4353.15, 4382.25) -> 证伪

必需日志:prediction_id、created_at、forecast_horizon、asset、reference_price、direction、expected_return_interval、confidence、trigger_condition、falsification_condition、data_status、model_version、user_or_agent、adopted_or_not。

评估必须报告覆盖率、方向/区间命中、误差、Brier、校准、重大错误率、数据状态分层及中性/动量/随机基准。没有样本不能计算百分比。


10. 四因子重构

因子修复后处置
宏观保留;DXY重构和TIPS滞后/单源限制必须显式标注
情绪保留;VIX与L0-2重叠,不能重复计分
价格与L1合并;只做时机否决和L4证伪,不重复加分
周期降为实验因子;约3个月数据不足以证明季节性

40/25/20/15 权重仍是 [待验证] 主观先验。必须经过因子移除、置换、滚动样本外、基准和成本压力测试才能升级;不能把价格上涨直接归因于任一因子正确。


11. 回测与实验协议

继续采用时间切分、固定样本外、滚动前推,不随机打乱时间。必须纳入点差、滑点、费用、跳空和流动性;明确黄金价格、指数价格、收益率代理不可混为同一回报。

修复后 recompute2 的回放显示:黄金 σ约 1.65%,2.5σ约4.13%,3σ约4.95%;09-01黄金 −4.59%触发2.5σ人工复核但未达3σ;固定 L0 0/19。历史 50/57、24/26、15/22 仍不可作为优势证明,原始计数/成本/样本外证据不足,p 值约 0.50/0.58/0.65。

失败判据:样本外不超过简单基准、成本后优势消失、参数高度敏感、缺数据错误绿标、状态不可重放,均不得升级模型。


12. 代码和自动化整改

已完成

  • 发布硬闸门、失败占位、返回码传播;
  • JSON/HTML/CSV响应校验;
  • panel/latest/manifest 原子写;
  • run 级 raw/manifest/provenance;
  • 交易日过滤、fill_method=None;
  • recompute4兼容和空样本保护;
  • 10项最小安全测试;
  • MOC/Agent状态降级;
  • A/B/C不可判定和模板安全更新。

下一批

增加并发锁、磁盘中断/回滚测试、真实断网故障注入、配置 hash、全量 Content-Type 校验、路径参数化、CI/pre-publish、run 保留策略及 normalized 长表。

测试命令:

python3 -m compileall -q scripts tests
python3 -m unittest discover -s tests -v
python3 scripts/fetch.py

13. 文件级处置表

类别文件处置
权威 SSOT框架/数据口径定义.md保留;变更须版本化
当前规则框架/终极决策框架.md、四因子文档、使用指南保留;已统一不可判定,继续清理旧参数
生产管线scripts/dkfetch.py、dkpanel.py、dkanalysis.py、fetch.py保留并测试;补锁/路径/配置 hash
审计重算recompute2/3/4.py保留;参数化并继续测试
预测验证validate_prediction.py保留;接入结构化日志
当前复盘复盘/2026-*保留机械重建;无预测证据不补造
Agent状态页复盘/Agent预测系统·状态总览.md保留为 legacy 当前废止页
历史记录复盘/历史原始记录/、长期记忆旧页只读归档,禁止当前统计引用
证据包audit_evidence/冻结,不改写
运行证据数据/runs/保留;待制定保留策略
缓存scripts/__pycache__/可再生;不作证据

不得在没有引用扫描、备份和路径映射时删除、重命名或移动文件。


14. 当前可复制模板

---
date: YYYY-MM-DD
run_id:
data_status: verified/partial/missing/invalid
---
# YYYY-MM-DD 收盘复盘

## 事前预测
prediction_id: / created_at: / model_version:
方向:up/down/neutral-band/uncovered
参考价与区间:
触发条件:
证伪条件:

## 真实数据与证据
| metric | value | unit | asof | status | raw_sha256 |

## L0–L1
逐项填写实测、阈值、状态、滞后和最弱输入。

## L2–L4
状态:A/B/C/不可判定;填写进入、维持、反证、价格支持/证伪。

## 结论
错误归因、风险动作规则、未完成事项;不得写个人账户买卖指令。

数据缺失占位必须写:本日禁止派生收益、L0-L4数值结论、A/B/C方向结论和绿标发布。


15. 30/60/90 天路线图

时段负责人输出验收
0–30天数据/平台normalized、配置 hash、故障注入任一错误源或重算失败都不发布
0–30天知识库当前入口/归档/链接清单当前入口无误导绿标
31–60天统计审计≥3年 L0/L1/L2 样本外预先固定参数,基准和 CI 合格
31–60天风控设计债券总回报、渐进降档代理腿不升级为真实回报
61–90天预测评估prediction log、Brier、校准样本外超过基准后才允许“有效”

失败时保持当前规则版本,不升级;恢复上一 PASS run,不删除失败证据。


16. 最小修复包状态

本轮已完成五项:发布硬闸门;缺失/假日/前值填充修复;recompute4与测试;run provenance与原子写;Agent/MOC伪绿标清除及不可判定状态。

仍需五项:normalized逐值 provenance;债券总回报;结构化预测日志;长期样本外标定;历史链接和旧指标完整隔离。


17. 红队报告(修复后)

最可能再次发生的失败:

  1. 新源返回结构变化但仅通过当前表头检查;
  2. 运行期间进程中断导致跨文件版本不一致;
  3. --force、手工模板或其他旧脚本覆盖当前视图;
  4. 历史归档 100% 数字被误读为当前表现;
  5. 用短窗口相关性或“新叙事”重新制造 C 模式。

最可能虚假的绿标:G1 PASS 被误读为所有风险数据齐全;L0“降级”被简化成“正常”;单源 verified 被误读为独立双源;文件存在被误读为预测日志完整。

继续攻击项:缺源、错一天、假日、HTML、错误单位、VIX滞后、债券代理、空预测、重复日期、旧副本路径、并发发布、磁盘中断、配置版本漂移。


18. 未完成事项

[未能复核]

历史 2021–2025 L0 全量回放、债券总回报、账户执行、历史事前预测创建时间与事件因果证据。

[待验证]

L0 0.8/2.0%、VIX +15/+50%、2.5σ/3σ;Agent ±0.30%;四因子40/25/20/15;A/B/C确认/维持/冷却期;任何风险预算、仓位、回撤和止损参数。

[冲突/待清理]

历史归档仍有旧 100% 等数字;约100个链接目标未解析;生产脚本与冻结证据脚本 hash 不同;部分旧文档仍含研究时代的能力宣称,但当前入口已降级。

[不可判定]

Agent是否有信息量、四因子是否有增量贡献、A/B/C真实主导状态、L0长期充分性。


最终裁决

  • 当前系统是否适合产生真实决策输入:仅部分。 适合作为经过闸门保护的人工复核数据和规则输入;不适合作为自动交易或自动仓位决策的唯一依据。
  • 当前最危险的单点故障: 已从“失败仍发布绿标”转为“债券代理/预测日志缺失造成的风险判断盲区”。
  • 当前最需要立即停止的行为: 使用旧 Agent 100%/连续21次及裸观望命中率;把部分可评估写成完整风控。
  • 当前最值得保留的核心能力: 真实源、G1/G8、机械 L0/L1、缺失不填充、run provenance、可回滚发布。
  • 五项最小修复: 本轮已完成发布硬闸门、计算安全、重算测试、run 证据、状态/预测降级;下一阶段补 normalized、债券腿、prediction log、样本外标定和归档隔离。
  • 尚未解决的关键不确定性: 债券总回报、长期阈值、A/B/C因果、Agent样本、因子增量和组合风险。
  • 下一次复核最小证据: 新 run 的原始响应、manifest/provenance、脚本 hash、测试全绿、结构化事前预测日志、无缺失填充面板、更新后的 MOC 与快照。
  • 本报告中所有尚未验证的参数: L0阈值、2.5σ/3σ、±0.30%中性区间、四因子权重、状态确认/冷却期、仓位/回撤/止损系数,均仍标 [待验证]。