框架

DUCKERRY_Warehouse 系统架构优化报告 v5.0(2026-09-23)

阶段化回滚(各阶段涉及文件):

optimization · 资产·机制 · optimization/报告/系统架构优化报告_2026-09-23_v5.0.md · 14116 B

DUCKERRY_Warehouse 系统架构优化报告 v5.0(2026-09-23)

任务来源:optimization/提示词/系统优化提示词_2026-09-23_v5.0_架构与驾驶舱统一管理

任务性质:纯导航层重构(链接 / 索引 / 分类 / 排版 / 元数据)——核心逻辑零改动(见 §六 证据)

结论:G1 驾驶舱统一管理 ✔ | G2 死链清零 + 分类收敛 ✔ | G3 大纲随版本同步(可校验)✔


一、判据对照表(§六 验收清单逐项)

判据结果证据
P0 备份完成且路径记录✔/var/minis/shared/backup/DUCKERRY_Warehouse_pre_v5_20260923_135451(761 文件)
P1 驾驶舱可达全部 75 收盘复盘✔§7.2 全量索引(moc_index.py 自动生成)
P1 可达 8 快照 + 4 简报 + 1 备忘✔同上(📸/🌅/🛌 徽章列)
P1 「全库文件地图」覆盖 8 个目录✔§〇·五(顶层4 / 框架9 / 模板2 / 资产6 / 因子4 / 概念4 / 复盘93+44+2 / optimization19 / audit_evidence6 / 回测9)
P1 §七 周度汇总链占位符消除✔5 行同链接已删除;改为 §7.1/7.2(自动)+ 7.3 里程碑 + 7.4 归档
P1 建立新文件登记机制并写入交接提示词✔scripts/moc_index.py + 交接提示词 §1.7
P2 严格死链 = 0✔44 → 0(清单:optimization/evidence/死链与孤儿清单_2026-09-23.json)
P2 B3 周汇总问题已决策并写明理由✔取消周汇总层(见 §四·B3)
P3 孤儿 = 0✔28 → 0
P3 顶层散落文档归类✔2 份治理文档 → 复盘/数据治理/;数据库说明.md 留顶层(常读)
P3 回测/ 重命名 + 映射表 + 内容未改✔回测/README.md 映射表;仅 mv,字节未变
P3 文件总数 ≥ 基线✔193 → 194 md(+README,净增)
P4 4 份大纲文档同步且无失效路径描述✔使用指南 / 图谱导航图 / 图谱配置指南 / 数据库说明
P4 大纲真实数字均标注"截至日期"✔全部标 截至 2026-09-23
P5 scripts/arch_check.py 存在、可跑、9 项✔python3 scripts/arch_check.py → 9 ✔
P6 现有测试套件未被破坏✔见 §六·3
P6 报告 + v5.0 版本条目 + 交接提示词✔本报告 / 驾驶舱 §九 / 每日发布运行提示词_2026-09-23 v5.0
红线 核心逻辑计算结果完全一致✔9 个核心脚本 md5 与备份逐字节相同;口径定义仅 1 行链接变化

二、基线 vs 修复后(可复核)

指标提示词基线(08-19 口径扫描器)本次实测基线(最终严格扫描器)修复后
文档层 .md191193194
内部链接(有效)658(含死链)602702
严格死链75440 ✔
孤儿文件32280 ✔
驾驶舱可达的复盘类文件101088(75+8+4+1)✔

差异说明:提示词基线扫描器未剥离代码块(把文档中的示例 [[...]] 也计入死链),且当时 v5.0 提示词 文件尚未入仓。本次采用最终口径(代码块/行内代码剥离,与 Obsidian 渲染一致;仍不加 basename 兜底),故基线为 44/28。两种口径下目标都是 0,且均已达成。


三、动作清单(按 Phase)

Phase 0 · 备份与基线 ✔

  • 备份 DUCKERRY_Warehouse_pre_v5_20260923_135451(761 文件,排除 .obsidian / __pycache__)。
  • 基线审计(附录 B 逻辑)→ 44 死链 / 28 孤儿,落盘 JSON。

Phase 1 · 驾驶舱统一管理重构 ✔

  1. 新增 §〇·五「全库文件地图」:9 个分组表,逐文件 链接 | 用途 | 状态,optimization(19)与 audit_evidence(6)全部列全——这是孤儿归零的主要手段。
  2. 新增 AUTO:INDEX 自动区块(方案选择见 §四·决策 1):§7.1 最新 + §7.2 全量索引(按月 → 日分组,四类徽章)。
  3. §七 重构为四层:7.1 最新 / 7.2 全量 / 7.3 里程碑(含"为什么重要")/ 7.4 归档区。
  4. §五「机械数据总汇」:删除"只列 2 份",改为按月统计表(06:21 / 07:22 / 08:20 / 09:12+8+4+1)并指向 §7.2。
  5. A7 修正:§六 [[复盘/2026-08-16 非交易日备忘]] → [[复盘/历史原始记录/2026-08-16 非交易日备忘]]。

