关于 weekly-digest
weekly-digest 是一项将行业研究整理为评分摘要的技能,适用于跟踪特定主题的研究者和从业者。它按范围、检索、来源核验和评分流程筛选候选内容,并生成原始清单、精选摘要及可选 HTML 报告。
主要功能
- 01按主题与地域范围检索近期信息
- 02核验候选内容的来源
- 03按五项指标评分并排序
- 04生成原始清单、精选摘要和失败日志
- 05可选导出到 Obsidian 并生成 HTML 报告
适用场景
- 01每周跟踪指定行业主题
- 02比较候选新闻的相关性与技术深度
- 03将摘要保存到 Obsidian
- 04查看检索来源与处理失败记录
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ glebis/ claude-skills --skill weekly-digest安装后在 Claude Code 中输入/weekly-digest确认已加载。
附带文件settings.example.jsonsettings.json
详细介绍
每周摘要
一个从研究到发布的流程,可生成经过评分和来源核验的行业摘要。工作流分为七个阶段:初始化、范围界定、研究、核验、评分、输出和呈现。
阶段 0:初始化
读取 ~/.claude/skills/weekly-digest/settings.json。可能有两种状态:
状态 A — 文件不存在,或 subjects 为空且文件没有 version 字段(全新安装): 使用 AskUserQuestion 工具,通过一个结构化提示一次性收集所有设置输入,进行初始配置:
AskUserQuestion({
questions: [
{
question: "What topic do you want to track weekly?",
header: "Topic",
options: [
{ label: "Agent orchestration", description: "Multi-agent frameworks, enterprise deployments, governance" },
{ label: "Design innovation", description: "Design tools, AI-design convergence, award-winning products" },
{ label: "Climate tech", description: "Clean energy, carbon capture, sustainability startups" },
{ label: "AI regulation", description: "EU AI Act, governance frameworks, copyright disputes" }
],
multiSelect: false
},
{
question: "Any geographic focus for sources?",
header: "Geography",
options: [
{ label: "Global (no filter)", description: "Include sources from all regions" },
{ label: "Europe, UK, Asia — not US", description: "Deprioritize American sources" },
{ label: "Europe only", description: "EU and UK sources preferred" },
{ label: "Asia-Pacific", description: "Japan, Korea, China, Singapore, India, Australia" }
],
multiSelect: false
},
{
question: "How many top items should the digest include?",
header: "Digest size",
options: [
{ label: "5 items (Recommended)", description: "Good balance of depth and brevity" },
{ label: "3 items", description: "Quick scan, only the best" },
{ label: "10 items", description: "Comprehensive coverage" }
],
multiSelect: false
},
{
question: "Where should output files go?",
header: "Output",
options: [
{ label: "output/ (Recommended)", description: "Relative to current working directory" },
{ label: "~/Digests/", description: "Home directory, shared across projects" }
],
multiSelect: false
}
]
})
如果你从记忆或个人资料中了解用户的情况,请调整示例选项以匹配其背景。用户始终可以选择“其他”,为任意问题输入自定义值。
收到回答后:
- 将主题映射为
output_prefix的 slug(小写、用连字符分隔、不含空格,例如:“Agent orchestration” → “agent-orch”) - 将地理关注范围映射为
geo_focus(选择“全球”时为 null,其他情况为字符串) - 从摘要大小的回答中解析出
top_n(3、5 或 10) - 使用所有默认值和新主题写入完整的设置文件:
{ "version": 1, "top_n": 5, "target_candidates": 20, "lookback_days": 7, "output_dir": "output", "language": "en", "weights": { "novelty": 1, "relevance": 1, "slopiness": 1, "technical": 1, "feasibility": 1 }, "obsidian_vault": null, "subjects": [{ ... }] } - 继续操作前,验证
output_dir是否存在(如有需要则创建)。 - 确认:“已保存。运行
/weekly-digest add [topic]可添加更多主题。” - 使用新配置的主题继续进入阶段 1。
/weekly-digest add 也应使用相同的 AskUserQuestion 模式——询问主题、地理关注范围,并确认生成的 slug。
状态 B — 存在主题,且用户运行了 /weekly-digest(无参数): 依次运行所有主题。
当主题列表为空,但存在 version 字段(用户有意清空主题): 不要自动进行初始配置。回复:“未配置主题。使用 /weekly-digest add [topic] 添加主题。”
完整的设置架构请参阅技能目录中的 settings.example.json。
配置
设置位于 ~/.claude/skills/weekly-digest/settings.json。
设置架构
{
"version": 1,
"top_n": 5,
"target_candidates": 20,
"lookback_days": 7,
"output_dir": "output",
"language": "en",
"weights": {
"novelty": 1,
"relevance": 1,
"slopiness": 1,
"technical": 1,
"feasibility": 1
},
"obsidian_vault": null,
"subjects": [
{
"topic": "agent orchestration",
"geo_focus": "European, UK, Asian — not American",
"output_prefix": "agent-orch"
}
]
}
除 subjects 外,所有字段均为可选项——缺少的键将使用上述默认值。output_prefix 必须是小写且用连字符分隔的 slug(不含空格)。
管理主题
/weekly-digest config— 显示当前设置/weekly-digest add [topic]— 交互式添加新的默认主题(询问地理关注范围和输出前缀)/weekly-digest remove [topic]— 从默认主题中移除一个主题/weekly-digest(无参数)— 依次运行所有默认主题,为每个主题生成单独的一组文件/weekly-digest [topic]— 将单个主题作为一次性任务运行(忽略默认设置)
设置参考
| 键 | 默认值 | 功能 |
|---|---|---|
top_n | 5 | 摘要中包含的条目数 |
target_candidates | 20 | 研究阶段要寻找的候选条目数 |
lookback_days | 7 | 搜索回溯的天数(会作为日期范围附加到查询中) |
output_dir | "output" | 生成文件的目录(相对于当前工作目录) |
language | "en" | 首选来源语言;非匹配语言的来源将降低优先级 |
weights | all 1.0 | 总分公式中各参数的乘数 |
obsidian_vault | null | Obsidian 知识库的路径;设置后,摘要会复制到 {vault}/Digests/YYYYMMDD-{prefix}.md |
阶段 1:范围界定
从用户的请求中解析:
- 主题(必填,或从设置中获取):例如“Agent orchestration”“quantum computing”“climate tech”
- 地理关注范围(可选,或从设置中获取):例如“欧洲、英国、亚洲——不包括美国”。默认:不筛选
自动检测当天日期,用于文件命名(YYYYMMDD 格式)。
如果用户给出的主题比较模糊,例如“AI”,请要求他们缩小范围——过于宽泛的主题会产生泛泛的结果。
阶段 2:调研
运行 4-6 个并行 WebSearch 查询,从不同角度覆盖主题。目标是找到 target_candidates 个不重复条目(默认 20 个)。使用 lookback_days 限定时效范围,并在查询中加入配置时间范围的月份和年份。查询结构如下:
| 查询模式 | 可查找的内容 |
|---|---|
[topic] breakthrough announcements [month] [year] | 重大发布、产品推出 |
[topic] startup funding [year] [geo] | 融资轮次、新参与者 |
[topic] open source release [year] | 开源框架、工具 |
[topic] research paper arxiv [year] | 学术贡献 |
[topic] enterprise production [year] [geo] | 实际部署、案例研究 |
[topic] regulation governance [year] [geo] | 政策、合规、标准 |
如果指定了地理侧重点,请在查询中加入地理词语,并增加一个专门的区域性查询。设置了 language 时,优先选择该语言的来源。
对搜索结果去重。力求多样化——如果候选项全都来自同一种来源类型(例如,全是市场预测或新闻稿),则应舍弃该候选池。检查是否至少涵盖以下 6 个类别中的 3 个。
如果候选项少于 15 个: 去掉年份/月份筛选条件,放宽一个查询后重新运行。如果仍少于 15 个,则使用现有结果继续,并在原始文件头部注明数量不足。
阶段 3:来源核验
根据以下预筛选信号,选出 8-10 个候选项进行核验:选择搜索摘要中至少包含以下一项的条目:具体的人名/组织名、具体日期、版本号或金额。降低仅使用最高级表述或模糊措辞的条目的优先级。
使用 WebFetch 检查一手来源是否存在内容注水迹象:
警示信号(内容注水程度高):
- 没有具名人士的直接引语
- 没有具体日期、交易条款或技术细节
- 采用叙事性文章结构,但没有出处说明
- 使用“挑选式指标”,且未提供核验链接
- 将未来日期作为事实呈现(推测性内容)
- 使用“即将蓄势待发”“注定将带来革命性变化”“颠覆性”等措辞
积极信号(内容注水程度低):
- 具名高管的直接引语
- 具体日期、金额、版本号
- 官方新闻稿、政府来源、arXiv
- 附有地点和日期的会议公告
- 提供具名客户和指标的案例研究
如果二手来源存在内容注水迹象,但背后的事件可能确有其事,请核查一手来源(公司博客、官方新闻稿、arXiv 摘要)。对最佳可用来源评分,而不是对质量最差的来源评分。
如果 WebFetch 失败(付费墙、403、超时、内容为空):在评分备注中注明失败情况,将内容注水程度保守地评为 5(质量未知),然后继续。将失败的 URL 记录在失败日志中。
阶段 4:评分
对每个候选项的以下五个参数按 0-10 分评分:
| 参数 | 衡量内容 | 0 分表示 | 10 分表示 |
|---|---|---|---|
| 新颖性 | 新颖程度或是否前所未有 | 旧闻、渐进式改进 | 世界首创、范式转变 |
| 相关性 | 与用户的相关程度 | 无关领域 | 对其工作直接有用 |
| 内容注水程度 | 来源内容注水的可能性 | 扎实的一手来源 | 纯 AI 注水内容或 SEO 填充内容 |
| 技术性 | 技术深度 | 没有技术内容 | 深入的架构、参考实现 |
| 可行性 | 内容属实还是推测 | 科幻、空中楼阁 | 已在生产环境中交付 |
**内容注水程度约定:**0 = 已核验、可信的来源。10 = 纯注水内容。公式会反转该值,因此内容注水程度低的条目得分更高。
总分公式
Overall = (w₁·Novelty + w₂·Relevance + w₃·(10 - Slopiness) + w₄·Technical + w₅·Feasibility) / (w₁ + w₂ + w₃ + w₄ + w₅)
settings.json 中的权重映射到公式符号如下:
w₁=weights.noveltyw₂=weights.relevancew₃=weights.slopinessw₄=weights.technicalw₅=weights.feasibility
默认值:全部为 1.0,因此采用简单平均。
相关性评分基准
相关性取决于用户是谁。请查看记忆/个人资料以了解背景。如果没有可用的个人资料,请对技术从业者受众使用以下基准:
- 10 — 提供可立即使用的可运行代码、API 或参考实现
- 7 — 介绍可在一周内采用的技术或工具
- 5 — 提供有一定可操作启示的趋势信息
- 3 — 有趣,但与大多数从业者关系不大
- 0 — 仅包含市场分析或预测,没有可操作的内容
第 5 阶段:输出文件
在配置的 output_dir(默认为 output/,相对于 cwd)中生成文件。如有需要,请创建该目录;如果创建失败(权限不足、路径无效),请在写入前中止并清楚说明错误。
所有运行均适用的 slug 规则: 每次运行都有一个 {prefix} slug。对于基于设置的主题,使用主题配置中的 output_prefix。对于单主题的一次性运行,按照第 0 阶段第 3 步中的同一规则,从主题生成 slug(小写、用连字符分隔、不含空格,例如 "quantum computing" → "quantum-computing")。
文件命名(始终使用前缀):
YYYYMMDD-{prefix}-raw.mdYYYYMMDD-{prefix}-digest.mdYYYYMMDD-{prefix}-failures.md(仅在存在失败时)YYYYMMDD-{prefix}-report.html(来自第 6 阶段)
原始文件(*-raw.md)
包含所有候选项(目标:20 项以上),每项包含:
- 标题和 1~2 句描述
- 评分表(全部 5 个参数及总分;非默认权重也须列出)
- 说明评分的备注
- 来源链接
- 在底部按总分排序的排名
摘要文件(*-digest.md)
按总分选出的前 top_n 项(默认为 5 项),每项包含:
- 标题
- 2 句摘要(内容翔实,不夸大;必须包含具体事实)
- 行内显示全部 5 个参数的评分
- 来源链接
在顶部附上简短说明,解释筛选方法并指向原始文件。
失败日志(*-failures.md)
在单独的文件中记录:
- WebFetch 失败的 URL(含错误类型)
- 返回结果少于 5 条的查询
- 因空洞度 > 8 而剔除的项目
- 任何数量不足的备注(找到的候选项 < 目标数)
仅在存在失败日志时创建此文件。
差异模式
如果同一主题存在先前的摘要文件,请进行比较。查找先前摘要文件的方法:列出 output_dir 中所有匹配 *-{prefix}-digest.md 的文件,并解析 YYYYMMDD 日期前缀。如果当天已有文件(同一天重新运行),则将其视为先前版本,并在写入新文件前将其重命名为 YYYYMMDD-{prefix}-digest.prev.md。否则,选择日期早于今天的最新文件。比较时:
- 两次运行中都出现的项目 → 在新摘要中标记为持续出现
- 仅在本次运行中出现的项目 → 标记为新增
- 本次不再出现的项目 → 在原始文件页脚注明“曾排名,本次未再出现”
Obsidian 导出
如果 settings.json 中设置了 obsidian_vault,则在生成摘要文件后,将其复制到 {obsidian_vault}/Digests/YYYYMMDD-{prefix}.md(使用与输出文件相同的 {prefix} slug)。如有需要,请创建 Digests/ 目录。
第 6 阶段:呈现
调用 /tufte-report 技能生成 Tufte 风格的 HTML 报告。tufte-report 技能必须安装在 ~/.claude/skills/tufte-report/ — 如果不可用,请跳过此阶段并告知用户:“请从 github.com/glebis/claude-skills 安装 tufte-report 技能以生成 HTML 报告。”
报告应包含:
- 摘要卡片 — 将前
top_n项作为带总分的排名卡片展示 - 详情部分 — 每项包含 2 句摘要,以及全部 5 个参数的横向评分条
- 完整候选项表格 — 按总分排列的所有候选项及其全部参数值
- 方法说明部分 — 来源如何验证、空洞度的含义及所用权重
将报告保存为 {output_dir}/YYYYMMDD-{prefix}-report.html,并在浏览器中打开。
示例调用
/weekly-digest agent orchestration
/weekly-digest climate tech, focus on European and Asian news
/weekly-digest config
/weekly-digest add quantum computing
/weekly-digest remove design innovation
/weekly-digest # runs all saved subjects
输出质量检查清单
提交结果前,请验证:
- 原始文件中至少有
target_candidates个条目(若不足,请注明) - 至少有 3 种不同的来源类型(新闻、学术、官方、资助)
- 已通过 WebFetch 验证热门候选项的来源
- 排名前
top_n的条目中,没有任何条目的 slopiness > 6;如果有,请删除该条目并提升排名靠后的下一条。(WebFetch 失败导致 slopiness 为 5 的条目可以保留;只有 slopiness ≥ 7、明显粗劣的来源才会被拦截。) - 每个条目都有可用的来源链接
- 2 句摘要包含具体事实,而非含糊的说法
- 如果发生任何失败,已创建失败日志
- 如果之前存在摘要,已添加差异标注
- 如果已配置知识库路径,已完成 Obsidian 导出