关于 doc-daily-digest
用于处理 Obsidian 每日笔记的工作流技能:分类条目、获取来源内容或研究资料、创建结构化笔记,并将已处理内容替换为维基链接,适合整理资料与想法。
主要功能
- 01分类链接、推文和想法
- 02获取来源内容并研究想法
- 03创建结构化 Obsidian 笔记
- 04将每日笔记条目替换为维基链接
- 05重新索引知识库并汇报结果
适用场景
- 01处理每日笔记中的收藏网址
- 02将零散想法整理为研究笔记
- 03处理前审阅并选择条目
- 04用资料笔记链接更新每日笔记
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ molechowski/ claude-skills --skill doc-daily-digest安装后在 Claude Code 中输入/doc-daily-digest确认已加载。
详细介绍
每日摘要
处理 Obsidian 每日笔记:对原始条目分类、获取/研究内容、创建结构化笔记,并将原始条目替换为维基链接。
前置条件
| 技能 | 必需 | 用途 |
|---|---|---|
| doc-obsidian | 是 | 通过 notesmd-cli 对知识库执行增删改查,并通过 qmd 搜索 |
| res-x | 适用于 X/Twitter URL | 通过 xAI 获取推文内容 |
| res-deep | 适用于零散想法 | 多轮研究 |
可选依赖项: scrapling——用于被 WebFetch 拦截的网站(403、内容为空、验证码页面)的无头浏览器备用方案。安装命令:uv tool install 'scrapling[all]'
工作流
Step 0: Setup → Step 1: Scan & Classify → Step 2: Process → Step 3: Create Notes → Step 4: Update Daily → Step 5: Re-index & Report
步骤 0:设置
运行以下三项检查:
# 1. Vault path
VAULT=$(notesmd-cli print-default --path-only)
# 2. Read daily note (today or user-specified date)
DATE=$(date '+%Y-%m-%d')
notesmd-cli print "$DATE"
# 3. xAI key (needed for res-x and res-deep full mode)
security find-generic-password -s "xai-api" -w ~/Library/Keychains/claude-keys.keychain-db 2>/dev/null && echo "XAI_AVAILABLE=true" || echo "XAI_AVAILABLE=false"
如果用户指定了日期,则使用该日期,而不是今天。
步骤 1:扫描并分类
解析每日笔记,并对每个条目进行分类。条目位于以下章节:## Notes、## Log、## Links。
分类规则
| 类型 | 模式 | 操作 |
|---|---|---|
| 跳过 | 行中的任意位置包含 [[wikilink]] | 已处理——跳过 |
| 跳过 | 章节标题(##)、frontmatter、空行、任务复选框 | 结构性内容——跳过 |
| X 推文 | 匹配 https://(x\.com|twitter\.com)/\w+/status/\d+ 的 URL | 通过 res-x 获取 |
| X 文章 | 匹配 https://(x\.com|twitter\.com)/i/article/[\w-]+ 的 URL | 通过 res-x 获取 |
| GitHub 仓库 | 匹配 https://github\.com/[\w-]+/[\w-]+ 的 URL | 使用 WebFetch 获取仓库页面 |
| 网页 URL | 其他任何 https://... URL | 使用 WebFetch 获取页面 |
| 零散想法 | 非空文本,且不是 URL、维基链接或结构性内容 | 通过 res-deep 深入研究 |
展示分类结果
处理前,向用户展示分类表:
## Daily Digest: {DATE}
| # | Section | Type | Item (truncated) | Action |
|---|---------|------|-------------------|--------|
| 1 | Links | X tweet | https://x.com/user/status/123... | res-x fetch |
| 2 | Notes | Loose idea | Train a model to click on... | res-deep |
| 3 | Links | GitHub | https://github.com/org/repo | WebFetch |
| 4 | Log | Skip | [[already-processed]] — ... | skip |
继续之前,请用户确认或排除条目。用户可以:
- 全部批准
- 按编号排除特定条目
- 更改某个条目的操作(例如,跳过某个想法,或将 URL 升级为使用 res-deep)
步骤 2:处理条目
处理已批准的条目。尽可能并行执行相互独立的获取操作。
X/Twitter URL
需要 xAI 密钥(XAI_AVAILABLE=true)。
uv run ~/.claude/skills/res-x/scripts/x_fetch.py fetch "URL1" "URL2" "URL3"
从结果中提取:
- 作者用户名和显示名称
- 完整推文文本
- 互动指标(点赞、转发、回复、浏览量)
- 线程上下文和引用推文(如有)
如果 XAI_AVAILABLE=false,请说明 X URL 需要 xAI 密钥,并跳过这些 URL。
GitHub URL
WebFetch: https://github.com/{owner}/{repo}
Prompt: "Extract: repo name, description, star count, language, license, last update date, and a 2-3 sentence summary of what this project does based on the README."
Scrapling 备用方案: 如果 WebFetch 返回 403、内容为空、验证码页面或拦截响应,则使用 cli-web-scrape 的自动升级协议重试:
scrapling extract get "URL" /tmp/scrapling-fallback.md→ Read → 验证内容- 如果内容单薄(仅有 JS 外壳,没有数据)→
scrapling extract fetch "URL" /tmp/scrapling-fallback.md --network-idle --disable-resources→ Read → 验证 - 如果仍被拦截 →
scrapling extract stealthy-fetch "URL" /tmp/scrapling-fallback.md --solve-cloudflare - 所有级别均失败 → 记录失败并继续
网页 URL
WebFetch: {URL}
Prompt: "Extract: page title, author if available, publication date if available, and a 3-5 sentence summary of the key content."
Scrapling 备用方案: 如果 WebFetch 返回 403、内容为空、验证码页面或拦截响应,则使用 cli-web-scrape 的自动升级协议重试:
scrapling extract get "URL" /tmp/scrapling-fallback.md→ Read → 验证内容- 如果内容单薄(仅有 JS 外壳,没有数据)→
scrapling extract fetch "URL" /tmp/scrapling-fallback.md --network-idle --disable-resources→ Read → 验证 - 如果仍被拦截 →
scrapling extract stealthy-fetch "URL" /tmp/scrapling-fallback.md --solve-cloudflare - 所有级别均失败 → 记录失败并继续
零散想法
调用 res-deep 技能,将想法文本作为查询。除非用户要求更深入的研究,否则使用 quick 深度(1 轮,10-15 个来源)。
对于想法,res-deep 的输出将直接作为笔记正文。
步骤 3:创建笔记
为每个已处理的条目创建一则 Obsidian 笔记。
笔记命名
| 类型 | 命名模式 | 示例 |
|---|---|---|
| X 推文 | 根据内容采用 {topic}-{descriptor} | scrapling-undetectable-web-scraping |
| X 文章 | {author}-x-article-{date} | irabukht-x-article-2026-02-23 |
| GitHub 仓库 | {repo-name} | scrapling 或 huggingface-skills-agent-plugins |
| 网页 | 根据标题采用 {topic}-{descriptor} | kubernetes-practical-learning-path |
| 零散想法 | {concept}-{descriptor} | agent-sort-through-the-slop |
| 深度研究 | {topic}-deep-research | scrapling-deep-research |
所有名称均使用 kebab-case、小写,不含特殊字符。
创建前,请检查是否已有同名笔记。如果存在,请追加 -2 或询问用户。
笔记结构
适用于 X 推文 / 网页 / GitHub 仓库(快速收集):
notesmd-cli create "NOTE_NAME" --content "---
tags: [TYPE_TAG]
source: SOURCE_URL
author: AUTHOR
date: DATE
---
# TITLE
## Key Points
- Point 1
- Point 2
- Point 3
## Summary
Brief paragraph summarizing the content.
## Source
- [Original](SOURCE_URL)"
类型标签:X 内容使用 tweet,GitHub 使用 github,网页使用 web,想法使用 idea。
适用于深度研究(想法):
res-deep 技能会生成自己的结构化输出。使用该输出作为正文创建笔记,并添加 frontmatter:
notesmd-cli create "NOTE_NAME" --content "---
tags: [idea, research]
date: DATE
---
{res-deep output here}"
第 4 步:更新每日笔记
对于每个已处理条目,将每日笔记中的原始文本替换为维基链接。
按章节划分的维基链接格式
## Links 章节(来自书签/收藏的 URL):
- [[note-name]] — @author: summary with key metrics (stars, likes, etc.)
## Notes 章节(想法和思考):
- [[note-name]] — Brief: what the idea/research covers
## Log 章节(活动记录):
- [[note-name]] — Summary of what was captured
编辑流程
- 读取每日笔记:
notesmd-cli print "$DATE" - 解析知识库路径:
VAULT=$(notesmd-cli print-default --path-only) - 使用 Edit 工具,将每个原始条目替换为对应的维基链接行
- 每次替换一个条目,以避免 Edit 冲突
- 再次读取笔记,确认最终内容
规则
- 保留现有维基链接,绝不修改已处理的行
- 保持章节结构不变(## 标题、条目之间的空行)
- 如果某个条目跨越多行(例如一段想法),将所有行替换为一行维基链接
- 维基链接摘要应简洁(少于 120 个字符),但在有关键指标时应包含这些指标
第 5 步:重新索引并汇报
重新索引知识库
qmd update && qmd embed
汇总报告
提供一张汇总表:
## Digest Complete: {DATE}
| # | Type | Note Created | Status |
|---|------|-------------|--------|
| 1 | X tweet | [[note-name]] | Created |
| 2 | Loose idea | [[note-name]] | Created (res-deep quick) |
| 3 | GitHub | [[note-name]] | Created |
| 4 | Web URL | — | Failed (403) |
Notes created: 3
Items skipped: 2 (already processed)
Items failed: 1
Vault re-indexed: Yes
模式
完整模式(默认)
处理每日笔记中所有尚未处理的条目。
“处理我的每日笔记” / “每日摘要”
选择模式
仅处理指定条目或章节。
“只处理今天每日笔记中的链接” “只整理 X URL”
日期覆盖
处理指定日期的每日笔记。
“处理昨天的每日笔记” “整理 2026-02-20”
试运行
对条目进行分类并展示表格(第 1 步),但不进行处理。
“我的每日笔记中有哪些内容尚未处理?” “告诉我有哪些内容需要整理”
约束
应该:
- 始终先执行第 0 步(知识库路径 + 每日笔记 + xAI 检查)
- 展示分类表,并等待用户批准后再进行处理
- 对相互独立的项目并行处理(多个 WebFetch 调用、一次批量处理多个 X URL)
- 创建前检查是否已有笔记,避免重复
- 编辑前读取每日笔记,绝不猜测内容
- 通过
notesmd-cli print-default --path-only动态解析知识库路径
不应该:
- 处理用户从分类表中排除的条目
- 修改已处理的维基链接行
- 将知识库路径写死
- 跳过分类审批步骤
- 除非用户明确要求,否则不要以默认/深度级别运行 res-deep;每日摘要使用 quick
- 创建不含 frontmatter 的笔记