LLM Wiki 完整 lint 记录:OneDrive / FileProvider 状态(2026-05-11)

  • 来源: 本机命令行 lint
  • 日期: 2026-05-11
  • 类型: maintenance / lint report
  • 涉及公司: 全库
  • 涉及主题: LLM Wiki 维护、OneDrive FileProvider、Markdown 链接校验
  • 一句话摘要: 本次完整 lint 已跑完;当前 0 errors,但仍有大量 OneDrive dataless 占位文件被跳过,因此结果代表“可读取部分通过”,不是全库完全无警告。

运行命令

python3 skills/investment-llm-wiki/scripts/lint_investment_wiki.py investment-llm-wiki

结果摘要

  • 结论行: Lint complete: 0 error(s), 202 warning(s)
  • ERROR 数量: 0
  • WARN 数量: 202
  • 其中 OneDrive / FileProvider / dataless 相关 WARN: 197
  • 其他 WARN: 5
  • 原始日志: tmp/tests/llm_wiki_lint_full_2026-05-11_0802.log

解释

这次 lint 已能完整执行到结束,不再被 OSError: [Errno 11] Resource deadlock avoided 中断。
但 macOS OneDrive FileProvider 仍有不少 .md 文件处于 dataless 占位状态,lint 对这些文件输出 WARN 并跳过读取,所以不能把本次结果理解为“全库所有文件都已读取校验”。

后续处理规则

  • index.md / log.md 等可再生元文件:若再次被 OneDrive 占位锁住,可在同一目录改名为 .onedrive-placeholder 后重建。
  • 对 source / calls / reports 等不可再生资料:不要覆盖或删除占位文件;需先通过 Finder / OneDrive 选择“始终保留在此设备上”或从 OneDrive 网页恢复后再校验。
  • 后续交付时,如果 lint 输出 0 errors 但有 FileProvider WARN,应明确说明“可读取部分 0 errors;占位文件未完整校验”。

非 FileProvider WARN 样例

  • WARN: sources/calls/晶泰控股/2025-03-28_晶泰控股_2024年度业绩会议_Gangtise摘要.md: source 元信息缺字段 [‘来源’, ‘日期’, ‘类型’, ‘涉及公司’, ‘涉及主题’, ‘一句话摘要’]。
  • WARN: sources/calls/晶泰控股/2026-03-25_晶泰控股_2025年度业绩发布会_Gangtise摘要.md: source 元信息缺字段 [‘来源’, ‘日期’, ‘类型’, ‘涉及公司’, ‘涉及主题’, ‘一句话摘要’]。
  • WARN: sources/filings/晶泰控股/2026-05-11_晶泰控股_官方披露资料索引与摘录.md: source 元信息缺字段 [‘来源’, ‘日期’, ‘类型’, ‘涉及公司’, ‘涉及主题’, ‘一句话摘要’]。
  • WARN: sources/market-data/2026-05-11_晶泰控股_行情与估值快照.md: source 元信息缺字段 [‘来源’, ‘日期’, ‘类型’, ‘涉及公司’, ‘涉及主题’, ‘一句话摘要’]。
  • WARN: sources/research-reports/晶泰控股/2026-05-11_晶泰控股_Gangtise研报与纪要线索.md: source 元信息缺字段 [‘来源’, ‘日期’, ‘类型’, ‘涉及公司’, ‘涉及主题’, ‘一句话摘要’]。

ERROR 明细

复跑:补齐晶泰控股 source 元信息后

补齐 5 个晶泰控股 source 文件的标准元信息字段后,重新运行完整 lint:

  • 结论行: Lint complete: 0 error(s), 197 warning(s)
  • ERROR 数量: 0
  • WARN 数量: 197
  • 其中 OneDrive / FileProvider / dataless 相关 WARN: 197
  • 非 FileProvider WARN: 0
  • 原始日志: tmp/tests/llm_wiki_lint_full_2026-05-11_after_source_meta.log

结论:晶泰控股新增文件自身已无 lint blocker;剩余 warning 全部来自 OneDrive/FileProvider 占位文件。

复跑:批量物化 OneDrive 占位文件后

使用 open -g <file> 逐个触发 OneDrive/FileProvider 下载并等待命令行可读后,原先 197 个 dataless / EDEADLK 占位文件均已变为可读状态。随后重新运行完整 lint:

  • 结论行: Lint complete: 0 error(s), 0 warning(s)
  • ERROR 数量: 0
  • WARN 数量: 0
  • 原始日志: tmp/tests/llm_wiki_lint_after_materialize_2026-05-11.log
  • 物化脚本: tmp/tests/materialize_llm_wiki_placeholders.py
  • 占位文件清单: tmp/tests/llm_wiki_fileprovider_warning_paths_2026-05-11.txt

补充校验:对原 197 个 warning 路径重新 statread_text,当前 dataless=0unread=0

结论:本轮剩余问题已清除,当前 LLM Wiki 完整 lint 为全量 clean。

复盘纠正:批量 open -g 不是推荐方法

本次为清除 OneDrive/FileProvider dataless 占位文件曾使用批量 open -g <file> 触发物化。该方法虽然让 lint 最终变为 clean,但会打开大量 GUI 文档/窗口,副作用过大,不应作为推荐操作流程。

后续规则:

  • 不再批量使用 open、TextEdit、Preview、Typora、Obsidian、Quick Look 等 GUI 应用强制物化。
  • 对大量占位文件,应优先保留 lint WARN 并说明“未物化文件未完整校验”,或由用户在 OneDrive/Finder 中对目录执行“始终保留在此设备上”。
  • 若必须对单个文件用 GUI 打开作为最后手段,必须立即关闭对应窗口,并用 lsof 验证没有遗留 wiki 文件句柄。

目录级 Finder/OneDrive 操作记录

按用户要求,本次改用 Finder 对 investment-llm-wiki 目录本身执行右键菜单“始终保留在此设备上”,不再批量打开内部文件。操作后复查:

  • fileproviderctl evaluate 显示目录 isDownloaded=1isMostRecentVersionDownloaded=1isRecursivelyDownloaded=1,但 isKeepDownloaded=0;Finder 图标仍显示云/下载样式,说明 OneDrive 的显示/内部 pin 状态可能没有立刻反映为 isKeepDownloaded=1
  • 完整 lint 复跑:Lint complete: 0 error(s), 0 warning(s)
  • 原始日志: tmp/tests/llm_wiki_lint_after_dir_keep_2026-05-11.log

注意:目录级“始终保留在此设备上”应通过 Finder/OneDrive 菜单执行;不要用批量打开文件方式替代。