x-likes-digestlisted
Install: claude install-skill yuanhaorannnnnn/agent-skills
# X Likes 娱乐周报
把 X Likes 当成每周一次的娱乐 inbox。只做增量发现、分组、排版和邮件投递;不写 Wiki,不调用 acquisition。
## 固定边界
- X 侧只读:只读 `liked_tweets`,不得点赞、取消点赞、发帖、书签或修改任何 X 状态。
- 凭据只由 `xurl` 的 OAuth 配置管理;不得输出 token、secret 或授权头。
- 不写 `/media/yhr/2T/files/wiki`,不执行 git、catalog、index 或 log。
- 收件人固定为 Gmail `me`;不抄送、不转发给其他人。
- 用户已确认的内容规则:按当周实际内容分组,不设固定分类比例;不加点评;视频只给链接,不嵌缩略图;不过滤条目。
- 安全边界:敏感、成人或明显冒犯条目仍保留在周报中,但邮件正文不复述其文本或媒体,只显示“⚠️ 敏感内容,点开原帖查看”加链接。
## 依赖
- `xurl` app `x-bookmark-ingest`,当前 OAuth 已具备 `like.read`。
- 只读探测:`npx -y @xdevplatform/xurl --app x-bookmark-ingest /2/users/me`
- MCP 的 X 工具没有“读取自己 likes”的接口,必须用 xurl REST;不要用 `get_posts_liking_users` 代替。
- Gmail 发送:
`gmail_send_email({to:"me", subject, payload:{mime_type:"text/html", charset:"UTF-8", body:{content:html}}, response_fields:["id","thread_id"]})`
## 状态
- `~/.codex/automations/x-likes/state.json`
- `~/.codex/automations/x-likes/issues/<issue-id>/`
- `~/.codex/automations/x-likes/memory.md`
`state.json` 的 `seen` 是增量账本;首次运行且没有 `baseline_at` 时只建立 baseline,不发邮件。
Baseline 只关心“从现在往后的新增”。不要自动运行高消耗的 API baseline;优先让用户从 X 设置下载数据归档,用 `import-archive --path <like.js>` 直接导入历史 like 的 tweetId,零 API 读取。没有归档时报告 blocked 并停止,等用户明确同意再建立 API baseline;API baseline 最多读取一页 100 条,增量遇到已见条目即停止。
如果用户手动指定某条推文作为本期起点,用 `set-start --tweet-id <id> --manifest <pending.json>` 建立边界:该推文及更新的 Likes 视为本期新增,之后的旧 Likes 标记为已见。
## 运行流程
1. `python3 <skill-dir>/scripts/x_likes_digest.py probe`
2. `python3 <skill-dir>/scripts/x_likes_digest.py status`
3. 没有 baseline:优先从 X 数据归档执行 `i