Repository Audit · Directory Hygiene · Obsidian Vault

myObsidian 仓库结构校验与整理建议

2026-01-17 · Zon(个人) · 全仓库(目录/零散文件/导入/附件/生成物)

把“内容 / 系统 / 生成物 / 导入与附件”分区,让你长期维护时不再靠记忆找文件。


要点速览

关键洞见

  1. 你已经有一个接近 Johnny Decimal 的顶层秩序(00–05)。问题不在“缺少目录”,而在“导入物/附件/生成物没有被隔离”。
  2. 真正的目录治理不是追求零散文件=0,而是让任何新东西都能在 3 秒内回答:该进 内容系统生成物,还是 导入/附件
  3. Notion 导入产物(长路径 + UUID/hex + Untitled)应被当作“原料/备份”,不要让它们成为日常导航树的一部分,否则越整理越痛苦。
  4. 模板与脚本必须单一事实来源(single source of truth):同类东西出现两个入口(两套 templates、两个 Knowledge)会让你在半年后失去确定性。
  5. 目录是“治理结构”,链接与索引(MOC/入口页)是“认知结构”:顶层目录负责稳定,MOC 负责灵活扩展。

步骤指南(新手友好)

0 · 原则

  • 大规模移动/重命名优先在 Obsidian 内完成(它会尽量帮你更新链接),避免直接在 Finder 批量拖拽。
  • 先隔离(Quarantine),再清理(Cleanup),最后再重构(Refactor)。

