| name | reminder-review-session |
| description | 在会话问题解决得差不多时提醒我整理知识到 Obsidian,根据内容规模选择日记或独立文章 |
| metadata | {"internal":true} |
会话知识整理提醒
我的角色:只负责提醒,不自动执行。用户掌握所有主动权。
触发条件
检测到以下信号时主动询问,不要等会话自然结束:
- 收尾信号:关键问题已解决,用户说"好"、"可以了"、"差不多了"、"就这样"、"先这样" 等
- 对话节奏变化:连续 3+ 轮的深入讨论后出现决策或结论,之后出现话题切换或停顿
- 复杂任务完成:跨多轮 tool call 的任务(调研、配置、故障排查)执行完毕,结果已确认
- 一个完整主题结束后,新主题开始前——如果当前会话有多个主题,每个主题结束时都应该提醒
- 会话超过 10 轮交互且当前问题已解决,主动检查是否有值得整理的内容
对于多条提醒的处理:如果在一轮会话中已经问过但用户没有要求整理就继续聊了新话题,后续除非有新的大主题完成,否则同一会话不再重复询问。
不要每轮都问——一个会话最多提醒 1-2 次。
询问方式
这个会话的内容感觉值得整理下,要写进 Obsidian 吗?
用户回复后,不要替用户判断大小事。直接追问:
写进日记还是单独成文?
用户的回答方式(参考)
"日记" / "小的" / "日记吧" → 追加到当日日记
"文章" / "大的" / "单独成文" → 独立文章 + 日记链接
"不用" / "算了" / "下次" → 跳过,本会话不再问
- 用户也可能直接说"整理下"或具体内容,按实际情况执行
大小事执行
前置:Vault 路径发现
不要依赖对话记忆中的路径。改为读取 obsidian-diary skill 的共享配置:
配置文件:~/.config/cnife-skills/obsidian-diary.json
示例结构:
{
"vaults": {
"personal": { "base": "/mnt/c/Obsidian", "diary_dir": "个人日记", ... },
"work": { "base": "/mnt/c/Obsidian", "diary_dir": "工作日志", ... }
}
}
如果配置文件不存在 → 询问用户 vault 路径,引导他们先配置 obsidian-diary skill。
如果用户没有指定用哪个 vault → 根据会话内容判断:工作相关用 work,个人技术/学习用 personal。不确定时问用户。
小事 → 日记
委托给 obsidian-diary skill 处理:
- 加载
obsidian-diary skill
- 执行
uv run --script scripts/obsidian-helper.py --vault <变体> --action context 获取今日日记路径和大纲
- 找到对应主题段落,追加内容
适合场景:
大事 → 独立文章 + 日记链接
文章存放路径
读取配置中的 vaults.<变体>.base 获取 vault 根目录,再按主题映射到子目录。
主题→子目录映射(硬编码在技能中,无需外部配置):
| 主题关键词 | 存放目录 |
|---|
| Hermes Agent、Curator、技能系统 | AI/Hermes/ |
| OpenCode、OpenCLI、Qwen Code | AI/OpenCode/ |
| 量化投资、ETF、策略 | 投资/ |
| Tushare、数据源 | 投资/数据源/ |
| 读书、学习 | 读书笔记/ |
| 工具配置、效率 | 效率/ |
| 软考、考试 | 软考-高级架构师/ |
| NFS、K8s、vLLM、部署 | AI/部署/ |
| 其他/无法归类 | 先问用户放哪 |
文件命名:<中文标题>.md(无特殊字符)。然后在今日日记中添加 Obsidian 链接:[[文件标题]]。
适合场景:
- 跨多轮的调研(如 Curator 调研)
- 有结构性结论和多个来源的分析
- 方法论或流程总结
注意事项
- 日记创建:
obsidian-helper.py --action context 已包含自动创建逻辑(DIARY_EXISTS=false 时从模板创建),无需额外处理
- 独立文章的 frontmatter 不加 aliases 字段
- 通用调研文章不要包含用户个性化上下文