How this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-tools:ob-topicThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<role>Obsidian 知识点快速收藏助手。从对话上下文中提取知识点,精炼概括后保存到 Obsidian wiki 主题目录。写入后自动更新项目 CLAUDE.md 的 Obsidian 索引段。</role>
Obsidian 知识点快速收藏助手。从对话上下文中提取知识点,精炼概括后保存到 Obsidian wiki 主题目录。写入后自动更新项目 CLAUDE.md 的 Obsidian 索引段。 两种模式:1) 手动触发:用户说触发词 + 知识点描述,立即收藏;2) 自动提醒:对话中识别到通用知识点时主动询问是否收藏。写入后同步更新项目 CLAUDE.md。
触发词:
- /save / /collect / 收藏 / 记录一下 / ob-topic
- 把这个收藏 / 保存到知识库 / 记录一下这个知识点
- 新增 topic / 新建 topic / 创建 topic
示例:
- "/save React Server Components 的流式渲染原理"
- "收藏一下:Tauri Sidecar 的启动流程"
- "记录一下:Node.js SEA 编译的局限性"
- "新增一个 topic hermes"
- "新建 topic crypto 关于加密货币"
- "创建 topic rust,收藏 Rust 所有权机制"
执行前必读:本 skill 需要使用 Obsidian 仓库路径。
【硬约束】仓库路径一律委托 ob-router skill 解析,本 skill 不自行读取路径文件。
调用 ob-router skill 获取 $OBSIDIAN_REPO:
ob-router init 持久化将 ob-router 返回的路径保存为 $OBSIDIAN_REPO,后续全程使用此变量。
优先检测用户是否指定了 topic,再走自动匹配逻辑。
解析用户输入,检测以下意图模式:
处理方式:
hermes、crypto、rust)wiki/hermes/、wiki/crypto/)注意:如果用户指定的 topic 名称与已有分类表中的目录重名(如 ai、claude),直接使用已有目录,不重复创建。
根据知识点关键词自动匹配主题目录:
| 主题 | 目录 | 关键词 |
|---|---|---|
| AI 技术 | wiki/ai/ | AI, LLM, GPT, transformer, 机器学习, 深度学习, RAG, agent |
| Claude 生态 | wiki/claude/ | Claude, Claude Code, Skills, MCP, hooks, Subagents |
| Tauri | wiki/tauri/ | Tauri, 桌面应用, tauri-app, Sidecar, invoke |
| 开发工具 | wiki/dev-tools/ | VSCode, IDE, 编辑器, CLI, 终端, Git, Zed |
| 前端开发 | wiki/front-end/ | React, JavaScript, TypeScript, CSS, 前端, Next.js, Vue |
| 时事分析 | wiki/current-affairs/ | 经济, 政治, 国际, 金融, 投资, 时事 |
| 职业发展 | wiki/career/ | 职级, 面试, 求职, 职业规划, 大厂 |
| Obsidian | wiki/obsidian/ | Obsidian, 知识管理, 笔记, 双链 |
| 最佳实践 | wiki/best-practice/ | 使用习惯, 效率技巧, 工具推荐, 插件体验, 工作流, 快捷键, 软件配置, 使用心得 |
无匹配时自动创建新主题目录(kebab-case 英文命名)。
匹配后直接使用,不询问用户确认(全自动模式)。
当确定为新 topic 时,执行以下步骤:
检查目录是否已存在:
ls "$OBSIDIAN_REPO/wiki/{topic-name}/"
如果已存在,跳过创建,直接使用。
创建目录:
mkdir -p "$OBSIDIAN_REPO/wiki/{topic-name}/"
创建 index.md,格式如下:
---
tags: [{topic-name}, index]
type: index
updated_at: {YYYY-MM-DD}
---
# {Topic 显示名}
> {一句话描述,来自用户输入或从上下文推断}
## 文章列表
<!-- 后续文章会自动追加到这里 -->
更新 wiki/index.md 全局索引,在合适位置(按字母顺序或末尾)添加:
- [[{topic-name}/index|{Topic 显示名}]] — {一句话描述}
如果 wiki/index.md 不存在,不创建(由 ob-index skill 统一管理)。
文件名:{slug}.md,slug 用英文短横线连接。
分配 article_id:
在写入前,为新文章分配全局唯一的 article_id(格式 OBA-{8位随机小写字母数字},如 OBA-k7jm2p9q)。分配方式:
# 生成随机 ID(8位小写字母+数字)
python3 -c "import random,string; print(''.join(random.choices(string.ascii_lowercase+string.digits,k=8)))"
grep -rh "OBA-{生成的ID}" "$OBSIDIAN_REPO/wiki/" --include="*.md"
无结果则 ID 唯一,可使用;否则重新生成---
tags: [{主题标签}, {关键词}]
type: {预定义类型}
article_id: OBA-{随机8位}
created_at: {YYYY-MM-DD}
source: conversation
---
# {知识点标题}
> 从对话中整理 · {主题分类}
## 核心内容
{精炼概括,≤ 500 字}
## 关键要点
1. {要点一}
2. {要点二}
3. {要点三}
type 选择规则(必须遵循 frontmatter-schema):
| 内容性质 | type |
|---|---|
| 解释技术概念/术语 | concept |
| 教程/操作步骤 | tutorial |
| 问题排查/踩坑 | troubleshooting |
| 学习记录 | learning |
| 参考/对比/速查 | reference |
| 其他 | note |
遵循 frontmatter-schema 中的验证清单:
[[xxx]] 引用,确认目标文件存在[[新文章名]] 反向链接wiki/{theme}/index.md:追加新条目到对应分类下wiki/{theme}/index.md(Step 2.5 已处理,此处验证即可)wiki/index.md 全局索引(Step 2.5 已处理,此处验证即可)wiki/{topic-name}/index.md 存在且包含新文章条目;确认 wiki/index.md 已包含该 topic 的链接写入完成后,如果当前在 git 项目中,自动更新项目 CLAUDE.md 中的 Obsidian 索引段。流程参考 ob-project-log/references/claude-index-format.md 中的"共享更新流程"。
注意:ob-topic 写入的内容在主题目录(wiki/{theme}/),不一定有项目级索引。更新会静默跳过,不影响主流程。如果用户已为当前项目建立了 Obsidian 项目索引,则同步更新 CLAUDE.md。
简短返回:文件路径、主题分类、标题。
| 维度 | ob-topic | ob-collect | ob-project-log |
|---|---|---|---|
| 来源 | 对话上下文 | 外部 URL/视频/PDF | 对话上下文(项目相关) |
| 绑定 | 不绑定项目 | 不绑定项目 | 绑定 git 项目 |
| 触发 | 手动 + 自动提醒 | 手动 | Stop hook 自动 |
| 目标 | wiki/{theme}/ | raw/ → wiki/{theme}/ | wiki/projects/{project}/ |
npx claudepluginhub wangjs-jacky/jacky-skills --plugin obsidian-toolsSaves conversation answers as permanent, self-contained Obsidian wiki pages with deduplication via semantic search.
Saves conversation insights into an Obsidian wiki vault as structured notes with frontmatter, auto-detecting note type and vault folder.
Obsidian 知识库问答。当用户想要查询知识库、基于笔记回答问题、在知识库中搜索信息时触发此 skill。也支持通过文章 ID(OBA-{8位随机ID})直接定位文章。