← ClaudeAtlas

weread-digestlisted

Use when a book was read in 微信读书 but has no 读书笔记 in the local knowledge base, or when a 微信读书 book needs to become knowledge-base notes and X 推文. Triggers:把这本书整理成笔记、微信读书笔记落盘、这本书补个笔记、把划线整理进知识库、这本书写成推文、读书笔记转推文、书架上哪些书还没写笔记。
anneheartrecord/charles-skill · ★ 2 · AI & Automation · score 73
Install: claude install-skill anneheartrecord/charles-skill
# 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. 拉原料(两个接口都要拉) | 接口 | 拿到什么 | 在笔记里变成什么 | |---|---|