Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add anneheartrecord/charles-skill --skill weread-digestgit clone --depth 1 https://github.com/anneheartrecord/charles-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/anneheartrecord/charles-skill/weread-digest)<a href="https://agentmods.dev/skills/anneheartrecord/charles-skill/weread-digest"><img src="https://agentmods.dev/badge/skills/anneheartrecord/charles-skill/weread-digest/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/anneheartrecord/charles-skill/weread-digest"><img src="https://agentmods.dev/badge/skills/anneheartrecord/charles-skill/weread-digest.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00110 | $0.03230 |
| Opus 5.5 | $0.00044 | $0.01292 |
| Sonnet 5.5 | $0.00022 | $0.00646 |
| Haiku 4.5 | $0.00011 | $0.00323 |
Grade A, and why
weread-digest scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -X POST "https://i.weread.qq.com/api/agent/gateway" \ How it starts
The opening of the file, as written. The whole thing — 161 lines — stays where its author put it; the contents beside it link to each section on GitHub.
weread-digest — 微信读书沉淀
Overview
微信读书里的划线和想法是原料,知识库笔记是复用资产,推文是一次性产物。这个 skill 把三者串成一条固定顺序的流水线:先落笔记,再出推文。
笔记先落盘,是因为推文只用得上一本书里的三五个判断,剩下的读完就丢了。笔记留住全部,下次写别的选题还能取。
两段流水线
第一段(必做):微信读书 → 20-knowledge/读书/读书笔记/读《书名》小记.md
第二段(按需):那篇笔记 → 30-outputs/tweets/ 推文草稿
用户只说「整理成笔记」就停在第一段。说「写成推文」也要先跑完第一段——笔记不存在时不许直接从划线写推文,那样这本书的原料只被消费一次。
第一段:落知识库笔记
1. 定位 bookId
- 用户给了书名 →
/store/search,取bookId - 用户问「哪些书还没写笔记」「最近读了什么没记」→ 走下面的缺口盘点
1b. 缺口盘点(口径别搞窄了)
拉源:/user/notebooks,游标分页——首页只传 count,之后取上一页 books 最后一项的 sort 当 lastSort 再请求,直到 hasMore 为 0。不要传 offset/limit,那两个参数后端不读,会一直返回第一页。
排序:books[].sort 就是最近一次做笔记的时间戳。用户说「最近」时按它倒序,别按书架顺序。
比对时必须扫全四个位置,只扫 读书笔记/ 会产生大量假缺口(实测 269 本「缺口」里有相当一部分是这四类):
| 位置 | 形态 | 注意 |
|---|---|---|
20-knowledge/读书/读书笔记/ |
读《X》小记.md |
主目录 |
20-knowledge/网络书籍/<书名>/ |
result.json + MANUAL_REVIEW.md |
另一套导入产物,不是 md 笔记 |
_private/阅读/ |
X-读书笔记-YYYY-MM-DD.md |
在 gitignore 区,rg 必须加 --no-ignore,否则搜不到 |
30-outputs/tweets/、30-outputs/长文/ |
推文/长文里直接引用了书名 | 没笔记但已经消费过,不该再报成缺口 |
书名匹配要容错,实测踩过的坑:
- 一字之差:微信读书《以日为镜》vs 库里《以日为鉴》。别只做精确/子串匹配,长度 ≥3 的标题要允许 1 个字的差异
- 副标题与后缀:
长得好看能当饭吃吗:提升认知的33个经济学常识、(第2版)、(微信读书特别版)、(全六册)、文件名里的 z-library 后缀,比对前全部剥掉 - 拿不准的不要直接判缺口,列进「待人工确认」那一档
盲区(要说出来,不要假装覆盖了):/user/notebooks 只返回有笔记数据的书。用户读完但一条划线都没划的书,这条路径发现不了,得另走 /shelf/sync 看 finishReading 与 readingProgress。
2. 拉原料(两个接口都要拉)
| 接口 | 拿到什么 | 在笔记里变成什么 |
|---|---|---|
/book/bookmarklist |
updated[].markText 划线原文 + chapters[] 章节 |
章节结构 + 加粗的要点行 |
/review/list/mine |
reviews[].review.content 本人想法与点评 |
要点下面的展开段落 |
调用规范(鉴权、参数平铺)见 weread-skills skill,不在这里重复。
**skill_version 不要在本文件里写死。**每次请求都要带,值取 weread-skills/SKILL.md 顶部 frontmatter 的 version 字段,现读现取。回包里出现 upgrade_info 时按它的 message 先完成升级再重跑——这是 weread-skills 的硬规则,不是建议。(本文件下面 Quick Reference 里的版本号只是示例,照抄会过期。)
必须走 gateway 接口,不要用 weread MCP 的 weread_notes 工具。实测那个工具返回的是全书热门划线(items[].userVid 是别人、items[].totalCount 是划线人数),不是本人划线。拿它当个人笔记写出来的note 是别人的阅读痕迹。判别方法:回包里有 userVid 且各不相同的,就是热门划线。
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 161 lines · 110 tokens per session scan A aef9f7e03be9
weread-digest is a skill published in the GitHub repository anneheartrecord/charles-skill (4 stars, last pushed 3mo ago), licensed MIT. It adds 110 tokens to every session and 3,230 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
weread-digest compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| weread-digestanneheartrecord/charles-skill | Skill | 4 | 3mo ago | MIT | A | 110 | Claude Code |
| understand-explainEgonex-AI/Understand-Anything | Skill | 91k | yesterday | MIT | A | 27 | Claude Code |
| lecture-to-notesdrpwchen/lecture-to-notes | Skill | 116 | 5d ago | MIT | A | 87 | Claude Code |
| textbook-to-mddrpwchen/textbook-to-note | Skill | 110 | 5d ago | MIT | A | 90 | Claude Code, Codex |
| agent-recallGoldentrii/AgentRecall-X | Skill | 373 | yesterday | MIT | B | 172 | Claude Code, Codex |
| sciatlas-quick-paper-searchzjunlp/SciAtlas | Skill | 170 | 17d ago | MIT | A | 82 | Codex |
| mykgSenolIsci/mykg | Skill | 84 | 16d ago | MIT | A | 175 | Claude Code, Codex |