Phase 2 · 断链清零(44 → 0)✔

类别数量修复方式
B1/B2 缺 复盘/ 前缀(归档日记链)20统一加 复盘/ 前缀(复盘/YYYY-MM-DD 收盘复盘)
B3 周汇总文件不存在14改指全周期总汇(保留别名"(未创建·改指全周期总汇)")
B4 目标被移动(非交易日备忘 → 归档区)11复盘/… → 复盘/历史原始记录/…;框架/复盘.md 整体重写
B5 目标不存在(09-15 / 09-17 无收盘复盘)2改写为口径说明("当日仅产出快照,非缺失"),索引指向快照
B6 非 md 目标被当笔记链接3[[audit_evidence/manifest.json]] → 行内代码 manifest.json;回测 .txt 改 Markdown 链接
A7 §六 指错目录1已修(见 Phase 1·5)

保留项:驾驶舱 [[optimization/xxx\|别名]] 的表格内转义竖线未改动(Obsidian 标准写法)。未加 basename 兜底(会掩盖真实死链)。

Phase 3 · 孤儿归零 + 分类收敛 ✔

  • C 孤儿 28 → 0:主要由 §〇·五 全库文件地图 + §7.2 全量索引(覆盖 13 个最新复盘类文件)+ 工具箱补链完成。
  • D1:数据勘误报告_2026-09-09.md、真实数据重估_2026-09-09.md → 新建 复盘/数据治理/;数据库说明.md 留顶层(活跃参考文档)。全库 12 个文件同步改链。
  • D2:排版优化模板.md、标准化复盘生成流程.md → 新建 框架/模板/(框架 11 → 9 + 模板 2)。
  • D3:回测/ 5 个 文本*.txt + 3 个策略文件重命名为可推断名,新增 回测/README.md(原名→新名映射表 + 结论速查);内容一字未改。
  • D4:数据/删除失效文件清单_20260913_184656.json → 数据/logs/。
  • D5:三索引分工确立——驾驶舱 = 唯一总入口;框架/复盘.md 降级为「口径说明 + 归档入口」(不再维护第三份清单);复盘/历史原始记录索引.md = 归档区专用索引。
  • D6:数据库说明.md 新增「数据目录保留策略」表(runs/ 62 个,只增不删)。

Phase 4 · 大纲同步 ✔

文档改动
框架/使用指南.mdfrontmatter 复核日期;文件结构树重写为真实结构(logs 并入 数据/logs/、去重复行、optimization 19 份、新增 模板/数据治理/audit_evidence);"自动化脚本已停用"→已恢复并成为发布主线;周度汇总标注废弃;ls logs/→ls 数据/logs/
图谱导航图.md更新时间 → 09-23;时间主线范围 → 06-01→09-22(75 节点);删除"周汇总层",写明废弃理由;新增类型层与归档区说明;健康度表全部改为可复核口径
图谱配置指南.md更新时间 → 09-23;统计由"9 枢纽 / 25+ 复盘 / 41 主干 / 162 刺猬边(08-19 口径)"重算为当前值(10 枢纽 / 25–38 指向 / 139 文件 256 条枢纽边)并标注口径来源;视图① 时间线更新
数据库说明.md统计截至 → 09-23;目录结构树重写;VIX/DXY 可信度标签与 latest.json 对齐为 single_source;新增 AGG/TLT 债券腿数据源行;L0 执行说明升级为"含真实债券价格";§四统计与「市场最新状态」表更新到 target 2026-09-22;新增数据保留策略
00 驾驶舱 frontmatter / 头部 / 页脚三处统一 2026-09-23 / v5.0 统一管理版
F 版本记录编号§九 重排为版本号单调倒序(v4.3→v4.2→v4.1→v4.0→v3.2→v3.1→v3.0→v2.0→v1.0),历史条目全部保留(含 v3.1 算术错误勘误)
G1 §八 图谱 ASCII06-19→07-21 已更新为 06-01→09-22 + 类型分层

Phase 5 · 架构自检脚本 ✔

  • 新增 scripts/arch_check.py(只读 / 只告警 / 不阻断发布,与 doc_sync_check.py 并列),9 项检查:
  • 严格死链 == 0 | 2. 孤儿 == 0 | 3. 复盘/ 全量被引用 | 4. §7.1 最新日期 == 实际 | 5. 驾驶舱三处更新时间一致 | 6. §九 版本单调倒序 | 7. 目录文件数 == 地图声明 | 8. 大纲 复核日期 ≤30 天 | 9. 归档索引数量 == 实际(44)
  • 首跑:9/9 全部 PASS。
  • 新增 scripts/moc_index.py(导航层):--check / --stdout 模式;不参与 L0-L4 / 信号 / 发布判据。

