关于 wow-digest
wow-digest 是处理近期邮件简报和 Telegram 帖子的技能,会依据用户关注点与近期研究筛选值得关注的内容,并写入每日笔记;也支持预览和反馈流程。
主要功能
- 01导入邮件简报和 Telegram 帖子
- 02补全仅含链接的内容
- 03过滤噪声并评估新颖度
- 04对近期候选内容去重
- 05将精选内容写入每日笔记
- 06收集人工反馈
适用场景
- 01回顾过去一天的重要动态
- 02预览摘要而不修改笔记
- 03避免不同来源重复文章
- 04根据相关性反馈调整筛选
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ glebis/ claude-skills --skill wow-digest安装后在 Claude Code 中输入/wow-digest确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
requirements.txtconfig/sources.yamlwow_prompt.txtscripts/enrich.pyfeedback.pyingest.pysalience_filter.pywow_score.py详细介绍
wow-digest
用途
抓取过去 24 小时的新闻简报(电子邮件)和 Telegram 频道帖子,过滤噪声,根据用户的关注重点和近期研究为剩余内容评估其是否带来真正的惊喜,并将 3-7 条 WOW 内容追加到今天的每日日志中。
工作流
- 运行
scripts/ingest.py,从所有来源抓取并规范化候选内容 - 运行
scripts/enrich.py,为仅包含链接的新闻简报(LinkedIn、beehiiv、Substack)获取完整内容 - 运行
scripts/salience_filter.py,剔除明显的噪声(营销、付款、问候) - 对过滤后的候选内容运行
scripts/wow_score.py,评估并选出 WOW 内容 - 将选出的内容追加到今天的每日日志中的
## Reading下方 - 将原始候选内容保存到
.wow-eval/candidates/YYYYMMDD.jsonl,以便重放 - 通过 GWS 归档已处理的新闻简报邮件
- 在评估阶段:运行
scripts/feedback.py收集人工评判
手动运行
python3 scripts/ingest.py --days 1 --output /tmp/wow-candidates.jsonl
python3 scripts/enrich.py --input /tmp/wow-candidates.jsonl --output /tmp/wow-enriched.jsonl
python3 scripts/salience_filter.py --input /tmp/wow-enriched.jsonl --output /tmp/wow-filtered.jsonl
python3 scripts/wow_score.py --input /tmp/wow-filtered.jsonl --output /tmp/wow-selected.json
# Then the skill appends to daily note and archives emails
试运行模式
当用户说 /wow-digest --dry-run 或“预览摘要”时,运行完整工作流,但:
- 不要追加到每日日志
- 不要归档邮件
- 而是直接在对话中输出选出的内容及其分数和切入点
这样用户可以预览将要追加的内容,而不会产生副作用。
上下文来源
评分提示词使用 vault(~/Brains/brain/)中的三个上下文信号:
{focus}— 来自My Focus.md中的## Current、## Base、## Primary部分(到## Nice to have为止)。这能告诉评分器用户当前关注什么。{research}— 来自ai-research/*.md文件(最近 30 天),从文件名(YYYYMMDD-topic.md)和research_topic:frontmatter 中解析。显示用户已经研究过的主题。{recent_topics}— 来自Daily/YYYYMMDD.md的标题(最近 7 天),排除## do和## log。显示近期每日日志的主题。
如果这些文件不存在,评分仍可运行,但个性化效果会下降。
去重
摄取时会使用 title|source_name 的 SHA-256 哈希(不区分大小写),与 .wow-eval/candidates/*.jsonl 中最近 7 天的内容进行去重。同一篇文章在多个频道分享,或在新闻简报中重复发送,都不会出现两次。向 ingest.py 传入 --no-dedup 可跳过去重。
配置
编辑 config/sources.yaml,添加或移除电子邮件模式或 Telegram 频道。
编辑 config/wow_prompt.txt,调整评分提示词。
输出格式
评分后,将内容追加到今天的每日日志(Daily/YYYYMMDD.md)中,放在 - - - 分隔符上方、已有内容下方:
## Reading
- **[Title]** (Source) — hook explaining WHY it's surprising
- **[Title]** (Source) — hook
...
_WOW digest · N candidates → M selected · YYYY-MM-DD_
重要:始终运行 date +"%Y%m%d" 获取今天的日期。切勿自行假定。
如果每日日志中已存在 ## Reading,请将内容追加到该部分,而不是创建重复部分。
归档
追加到每日日志后,归档已处理的新闻简报邮件:
- 收集电子邮件候选内容中的所有
message_id值 - 运行 GWS batchModify,移除 INBOX 标签
gws gmail users messages batchModify \
--params '{"userId":"me"}' \
--json '{"ids":["ID1","ID2",...],"removeLabelIds":["INBOX"]}'
评估模式(前 2 周)
评估阶段不要自动归档,而是:
- 按常规运行摄取和评分
- 向用户展示选出的内容及其完整内容,而不只是标题。每项内容显示:
- 标题 + 来源
- 片段(实际内容的前 300-500 个字符)
- 大模型给出的切入点和 challenged_assumption
- WOW 分数明细(相关性、惊喜度、桥接价值、可预测性)
- 先将所有内容放在同一个文本块中展示,供用户阅读
- 然后通过 AskUserQuestion 提问:“这确实让你 WOW 了吗?”,选项为:wow / meh / noise / already_knew
- 通过
scripts/feedback.py记录反馈 - 显示当前反馈统计
- 只有在用户确认后才归档
重要:用户无法仅凭标题判断是否 WOW。始终展示片段内容。 如果片段为空或过短,请先通过 GWS 获取完整邮件正文,再进行展示。
检查评估模式是否启用:
- 如果
.wow-eval/feedback.jsonl少于 50 条记录 → 评估模式 - 如果有 50 条或更多记录 → 自动模式(无需询问即可归档)