框架

系统优化提示词 v5.0 · 架构与驾驶舱统一管理

先跑一次基线审计并记录数字(脚本见 §附录 B,本次已实测):

optimization · 资产·机制 · optimization/提示词/系统优化提示词_2026-09-23_v5.0_架构与驾驶舱统一管理.md · 30814 B

系统优化提示词 v5.0 · 架构与驾驶舱统一管理

用途:把本文件整段粘贴到新对话,即可驱动一次只动架构、不动逻辑的仓库重构。

一句话目标:让 00 驾驶舱(投资MOC) 从"部分手工维护的展示页"升级为全库唯一入口与统一管理器——所有文件都能从驾驶舱找到、所有新文件都自动被登记、所有大纲性文档不再落后于版本迭代。

前置:先读 框架/数据口径定义 与 optimization/系统架构优化报告_2026-09-23.md,了解现行口径与架构。


〇、目标(3 条,逐条可验收)

#目标验收口径
G1驾驶舱成为全库唯一入口驾驶舱内可一键到达:全部 74 份收盘复盘、8 份收盘数据快照、4 份盘前简报、全部框架/资产/因子/概念页、全部 optimization 报告与 audit_evidence 证据包;孤儿文件 = 0
G2断链清零、分类收敛严格模式(Obsidian 解析口径)死链 75 → 0;顶层散落文档归类;目录职责单一、命名可推断
G3大纲性内容随版本自动同步使用指南/图谱导航/图谱配置/数据库说明/驾驶舱版本记录等"大纲文档"不再落后;建立可校验的同步机制,而非靠记忆

一、铁律(红线 · 违反即回滚重做)

  • 不改核心逻辑。 禁止改动、也禁止"顺手优化"以下文件的计算/判定/信号/阈值部分:
  • scripts/fetch.py、dkfetch.py、dkpanel.py、dkanalysis.py、regime_hybrid.py、brier_calibration.py、paper_engine.py、predict_regime_conditional.py
  • L0–L4 断路器、A/B/C 模式判定、三杀口径、G1/G8 闸门、Regime 判定、Brier 口径、模拟盘下单/止损止盈规则
  • 框架/数据口径定义.md 的任何口径条款(只允许改排版与链接,不允许改"单位/实际利率/交易日/动量/验证率/可信度"的定义)

允许改的只有:这些文件里的文档字符串、注释排版、日志文案格式、指向失效路径的链接。改动必须"输出逐字节不变或仅文案变化",并在报告中给出 before/after 证据。

  1. 数据零丢失。 任何删除/移动前必须 cp 到备份目录;数据/ 目录只允许新增,不允许原地覆盖已有数据文件;复盘/历史原始记录/ 是冻结归档区,只允许"修链接",不允许删文件。
  1. 幂等 + 可回滚。 每个阶段独立执行、独立可回滚;阶段之间打快照。
  1. 只动"导航层"。 本次允许触碰的对象 = Markdown 文档的链接、索引、章节结构、表格排版、frontmatter、版本记录、目录归属、文件名;以及新增只读的检查脚本。
  • 中文/空格/点号路径处理规则(血泪坑,已实测):
  • 文件名含点号(如 v4.3、2026-09-23)时 禁止用 Path.with_suffix()——会把 .3 当后缀截断。判断目标是否存在请用 Path(str(p) + ".md").exists()。
  • 含空格/中文/全角括号的路径,shell 里一律加引号;不要用 xargs 裸传。
  1. 网络约束(施工时若需抓取):shell curl/requests 走 HTTPS_PROXY 会被拒(ProxyError);唯一可用通道是 minis-browser-use fetch,其落盘名为秒级时间戳、连续抓取会互相覆盖。本次任务理论上不需要联网。

二、阶段 0 · 备份与基线(强制第一步)

cd /var/minis/mounts/DUCKERRY_Warehouse
BK=/var/minis/shared/backup/DUCKERRY_Warehouse_pre_v5_$(date +%Y%m%d_%H%M%S)
mkdir -p "$BK" && tar -cf - --exclude='.obsidian' --exclude='__pycache__' . | (cd "$BK" && tar -xf -)
echo "备份完成: $BK"

