Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

📰 ZeeLin Report-to-X AutoPost

v1.5.0

Automatically picks the latest unposted report from a report website or JSON feed, drafts an English X/Twitter post summarizing the report, publishes it via...

0· 206·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for kelcey2023/zeelin-report-to-x-autopost.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "📰 ZeeLin Report-to-X AutoPost" (kelcey2023/zeelin-report-to-x-autopost) from ClawHub.
Skill page: https://clawhub.ai/kelcey2023/zeelin-report-to-x-autopost
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install zeelin-report-to-x-autopost

ClawHub CLI

Package manager switcher

npx clawhub@latest install zeelin-report-to-x-autopost
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The SKILL.md promises flexible data-source handling (reports_config.json, RSS, JSON, SPA JS) and to reuse an existing web-posting script; the included Python only scrapes one hard-coded REPORT_SITE and does not implement flexible source discovery. It also hard-codes a path to another skill's tweet.sh, which is not declared as a dependency.
!
Instruction Scope
The runtime instructions and SKILL.md describe safe-to-follow steps, but the shipped code executes an external script at a fixed path (~/.openclaw/workspace/skills/zeelin-twitter-web-autopost/scripts/tweet.sh). Invoking that script hands over execution to code outside this skill's manifest and could transmit data or perform actions not described in SKILL.md. The script also writes state to the user's home (~/.openclaw/memory/...), which is expected but worth noting.
Install Mechanism
No install spec and only a small Python script are included; nothing is downloaded or extracted. This lowers install-time risk.
!
Credentials
The skill requests no env vars, but it accesses and creates files under the user's home (~/.openclaw/...), and it calls a script in another skill's workspace. That cross-skill path access is disproportionate unless the user explicitly expects and trusts the referenced tweet.sh implementation and its use of browser cookies or other credentials.
!
Persistence & Privilege
always is false (good), but the skill persists posted IDs to ~/.openclaw/memory/zeelin_last_report.json. More importantly, it invokes a script belonging to a different skill workspace, which effectively grants that other script runtime privilege from this skill's invocation and can broaden the blast radius unexpectedly.
What to consider before installing
This skill's high-level behavior is reasonable, but before installing you should: (1) inspect the referenced tweet.sh at ~/.openclaw/workspace/skills/zeelin-twitter-web-autopost/scripts/tweet.sh to confirm what it does (it will run with your permissions and may access browser cookies or network); (2) edit the Python script so REPORT_SITE and the tweet script path are configurable (not hard-coded) and so source-selection matches the SKILL.md if you need RSS/JSON support; (3) verify you trust the external report URL and the other skill's code—the skill will run subprocesses and could cause unexpected network or local actions; (4) consider running the script in a safe environment or with a dry-run mode before giving it access to your real X/web session. If you cannot review the external tweet.sh, do not enable this skill.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📰 Clawdis
latestvk9744jy3p07a8hydk43ma3tag98460a3
206downloads
0stars
7versions
Updated 3w ago
v1.5.0
MIT-0

ZeeLin Report-to-X AutoPost 📰

把“报告网站/报告 JSON 列表 → 选最新未发报告 → 生成英文推文 → 发布到 X → 记录已发状态避免重复”封成一个可复用工作流。

适合场景:

  • 每天自动发一篇报告到 X
  • 从一个固定网站持续推广最新报告
  • 同一批报告只发一次,不重复
  • 需要通过网页端 X 发布,而不是 API

何时触发

当用户表达类似需求时使用:

  • 「把这个报告网站每天发到我的推特」
  • 「自动把最新报告发到 X」
  • 「一天一个报告,不要重复」
  • 「从 JSON / 网站里抓报告然后自动发推」
  • 「帮我把报告站做成自动社媒分发」

默认工作原则

  1. 优先从结构化列表读取:先找 reports_config.json、RSS、JSON、静态配置,再考虑网页渲染内容
  2. 先去重,再发帖:发布前必须检查本地 state 文件,避免重复发同一篇
  3. 先摘要,再发布:推文应简洁介绍报告核心内容,并附源站网址
  4. 默认英文发帖:除非用户要求中文或双语
  5. 网页端发 X,不碰密码:用户需提前登录 X 网页版
  6. 定时任务用 cron:日更/周更统一用 OpenClaw cron 管理

推荐目录结构

skill/
├── SKILL.md
└── scripts/
    └── post_daily_report.py

一次性发布流程

Step 1:确认数据源

优先确认报告源是否存在结构化入口,例如:

  • reports_config.json
  • RSS / Atom
  • sitemap / JSON API
  • 站点静态配置 JS 中引用的 JSON

如果是前端渲染站点,不要急着浏览器点击;先从 HTML/JS 中找数据源。

Step 2:挑选未发过的最新报告

  • 读取报告列表
  • 加载本地状态文件(例如 memory/report-post-state.json
  • 找到第一个未发过的报告
  • 如果没有未发报告,就停止,不要硬发旧内容

Step 3:生成推文

推文建议结构:

  • 第一行:Today's report: {title}
  • 第二段:1–2 句总结核心价值
  • 最后一行:站点首页 URL(必要时可补具体报告 URL)

要求:

  • 280 字符内
  • 避免夸张营销腔
  • 不要与上一条高度重复

Step 4:调用现成的 X 发帖脚本

优先复用已有网页端 X 发帖脚本,例如:

bash /path/to/tweet.sh "tweet text" https://x.com

如果发帖成功:

  • 立刻把报告 id 写入 state 文件

如果失败:

  • 不要写入已发状态
  • 把错误保留下来,方便重试

定时发布流程

用户要求“每天一条、不重复”时:

  • 创建本地脚本处理“读取报告列表 + 去重 + 生成推文 + 发布 + 更新状态”
  • 再用 cron 建每日任务

推荐时间:

  • Asia/Shanghai 每天上午 10:00

状态文件建议

用 JSON 保存已发报告 id,例如:

{
  "posted": [
    "report-id-1",
    "report-id-2"
  ]
}

关键防错规则

  1. 只有发帖成功后才能记录已发状态
  2. 如果找不到新报告,直接退出,不要重复发旧文
  3. 如果网站是 React/Vue 前端渲染,先找 JSON 数据源,不要一上来就人工点网页
  4. 如果用户指定“不要重复”,就必须持久化状态到文件
  5. 推文要附网址,默认附站点首页;用户要求更细时可附具体报告链接

最小可复用脚本

这个 skill 适合把通用逻辑写进 scripts/post_daily_report.py

  • 拉取远程报告列表
  • 读/写状态文件
  • 生成 tweet 文本
  • 调用现有 tweet.sh

回报格式

完成后告诉用户:

  • 今天发的是哪篇报告
  • 是否已成功发到 X
  • 定时任务是否创建成功
  • 下次运行时间

TL;DR:

  • 先找结构化报告列表
  • 再选最新未发
  • 生成英文推文 + 附网址
  • 通过网页端 X 发出
  • 记录状态避免重复
  • 日更用 cron 挂起来

Comments

Loading comments...