Obsidian note
Claude Code 技能包:串联任务管理 → 交互学习 → 笔记沉淀的完整学习闭环
npx -y skills add RainZZZYYY/claude-learn-skills --skill obsidian-noteAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
将当前对话内容创建为结构化的 Obsidian 笔记,自动命名并分类到合适目录。仅通过 /obsidian-note 主动调用,不响应对话中的关键词。
SKILL.md
14.1 KB, ~5.4k tokens by cl100k_base, as published. Nobody here has run it
Obsidian 笔记助手
基于当前对话内容,在 /mnt/e/StudyNotes 中创建或更新笔记。一次对话可能产出多篇——操作过程记成项目日记,提炼的理解合并到已有笔记或新建永久笔记,二者通过双向链接关联。
仓库结构
/mnt/e/StudyNotes/
├── 00_收件箱/ # 临时草稿,每周整理归类
├── 10_项目/ # 有终点的项目
│ ├── 任务总控.md # 全局仪表盘,所有项目状态一览
│ └── 项目名/ # 一个项目一个文件夹
│ ├── 任务清单.md # 该项目的详细任务待办
│ ├── 2026-05-10_xxx.md # 项目日记
│ └── ...
├── 20_笔记/ # 永久知识,按领域分
│ ├── 工具与环境/
│ ├── Python/
│ ├── OpenCV/
│ ├── PyTorch/
│ ├── 深度学习/
│ ├── ROS2/
│ └── 数学基础/
├── 30_资源/ # 速查表、命令集、模板、外部链接
└── 90_归档/ # 已完成的项目
文件夹只做大类区分,细节靠 Properties 中的 tags、aliases 组织。
执行步骤
第 1 步:扫描对话,拆成两类内容
回顾本轮对话,从中提取:
| 类型 | 是什么 | 判断标准 |
|---|---|---|
| 操作过程 | 今天做了什么、踩了什么坑、怎么解决的 | 有时序、有具体操作命令、有踩坑记录 |
| 理解收获 | 概念理解了、原理想通了、能一句话说清 | 脱离时间也有价值、以后能反复翻看和延伸 |
一次对话两种都可能有,也可能只有一种。如实提取即可。
第 1.5 步:检查学习工作文档
检查 40_中间产物/当前学习.md 是否存在:
- 存在且未完成(frontmatter 中
current_point未指向最后一个知识点) → 将已完成的知识点(✅标记的)内容纳入本次归档素材,在文档末尾已归档部分加上> 📝 以上学习部分已归档于 YYYY-MM-DD,不删除文档 - 存在且已完成(所有知识点 ✅) → 将全部内容纳入本次归档素材,归档完成后提示用户:
📂 学习工作文档已归档完毕 40_中间产物/当前学习.md 可删除。 [1] 删除 [2] 保留 - 不存在 → 跳过,正常流程
第 2 步:检查已有笔记,决定新建还是更新
这一步最关键。 对于每个「理解收获」,先搜索再决定操作,不要直接建新笔记。
- 在
20_笔记/中用 Glob + Grep 搜索相同主题的已有笔记(按主题关键词搜文件名和标题) - 对每个理解收获,判断属于以下哪种情况:
| 情况 | 判断标准 | 操作 |
|---|---|---|
| 同一概念的新理解 | 已有笔记讲了这个概念,本次有新角度、新深度、新踩坑 | 更新已有笔记:追加关键点、补充怎么用、添加踩坑经验、新增关联链接 |
| 全新的独立概念 | 仓库中没有这个主题的笔记 | 新建笔记 |
| 内容已被覆盖 | 已有笔记已经包含了本次的理解,没有新东西 | 跳过,只在日记中链接已有笔记 |
日记不受此限制——每次对话一定新建一篇日记(日期不同,记录不同)。
第 3 步:落成笔记
操作过程 → 项目日记(10_项目/项目名/YYYY-MM-DD_做了什么.md)
文件名严格使用 ISO 8601 日期格式 YYYY-MM-DD。每次对话一篇。
理解收获 → 永久笔记(20_笔记/领域/主题.md)
- 新建:文件名用主题命名,不加数字前缀、不加日期
- 更新:在已有笔记中追加内容,保持原有结构不变
如果对话中出现了新的可复用命令/模板/链接 → 问用户要不要在 30_资源/ 下额外建一篇速查笔记。
拿不准分类 → 00_收件箱/。
第 4 步:写笔记内容
新建永久笔记(第 5 步会应用 [未看] 前缀 + 00_收件箱/ 路径,此处只需写入正文内容):
模板(遵循 Obsidian Properties 官方文档):
---
aliases:
- 别名1
- 别名2
created: YYYY-MM-DD
tags:
- 领域标签
- 类型标签
---
# 主题(一句话概括)
(正文第一句直接说清这个概念是什么。)
## 关键点
- 第一点
- 第二点
- 第三点
## 怎么用
(贴最小可运行代码。没有则省略整个段落。)
## 关联
- [[相关笔记A]]
- [[相关笔记B]]
更新已有笔记的方法:
- 保持原有 frontmatter(
created不动,aliases如有新别名则追加) - 在「关键点」末尾追加新要点(前面加
(更新于 YYYY-MM-DD)或直接混入列表) - 在「怎么用」补充新代码示例
- 在「关联」追加新链接
- 不删原有内容,不重写——知识笔记是生长的,不是替换的
模板规范:
tags用 YAML list,不加#,用复数tags而非tag(单数已废弃)aliases放中文别名、简称、英文原名created用YYYY-MM-DD格式- 属性值中的内部链接必须加引号:
"[[链接]]" - 属性名用小写英文,值用中文或英文
- 标签不超过 3 个
项目日记模板:
---
tags:
- diary
- 项目标签
created: YYYY-MM-DD
---
# YYYY-MM-DD 做了什么
## 操作步骤
- 步骤 1
- 步骤 2
## 踩坑记录
- 遇到的问题和解决方法
## 关联
- [[永久笔记A]]
- [[永久笔记B]]
第 5 步:应用阅读状态追踪
所有永久笔记应用三态追踪,文件名前缀 + 正文勾选框双重标识。
勾选框位置:
---
aliases: ...
tags: ...
---
- [ ] 开头已确认
# 笔记标题
...正文...
- [ ] 结尾已确认
状态判定:
| 文件名 | 开头 | 结尾 | 状态 | 位置 |
|---|---|---|---|---|
[未看] 主题.md | [ ] | [ ] | 未看 | 00_收件箱/ |
[待看] 主题.md | [x] | [ ] | 待看 | 00_收件箱/ |
主题.md | 无 | 无 | 已看 | 20_笔记/领域/ |
规则:
- 新建永久笔记 → 文件名
[未看] 主题.md,正文两个[ ],放入00_收件箱/ - 更新已有永久笔记 → 统一操作:
- 保留第一个(开头)勾选框状态不变(若笔记原无勾选框则在开头插入
[ ]) - 重置第二个(结尾)勾选框为
[ ] - 根据第一个勾选框状态重命名文件:
[ ] [ ]→[未看][x] [ ]→[待看]
- 确保文件在
00_收件箱/(在20_笔记/的移回收件箱)
- 保留第一个(开头)勾选框状态不变(若笔记原无勾选框则在开头插入
- 用户升级未看→待看 → 勾选开头
[ ]为[x],重命名[未看] 主题.md→[待看] 主题.md,文件留在00_收件箱/ - 用户确认已看 → 去除文件名前缀、去除两个勾选框,移动到
20_笔记/对应领域 - 更新日记 → 不受此规则影响,日记直接存入
10_项目/对应位置 - 归档完成后 → 在汇总确认中询问用户:
👁️ 阅读状态 以下笔记在 00_收件箱/,可升级状态: - [未看] Python变量.md → 勾选开头 → 变 [待看] - [待看] Git核心概念.md → 勾选结尾 → 移入 20_笔记/ [回复笔记名升级状态,或回复"跳过"]
第 6 步:双向链接
- 用 Glob 搜索仓库中已有的相关笔记
- 日记必须链接到本次产出的 / 更新的所有永久笔记,以及之前的相关笔记
- 永久笔记之间互相链接
- 大胆使用空链接——
[[一个还不存在的笔记]]完全合法,以后补建即可
第 7 步:维护任务清单
如果用户正在执行某个项目的任务,建完日记后要同步更新 10_项目/项目名/任务清单.md:
- 检查
10_项目/项目名/任务清单.md是否存在 - 如果存在,将本次完成的任务勾选为
[x],补上日记和笔记的链接 - 如果不存在但用户有任务列表,问用户"要不要先把任务清单生成出来?"
同时更新 10_项目/任务总控.md 中的项目进度,并同步更新 > 🎯 下一任务 为当前阶段第一个未完成的任务。
第 8 步:维护技能清单
仅当本轮对话涉及创建或修改了 Claude 技能时触发。 检查 30_资源/Claude技能清单.md 是否存在:
- 不存在 → 新建该笔记,将所有已有技能都扫描一遍写入
- 存在 → 更新对应技能的条目,无变化则跳过
每个技能条目格式:
## 技能名
- **触发**:仅主动调用 / 对话中关键词触发
- **功能**:一句话描述做什么
- **流程**:2-3 句话说明怎么工作
- **建议场景**:什么时候用
示例条目:
## obsidian-note
- **触发**:`/obsidian-note`(仅主动调用)
- **功能**:将对话内容自动拆分为项目日记和永久笔记,先搜再建避免重复,更新任务清单进度
- **流程**:扫描对话 → 拆分操作过程和理解收获 → 检查已有笔记决定新建或更新 → 写笔记 → 双向链接 → 维护任务清单
- **建议场景**:完成一个学习任务后整理产出、讨论出重要结论后沉淀知识、踩坑后保存经验
如果 Claude技能清单.md 中已有该技能的条目,对比新旧内容,有变化才更新,无变化跳过。
第 9 步:汇总确认
一次性展示所有操作,区分「新建」「更新」「跳过」:
📔 项目日记(1 篇)
新建:10_项目/视觉工程学习/2026-05-12_阈值分割调试.md
📝 永久笔记
新建:00_收件箱/[未看] Otsu算法.md
更新:00_收件箱/[待看] 阈值分割.md — 追加踩坑经验
⏭️ 跳过
OpenCV图像读取 — 现有笔记已覆盖,无新内容
👁️ 阅读状态
以下笔记在 00_收件箱/,是否有已确认阅读的?
- 未看:Otsu算法.md
- 待看:阈值分割.md
📋 任务清单
更新:任务清单.md — 勾选任务 16
📄 学习工作文档
40_中间产物/当前学习.md — 未完成,已归档部分加标记
或
40_中间产物/当前学习.md — 已完成,归档后可删除
🔗 交叉链接
日记 → 阈值分割、Otsu算法
阈值分割 → Otsu算法
📋 README
更新:README.md — 进度同步
📦 Git
已提交并推送:3 个文件变更
或
push 失败:网络超时,笔记已本地保存
🔧 技能
已推送:learn/SKILL.md, obsidian-note/SKILL.md
或
技能目录无变更,跳过
等用户确认后逐篇写入。
第 10 步:同步任务总控到 README
如果本次更新了任务总控,将其「进行中」「等待中」「已完成」和 🎯 下一任务 同步到 README.md:
- 读取
10_项目/任务总控.md,提取「进行中」区块的所有条目 - 读取
/mnt/e/StudyNotes/README.md,如果不存在则跳过 - 将 README 中
## 当前进度下的### 进行中条目替换为任务总控中对应的条目(保持 Obsidian[[链接|显示名]]格式) ### 等待中和### 已完成同理从任务总控同步- 更新
> 🎯 下一任务为当前阶段第一个未完成的任务
只替换进度条目和下一任务,不动 README 的其他结构(目录结构、工具说明等)。
第 11 步:Git 自动提交
所有笔记写入完成后,自动将变更提交到 StudyNotes 仓库:
- 检查
/mnt/e/StudyNotes是否是一个 git 仓库(git status) - 如果不是仓库,跳过本步骤
- 执行提交:
cd /mnt/e/StudyNotes
git add -A
git commit -m "笔记: YYYY-MM-DD — 简要描述本次变更"
git push
提交信息格式:笔记: 日期 — 做了什么,例如:
笔记: 2026-05-10 — 搭建 WSL2 环境笔记: 2026-05-10 — 学习 Git 核心概念笔记: 2026-05-10 — 新建 Otsu 算法,更新 阈值分割
- 如果 push 失败(网络问题等),告知用户但不阻塞流程,笔记已经本地保存。
第 12 步:自动推送技能变更
如果本次笔记涉及技能文件的创建或修改(/home/rainz/.claude/skills/ 下有变更),自动执行 /push-skills:
- 检查技能目录的 git 状态
- 有未推送的变更 → 执行 push-skills 流程
- 无变更 → 跳过
在汇总确认中追加:
🔧 技能
已推送:learn/SKILL.md, obsidian-note/SKILL.md
或
技能目录无变更,跳过
- 在汇总确认的展示中加入 Git 状态:
📦 Git
已提交并推送:3 个文件变更
或
push 失败:网络超时,笔记已本地保存
原则
| 原则 | 说明 |
|---|---|
| 先搜再建 | 每个永久笔记创建前先搜索有无相同主题的已有笔记;已有则更新,不重复建 |
| 知识笔记是生长的 | 更新已有笔记时追加不覆盖,同一个概念随学习深入越来越厚 |
| 日记每次新建 | 日记记录过程,日期不同就是不同篇,不受合并规则影响 |
| 一次对话 = 一套笔记 | 日记 + 永久笔记 + 任务清单更新,不同性质的内容不混在一篇里 |
| 一篇笔记只讲清一件事 | 不写成教科书章节 |
| 任务清单是唯一真相源 | 任务进度、产出链接全在清单里;日记是任务和笔记的桥梁 |
| 两层任务管理 | 任务总控.md 看全局仪表盘,各项目文件夹内的 任务清单.md 看单项目细节 |
| 属性辅助组织,文件夹只做大类 | 文件夹划分领域,细节靠 tags 和 aliases |
| 大胆链出去 | 每篇永久笔记至少一个 [[]];空链接完全合法 |
| 一致性减少决策负担 | 日期统一 YYYY-MM-DD、标签统一小写英文复数、命名统一格式 |
| 文件优于应用 | 笔记就是本地 .md 文件,不依赖任何特定插件才能阅读 |
| 拿不准往收件箱放 | 宁可选错分类也不丢内容 |
| 新建文件夹前先确认 | 不随意扩张目录结构 |