feat(obsidian): 描述去冗余 + 核心补 OFM 语法 + workflow 补 Web Clip
对标社区基准(kepano/obsidian-skills 31.8k★、AgriciDaniel/claude-obsidian
15 技能完整体系)后的 P1-P6 优化合集:
- P1: 8 个子技能 description 末尾去"伴随激活"冗余句(路由不识别该声明)
- P5: obsidian-plugins 描述聚焦环境层(插件/主题/CSS/Templates/快捷键/命令)
- P6: obsidian-workflow-pkm 描述加"多步骤复合需求优先匹配"前置引导
- P3: 核心 obsidian skill 增补 OFM 语法速查章节
(wikilinks/embeds/callouts/block refs/highlight/math 全表)
- P4: workflow-pkm 新增 Workflow 8 Web Clip → Permanent
(引用 defuddle 社区标准,WebFetch 兜底)
This commit is contained in:
@@ -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="<AI 300 字摘要>"
|
||||
KEYWORDS="<AI 提炼关键词,逗号分隔>"
|
||||
|
||||
# 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. 决策点 × 步骤 × 审计
|
||||
|
||||
Reference in New Issue
Block a user