Obsidian 日记与待办管理
将当前会话内容总结并写入 Obsidian 日记,同时搜索、更新、新增待办。
变体选择
根据会话内容判断使用哪个变体:
- work → 公司项目、部署运维、代码开发、正式会议、团队协作
- personal → 个人技术探索、学习笔记、投资、生活记录
混合内容时,拆分后分别写入两个变体。
首次配置
脚本运行前需要配置文件 ~/.config/cnife-skills/obsidian-diary.json。
当脚本输出 CONFIG_MISSING=true 时,执行以下流程:
- 询问用户每个 vault 的 Obsidian 根目录(本地绝对路径),例如:
- work vault:/Users/cnife/Obsidian/工作 或 /mnt/c/Obsidian/工作 - personal vault:/Users/cnife/Obsidian/个人
- 其余字段(
diary_dir、template、exclude_meta)使用默认值,除非用户明确要求修改 - 用 Write 工具创建配置文件(先确保目录存在):
{
"vaults": {
"work": {
"base": "<用户提供的路径>",
"diary_dir": "工作日志",
"template": "日志模板.md",
"exclude_meta": ["AGENTS.md", "任务.md", "日志模板.md"]
},
"personal": {
"base": "<用户提供的路径>",
"diary_dir": "个人日记",
"template": "日记模板.md",
"exclude_meta": ["AGENTS.md"]
}
}
}- 创建完成后重新运行脚本。
脚本
所有文件系统操作通过 scripts/obsidian-helper.py 完成,脚本路径相对于本 skill 目录。
必须使用 uv 运行(自动管理依赖):
uv run --script scripts/obsidian-helper.py --vault <work|personal> --action <action>可用 action:
context— 一次调用返回所有上下文(路径 + 规则 + 待办 + 近期摘要 + 今日日记大纲)locate— 获取今日日记路径、模板路径、存在状态create— 确保今日日记存在,不存在则从模板创建todos— 扫描近期日志,列出未完成待办recent— 列出近期修改的日志文件(支持--limit N限制数量)read— 读取指定文件或今日日记
工作流(3 步)
步骤 1:收集上下文(1 次调用)
uv run --script scripts/obsidian-helper.py --vault <变体> --action context输出包含五个段落,一次拿齐:
- 路径信息:DIARY_PATH、DIARY_EXISTS、DATE
- RULES:对应变体的格式规则(自动从 references 文件读取)
- TODOS:近期未完成待办(14 天)
- RECENT:最近 2-3 篇日记的前 30 行摘要(了解上下文和写作风格)
- TODAY:今日日记完整内容
如果 DIARY_EXISTS=false,脚本会自动从模板创建后再读取。
步骤 2:提取会话内容并写入
2a. 提取什么
从当前会话中识别关键事件,每个事件 1-2 行:
| 事件类型 | 记录要点 |
|---|---|
| 实现了功能 | 功能名称 + 核心特性 + 关键技术决策 |
| 调研了方案 | 调研对象 + 结论 + 选型判断 |
| 修复了问题 | 问题 + 根因 + 修复方式 |
| 做了决策 | 决策内容 + 理由 + 放弃的替代方案 |
| 部署/配置 | 环境 + 关键参数 + 验证结果 |
多主题会话按 # 主题标题 分组,每个主题一个一级标题。
2b. 写入方式
使用 Edit 工具直接编辑日记文件:
- 根据
context输出的## 大纲判断新内容应归属的章节 - 找到该章节末尾的合适插入位置(通常是最后一个二级标题段落的末尾)
- 用 Edit 工具插入新内容,保持章节结构完整
示例:
# context 输出显示:
## 大纲
6: # Genos Reg Server
8: ## 生产环境故障排查与修复
17: ## IGV 可视化 Access forbidden 修复
24: # OneReason Backend
# 新内容属于 Genos Reg Server,应在第 17-23 行之间插入更新已有段落(补充、修正、状态变更):
- 只修改与本次会话相关的段落
- 不修改无关内容
- 合并重复而非追加
更新历史待办:将对应文件中的 - [] 改为 - [x],添加 ✅ YYYY-MM-DD,同时在今日日记添加 Obsidian 链接:
- [x] 任务描述 ✅ 2026-04-19 完成于 [[2026年4月15日星期三##任务标题]]2c. 新增待办
本次会话产生的新待办,添加到今日日记末尾:
- 格式:
- [] 描述 - 有计划日期时添加
📅 YYYY-MM-DD
步骤 3:确认
输出本次写入/更新的内容摘要:
- 新增的日记条目
- 更新的待办(状态变化 + 链接)
- 新增的待办
如果本次没有实质性内容,询问用户是否仍要写入。
AI 噪音过滤
禁止写入以下内容:
- 验证流程("N 轮最终验证 APPROVE"、"XX 个测试用例全部通过")
- 提交/推送操作("已提交并推送到 XX 分支")
- AI agent 产物("沉淀 N 条规则到 AGENTS.md")
- 开发阶段标记(Wave 1/2/3、"骨架创建"、"模块创建")
- 配置文件路径、代码片段
只写:做了什么 + 核心特性/关键决策 + 关键结果。保留有价值的信息:人名、技术选型判断、关键数据。
Obsidian 待办状态
使用 Tasks 插件标准状态:
| 标记 | 状态 | 用途 |
|---|---|---|
[] | 待办 | 未完成的任务 |
[x] | 已完成 | 完成的任务,末尾加 ✅ YYYY-MM-DD |
[-] | 已取消 | 不再需要的任务,末尾加 ❌ YYYY-MM-DD |
可选状态(按需使用):
[/]进行中 — 已开始但未完成[>]延期 — 推迟到以后[!]重要 — 高优先级[?]疑问 — 需要确认[h]搁置 — 等待外部条件
跨文件引用已完成待办时,使用 Obsidian 链接:[[日期文件名#任务标题]]