何时使用
用户说要补全正文、拉取/抓取无正文条目的正文并更新到 mixdao、或提到 fill content / 无正文 / hasContent 时使用本 skill。
补全正文(Fill Content)
根据 URL 抓取正文,上传前用 AI 梳理为约 250 字案例描述并替代正文回写到 mixdao,仅处理当前尚无正文的条目。
脚本
| 脚本 | 作用 |
|---|---|
scripts/01-fetch-no-content.js | 拉取 mixdao GET /api/latest,过滤出 hasContent === false 的条目,写入 temp/fill-content-{date}.json。 |
scripts/02-fetch-content.js | 读取 01 输出的 JSON,抓取每个 URL 的正文,保存到 temp/{cachedStoryId}.txt。 |
scripts/03-update-from-temp.js | 从 temp 读取正文,上传前用 AI 梳理为约 250 字案例描述并以此替代正文 PATCH 更新。list 必须传 JSON 路径,输出元数据与正文摘要供 Agent 判断;更新必须传至少一个 id,可一次传多条。 |
流程
步骤 1:获取无正文条目
node scripts/01-fetch-no-content.js
输出:temp/fill-content-{date}.json(示例:temp/fill-content-2026-02-17.json)
步骤 2:批量抓取正文
node scripts/02-fetch-content.js temp/fill-content-2026-02-17.json
- 自动抓取每个 URL 的内容(先 curl,失败时用 Playwright 无头浏览器兜底)
- 保存到
temp/{cachedStoryId}.txt - 过滤无效内容(404、登录页等)
- 可中途停止,下次运行会跳过已存在的文件
步骤 3:预览待更新内容(含元数据,供 Agent 做语义判断)
# 推荐:传入步骤 1 的 JSON 路径,输出每条 title、translatedTitle、text 与正文摘要
node scripts/03-update-from-temp.js list temp/fill-content-2026-02-17.json
- 必须传 JSON :每条输出
cachedStoryId、title、translatedTitle、text(截断)、contentLength、contentPreview(正文前 300 字)。是否与文章主题一致由 Agent 根据上述信息自行判断;其中需排除内容仅为导航/框架、未包含实际正文的条目。存疑条目可在步骤 4 选择不更新。
步骤 4:更新到 mixdao
Agent 做好主题判断后,只更新判定为一致的条目,一次传入多个 cachedStoryId。脚本会先用 AI 将每条正文梳理为约 250 字(简体中文、突出人物/公司等),提交到 mixdao 的是该梳理结果,而非原始长正文。运行前需设置 ANTHROPIC_API_KEY(与 daily-briefing 一致)。
# 更新指定的一条或多条(推荐:判断后只传通过的 id)
node scripts/03-update-from-temp.js <id1> <id2> <id3>
示例:node scripts/03-update-from-temp.js cmlpr8xsb005al70adaskpzl4 cmlpr8xd7002jl70ax1ytgrrt