1 · 先定义 4 区(建议命名)

  • 内容区:00-LifeOS/01-Health/02-Projects/03-Share/04-Workflow/05-Knowledge
  • 系统区:.obsidian/ scripts/ automation/ tests/ views/ package.json
  • 生成物区:docs/(静态报告/看板/可发布内容)
  • 导入与附件区:新增 99-Imports/99-Attachments/(或 assets/attachments/

2 · 解决 3 个重复入口(最省心)

  • 合并 Knowledge/AI/Agent学习05-Knowledge/15-Tech-AI/Agent学习(或 05-Knowledge/AI/Agent学习),让 05-Knowledge 成为唯一知识入口。
  • 选择 Templates/ 作为 Obsidian 模板唯一目录;把 04-Workflow/templates 迁移/改名为 04-Workflow/playbooks(避免“两个 templates”)。
  • 扁平化 03-Share/03-Share/*03-Share/*,删除同名二级目录,避免路径重复。

3 · 隔离 Notion 导入残留(最关键)

  • 00-LifeOS/DailyRecord/.../from-notion 整体迁移到 99-Imports/Notion/DailyRecord-2025/(保留原样当备份)。
  • 规则:导入文件不直接参与日常文件树;需要的内容再“摘取/改写”进正式目录(例如 00-LifeOS/DailyRecord/2025/05-Knowledge/...)。
  • Untitled/未命名、长 UUID/hex 目录:优先归档,不急着全量改名(ROI 太低)。

4 · 统一附件落点(让未来不再变脏)

  • 把 Obsidian 的附件默认位置设置为 99-Attachments/{year}/(按年分桶即可)。
  • 对现有大文件(png/pdf/webm):按“需要频率”分两类:常用保留在内容区附近;其余迁到附件区,链接继续可用。

5 · 根目录契约(Root Contract)

  • 根目录只允许:顶层领域目录(00–05)+ 系统目录(docs/scripts/views/assets 等)+ 少量入口文件(README.mdOPEN_SOURCE_RESEARCH.md)。
  • netease-*.jsonlifeos-stats-data.js 这种“数据/产物”,建议落到 data/views/data/,避免根目录成为杂物桌。

SVG 图解

T+0d T+1d T+7d T+30d 盘点 定规 迁移 固化 Crux: 导入/附件是否进入主目录树
Inputs System Outputs 零散文件 导入残留 目录规则 可预测检索 可维护结构

专家视角(best minds)

Tiago Forte · PARA(paraphrase)

  • Thesis:文件夹的第一职责是服务‘可执行’——把正在进行的项目与可复用资源分开,归档让系统保持轻量。
  • Arguments:你现在的 00–05 已经接近‘Areas/Projects/Resources’的分区;把导入物与附件隔离,相当于补上 Archive/Raw。
  • Limits:PARA 容易被误用成‘过度归档’;如果每次写笔记都要想放哪,会降低捕捉率。

Johnny Decimal · 编号式信息架构(paraphrase)

  • Thesis:稳定、可预测的编号结构能显著降低‘我该去哪找/放’的认知负担。
  • Arguments:你顶层 00–05 做对了;但出现 03-Share/03-Share 这类‘重复命名路径’会直接破坏预测性。
  • Limits:编号体系不擅长处理“临时/涌入”的东西;必须配合 Inbox/Quarantine,否则会被导入物冲垮。

Nick Milo · LYT / MOC(paraphrase)

  • Thesis:不要把所有组织压力都压在文件夹上;用入口页(MOC)把‘正在想的东西’串起来。
  • Arguments:目录负责‘粗分区’,MOC 负责‘细导航’;对于 05-Knowledge 这种大目录,MOC 比继续加层级更有效。
  • Limits:MOC 需要持续维护;如果不做周期性整理,入口页会变成另一个杂物堆。

Andy Matuschak · Evergreen Notes(paraphrase)

  • Thesis:笔记的价值来自可复用的想法网络,而非完美的层级树;先把‘重要的’写好再谈重构。
  • Arguments:对 Notion 导入物,与其纠结改名/归档,不如抽取关键结论,重写成少量高质量 evergreen notes。
  • Limits:如果文件名与附件散落太严重,搜索与引用仍会变难;因此“隔离区”是必要的最低限度治理。

方案

OptionBest forUpsideDownsideKey riskFirst step
A · 最小扰动(推荐)维持现有 00–05只补齐隔离区 + 消除重复入口,马上变“可预测”历史导入残留仍在(但被隔离)不设规则会反复回潮新增 99-Imports/99-Attachments/;合并 Knowledge/Templates
B · PARA 纯化想让结构与通用体系对齐新成员/未来自己一看就懂迁移成本高,容易破坏链接与肌肉记忆“重构上瘾”导致长期停滞先把 00–05 映射到 P/A/R/Archive,不急着改名
C · 系统区外置(Split repo / split vault)想把代码/生成物与笔记彻底隔离Vault 更轻,Obsidian 更快维护两个项目/同步成本跨仓引用与自动化路径需要重配把 scripts+docs 抽到独立 repo,保留输出链接
D · 不动结构,只做规则时间极少最省事短期有效,长期仍会脏导入物继续侵蚀主目录至少统一附件落点 + 每月一次 audit

证据与置信度

ClaimEvidenceConfidenceSource
仓库体量已进入“需要治理”的区间8252 files / 301.52MB (excl .git)HighLocal scan
内容区文件数主要集中在 05-Knowledge / 00-LifeOS / 02-Projectscontent 4896 files / 191.16MB (excl system dirs)HighLocal scan
Notion 风格导入残留显著hex32-in-path: 1181; Untitled/未命名: 244HighFilename/path patterns
图片附件是主要体积来源png: 216 files / 131.26MBHighExtension size aggregate
.DS_Store 分散存在(虽已 gitignore).DS_Store count: 19HighFilesystem scan

下一步

按 ROI 排序(建议 60–90 分钟内完成前 3 条)

  1. 决定采用 Option A/B/C 之一(如果犹豫,先默认 Option A)。
  2. 创建 99-Imports/Notion/99-Attachments/,并在 Obsidian 里把新附件默认落点改过去。
  3. 合并 Knowledge05-Knowledge;选择唯一模板目录(保留 Templates/)。
  4. 00-LifeOS/DailyRecord/.../from-notion 整体迁到 99-Imports/Notion/(先搬家,不清洗)。
  5. 扁平化 03-Share/03-Share/* 并删除重复目录层级。
  6. 把根目录数据文件(netease-*.jsonlifeos-stats-data.js)迁到 data/views/data/,让根目录只剩入口与领域目录。
  7. 设一个每月一次的“vault audit”例行:统计 Untitled、hex 路径、超大附件,按需清理/归档。

细节(可选)

当前仓库体量与重目录

大小为本地扫描估算(不含 .git);用于判断治理优先级。

DirectorySize
05-Knowledge104.60MB
.venv81.53MB
02-Projects37.19MB
.obsidian26.59MB
01-Health25.77MB
00-LifeOS22.26MB
docs1.55MB
04-Workflow0.59MB
views0.52MB
scripts0.26MB
03-Share0.13MB
Knowledge0.01MB
根目录零散文件(建议归位)
  • .DS_Store (可删除;已 gitignore)
  • .env (建议仅本地存在,保留 .env.example)
  • .gitignore
  • .mcp.json
  • .prettierrc
  • 2025年独立实践期半年复盘.md (更像内容笔记:建议迁到对应领域目录)
  • AGENTS.md
  • CLAUDE.md
  • OPEN_SOURCE_RESEARCH.md
  • README.md
  • lifeos-stats-data.js (建议迁到 views/data/ 或 scripts/output/)
  • netease-albums.json (建议迁到 data/netease/)
  • netease-songs-links.json (建议迁到 data/netease/)
  • netease-songs-with-albums.json (建议迁到 data/netease/)
  • package-lock.json
  • package.json
  • playwright.task-review.config.js
推荐“最终目录蓝图”(Option A)
00-LifeOS/
01-Health/
02-Projects/
03-Share/
04-Workflow/
05-Knowledge/

99-Attachments/
  2026/
99-Imports/
  Notion/
  Temp/

docs/        (生成物/可发布)
scripts/     (自动化脚本)
views/       (看板视图源文件)
assets/      (报告/站点模板资源)

来源

收尾总结

你现在的问题更像“导入/附件/生成物未隔离”,而不是“目录没设计好”。

  • 保留 00–05 主结构不动,把混乱源(Notion 导入、Untitled、附件)放进隔离区,立刻降低噪声。
  • 消除重复入口(Knowledge/Templates/03-Share 同名层级),让路径变得可预测。
  • 用 MOC/入口页承接大目录导航压力,避免不断加层级。

一个下一步动作

先做一个决定:Notion 导入物要“原样隔离保存”,还是“抽取后只保留精炼笔记”?(这决定你后续清理 ROI)

“You can do anything, but not everything.”

— David Allen