新电脑输入 查看 feat/vault-workflow-optimize 分支的设计文档,继续 vault 工作流优化任务

Obsidian Vault 工作流优化设计

背景

当前笔记库存在四大痛点:每日笔记利用率低(78%只有红绿灯数据)、任务追踪效率低、信息分散、日记/任务/业务笔记流程割裂。实时记录的工作方式下,频繁在日记和任务文件之间切换造成摩擦。

核心决策:采用任务驱动型方案 — 以任务文件为工作核心,日记降级为自动聚合页。

不动的部分

  • 文件夹结构(需求任务-Tasks/YYYY-MM/日常笔记-Daily/YYYY-MM/
  • 任务文件 frontmatter 结构(tags、IT工单编号、需求人、aliases、ForcePower)
  • QuickAdd 的月份文件夹创建脚本(createMonthFolder.js
  • 插件:Tasks、Dataview、ECharts、Journals、Templater 全部保留
  • 统计看板.md 保留作为深度统计页面

一、任务文件改造

改文件公开信息-Public_Files/模板工具-Template_Js/工单笔记模板.md

时间队列,内容拓宽为工作日志:

## 时间队列
- **2026-04-23 09:10** 
    - 做了什么
    - 记录:临时发现的问题、会议结论、业务规则碎片等

uuid 的作用便于日记 Dataview 精确拉取当日条目 无用(通过日期文本匹配)。

新增脚本QuickAdd/insertTimeline.js替代原 Alt+2 手动插入,自动获取时间 + 生成短 uuid,光标定位到下一行缩进。

二、每日日记改造

改文件公开信息-Public_Files/模板工具-Template_Js/日常笔记模板.md

---
红绿灯时长:
journal: daily-notes
journal-date: <% tp.date.now("YYYY-MM-DD") %>
---
## 今日任务动态
 
(TODO: Dataview TABLE — 拉取当日创建/修改/aliases匹配的任务)
 
## 工作日志
 
(TODO: Dataview LIST — 从所有任务文件时间队列中提取当日条目)
 
## 备注
 

变化

  • 移除:红绿灯情况说明正文、CRM系统、今日细则、知识碎片
  • 新增:今日任务动态(自动)、工作日志(自动)、备注(自由记录)
  • 保留:frontmatter 红绿灯时长(ECharts 统计不受影响)

日记角色转变:手动记录区 → 只读聚合页 + 少量自由备注。

三、工作台(全局入口)

新文件CYG-Works/工作台.md

替代原 临时文件/看板.md,放在 CYG-Works 根目录。

区块

  1. 今日待办 — Tasks 查询(scheduled/due today)
  2. 本周任务 — Tasks 查询(due/scheduled this week)
  3. 本周已完成 — Tasks 查询(done this week)
  4. 任务全景 — Dataview TABLE(所有任务文件,含进度、工作量、需求人、标签,未完成优先)
  5. 红绿灯趋势 — 复用统计看板 ECharts 逻辑

原看板处理临时文件/看板.md 保留但不再作为主入口。

四、脚本改造

文件改动
Tp_生成日记.md不变(通过 include 引用改造后的模板自动生效)
Tp_生成任务.md不变(通过 include 引用改造后的模板自动生效)
insertTimeline.js新增:时间队列快捷插入脚本
createMonthFolder.js不变

五、操作流程

改造后的一天

  1. 打开 Obsidian → 工作台(今日待办、本周任务一目了然)
  2. 收到需求 → QuickAdd/Templater 新建任务文件
  3. 做任务 → 停留在任务文件 → Alt+2 插入时间+uuid → 写进度/问题/业务规则
  4. 切到其他任务 → 继续记录
  5. 打开日记 → 自动看到今天关联的所有任务和时间队列记录(只读)
  6. 非任务内容 → 写在日记的「备注」区

关键变化:从「两个文件来回写」变成「主要在任务文件写,日记自动生成」。

涉及文件清单

操作文件路径
公开信息-Public_Files/模板工具-Template_Js/工单笔记模板.md
公开信息-Public_Files/模板工具-Template_Js/日常笔记模板.md
CYG-Works/工作台.md
公开信息-Public_Files/模板工具-Template_Js/QuickAdd/insertTimeline.js