Phase 6 · 验证与交付 ✔

  • arch_check.py 9 ✔ | doc_sync_check.py 未改动(逻辑零改动)| 测试套件按类分批跑(见 §六·3)。
  • 交付物:本报告 / 驾驶舱 v5.0 / 2 个新脚本 / 4 份大纲 / 回测/README.md / 证据 JSON / 交接提示词 / 技能 1.3.0。

四、决策记录(必须写明理由的两处)

决策 1 · 自动区块 vs 手工登记 → 选了"自动区块 + 脚本"

  • 理由:手工登记 88 个文件在每次新增复盘后必失效(A5/G4 的根因就是"没有登记机制")。脚本方案使 §7.1/7.2 永远与 复盘/ 实际文件一致。
  • 风险控制:moc_index.py 纯只读扫描 + 只重写 AUTO:INDEX 区块,不参与任何发布判据,失败不阻断;fetch.py 未改动(不改核心逻辑红线),改为发布后手动/交接提示词步骤运行(二者择一中的后者)。
  • 副作用:--force 重渲染快照不会覆盖 AUTO:INDEX(区块由 moc_index 独立维护)。

决策 2 · B3「周汇总」→ 取消该层,统一改指全周期总汇

  • 理由:2026-06-W4 / 07-W1 / 07-W3 汇总 从未创建(14 处死链即由此产生);图谱"第二层 日复盘→周汇总→月级脉络"在设计文档中存在但实际零落地。补建周汇总需要重新写 3 份长文且无任何证据链(当初的设计意图已由"校正版重建"取代),成本高、价值低,且会再引入一套与总汇口径不一的内容。
  • 动作:归档日记 14 处「归属周」→ [[复盘/2026-06-01—2026-09-11 数据复盘总汇·校正版|YYYY-MM-Wx 汇总(未创建·改指全周期总汇)]];图谱导航图.md 明确"该层已废弃";使用指南.md 节奏表对应行加删除线。
  • 可逆:别名保留了原周次标签,未来若补建周汇总,只需改回目标即可。

五、备份与回滚

BK=/var/minis/shared/backup/DUCKERRY_Warehouse_pre_v5_20260923_135451
cd /var/minis/mounts/DUCKERRY_Warehouse
diff -rq . "$BK" | head -50                       # 先看差异
cp "$BK/00 驾驶舱(投资MOC).md" ./               # 逐文件回滚示例

阶段化回滚(各阶段涉及文件):

阶段涉及文件
P100 驾驶舱(投资MOC).md
P2驾驶舱、框架/复盘.md、复盘/历史原始记录/*.md(19)、optimization/系统审计与重构报告_2026-09-11_v2.md
P3驾驶舱、复盘/数据治理/(新增)、框架/模板/(新增)、回测/*(重命名)、数据/logs/、12 个改链文件
P4框架/使用指南.md、图谱导航图.md、图谱配置指南.md、数据库说明.md、驾驶舱 §九/§八
P5scripts/arch_check.py、scripts/moc_index.py(新增,可直接删)

六、红线证据(核心逻辑零改动)

  1. 核心脚本逐字节相同(与备份 md5 对比):fetch.py dkfetch.py dkpanel.py dkanalysis.py regime_hybrid.py brier_calibration.py paper_engine.py predict_regime_conditional.py doc_sync_check.py → 9/9 IDENTICAL。
  2. 口径条款未动:框架/数据口径定义.md 与备份 diff 仅 1 行([[框架/标准化复盘生成流程]] → [[框架/模板/标准化复盘生成流程]]),口径条款零变化。
  3. 测试与自检:python3 scripts/arch_check.py → 9/9 ✔;现有测试按类分批(tests/test_pipeline.py 管线/Paper/BondLeg/DocSync 四组)——本次未触碰任何被测代码,套件结果与 v4.3 一致。
  4. 数据零丢失:数据/ 仅移动 1 个元数据 json(→ logs/);数据/runs/(62)、predictions/、paper/ 未删未改;复盘/历史原始记录/ 44 份只修链接、未删改内容。
  5. 文件总数:193 → 194 md(净增 1:回测/README.md)。

七、遗留与建议

  1. scripts/legacy/*.py(09-13 归档的一键修复脚本)内部仍写有 [[复盘/真实数据重估_2026-09-09]] 等旧路径字符串——它们是归档代码,不参与扫描与运行;若未来重新启用需先改路径。
  2. optimization/ 内 5 份 08-16 时代的评估报告(旧数据口径)仅作留档,已在 §〇·五 标注"当前有效口径以数据口径定义为准"。
  3. 本次未改动 fetch.py:若希望"发布后自动跑 moc_index.py",需改动核心脚本(违反本次红线),故留作交接提示词的手动步骤(§1.7)。如需自动化,建议另开任务。
  4. audit_evidence/data|logs|scripts 三个子目录为证据包(非笔记),未纳入图谱与 §〇·五 逐文件清单。

*报告版本 v5.0 | 生成于 2026-09-23 | 性质:导航层重构(核心逻辑零改动)*