关于 wiki-digest
wiki-digest 用于生成 Obsidian wiki 近期活动的可读回顾,重点整理知识、主题、页面关联和待解决事项。它可直接在对话中输出,也可按要求保存为日志页面。
主要功能
- 01总结新增和更新的 wiki 页面
- 02识别重复标签与主题
- 03查找跨类别的页面链接
- 04呈现草稿和未解决事项
- 05可选保存为日志摘要
适用场景
- 01回顾过去一周积累的知识
- 02梳理近期更新页面中的共同主题
- 03发现值得重读的草稿与关联
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ar9av/ obsidian-wiki --skill wiki-digest安装后在 Claude Code 中输入/wiki-digest确认已加载。
详细介绍
Wiki Digest — 知识简报生成器
生成一份易于阅读的近期 wiki 活动简报:有哪些新发现、哪些内容得到更新、出现了哪些主题,以及哪些内容值得回顾。这项技能总结的是知识,而不是来源——把它看作每周回顾,而不是摄取状态报告。
开始之前
写作风格配置: 在起草或改写自然语言 Markdown 之前,请阅读并遵循 llm-wiki/SKILL.md 中的 Writing Profile Resolution 部分。框架架构、来源信息、安全性和特定操作要求优先。
WRITING.md 中的偏好仅适用于新起草或改写的自然语言 Markdown;保留来源内容和结构化记录。
- 解析配置 — 遵循
llm-wiki/SKILL.md中的 Config Resolution Protocol(内联@name覆盖 → 从 CWD 向上查找.env→ 全局配置 → 提示词设置)。由此获取OBSIDIAN_VAULT_PATH和OBSIDIAN_LINK_FORMAT。 - 解析时间范围,根据用户请求确定:
- “daily” / “today” / “yesterday” → 过去 24 小时
- “weekly” / “this week” / 无参数(默认)→ 过去 7 天
- “monthly” / “this month” → 过去 30 天
- ISO 日期,例如 “since 2026-05-01” → 自该日期以来更新的页面
- 明确的数字,例如 “last 14 days” → 指定天数
- 读取
$OBSIDIAN_VAULT_PATH/log.md的最后 200 行,查找时间范围内的条目(时间戳位于以 ISO-8601 格式开头的行中)。 - 读取
$OBSIDIAN_VAULT_PATH/hot.md,了解当前会话的上下文。 - 如果
$OBSIDIAN_VAULT_PATH/_insights.md存在,读取其中的 Anchor Pages 表;稍后用它判断哪些新页面成了中心页面。
第 1 步:收集时间范围内的活跃页面
遍历 $OBSIDIAN_VAULT_PATH 下所有 .md 文件。跳过特殊文件和系统文件:
index.md、log.md、hot.md、AGENTS.md、_insights.md_meta/、_archives/、_raw/目录下的所有文件- 日志简报页面本身(
journal/digest-*.md)
读取其余每个页面的 frontmatter:
created— 页面首次编写的时间updated— 页面最后修改的时间
分类:
- 新页面:
created在时间范围内 - 已更新页面:
updated在时间范围内,但created早于该时间范围 - 未更改页面:两个日期都不在时间范围内 → 跳过
如果活跃页面少于 5 个,请注明这一点并询问是否扩大范围:“过去 7 天内只有 3 个活跃页面——要改为生成月度简报吗?” 除非用户同意继续,否则到此为止。
对每个活跃页面,收集:title、category、tags、summary(frontmatter 字段)、lifecycle,以及正文中的任何 ^[ambiguous] 或 ^[inferred] 标记。
第 2 步:识别主题
统计所有活跃页面中各标签对应主题的出现频次:
For each tag across new + updated pages:
count how many active pages carry it
Sort descending, take top 5
另外,读取 $OBSIDIAN_VAULT_PATH/_meta/taxonomy.md(如果存在)。标记第 1 步中未出现在分类体系里的标签——这些是本时间范围内出现的新词汇。
指出增长最多的类别(concepts/、entities/、skills/、synthesis/、references/ 等)。
第 3 步:找出值得关注的新联系
扫描新页面和已更新页面中的跨类别 wikilink——即连接不同知识层的链接。这些是本时间范围内最有思想价值的成果。
对每个活跃页面,提取所有 [[wikilink]] 目标。根据目标的类别前缀对链接分类。标记跨类别的链接(例如,concepts/ 页面链接到 entities/ 页面,或 synthesis/ 页面连接两个主题)。
按有趣程度为候选项排序:
- 如果链接跨越两个很少相连的类别,则 +3(如果有
_insights.md中的桥接数据,则使用该数据) - 如果目标页面是排名前 10 的中心页面(根据
_insights.md中的锚点),则 +2 - 如果链接出现在
synthesis/页面中(表示有意进行跨主题关联),则 +2 - 如果来源页面标记为
^[inferred](表示这是综合推断出的联系,而非直接陈述),则 +1
选出排名最高的 3–5 个联系。用通俗易懂的句子分别说明:不要只写“A → B”,还要说明这种联系为何有趣。
第 4 步:梳理未解决事项
扫描活跃页面和 _raw/,查找尚未完成的工作:
- 草稿:带有
lifecycle: draft或lifecycle: stub的页面 - 含糊的说法:统计所有活跃页面中的
^[ambiguous]标记(不用逐个列出,只需给出数量,并指出标记最多的页面) - 尚未归档的笔记:统计
$OBSIDIAN_VAULT_PATH/_raw/中的文件数(其中的文件都尚未提升为正式内容) - 分类体系缺口:第 2 步中的标签里未收录在
_meta/taxonomy.md中的标签
第 5 步:选择建议重读的页面
从 本周期之前 已有的页面中,找出 2–3 个值得结合本周新增的背景信息重新阅读的页面。
启发式方法:找出与第 1 步中的活跃页面共享标签最多的本周期之前的页面。这些是基础页面,其主题在本周期得到了延伸——新页面建立在这些页面之上,但用户可能没有重新阅读基础内容。
另外,还要包括任何一个现在新增了 2 个或更多活跃页面入链的本周期之前的页面(它的关联度刚刚提升,说明它可能是承重页面)。
为每条推荐写出具体原因:“[[concepts/attention-mechanism]] — 这是你的基础页面;本周导入的 3 篇新论文都对其进行了扩展”,而不只是写页面标题。
第 6 步:生成摘要
生成结构清晰、便于快速浏览的 Markdown 报告。标题部分最重要——它应像一份优质简报的开篇,综合提炼实际洞见,而不是罗列页面名称。
使用 llm-wiki/SKILL.md(“链接格式”部分)中的链接格式,并遵循 OBSIDIAN_LINK_FORMAT。默认格式为 [[wikilink]]。
# Wiki Digest — [Period Label]
> [N new pages · M updated pages · period: YYYY-MM-DD to YYYY-MM-DD]
## Headlines
- [Concrete insight #1 — synthesize the actual knowledge, not just "learned about X"]
- [Concrete insight #2]
- [Concrete insight #3]
## New Knowledge
### New pages ([count])
| Page | Category | Summary |
|---|---|---|
| [[concepts/foo]] | concept | One-sentence summary from frontmatter |
| [[entities/bar]] | entity | One-sentence summary |
### Notable updates ([count])
| Page | What changed |
|---|---|
| [[skills/react-hooks]] | Added patterns for useCallback with async effects |
*(If no updates, omit this subsection.)*
## Emerging Themes
- **#[tag]** ([N pages]) — [One sentence on why this topic was active]
- **#[tag]** ([N pages]) — [...]
- **#[NEW TAG]** ([N pages]) ⭐ *New vocabulary — not yet in taxonomy*
Most active category: **[category/]** ([N pages added or updated])
## Key Connections Made
- [[concepts/A]] → [[entities/B]] — [Plain-English reason this connection is interesting]
- [[synthesis/X]] created — bridges [[concepts/Y]] and [[concepts/Z]] for the first time
- *(up to 5 connections)*
## Open Threads
- **Drafts to compile** ([count]): [[concepts/foo]], [[concepts/bar]] — still in draft lifecycle
- **Ambiguous claims**: [N] `^[ambiguous]` markers across [M] pages — run `/wiki-synthesize` to resolve
- **Unstaged notes**: [N] files in `_raw/` — run `/wiki-ingest _raw/` to promote them
- **Taxonomy gaps**: Tags `#newtag1`, `#newtag2` used but not in taxonomy — run `/tag-taxonomy`
*(Omit any subsection where count is 0.)*
## Recommended Re-reads
- [[concepts/X]] — [Specific reason: "3 new papers this week all extend this concept"]
- [[synthesis/Y]] — [Specific reason: "2 new pages created this week reference it"]
- [[skills/Z]] — [Specific reason: "now has 4 new incoming links — it's become a hub"]
---
*Generated by wiki-digest · [TIMESTAMP] · [N pages scanned in [VAULT_PATH]]*
可见性:如果页面带有 visibility/pii 标签,则从所有表格和关联列表中排除(但应计入总数,并注明“+ N 个私密页面”)。如果用户明确说“包含私密页面”或“完整摘要”,则正常包含这些页面。
第 7 步:输出并视情况保存
默认(在聊天中输出): 直接打印摘要。末尾询问:
“要我把它保存为 journal/digest-YYYY-MM-DD.md 吗?”
如果用户在请求前加上“save”或“write”(例如,/wiki-digest save 或“生成并保存我的每周摘要”):
- 写入
$OBSIDIAN_VAULT_PATH/journal/digest-YYYY-MM-DD.md(每周/每月)或journal/digest-YYYY-MM-DD-daily.md(每日) - 添加 frontmatter:
--- title: "Wiki Digest — [Period Label]" category: journal tags: [digest, meta/review] sources: [] created: TIMESTAMP updated: TIMESTAMP summary: "Weekly knowledge digest: [N new, M updated pages]. Top themes: [tag1], [tag2]." --- - 在
index.md的 Journal 部分下添加新条目 - 不要添加到
.manifest.json(摘要不是来源导入内容)
无论哪种情况,都要在 log.md 末尾追加:
- [TIMESTAMP] DIGEST period="7d" new_pages=N updated_pages=M themes=T connections=C saved=false
边缘情况
| 情况 | 处理方式 |
|---|---|
| 活跃页面少于 5 个 | 提议扩大时间范围;仅在用户确认后继续 |
| 知识库为空(没有任何页面) | 告知用户先运行一次导入,然后停止 |
没有 _meta/taxonomy.md | 跳过分类体系缺口检查;在“未解决事项”中省略该行 |
没有 _insights.md | 跳过第 3 步中基于中心页面的评分;仍需生成关联部分 |
所有页面都带有 visibility/pii 标签 | 报告“本周期有 N 个私密活跃页面”,不提供详情;提供完整模式选项 |
| 时间范围涵盖 Wiki 重建 | 在摘要中注明:“本周期内 Wiki 已重建——页面日期反映重建后的状态” |
备注
- 标题是摘要的精华所在。 不要罗列页面标题,而要综合提炼实际所学。如果有人本周学习了注意力机制,标题应概括洞见,而不只是说“新增了 3 个 Transformer 页面”。
- 重读建议要具体。 “此页面相关”毫无用处。“本周的 3 篇论文都引用了此页面中的同一个说法”才有实际帮助。
- 此技能只读取内容。 唯一的写入操作是可选的日志页面,以及向
log.md追加内容。不会修改现有 Wiki 页面。 - 不要与 wiki-status 的功能重复。 如果用户问“还有什么需要导入”或“有哪些增量”,请转到
wiki-status。此技能回答的是“我学到了什么”,而不是“还有什么待处理”。
Vault 写入后刷新 QMD
QMD 是搜索索引,不是事实来源。如果 $QMD_WIKI_COLLECTION 为空或未设置,请跳过此步骤。仅在此技能写入或重写了 Vault Markdown 后运行。如果 QMD 刷新失败,不要回滚 Vault 更改;请单独报告 QMD 状态。
如果设置了 $QMD_CLI,请使用它;否则使用 qmd。
${QMD_CLI:-qmd} update
如果输出提示需要向量或嵌入可能已过时,请运行:
${QMD_CLI:-qmd} embed
使用以下任一方式验证该集合:
${QMD_CLI:-qmd} ls "$QMD_WIKI_COLLECTION"
或者,在已知特定页面路径时:
${QMD_CLI:-qmd} get "qmd://$QMD_WIKI_COLLECTION/<page>.md" -l 5
记录以下其中一项:
QMD refreshed: update + embed + verifiedQMD refreshed: update only + verifiedQMD skipped: QMD_WIKI_COLLECTION unsetQMD skipped: qmd CLI unavailableQMD failed: <short error summary>