先跑一次基线审计并记录数字(脚本见 §附录 B,本次已实测):

基线指标当前值(2026-09-23 实测)
文档层 .md 文件总数(排除 .obsidian/scripts/tests/数据)191
全库 wiki 出链总数658
严格模式死链75
孤儿文件(零入链)32
复盘/ 直属 .md92
复盘/历史原始记录/ .md44
收盘复盘 / 快照 / 盘前简报74 / 8 / 4
驾驶舱实际链接的复盘类文件10

目标是 死链 0 / 孤儿 0;文件总数只增不减(除明确冗余的占位文件,且须备份)。


三、已确认问题清单(本次审计实测证据,逐条都要处理)

A. 驾驶舱"统一管理"失效(核心问题)

编号问题证据
A1复盘区规模与驾驶舱可见度严重不匹配复盘/ 有 136 个 md(直属 92 + 历史原始记录 44),驾驶舱仅链接 10 个
A2§七「周度汇总链」是未替换的占位符5 行分别写"6月 / 7月W1 / 7月W2 / 7月W3 / 8月",全部指向同一个 [[复盘/2026-06/2026-06-01 收盘复盘]]
A3§五「机械数据总汇」只列 2 个文件仅 2026-06-01 与 2026-09-11,中间 72 份收盘复盘完全不可见
A4§七「重点复盘」标签落伍「最新」仍标 09-11,实际最新为 2026-09-18 收盘复盘 与 2026-09-22 收盘数据快照
A58 月中旬之后新增复盘/快照/简报零入链2026-09-11 / 09-14 / 09-15 / 09-16 / 09-17 / 09-18 / 09-21 的 8 份快照 + 4 份盘前简报 + 09-19 非交易日备忘,共 13 个孤儿
A6三套索引并存、口径互不一致00 驾驶舱(投资MOC)§七、框架/复盘.md(复盘索引,列到 09-18)、复盘/历史原始记录索引.md(列 44 份归档)。三者职责重叠、覆盖范围不同、无一方完整
A7驾驶舱 §六 链接指向错误目录[[复盘/2026-08-16 非交易日备忘]] → 实际文件在 复盘/历史原始记录/2026-08-16 非交易日备忘.md

要求的解法(推荐"自动区块"方案,根治 A1/A3/A5 的复发): 在驾驶舱 §七 中新增一对标记区块,形如:

<!-- AUTO:INDEX:BEGIN 由 scripts/moc_index.py 自动生成,手工修改会被覆盖 -->
### 全量复盘索引(自动生成)
(按 月 → 日 分组的全量链接;含 收盘复盘 / 收盘数据快照 / 盘前简报 / 非交易日备忘 四类徽章)
<!-- AUTO:INDEX:END -->

并新增只读脚本 scripts/moc_index.py:扫描 复盘/(含子目录)→ 分类 → 重写该区块。

  • 该脚本不参与 L0-L4 / 信号 / 发布判据,纯导航工具,失败不阻断任何流程。
  • 在 fetch.py 发布成功后可选追加一次调用(与现有 doc_sync_check.py 并列,只告警不阻断);若判断改动 fetch.py 风险偏高,则改为"每次发布后手动跑一次 python3 scripts/moc_index.py",并在驾驶舱与交接提示词中写明该动作。二者择一,必须在报告里说明选了哪种。
  • 若坚持不用脚本:则必须手工把 74 份收盘复盘 + 8 份快照 + 4 份简报 + 1 份备忘全部列入驾驶舱,并在交接提示词中新增"新增复盘后必须登记"的强制步骤。任何方案都必须满足 G1。

B. 断链 75 处(严格模式实测,按成因分 6 类)

