系统优化提示词 v5.0 · 架构与驾驶舱统一管理
先跑一次基线审计并记录数字(脚本见 §附录 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 证据。
- 数据零丢失。 任何删除/移动前必须
cp到备份目录;数据/目录只允许新增,不允许原地覆盖已有数据文件;复盘/历史原始记录/是冻结归档区,只允许"修链接",不允许删文件。
- 幂等 + 可回滚。 每个阶段独立执行、独立可回滚;阶段之间打快照。
- 只动"导航层"。 本次允许触碰的对象 = Markdown 文档的链接、索引、章节结构、表格排版、frontmatter、版本记录、目录归属、文件名;以及新增只读的检查脚本。
- 中文/空格/点号路径处理规则(血泪坑,已实测):
- 文件名含点号(如
v4.3、2026-09-23)时 禁止用Path.with_suffix()——会把.3当后缀截断。判断目标是否存在请用Path(str(p) + ".md").exists()。 - 含空格/中文/全角括号的路径,shell 里一律加引号;不要用
xargs裸传。
- 网络约束(施工时若需抓取):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 |
复盘/ 直属 .md | 92 |
复盘/历史原始记录/ .md | 44 |
| 收盘复盘 / 快照 / 盘前简报 | 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 收盘数据快照 |
| A5 | 8 月中旬之后新增复盘/快照/简报零入链 | 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 后缀/占位符错误 | ~10 | optimization/系统审计与重构报告_2026-09-11_v2.md、框架/标准化复盘生成流程.md、optimization/每日发布运行提示词_2026-09-23.md | wiki 链接写成 [[xxx.md]](Obsidian 中反响不佳)、[[目标文件名]]、[[路径]] 模板占位符残留 | 去掉 .md 后缀;替换占位符为真实链接或就地标明"模板占位符,使用时替换" |
注意(非死链):驾驶舱中
[[optimization/xxx\|别名]]形式的表格内转义竖线是 Obsidian 标准写法,不要误改。修复前先跑严格扫描脚本(附录 B)确认真实死链清单,避免误伤。
C. 孤儿文件 32 个(零入链)——必须全部接入
| 分组 | 数量 | 文件 |
|---|---|---|
| 复盘快照/简报/备忘 | 13 | 2026-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 证据包 | 5 | index、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 最新口径需核对一致 |
| E5 | 00 驾驶舱 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 项):
- 严格死链数 == 0
- 孤儿文件数 == 0
复盘/全量文件是否都被驾驶舱(AUTO:INDEX 或全量索引)覆盖- 驾驶舱 §五/§七/头部 的"最新"日期 ==
复盘/中实际最新文件日期 - 驾驶舱 frontmatter
更新时间== 正文头部更新时间 == 页脚更新时间(三处一致) - 驾驶舱版本号在 §九 中单调倒序
- 各目录文件数与「全库文件地图」中声明的数量一致
- 大纲文档(使用指南/图谱导航/图谱配置/数据库说明)
复核日期在 30 天内 复盘/历史原始记录索引.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/重算证据)
七、禁止事项(再次强调)
- ✘ 修改任何 L0–L4 / A-B-C / 三杀 / Regime / Brier / paper 下单与止损止盈 / G1,G8 闸门的判定逻辑与阈值
- ✘ 修改
框架/数据口径定义.md的口径条款(只可改排版/链接) - ✘ 删除
数据/下任何文件(含runs/、predictions/、paper/、备份) - ✘ 删除
复盘/历史原始记录/任何文件(冻结区,只修链接) - ✘ 把
doc_sync_check.py/ 新脚本改成阻断发布 - ✘ 在无备份的情况下移动/改名/删除文件
- ✘ 使用
Path.with_suffix()处理含点号的日期文件名 - ✘ 加
.md后缀写 wiki 链接(Obsidian 风格不带后缀) - ✘ 重构
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 各自的改动文件在报告中列明,可单独撤销。
九、交付物清单
- 重构后的
00 驾驶舱(投资MOC).md(升 v5.0 统一管理版) - 新增/更新:
scripts/moc_index.py、scripts/arch_check.py(或说明改用手工方案) - 更新后的大纲文档 ×4(使用指南 / 图谱导航图 / 图谱配置指南 / 数据库说明)
回测/README.md(含重命名映射表)optimization/evidence/死链清单_<日期>.json、孤儿清单optimization/系统架构优化报告_2026-09-23_v5.0.md- 更新后的
optimization/每日发布运行提示词_2026-09-23.md - (可选)技能
duckerry-daily-review升 1.3.0
附录 A · 完整问题索引(本次实测,可直接当 checklist)
| ID | 问题 | 位置 | 阶段 |
|---|---|---|---|
| A1 | 复盘 136 份 vs 驾驶舱可见 10 份 | 驾驶舱 §五/§七 | 1 |
| A2 | 周度汇总链全为占位符 | 驾驶舱 §七 | 1 |
| A3 | 机械数据总汇只列 2 份 | 驾驶舱 §五 | 1 |
| A4 | "最新"标签落后至 09-11 | 驾驶舱 §七 | 1 |
| A5 | 13 个最新复盘/快照/简报零入链 | 复盘/ | 1,3 |
| A6 | 三套索引口径不一 | 驾驶舱 / 框架复盘.md / 归档索引 | 1,3 |
| A7 | §六 链接指错目录 | 驾驶舱 §六 | 2 |
| B1 | 缺 复盘/ 前缀 ×20 | 图谱导航图 | 2 |
| B2 | 归档区日记链缺前缀 ×38 | 历史原始记录 | 2 |
| B3 | 周汇总文件不存在 ×14 | 历史原始记录 | 2 |
| B4 | 目标被移动/改名 ×10 | 框架复盘.md / 数据勘误报告 | 2 |
| B5 | 目标不存在 ×3 | 框架复盘.md | 2 |
| B6 | .md 后缀 / 占位符 ×10 | optimization / 标准化流程 | 2 |
| C | 孤儿 32 | 全库 | 3 |
| D1 | 顶层散落日期文档 ×2 | 根目录 | 3 |
| D2 | 框架/ 混放模板 | 框架/ | 3 |
| D3 | 回测/ 无语义命名 ×5 | 回测/ | 3 |
| D4 | 删除清单 json 在数据根 | 数据/ | 3 |
| D5 | 索引职责不清 | 全库 | 3 |
| D6 | runs/ 无限增长无策略说明 | 数据/runs | 3 |
| E1 | 使用指南结构树过时 | 框架/使用指南.md | 4 |
| E2 | 图谱导航图 08-19 未更新 | 图谱导航图.md | 4 |
| E3 | 图谱配置指南统计过时 | 图谱配置指南.md | 4 |
| E4 | 数据库说明统计截至 09-13 | 数据库说明.md | 4 |
| E5 | 驾驶舱多处手工日期易漂移 | 驾驶舱 | 4,5 |
| F | 版本记录编号不单调 | 驾驶舱 §九 | 4,6 |
| G1 | §八 图谱 ASCII 过时 | 驾驶舱 §八 | 4 |
| G2 | 框架/复盘.md 清单缺最新且含死链 | 框架/复盘.md | 2,3 |
| G3 | 归档索引数量需复核 | 历史原始记录索引.md | 5 |
| 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 · 本提示词本身不动任何核心逻辑,仅指导导航层重构。*