diff --git a/plugins/obsidian/skills/obsidian-bases/SKILL.md b/plugins/obsidian/skills/obsidian-bases/SKILL.md index 2e304ad..8b97d75 100644 --- a/plugins/obsidian/skills/obsidian-bases/SKILL.md +++ b/plugins/obsidian/skills/obsidian-bases/SKILL.md @@ -1,6 +1,6 @@ --- name: obsidian-bases -description: Obsidian 1.9+ 原生数据库视图(Bases):查询 .base 文件中的结构化视图(JSON/CSV/MD 输出)、在 base 中创建新条目。触发词:Bases、base 视图、数据库视图、结构化查询笔记、base query。不用于 Dataview(社区插件,用其原生 DQL 语法)。依赖 YAML frontmatter 属性,与 obsidian-meta 配合使用;需 Obsidian ≥ 1.9。检测到 .obsidian/ 时与核心技能同步激活。 +description: Obsidian 1.9+ 原生数据库视图(Bases):查询 .base 文件中的结构化视图(JSON/CSV/MD 输出)、在 base 中创建新条目。触发词:Bases、base 视图、数据库视图、结构化查询笔记、base query。不用于 Dataview(社区插件,用其原生 DQL 语法)。依赖 YAML frontmatter 属性,与 obsidian-meta 配合使用;需 Obsidian ≥ 1.9。 --- # Obsidian Bases · 原生数据库视图 diff --git a/plugins/obsidian/skills/obsidian-daily/SKILL.md b/plugins/obsidian/skills/obsidian-daily/SKILL.md index fc43422..0c58313 100644 --- a/plugins/obsidian/skills/obsidian-daily/SKILL.md +++ b/plugins/obsidian/skills/obsidian-daily/SKILL.md @@ -1,6 +1,6 @@ --- name: obsidian-daily -description: Obsidian 每日笔记工作流:读取/追加今日笔记内容、晨间规划注入、晚间回顾、AI 操作审计日志写入、快速灵感捕获。触发词:每日笔记、daily note、今天的笔记、晨间笔记、晚间回顾、写日志、快速捕获、quick capture。周报/月报汇总请用 obsidian-workflow-pkm,跨日搜索请用 obsidian-search。需 Obsidian Daily Notes 核心插件已启用。检测到 .obsidian/ 时与核心技能同步激活。 +description: Obsidian 每日笔记工作流:读取/追加今日笔记内容、晨间规划注入、晚间回顾、AI 操作审计日志写入、快速灵感捕获。触发词:每日笔记、daily note、今天的笔记、晨间笔记、晚间回顾、写日志、快速捕获、quick capture。周报/月报汇总请用 obsidian-workflow-pkm,跨日搜索请用 obsidian-search。需 Obsidian Daily Notes 核心插件已启用。 --- # Obsidian Daily · 每日笔记工作流 diff --git a/plugins/obsidian/skills/obsidian-history/SKILL.md b/plugins/obsidian/skills/obsidian-history/SKILL.md index d69d68e..6df6cbf 100644 --- a/plugins/obsidian/skills/obsidian-history/SKILL.md +++ b/plugins/obsidian/skills/obsidian-history/SKILL.md @@ -1,6 +1,6 @@ --- name: obsidian-history -description: Obsidian 版本历史与同步管理:查看/恢复/对比 File Recovery 本地快照(`history:*`)、管理 Obsidian Sync 的暂停与恢复(`sync:*`)、从云端回收站恢复误删文件。触发词:误删、恢复笔记、文件历史、版本恢复、版本对比、diff 笔记、Obsidian Sync、同步暂停。不用于 git 版本控制(直接 Bash git 命令)。Sync 相关命令需付费 Obsidian Sync 订阅。检测到 .obsidian/ 时与核心技能同步激活。 +description: Obsidian 版本历史与同步管理:查看/恢复/对比 File Recovery 本地快照(`history:*`)、管理 Obsidian Sync 的暂停与恢复(`sync:*`)、从云端回收站恢复误删文件。触发词:误删、恢复笔记、文件历史、版本恢复、版本对比、diff 笔记、Obsidian Sync、同步暂停。不用于 git 版本控制(直接 Bash git 命令)。Sync 相关命令需付费 Obsidian Sync 订阅。 --- # Obsidian History · 版本历史与同步 diff --git a/plugins/obsidian/skills/obsidian-meta/SKILL.md b/plugins/obsidian/skills/obsidian-meta/SKILL.md index c95d0c8..a5a599b 100644 --- a/plugins/obsidian/skills/obsidian-meta/SKILL.md +++ b/plugins/obsidian/skills/obsidian-meta/SKILL.md @@ -1,6 +1,6 @@ --- name: obsidian-meta -description: 管理 Obsidian 笔记元数据:YAML frontmatter 属性(status/tags/created/due 等)读写、tag 统计与体系治理、aliases 别名、bookmarks 书签、为 Dataview/Bases 设计字段规范。触发词:frontmatter、设置属性、tag、标签、别名、书签、属性读写。不用于全文搜索(obsidian-search)或 Bases 视图查询(obsidian-bases)。检测到 .obsidian/ 时与核心技能同步激活。 +description: 管理 Obsidian 笔记元数据:YAML frontmatter 属性(status/tags/created/due 等)读写、tag 统计与体系治理、aliases 别名、bookmarks 书签、为 Dataview/Bases 设计字段规范。触发词:frontmatter、设置属性、tag、标签、别名、书签、属性读写。不用于全文搜索(obsidian-search)或 Bases 视图查询(obsidian-bases)。 --- # Obsidian Meta · 元数据管理 diff --git a/plugins/obsidian/skills/obsidian-plugins/SKILL.md b/plugins/obsidian/skills/obsidian-plugins/SKILL.md index 46f9538..94170ac 100644 --- a/plugins/obsidian/skills/obsidian-plugins/SKILL.md +++ b/plugins/obsidian/skills/obsidian-plugins/SKILL.md @@ -1,6 +1,6 @@ --- name: obsidian-plugins -description: 管理 Obsidian 环境配置:核心/社区插件的启用/禁用/安装/卸载、主题切换、CSS snippets 管理、Templates 模板管理、Obsidian 内置命令执行、快捷键查询。触发词:启用插件、社区插件、Obsidian 主题、CSS snippet、Templates、快捷键、hotkey、首次配置 vault。不用于笔记内容 CRUD(obsidian 核心技能)。检测到 .obsidian/ 时与核心技能同步激活。 +description: 管理 Obsidian 环境层配置——插件(核心/社区,启用/禁用/安装/卸载)、主题切换、CSS snippets、Templates 模板、内置命令(command id)、快捷键 hotkeys。高频场景:首次配置 vault 时批量装常用插件、按团队规范统一主题/CSS。触发词:启用插件、社区插件、Obsidian 主题、CSS snippet、Templates、快捷键、hotkey、内置命令、首次配置 vault、安装插件。不用于笔记内容 CRUD(obsidian 核心技能),不用于 frontmatter 属性(obsidian-meta)。 --- # Obsidian Plugins · 环境配置管理 diff --git a/plugins/obsidian/skills/obsidian-search/SKILL.md b/plugins/obsidian/skills/obsidian-search/SKILL.md index 167395a..c99a516 100644 --- a/plugins/obsidian/skills/obsidian-search/SKILL.md +++ b/plugins/obsidian/skills/obsidian-search/SKILL.md @@ -1,6 +1,6 @@ --- name: obsidian-search -description: Obsidian vault 全文搜索与链接图谱分析。触发场景:搜索笔记内容、查反链/出链、体检图谱健康度(孤立笔记 orphans、断头笔记 deadends、未解析链接 unresolved)、AI 回答前做语义召回(RAG)。触发词:搜索笔记、找笔记、反链、出链、孤立笔记、图谱体检、知识库体检。不用于 tag 查询(obsidian-meta)或 Bases 结构化查询(obsidian-bases)。检测到 .obsidian/ 时与核心技能同步激活。 +description: Obsidian vault 全文搜索与链接图谱分析。触发场景:搜索笔记内容、查反链/出链、体检图谱健康度(孤立笔记 orphans、断头笔记 deadends、未解析链接 unresolved)、AI 回答前做语义召回(RAG)。触发词:搜索笔记、找笔记、反链、出链、孤立笔记、图谱体检、知识库体检。不用于 tag 查询(obsidian-meta)或 Bases 结构化查询(obsidian-bases)。 --- # Obsidian Search · 搜索与图谱分析 diff --git a/plugins/obsidian/skills/obsidian-tasks/SKILL.md b/plugins/obsidian/skills/obsidian-tasks/SKILL.md index 5e1f44c..3a44bd8 100644 --- a/plugins/obsidian/skills/obsidian-tasks/SKILL.md +++ b/plugins/obsidian/skills/obsidian-tasks/SKILL.md @@ -1,6 +1,6 @@ --- name: obsidian-tasks -description: 管理 Obsidian vault 中基于 Markdown 复选框(`- [ ]`/`- [x]`)的任务清单与 GTD 工作流:跨文件列出/筛选任务、切换单条任务状态、项目进度统计、收集-处理-执行流程。触发词:todo、待办、任务清单、完成任务、GTD、任务状态。不用于 Linear/飞书任务(linear/lark-task),不用于 frontmatter status 字段(obsidian-meta)。检测到 .obsidian/ 时与核心技能同步激活。 +description: 管理 Obsidian vault 中基于 Markdown 复选框(`- [ ]`/`- [x]`)的任务清单与 GTD 工作流:跨文件列出/筛选任务、切换单条任务状态、项目进度统计、收集-处理-执行流程。触发词:todo、待办、任务清单、完成任务、GTD、任务状态。不用于 Linear/飞书任务(linear/lark-task),不用于 frontmatter status 字段(obsidian-meta)。 --- # Obsidian Tasks · 任务清单管理 diff --git a/plugins/obsidian/skills/obsidian-workflow-pkm/SKILL.md b/plugins/obsidian/skills/obsidian-workflow-pkm/SKILL.md index b3d46f9..dd38e13 100644 --- a/plugins/obsidian/skills/obsidian-workflow-pkm/SKILL.md +++ b/plugins/obsidian/skills/obsidian-workflow-pkm/SKILL.md @@ -1,6 +1,6 @@ --- name: obsidian-workflow-pkm -description: Obsidian PKM 高阶编排工作流,组合调用多个 obsidian-* 子技能完成端到端流程:Inbox → Zettelkasten 原子化、MOC 主题地图构建、PARA 项目归档、Karpathy LLM-Wiki、周报/月报汇总、季度知识库体检、文献批量导入。触发词:整理 inbox、原子化笔记、构建 MOC、PARA 归档、LLM wiki、周报、月报、知识库体检、Zettelkasten 流程。单一原子操作请用对应专项子技能。检测到 .obsidian/ 时与核心技能同步激活。 +description: Obsidian PKM 端到端编排层——专为"多步骤复合需求"设计,组合调用 obsidian-* 子技能。覆盖 Inbox→Zettelkasten 原子化、MOC 主题地图、PARA 项目归档、Karpathy LLM-Wiki、周报/月报汇总、季度知识库体检、文献批量导入、Web Clip→永久笔记。**优先匹配**:当用户说"整理 inbox/构建 MOC/做季度体检/汇总周报/clip 这篇文章"等多步骤指令时,先进入本技能(编排层)再下发子技能;单一原子操作(搜一篇笔记、改一个属性)请直接用 obsidian-search/meta 等专项子技能。触发词:整理 inbox、原子化笔记、构建 MOC、PARA 归档、LLM wiki、周报、月报、知识库体检、Zettelkasten 流程、web clip、网页剪藏、批量导入文献。 --- # Obsidian Workflow · PKM 编排工作流 @@ -22,6 +22,7 @@ description: Obsidian PKM 高阶编排工作流,组合调用多个 obsidian-* | 生成周报/月报 | **Workflow 5: 周报 / 月报汇总** | | 季度知识库健康度体检 | **Workflow 6: 季度体检** | | 从网页/PDF 批量导入并原子化 | **Workflow 7: 文献批量导入** | +| 单篇网页剪藏 → 永久笔记 | **Workflow 8: Web Clip → Permanent** | --- @@ -459,6 +460,120 @@ done --- +## Workflow 8 · Web Clip → Permanent(单篇网页剪藏) + +**目标**:用户给一个 URL(或一段文字),AI 抓取→清洗→提炼→落 `30-Resources/` 或 `50-Zettel/`,比 Workflow 7(批量文献)更轻量、即时。 + +### 与 Workflow 7 的区别 + +| 维度 | Workflow 7 | Workflow 8 | +|------|-----------|-----------| +| 触发 | 一批 URL/PDF | 单条 URL/选文 | +| 目录 | `20-Literature/` | `30-Resources/` 或 `50-Zettel/` | +| 时机 | 批处理 | 即时单次 | +| 决策点 | 一次全批确认 | 每次都确认 | + +### 步骤 + +``` +┌──────────────────┐ +│ 1. 抓取网页正文 │ defuddle(社区标准)/ WebFetch / curl + readability +└────────┬─────────┘ + ↓ +┌──────────────────┐ +│ 2. 清洗为 Markdown│ 去广告/导航/评论;保留正文 + 图链 + 代码块 +└────────┬─────────┘ + ↓ +┌──────────────────┐ ┌ 决策点 ┐ +│ 3. 用户预览原文 │ ───→│ 落库? │ +└────────┬─────────┘ └───┬────┘ + ↓ ↓ +┌──────────────────┐ +│ 4. AI 提炼摘要+关键词│ +└────────┬─────────┘ + ↓ +┌──────────────────┐ +│ 5. obsidian-search│ 找已有相关笔记 +│ 关联召回 │ +└────────┬─────────┘ + ↓ +┌──────────────────┐ +│ 6. 创建笔记 │ frontmatter: source=url, type=clip +│ + 双向链接 │ +└────────┬─────────┘ + ↓ +┌──────────────────┐ +│ 7. daily:append │ 审计:URL + 落位路径 +└──────────────────┘ +``` + +### Bash 实现骨架 + +```bash +#!/bin/bash +# workflow_web_clip.sh + +URL="$1" +TARGET_DIR="${2:-30-Resources}" # 默认 30-Resources,可指定 50-Zettel + +# 1. 抓取 + 清洗(按可用性优先级回退) +if command -v defuddle &>/dev/null; then + # 社区首选:defuddle 专门为 LLM 设计,去 chrome + CLEAN=$(defuddle "$URL" --markdown) +elif command -v readability-cli &>/dev/null; then + CLEAN=$(readability-cli "$URL" --output md) +else + # 兜底:让 AI agent 走 WebFetch + 手工清洗 + CLEAN=$(echo "USE WebFetch tool with prompt: extract main content as clean markdown") +fi + +# 2. AI 提炼 +TITLE=$(echo "$CLEAN" | head -1 | sed 's/^#\s*//') +SUMMARY="" +KEYWORDS="" + +# 3. 关联召回 +RELATED=$(obsidian search query="$KEYWORDS" limit=5 format=json | jq -r '.[].path') + +# 4. 落库 +SLUG=$(echo "$TITLE" | tr ' ' '-' | tr -dc 'a-zA-Z0-9-_一-龥') +DATE=$(date +%Y-%m-%d) +PATH_NEW="${TARGET_DIR}/${DATE}-${SLUG}.md" + +obsidian create path="$PATH_NEW" content="--- +type: clip +title: ${TITLE} +source: ${URL} +created: ${DATE} +tags: [clip] +related: [${RELATED}] +--- + +## TL;DR +${SUMMARY} + +## 关键词 +${KEYWORDS} + +## 正文(清洗后) +${CLEAN} + +## 与现有知识库 +- 见 frontmatter related 字段 +" + +# 5. 审计 +obsidian daily:append content="\n- [web-clip] ${URL} → [[${PATH_NEW}]]" +``` + +### 注意 + +- `defuddle` 是 Obsidian 团队官方维护的 web→markdown 清洗工具([github.com/kepano/defuddle](https://github.com/kepano/defuddle)),比 readability-cli 更专为 LLM 优化(去 token 浪费) +- 没装 defuddle 时,AI agent 应主动用 **WebFetch 工具** 抓取并 prompt 模型"清洗为正文 markdown" +- **去重检查**:落库前先 `obsidian search query="source: ${URL}"`,避免同一篇 clip 两次 + +--- + ## 通用工作流约定 ### 1. 决策点 × 步骤 × 审计 diff --git a/plugins/obsidian/skills/obsidian/SKILL.md b/plugins/obsidian/skills/obsidian/SKILL.md index 3c633a8..25610a8 100644 --- a/plugins/obsidian/skills/obsidian/SKILL.md +++ b/plugins/obsidian/skills/obsidian/SKILL.md @@ -138,6 +138,37 @@ obsidian open file= newtab # 在 Obsidian 中打开 > ⚠ **只读优先**:AI agent 写入操作默认走 `append`/`create`;`move`/`delete` 前先 `backlinks` 检查依赖。 +### Obsidian Flavored Markdown 语法速查 + +> AI 写入笔记内容时**必须遵守 OFM 语法**——它是普通 Markdown 的超集,下列特性 Obsidian 解析、其他渲染器忽略。 + +| 语法 | 写法 | 用途 | 注意 | +|------|------|------|------| +| **Wikilink** | `[[Note Title]]` | 内部笔记跳转 | 优先于 `[text](path.md)`;`obsidian move` 会自动重写它 | +| Wikilink 别名 | `[[Note Title\|显示文本]]` | 改显示但保持跳转目标 | `\|` 前后无空格 | +| **Embed(嵌入)** | `![[Note Title]]` | 嵌入整篇笔记内容 | 比 wikilink 多一个 `!` | +| Embed 段落 | `![[Note Title#二级标题]]` | 只嵌入特定章节 | 标题区分大小写 | +| Embed 块 | `![[Note Title#^blockid]]` | 嵌入单个块 | 配合下方块引用 | +| **块引用 ID** | 段落末尾追加 ` ^blockid` | 给段落起锚点 | `^` 前要有空格,ID 不可含空格 | +| **Callout** | `> [!note] 标题`
`> 正文` | 信息卡片 | 类型:note/info/tip/warning/danger/success/quote/abstract/example/question/fail/bug/todo | +| Callout 可折叠 | `> [!note]+` 默认展开 / `> [!note]-` 默认折叠 | 长内容收纳 | `+`/`-` 紧跟类型后 | +| **Tag** | `#tag` 或 `#parent/child` | 分类索引 | 不可有空格;嵌套用 `/` | +| **Frontmatter** | 文件首行三横杠 YAML 块 | 笔记元数据 | 详细规范见 `obsidian-meta` 技能 | +| **Highlight** | `==高亮文本==` | 视觉强调 | OFM 扩展 | +| 数学公式 | 行内 `$E=mc^2$` / 块 `$$...$$` | LaTeX | MathJax 解析 | +| 任务 | `- [ ]` / `- [x]` | 复选框 | 详细操作见 `obsidian-tasks` | +| Mermaid | ` ```mermaid ` 代码块 | 图表 | 渲染器内置 | + +**写入时高频陷阱**: + +1. **CLI `content=` 参数里 `\n` 是换行**,写 callout 时每行都要加 `> ` 前缀: + ```bash + obsidian append path="note.md" content="\n> [!warning] 注意\n> 这是第二行\n" + ``` +2. **Wikilink 不要扩展名**:写 `[[Daily/2026-04-09]]` 而非 `[[Daily/2026-04-09.md]]` +3. **Embed 加 frontmatter 时**:被嵌入的笔记如果有 frontmatter,会**整块跟着嵌**——用块引用 `![[Note#^id]]` 精确控制 +4. **Callout 嵌套**:内层多一个 `>`,即 `>>` 开头 + --- ## 5. AI Agent 协作原则