类别数量典型位置症状修复策略
B1 缺目录前缀~20图谱导航图.md[[2026-06-01 收盘复盘]] 缺 复盘/ 前缀统一改为 复盘/<原名>
B2 缺目录前缀(归档区)~38复盘/历史原始记录/*.md相邻日记链 [[2026-06-22 收盘复盘]]、[[2026-06-29 收盘复盘]] 未加 复盘/ 前缀统一加 复盘/ 前缀;若目标是归档文件,则加 复盘/历史原始记录/
B3 周汇总文件从未创建14历史原始记录/2026-06-2x~07-1x.md[[2026-06-W4 汇总]] [[2026-07-W1 汇总]] [[2026-07-W3 汇总]]二选一并说明:①创建对应周汇总;②统一改指 [[复盘/2026-06-01—2026-09-11 数据复盘总汇·校正版]];③保留但标注为"已废弃规划"
B4 目标文件被移动/改名~10框架/复盘.md、数据勘误报告_2026-09-09.md[[复盘/2026-08-22 非交易日备忘]]、[[复盘/2026-06-19 非交易日备忘]]、[[复盘/优化版复盘模板.md]]改指真实位置:复盘/历史原始记录/…、框架/排版优化模板
B5 目标文件不存在3框架/复盘.md[[复盘/2026-09-15 收盘复盘]]、[[复盘/2026-09-17 收盘复盘]](当日只有快照)改指当日 收盘数据快照,或从索引移除
B6 后缀/占位符错误~10optimization/系统审计与重构报告_2026-09-11_v2.md、框架/标准化复盘生成流程.md、optimization/每日发布运行提示词_2026-09-23.mdwiki 链接写成 [[xxx.md]](Obsidian 中反响不佳)、[[目标文件名]]、[[路径]] 模板占位符残留去掉 .md 后缀;替换占位符为真实链接或就地标明"模板占位符,使用时替换"

注意(非死链):驾驶舱中 [[optimization/xxx\|别名]] 形式的表格内转义竖线是 Obsidian 标准写法,不要误改。修复前先跑严格扫描脚本(附录 B)确认真实死链清单,避免误伤。

C. 孤儿文件 32 个(零入链)——必须全部接入

分组数量文件
复盘快照/简报/备忘132026-09-11 收盘数据快照、09-14 快照、09-14 盘前简报、09-15 快照、09-16 快照、09-16 盘前简报、09-17 快照、09-18 快照、09-18 盘前简报、09-19 非交易日备忘、09-21 快照、09-21 盘前简报(+ 由 A5 连带)
optimization 报告/提示词13优化总结_20260816、修复记录_2026-09-13、全库修复报告_2026-09-12、参数优化建议_20260816、性能监控报告_20260816、未完成任务交接提示词_2026-09-21、模式性能评估_20260816、每日复盘与开盘日自动化提示词_v1.0、系统优化提示词_v4.3、系统优化提示词_v2.0、系统审计与重构报告_2026-09-11、…_v2、…_2026-09-13_v2.1修复后
audit_evidence 证据包5index、logs/index、recompute_map、redteam_independent、self_check
其他1图谱配置指南.md、框架/排版优化模板.md

策略:不必逐个塞进驾驶舱正文。正确做法是——驾驶舱新增一个「全库文件地图」章节,按目录列出"该目录所有文件 + 用途一句话 + 最新版本/日期",让每个文件都至少有一条入链。optimization 与 audit_evidence 用分组表列出全部(optimization 现有 18 份,audit_evidence 现有 8 份)。

D. 文件分类问题

编号问题建议
D1顶层散落 3 份带日期文档:数据勘误报告_2026-09-09.md、真实数据重估_2026-09-09.md、数据库说明.md前两份是"数据治理"性质 → 移入新建 复盘/数据治理/ 或 文档/(移前先全库扫描引用并同步改链接);数据库说明.md 作为常读文档可留顶层
D2框架/ 混放"框架类"与"模板类"排版优化模板.md、标准化复盘生成流程.md 属模板 → 移入新建 框架/模板/(或 模板/);同样先扫引用
D3回测/ 内 5 个无语义文件:文本.txt、文本 2.txt~文本 5.txt不改内容,先读取首行/标题推断主题,重命名为可推断名(如 回测_<主题>_<日期>.txt),并保留原名 → 新名映射表写进 回测/README.md
D4数据/删除失效文件清单_20260913_184656.json 混在数据根目录移入 数据/logs/ 或 optimization/evidence/;纯元数据不入数据根
D5三个索引职责不清(见 A6)明确分工:驾驶舱 = 唯一总入口;框架/复盘.md 降级为"复盘索引(含口径说明)"或直接并入驾驶舱;复盘/历史原始记录索引.md 保留为归档区专用索引
D6数据/runs/ 已累积 62 个 run 目录,无限增长本次不删任何 run(数据红线)。仅在 数据库说明.md 中补充"保留策略:run 目录只增不删,如需清理另开任务",并把最新 run 号写进驾驶舱

E. 大纲性内容陈旧("随版本迭代没来得及更新")

编号文件陈旧点
E1框架/使用指南.md"文件结构"树里仍写 logs/ 在根目录(实际已并入 数据/logs/)、复盘/2026-08-16 非交易日备忘.md 重复列两行、optimization/ 只列 20260816 的 4 份旧文件(实际 18 份);开头还写"自动化脚本已停用"
E2图谱导航图.md更新时间: 2026-08-19;"时间主线 06-19 → … → 07-21" 早已过时(现覆盖到 09-22);第二层"日复盘 ──▶ 周汇总"的周汇总根本不存在(见 B3)
E3图谱配置指南.md更新时间: 2026-08-19;"9 个超级枢纽 / 25+ 份复盘 / 41 条时间主干 / 162 条刺猬边"等统计基于 8 月,需按当前 136 份重算(或标注"截至 08-19")
E4数据库说明.md统计截至: 2026-09-13(v3);数据源表已含 SPX/NDX,但 VIX/DXY 可信度标签与 latest.json 最新口径需核对一致
E500 驾驶舱 frontmatter/头部/§五/§七版本行与日期行多处手工维护、易漂移(doc_sync_check.py 已能抓 part,但覆盖不足)

策略:每个大纲文档补一个 frontmatter 字段 复核日期: 与正文"本节数据截至 …"字样;并把能机械核对的项(文件数、交易日数、最新复盘日期、目录清单)纳入 §阶段 5 的检查脚本。

F. 版本记录编号错乱

驾驶舱 §九 现有顺序:v4.3 → v4.2 → v4.1 → v4.0 → v3.0 → v3.2 → v3.1 → v2.0 → v1.0。 → v3.0 排在 v3.2/v3.1 之前,编号不单调。改为按版本号倒序(v4.3…v1.0),并保留所有历史条目(不许删 v3.1 的"算术错误"勘误记录)。

G. 其他(本次发现,一并处理)

  • G1 驾驶舱 §八「关系图谱」的 ASCII 示意仍写 "06-19 → … → 07-21",与 E2 同源,同步更新。
  • G2 框架/复盘.md 的标题写"(校正版)",但它的清单缺 09-16/09-18 等最新复盘,且含 3 条死链 → 需重生成或并入驾驶舱。
  • G3 复盘/历史原始记录索引.md 自称"文件数量:44",需与实际 44 复核(防新增归档后漂移)。
  • G4 缺乏"新文件登记"机制 → 这是 A5 反复发生的根因。必须在交接提示词中固化:"每次生成新复盘/快照/简报,必须跑 moc_index.py(或手动登记)"。

四、执行阶段(Phase 1–6,逐阶段验收)

总体原则:先建索引 → 再清断链 → 再收分类 → 最后同步大纲。顺序不可颠倒(分类移动会产生新断链,必须晚于断链修复之后再做一次回归扫描)。

Phase 1 · 驾驶舱统一管理重构(核心,占 50% 工作量)

1.1 新建「全库文件地图」章节(建议插在 §〇 之后、§一 之前,编号 §〇·五) 按目录逐一列出,每个文件至少一条链接:

  • 框架/(11 份)|资产/(6)|因子/(4)|概念/(4)|回测/(8,含 README)|复盘/(分类索引)|optimization/(18)|audit_evidence/(8)|顶层文档(6)
  • 每行格式:[[链接]] | 一句话用途 | 最新版本/日期 | 状态徽章
  • optimization 与 audit_evidence 必须列全(这是当前孤儿的主要聚集地)

1.2 新增自动索引区块 AUTO:INDEX(见 §三·A 的解法),或在报告中说明改用手工登记方案。

1.3 重写 §七 复盘总览,改为三层结构:

## 七、复盘总览
### 7.1 最新(自动更新)
(最新收盘复盘 / 最新快照 / 最新盘前简报 —— 各 1 行)
### 7.2 全量索引(AUTO:INDEX 区块,按 月 → 日)
(74 收盘复盘 + 8 快照 + 4 简报 + 1 备忘,全量,带类型徽章)
### 7.3 里程碑 / 重点
(极端日、口径切换日、总汇、归档索引 —— 各 1 行,注明"为什么重要")
### 7.4 归档区
[[复盘/历史原始记录索引]](44 份冻结归档,禁止作为决策输入)

1.4 修 §五「机械数据总汇」:删除只列 2 个文件的写法,改为指向 §7.2 全量索引;或改为"按月的复盘数量统计表"。

1.5 修 §〇·五 之后所有含"最新/截至"字样的行**,统一改为动态表述或明确标注日期。

验收:驾驶舱内链接可达的复盘类文件数 = 87(74+8+4+1);复盘/ 归档区 44 份全部可经 §7.4 到达。

Phase 2 · 断链清零

2.1 跑严格扫描脚本(附录 B),导出死链清单为 optimization/evidence/死链清单_<日期>.json。 2.2 按 §三·B 的 6 类逐类修复;每类修完立刻重扫,确认该类归零。 2.3 B3(周汇总)必须做出决策并写明理由——推荐改指总汇 + 在 图谱导航图.md 中删除"周汇总层"描述(因为该层实际不存在)。 2.4 保留 \| 转义链接不动。

验收:严格扫描死链 0;报告中附"修复前 75 → 修复后 0"的对照清单。

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

3.1 按 §三·D 执行 D1–D6;每次移动前:

grep -rn "旧路径关键字" --include="*.md" . | grep -v "^./.obsidian"   # 先扫引用
cp -r 源 备份路径                                                      # 再备份
mv 源 目标 && 全库 sed 或逐文件 file_edit 改链接                        # 后移动+改链

3.2 重跑严格扫描 + 孤儿扫描,死链必须仍为 0(移动是最容易产生新断链的环节)。 3.3 回测/ 重命名后生成 回测/README.md(含原名→新名映射 + 每份文件一句话摘要)。 3.4 驾驶舱「全库文件地图」同步更新目录列表与数量。

验收:孤儿 0;文件总数 = 基线 191 + 新增(新增 README/证据清单等),不减。

Phase 4 · 大纲同步

4.1 框架/使用指南.md:重写"文件结构"树为当前真实结构(顶层 11 目录 + 根文档),修正 logs/ 位置、去重复行、把 optimization 说明改为"18 份,见驾驶舱工具箱"。开头"自动化脚本已停用"改为现状描述(脚本已恢复且为发布主线)。 4.2 图谱导航图.md:更新 更新时间;重写"时间主线"范围(→ 09-22);删除或改写"周汇总层";补"归档区"与"快照/简报"层说明。 4.3 图谱配置指南.md:更新 更新时间;所有统计数字改为动态描述或标注"截至 <日期>,n=<数字>"(如"枢纽被 N 份复盘指向",N 由脚本算出)。 4.4 数据库说明.md:统计截至 改为当前;核对数据源表与 数据/latest.json 的可信度标签一致;补 run 目录保留策略(见 D6)。 4.5 所有大纲文档新增 frontmatter 复核日期: 2026-09-23。

验收:5 份大纲文档中没有指向已不存在路径的描述;所有硬编码统计数字都有"截至日期"。

Phase 5 · 架构自检脚本(新增,只读)

新增 scripts/arch_check.py(与 doc_sync_check.py 并列,只读、只告警、不阻断、不参与任何发布判据):

python3 scripts/arch_check.py            # 人类可读
python3 scripts/arch_check.py --json     # 机器可读(可回写 latest.json.arch 或独立文件)

检查项(≥8 项):

  1. 严格死链数 == 0
  2. 孤儿文件数 == 0
  3. 复盘/ 全量文件是否都被驾驶舱(AUTO:INDEX 或全量索引)覆盖
  4. 驾驶舱 §五/§七/头部 的"最新"日期 == 复盘/ 中实际最新文件日期
  5. 驾驶舱 frontmatter 更新时间 == 正文头部更新时间 == 页脚更新时间(三处一致)
  6. 驾驶舱版本号在 §九 中单调倒序
  7. 各目录文件数与「全库文件地图」中声明的数量一致
  8. 大纲文档(使用指南/图谱导航/图谱配置/数据库说明)复核日期 在 30 天内
  9. 复盘/历史原始记录索引.md 声明的数量 == 实际归档数

复用现有 doc_sync_check.py 中"仅告警不阻断"的输出风格;不要把它改成阻断式。

验收:脚本首跑输出全部 PASS(或在报告中列出仍未达标项与原因)。

Phase 6 · 验证与交付

6.1 端到端跑一次架构检查 + 现有测试套件(不许因本次改动而失败):

cd /var/minis/mounts/DUCKERRY_Warehouse
python3 scripts/arch_check.py
python3 scripts/doc_sync_check.py
python3 -m pytest tests/test_pipeline.py -q 2>&1 | tail -5   # 若 pytest 不可用,按类分批跑

6.2 生成报告 optimization/系统架构优化报告_2026-09-23_v5.0.md:问题→动作→证据→判据对照表 + 备份路径 + 回滚命令。 6.3 更新 00 驾驶舱:§〇(架构表新增"索引/自检"行)、§九(新增 v5.0 条目,放在 v4.3 之上)、§十(工具箱新增本提示词与报告)、头部/页脚版本行。 6.4 更新交接提示词 optimization/每日发布运行提示词_2026-09-23.md:新增"发布后跑 moc_index.py / arch_check.py"与"新文件登记"强制步骤。 6.5 (可选)更新技能 duckerry-daily-review 到 1.3.0,补 §1.7「驾驶舱索引与架构自检」。


五、驾驶舱目标结构(蓝图,供对照)

00 驾驶舱(投资MOC)
├─ frontmatter(tags/系统版本/更新时间)
├─ 头部状态行(动态:最近发布 target / 面板规模 / 交易日数)
├─ ⚠️ 真实数据重估结论(保留,优先级声明)
├─ §〇   系统架构(管线图 + 分层表 + 版本加固清单)
├─ §〇·五 全库文件地图【新增】        ← 解决"统一管理"
│        按目录 × 全量链接 × 用途 × 状态
├─ AUTO:DATA 最新数据快照(已有,脚本生成)
├─ §一~§四 核心框架 / 资产 / 因子 / 概念
├─ §五   验证追踪(校正版边界 + 机械数据总汇 → 指向 §七)
├─ §六   Agent 系统
├─ §七   复盘总览【重构】
│        7.1 最新 · 7.2 全量索引(AUTO:INDEX) · 7.3 里程碑 · 7.4 归档区
├─ §八   关系图谱导航
├─ §九   版本记录(版本号倒序)
└─ §十   系统优化工具箱(列全 optimization + audit_evidence + 新增自检脚本)

六、验收判据清单(逐项打勾,缺一不可)

  • [ ] P0 备份完成且路径已记录,备份文件数 ≥ 基线
  • [ ] P1 驾驶舱可一键到达全部 74 收盘复盘
  • [ ] P1 驾驶舱可一键到达全部 8 快照 + 4 盘前简报 + 1 非交易日备忘
  • [ ] P1 驾驶舱「全库文件地图」覆盖 8 个目录全部文件
  • [ ] P1 §七 周度汇总链占位符已消除(不再是 5 行同链接)
  • [ ] P1 建立新文件登记机制(脚本或强制步骤),并写入交接提示词
  • [ ] P2 严格死链 = 0(对照清单已附)
  • [ ] P2 B3 周汇总问题已决策并写明理由
  • [ ] P3 孤儿文件 = 0
  • [ ] P3 顶层散落文档已归类(或写明保留理由)
  • [ ] P3 回测/ 文件已重命名且映射表已记录、内容未改
  • [ ] P3 文件总数 ≥ 191(无数据丢失)
  • [ ] P4 使用指南/图谱导航/图谱配置/数据库说明 已同步且无失效路径描述
  • [ ] P4 大纲文档真实数字均标注"截至日期"
  • [ ] P5 scripts/arch_check.py 存在、可跑、输出 9 项检查
  • [ ] P6 现有测试套件未被本次改动破坏
  • [ ] P6 报告 + 驾驶舱 v5.0 版本条目 + 交接提示词更新完成
  • [ ] 红线 核心逻辑文件的计算结果与改动前完全一致(给出 diff/重算证据)

七、禁止事项(再次强调)

  1. ✘ 修改任何 L0–L4 / A-B-C / 三杀 / Regime / Brier / paper 下单与止损止盈 / G1,G8 闸门的判定逻辑与阈值
  2. ✘ 修改 框架/数据口径定义.md 的口径条款(只可改排版/链接)
  3. ✘ 删除 数据/ 下任何文件(含 runs/、predictions/、paper/、备份)
  4. ✘ 删除 复盘/历史原始记录/ 任何文件(冻结区,只修链接)
  5. ✘ 把 doc_sync_check.py / 新脚本改成阻断发布
  6. ✘ 在无备份的情况下移动/改名/删除文件
  7. ✘ 使用 Path.with_suffix() 处理含点号的日期文件名
  8. ✘ 加 .md 后缀写 wiki 链接(Obsidian 风格不带后缀)
  9. ✘ 重构 regime_hybrid.py / paper_engine.py 等代码(本次是文档架构任务,不是代码重构任务)

八、回滚

cd /var/minis/mounts/DUCKERRY_Warehouse
BK=/var/minis/shared/backup/DUCKERRY_Warehouse_pre_v5_<时间戳>
# 回滚(先备份当前状态再覆盖)
diff -rq . "$BK" | head -50      # 先看差异
# 逐文件回滚:cp "$BK/<相对路径>" ./<相对路径>

阶段化回滚优于整体回滚:Phase 1–6 各自的改动文件在报告中列明,可单独撤销。


九、交付物清单

  1. 重构后的 00 驾驶舱(投资MOC).md(升 v5.0 统一管理版)
  2. 新增/更新:scripts/moc_index.py、scripts/arch_check.py(或说明改用手工方案)
  3. 更新后的大纲文档 ×4(使用指南 / 图谱导航图 / 图谱配置指南 / 数据库说明)
  4. 回测/README.md(含重命名映射表)
  5. optimization/evidence/死链清单_<日期>.json、孤儿清单
  6. optimization/系统架构优化报告_2026-09-23_v5.0.md
  7. 更新后的 optimization/每日发布运行提示词_2026-09-23.md
  8. (可选)技能 duckerry-daily-review 升 1.3.0

附录 A · 完整问题索引(本次实测,可直接当 checklist)

ID问题位置阶段
A1复盘 136 份 vs 驾驶舱可见 10 份驾驶舱 §五/§七1
A2周度汇总链全为占位符驾驶舱 §七1
A3机械数据总汇只列 2 份驾驶舱 §五1
A4"最新"标签落后至 09-11驾驶舱 §七1
A513 个最新复盘/快照/简报零入链复盘/1,3
A6三套索引口径不一驾驶舱 / 框架复盘.md / 归档索引1,3
A7§六 链接指错目录驾驶舱 §六2
B1缺 复盘/ 前缀 ×20图谱导航图2
B2归档区日记链缺前缀 ×38历史原始记录2
B3周汇总文件不存在 ×14历史原始记录2
B4目标被移动/改名 ×10框架复盘.md / 数据勘误报告2
B5目标不存在 ×3框架复盘.md2
B6.md 后缀 / 占位符 ×10optimization / 标准化流程2
C孤儿 32全库3
D1顶层散落日期文档 ×2根目录3
D2框架/ 混放模板框架/3
D3回测/ 无语义命名 ×5回测/3
D4删除清单 json 在数据根数据/3
D5索引职责不清全库3
D6runs/ 无限增长无策略说明数据/runs3
E1使用指南结构树过时框架/使用指南.md4
E2图谱导航图 08-19 未更新图谱导航图.md4
E3图谱配置指南统计过时图谱配置指南.md4
E4数据库说明统计截至 09-13数据库说明.md4
E5驾驶舱多处手工日期易漂移驾驶舱4,5
F版本记录编号不单调驾驶舱 §九4,6
G1§八 图谱 ASCII 过时驾驶舱 §八4
G2框架/复盘.md 清单缺最新且含死链框架/复盘.md2,3
G3归档索引数量需复核历史原始记录索引.md5
G4无新文件登记机制(根因)流程1,6

附录 B · 审计脚本(严格模式,本次使用)

# scripts/arch_check.py 的核心扫描逻辑(供施工时复用/扩展)
import os, re, collections
ROOT = "."
LINK = re.compile(r"\[\[([^\]\|#\n]+?)(?:\\?\|[^\]\n]*?)?\]\]")
SKIP = {".obsidian", "scripts", "tests", "数据", "__pycache__"}
mds = []
for dp, dns, fns in os.walk(ROOT):
    dns[:] = [d for d in dns if d not in SKIP]
    for fn in fns:
        if fn.endswith(".md"):
            mds.append(os.path.normpath(os.path.join(dp, fn)))
S = set(mds)
inb, dead = collections.Counter(), []
for p in mds:
    txt = open(p, encoding="utf-8", errors="ignore").read()
    for raw in LINK.findall(txt):
        tg = raw.strip().rstrip("\\")
        if any(c in tg for c in '$={}*"()'):     # 脚本片段误捕
            continue
        cand = [os.path.normpath(os.path.join(os.path.dirname(p), tg + ".md")),
                os.path.normpath(os.path.join(ROOT, tg)) + ".md"]   # 严格:不加 basename 兜底
        hit = next((c for c in cand if os.path.normpath(c) in S), None)
        if hit: inb[os.path.normpath(hit)] += 1
        else:   dead.append((p, tg))
orphans = [p for p in mds if inb[p] == 0]
print("死链:", len(dead), "孤儿:", len(orphans))
for p, t in sorted(set(dead)): print("  ", p, "->", t)

注意:不要给链接解析加"basename 兜底匹配"——那会掩盖 Obsidian 中的真实死链(本次即因此漏掉 [[复盘/2026-08-16 非交易日备忘]] 等到归档区的错误路径)。

附录 C · 施工命令速查

cd /var/minis/mounts/DUCKERRY_Warehouse

# 备份
BK=/var/minis/shared/backup/DUCKERRY_Warehouse_pre_v5_$(date +%Y%m%d_%H%M%S); mkdir -p "$BK"
tar -cf - --exclude='.obsidian' --exclude='__pycache__' . | (cd "$BK" && tar -xf -)

# 移动前扫引用(防新断链)
grep -rn "关键字" --include="*.md" . | grep -v "^./.obsidian"

# 目录清单(写"全库文件地图"用)
for d in 框架 资产 因子 概念 回测 optimization 复盘 audit_evidence; do echo "== $d =="; ls -1 "$d"; done

# 复盘分类计数
ls 复盘/*收盘复盘.md | wc -l ; ls 复盘/*快照*.md | wc -l ; ls 复盘/*盘前简报*.md | wc -l

# 验证
python3 scripts/arch_check.py ; python3 scripts/doc_sync_check.py

*提示词版本 v5.0 · 生成于 2026-09-23 · 本提示词本身不动任何核心逻辑,仅指导导航层重构。*