ZeeLin Report-to-X AutoPost 📰
把“报告网站/报告 JSON 列表 → 选最新未发报告 → 生成英文推文 → 发布到 X → 记录已发状态避免重复”封成一个可复用工作流。
适合场景:
- - 每天自动发一篇报告到 X
- 从一个固定网站持续推广最新报告
- 同一批报告只发一次,不重复
- 需要通过网页端 X 发布,而不是 API
何时触发
当用户表达类似需求时使用:
- - 「把这个报告网站每天发到我的推特」
- 「自动把最新报告发到 X」
- 「一天一个报告,不要重复」
- 「从 JSON / 网站里抓报告然后自动发推」
- 「帮我把报告站做成自动社媒分发」
默认工作原则
- 1. 优先从结构化列表读取:先找
reports_config.json、RSS、JSON、静态配置,再考虑网页渲染内容 - 先去重,再发帖:发布前必须检查本地 state 文件,避免重复发同一篇
- 先摘要,再发布:推文应简洁介绍报告核心内容,并附源站网址
- 默认英文发帖:除非用户要求中文或双语
- 网页端发 X,不碰密码:用户需提前登录 X 网页版
- 定时任务用 cron:日更/周更统一用 OpenClaw cron 管理
推荐目录结构
CODEBLOCK0
一次性发布流程
Step 1:确认数据源
优先确认报告源是否存在结构化入口,例如:
- - INLINECODE1
- RSS / Atom
- sitemap / JSON API
- 站点静态配置 JS 中引用的 JSON
如果是前端渲染站点,不要急着浏览器点击;先从 HTML/JS 中找数据源。
Step 2:挑选未发过的最新报告
- - 读取报告列表
- 加载本地状态文件(例如
memory/report-post-state.json) - 找到第一个未发过的报告
- 如果没有未发报告,就停止,不要硬发旧内容
Step 3:生成推文
推文建议结构:
- - 第一行: INLINECODE3
- 第二段:1–2 句总结核心价值
- 最后一行:站点首页 URL(必要时可补具体报告 URL)
要求:
- - 280 字符内
- 避免夸张营销腔
- 不要与上一条高度重复
Step 4:调用现成的 X 发帖脚本
优先复用已有网页端 X 发帖脚本,例如:
CODEBLOCK1
如果发帖成功:
如果失败:
定时发布流程
用户要求“每天一条、不重复”时:
- - 创建本地脚本处理“读取报告列表 + 去重 + 生成推文 + 发布 + 更新状态”
- 再用
cron 建每日任务
推荐时间:
- -
Asia/Shanghai 每天上午 10:00
状态文件建议
用 JSON 保存已发报告 id,例如:
CODEBLOCK2
关键防错规则
- 1. 只有发帖成功后才能记录已发状态
- 如果找不到新报告,直接退出,不要重复发旧文
- 如果网站是 React/Vue 前端渲染,先找 JSON 数据源,不要一上来就人工点网页
- 如果用户指定“不要重复”,就必须持久化状态到文件
- 推文要附网址,默认附站点首页;用户要求更细时可附具体报告链接
最小可复用脚本
这个 skill 适合把通用逻辑写进 scripts/post_daily_report.py:
- - 拉取远程报告列表
- 读/写状态文件
- 生成 tweet 文本
- 调用现有 tweet.sh
回报格式
完成后告诉用户:
- - 今天发的是哪篇报告
- 是否已成功发到 X
- 定时任务是否创建成功
- 下次运行时间
TL;DR:
- - 先找结构化报告列表
- 再选最新未发
- 生成英文推文 + 附网址
- 通过网页端 X 发出
- 记录状态避免重复
- 日更用 cron 挂起来
ZeeLin 报告自动发布到 X 📰
将“报告网站/报告 JSON 列表 → 选择最新未发布报告 → 生成英文推文 → 发布到 X → 记录已发布状态避免重复”封装为一个可复用工作流。
适用场景:
- - 每天自动将一篇报告发布到 X
- 从固定网站持续推广最新报告
- 同一批报告仅发布一次,不重复
- 通过网页端 X 发布,而非 API
触发条件
当用户表达类似需求时使用:
- - 「把这个报告网站每天发到我的推特」
- 「自动把最新报告发到 X」
- 「一天一个报告,不要重复」
- 「从 JSON / 网站里抓报告然后自动发推」
- 「帮我把报告站做成自动社媒分发」
默认工作原则
- 1. 优先从结构化列表读取:先查找 reports_config.json、RSS、JSON、静态配置,再考虑网页渲染内容
- 先去重,再发帖:发布前必须检查本地状态文件,避免重复发布同一篇
- 先摘要,再发布:推文应简洁介绍报告核心内容,并附上源站网址
- 默认英文发帖:除非用户要求中文或双语
- 网页端发 X,不碰密码:用户需提前登录 X 网页版
- 定时任务用 cron:日更/周更统一使用 OpenClaw cron 管理
推荐目录结构
text
skill/
├── SKILL.md
└── scripts/
└── postdailyreport.py
一次性发布流程
步骤 1:确认数据源
优先确认报告源是否存在结构化入口,例如:
- - reports_config.json
- RSS / Atom
- sitemap / JSON API
- 站点静态配置 JS 中引用的 JSON
如果是前端渲染站点,不要急于浏览器点击;先从 HTML/JS 中查找数据源。
步骤 2:挑选未发布过的最新报告
- - 读取报告列表
- 加载本地状态文件(例如 memory/report-post-state.json)
- 找到第一个未发布过的报告
- 如果没有未发布报告,则停止,不要强行发布旧内容
步骤 3:生成推文
推文建议结构:
- - 第一行:Todays report: {标题}
- 第二段:1–2 句总结核心价值
- 最后一行:站点首页 URL(必要时可补充具体报告 URL)
要求:
- - 280 字符以内
- 避免夸张营销语气
- 不要与上一条高度重复
步骤 4:调用现成的 X 发帖脚本
优先复用已有的网页端 X 发帖脚本,例如:
bash
bash /path/to/tweet.sh 推文内容 https://x.com
如果发帖成功:
如果失败:
定时发布流程
用户要求“每天一条、不重复”时:
- - 创建本地脚本处理“读取报告列表 + 去重 + 生成推文 + 发布 + 更新状态”
- 再使用 cron 创建每日任务
推荐时间:
- - Asia/Shanghai 每天上午 10:00
状态文件建议
使用 JSON 保存已发布报告 id,例如:
json
{
posted: [
report-id-1,
report-id-2
]
}
关键防错规则
- 1. 只有发帖成功后才能记录已发布状态
- 如果找不到新报告,直接退出,不要重复发布旧文章
- 如果网站是 React/Vue 前端渲染,先查找 JSON 数据源,不要一上来就人工点击网页
- 如果用户指定“不要重复”,则必须持久化状态到文件
- 推文要附网址,默认附站点首页;用户要求更详细时可附具体报告链接
最小可复用脚本
此技能适合将通用逻辑写入 scripts/postdailyreport.py:
- - 拉取远程报告列表
- 读取/写入状态文件
- 生成推文文本
- 调用现有的 tweet.sh
回报格式
完成后告知用户:
- - 今天发布的是哪篇报告
- 是否已成功发布到 X
- 定时任务是否创建成功
- 下次运行时间
TL;DR:
- - 先查找结构化报告列表
- 再选择最新未发布
- 生成英文推文 + 附网址
- 通过网页端 X 发出
- 记录状态避免重复
- 日更使用 cron 挂载