mcpField
D
doc-daily-digest

doc-daily-digest

github.com/molechowski生产力35 次安装
代码仓库

关于 doc-daily-digest

用于处理 Obsidian 每日笔记的工作流技能:分类条目、获取来源内容或研究资料、创建结构化笔记,并将已处理内容替换为维基链接,适合整理资料与想法。

主要功能

  1. 01分类链接、推文和想法
  2. 02获取来源内容并研究想法
  3. 03创建结构化 Obsidian 笔记
  4. 04将每日笔记条目替换为维基链接
  5. 05重新索引知识库并汇报结果

适用场景

  1. 01处理每日笔记中的收藏网址
  2. 02将零散想法整理为研究笔记
  3. 03处理前审阅并选择条目
  4. 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 的自动升级协议重试:

  1. scrapling extract get "URL" /tmp/scrapling-fallback.md → Read → 验证内容
  2. 如果内容单薄(仅有 JS 外壳,没有数据)→ scrapling extract fetch "URL" /tmp/scrapling-fallback.md --network-idle --disable-resources → Read → 验证
  3. 如果仍被拦截 → scrapling extract stealthy-fetch "URL" /tmp/scrapling-fallback.md --solve-cloudflare
  4. 所有级别均失败 → 记录失败并继续
网页 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 的自动升级协议重试:

  1. scrapling extract get "URL" /tmp/scrapling-fallback.md → Read → 验证内容
  2. 如果内容单薄(仅有 JS 外壳,没有数据)→ scrapling extract fetch "URL" /tmp/scrapling-fallback.md --network-idle --disable-resources → Read → 验证
  3. 如果仍被拦截 → scrapling extract stealthy-fetch "URL" /tmp/scrapling-fallback.md --solve-cloudflare
  4. 所有级别均失败 → 记录失败并继续
零散想法

调用 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-researchscrapling-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
编辑流程
  1. 读取每日笔记:notesmd-cli print "$DATE"
  2. 解析知识库路径:VAULT=$(notesmd-cli print-default --path-only)
  3. 使用 Edit 工具,将每个原始条目替换为对应的维基链接行
  4. 每次替换一个条目,以避免 Edit 冲突
  5. 再次读取笔记,确认最终内容
规则
  • 保留现有维基链接,绝不修改已处理的行
  • 保持章节结构不变(## 标题、条目之间的空行)
  • 如果某个条目跨越多行(例如一段想法),将所有行替换为一行维基链接
  • 维基链接摘要应简洁(少于 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 的笔记

评论

支持 Markdown