skills/sakumyz/skills/chat-to-obsidian-note

chat-to-obsidian-note

SKILL.md

聊天转 Obsidian 知识库笔记

任务目标

从当前 AI 聊天中提取有价值的技术内容,自动识别文档类型,按照 Obsidian 知识库的分类体系和格式规范,生成结构化的 Markdown 技术文档并保存。

核心工作流

Step 1:分析聊天内容

回顾当前对话,提取核心技术内容,判断文档类型:

文档类型 判断特征 典型场景
问题解决型 对话中包含报错信息、Bug 描述、排错过程、修复方案 调试 Bug、解决编译错误、修复配置问题
知识学习型 对话中包含概念解释、API 用法、原理讲解、教程式内容 学习新框架、理解某个概念、探索 API
方案对比型 对话中包含多种方案讨论、优劣对比、技术选型 技术选型、架构决策、工具选择

如果对话内容跨多种类型,选择占比最大的类型。也可以拆分为多篇文档。

Step 2:推断分类目录

根据聊天涉及的技术领域,参照 references/obsidian-categories.md 中的分类映射表,推断最匹配的分类目录。

向用户确认分类,使用 ask_questions 工具展示:

  • AI 推荐的分类目录(标记 recommended)
  • 2-3 个备选分类
  • 允许用户自由输入其他路径

Step 3:生成文档

根据文档类型,参照 references/document-templates.md 中的对应模板,从对话中提取内容填充各章节。

关键规则:

  1. Frontmatter 格式(必须遵循):
---
tags: [分类名]
parent: 父级分类名
author: SakumyZ
createTime: YYYY-MM-DD HH:mm:ss
modifiedTime: YYYY-MM-DD HH:mm:ss
---
  • tags:使用文件所在目录名(如 VueGitEngineering
  • parent:使用父级目录名
  • createTimemodifiedTime:使用当前时间
  1. 内容提炼原则
  • 从对话中提炼精华,不是简单复制粘贴
  • 代码片段保留完整可运行的版本
  • 去除对话中的试错过程,只保留最终正确方案
  • 补充必要的上下文(对话中可能省略的背景信息)
  1. Obsidian 双链
  • 扫描目标分类目录下已有的 .md 文件
  • 在「相关知识」章节中使用 [[文件名]] 格式引用相关笔记
  • 只引用确实存在的文件,不凭空创建双链
  1. 文件命名
  • 使用中文或中英混合标题(与知识库现有风格一致)
  • 示例:Vue3 组件通信方式.mdGit rebase 交互式用法.md解决 TypeScript 循环依赖问题.md
  • 避免特殊字符:/ \ : * ? " < > |

Step 4:保存文件

文件保存路径:D:\Documents\Knowledge Base\Readme\{分类目录}\{文件名}.md

使用 create_file 工具写入文件。

Step 5:更新分类索引文件

每个分类目录下都有一个与目录同名的 索引文件(如 Git/Git.mdWeb/Front-end/Vue/Vue.md),用于汇总该分类下所有笔记的双链。保存文档后必须同步更新索引文件。

5a. 索引文件已存在

  1. 读取索引文件内容
  2. 根据新文档主题,找到最匹配的 ## 二级标题 分组
  3. 在该分组末尾追加一行裸 wiki link:[[新文件名]](不加 - bullet,与现有格式一致)
  4. 如果没有匹配的分组,在文件末尾追加新文档的 wiki link

5b. 索引文件不存在(新分类)

当整个分类目录是新建的,需要创建索引文件,格式如下:

---
tags: [Index, {分类名}]
parent: {父级分类名}
author: SakumyZ
createTime: {YYYY-MM-DD HH:mm:ss}
modifiedTime: {YYYY-MM-DD HH:mm:ss}
---

# {分类名}

[[新文件名]]

同时检查父级目录的索引文件是否需要添加指向新分类索引的链接。例如新建 Web/Front-end/Svelte/ 时,需要在 Web/Front-end/Front-end.md 中追加 [[Svelte]]

索引文件格式规范

参照 references/obsidian-categories.md 中的「索引文件格式」章节:

  • Wiki link 使用裸写格式(每行一个,不加 - bullet)
  • ## 二级标题 分组
  • 分组之间可选使用 --- 分隔线
  • 中间层索引(如 Front-end.md)只列出子分类的 wiki link,无标题分组

Step 6:完成报告

保存完成后告知用户:

  • 文件保存路径
  • 文档类型
  • 包含的章节概要
  • 索引文件更新情况(更新了哪个索引文件,追加在哪个分组下)

章节适用性

不同文档类型包含不同章节,以下为各类型章节组成:

章节 问题解决型 知识学习型 方案对比型
背景(问题/动机)
环境信息 ⚪ 按需 ⚪ 按需
原因分析
核心概念
方案概览
对比分析
结论
解决方案
用法详解
关键代码/代码示例
注意事项
参考资料
相关知识

⚪ 按需 = 对话中包含相关信息时才添加

文档质量要求

  • 标题明确:标题应能概括文档核心内容,支持搜索
  • 背景充分:读者不看对话也能理解问题/需求的完整上下文
  • 方案可执行:步骤清晰,包含必要的环境前提和依赖
  • 代码可运行:代码片段完整,包含必要的 import 和上下文
  • 链接有效:参考资料的链接应是真实有效的 URL
  • 双链准确[[双链]] 引用的文件必须在知识库中实际存在

资源索引

  • 分类映射表 — Obsidian 知识库完整目录分类及关键词匹配规则
  • 文档模板 — 三种文档类型的结构化模板
Weekly Installs
6
Repository
sakumyz/skills
First Seen
Feb 22, 2026
Installed on
opencode6
gemini-cli6
github-copilot6
codex6
kimi-cli6
amp6