Skill flagged — suspicious patterns detected

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

quotedance-rss-digest

v1.0.0

聚合已启用订阅源的RSS资讯,支持按源名关键词过滤,返回最近几天内最新文章的Markdown列表,含本地缓存。

0· 182·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 yoocky/quotedance-rss-digest.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "quotedance-rss-digest" (yoocky/quotedance-rss-digest) from ClawHub.
Skill page: https://clawhub.ai/yoocky/quotedance-rss-digest
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 quotedance-rss-digest

ClawHub CLI

Package manager switcher

npx clawhub@latest install quotedance-rss-digest
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
名字与描述(聚合已启用的订阅源、按名称过滤、生成 Markdown、使用本地缓存)与脚本实现一致;它确实需要访问 quotedance-service (/feeds/registry) 和本地 RSSHub,功能范围符合预期。但 registry 元数据未说明需要的 API Key/凭据(见下文)。
Instruction Scope
SKILL.md 明确指示调用 quotedance-service 获取已启用订阅源,再本地逐条抓取 RSS 并缓存,脚本只读写技能内的 config.json 与 memory/ 下的缓存文件并对外发起 HTTP 请求,这与描述一致。需注意 SKILL.md/脚本中会读取 process.env.QUTEDANCE_API_KEY(或 config.json 中的 apiKey),但技能声明中没有列出任何必需的环境变量——这是不一致。
Install Mechanism
无安装脚本/下载行为(instruction-only + 本仓包含实现脚本),不会在安装时从不明 URL 拉取或执行远端代码。唯一的“落盘”是脚本运行时会在技能目录下的 memory/ 写入缓存文件,这是文档中所述的正常行为。
!
Credentials
脚本在运行时会在请求 quotedance-service 时使用 X-API-Key:它读取 config.json 的 apiKey 或环境变量 QUTEDANCE_API_KEY,但技能的公开要求未声明任何凭据或主凭证。缺乏明确声明会误导用户——在没有显式提示下使用该技能可能会意外向第三方服务发送未获授权的数据或API调用。除此之外没有请求其他不相干的凭据。
Persistence & Privilege
技能不会要求常驻(always)或修改其它技能/系统配置;它会在自身目录下维护缓存文件(memory/),并提供命令行参数清理缓存,权限与持久性在预期范围内。
What to consider before installing
这个技能看起来确实实现了它声称的 RSS 聚合功能,但有两点你在安装/使用前应确认: 1) API Key:脚本会使用 X-API-Key 向 quotedance-service 发 /feeds/registry(从 config.json 的 apiKey 或环境变量 QUTEDANCE_API_KEY 读取)。不过技能注册元数据没有声明它需要任何环境变量或主凭证。请在启用前确认你是否愿意把 quotedance-service 的 API Key 放进 skills/quotedance-rss-digest/config.json 或设置 QUTEDANCE_API_KEY 环境变量;如果不想泄露凭据,保持 config.json 中 apiKey 为空并不要设置环境变量。 2) 本地缓存与数据:包里含有 memory/ 下的大量缓存 JSON 文件(已抓取的文章内容)。这些是本地缓存,会被读写到技能目录。如果你不希望这些历史数据存在于技能目录,安装前删除或清空 memory/ 文件夹;运行脚本时也会继续在该目录写缓存。 另外的建议:确认 serviceUrl(默认 https://quotedance.api.gapgap.cc)是否是你信任的服务端点;确认本地 RSSHub 地址(默认 http://localhost:1200)是否按你的期望配置。若你对自动网络访问敏感,可在隔离环境下手动运行 node skills/quotedance-rss-digest/scripts/rss-digest.js 来观察行为,再决定是否允许 Agent 自动调用该技能。
scripts/rss-digest.js:25
Environment variable access combined with network send.
!
scripts/rss-digest.js:271
File read combined with network send (possible exfiltration).
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

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

latestvk97a4ffshf0h84yaky8wbw30r18371fj
182downloads
0stars
1versions
Updated 22h ago
v1.0.0
MIT-0

RSS Digest - 资讯流聚合技能

基于你自己的 quotedance-service Feeds API 和本地 RSSHub (http://localhost:1200),为 Agent 提供一个「最近几天资讯流」的聚合能力。

  • 默认:先从 quotedance-service 获取你已启用的订阅源,再由本地逐个抓取 RSS,生成 Markdown 资讯流。
  • 可选:支持按 资讯源名称关键字 过滤,例如“只看 少数派 / 机核网 / 某个专栏”。
  • 支持简单的 本地缓存,在配置的 TTL 内重复调用不会频繁打服务端和 RSS 源站。

配置

配置文件:skills/quotedance-rss-digest/config.json

{
  "serviceUrl": "https://quotedance.api.gapgap.cc",
  "apiKey": "与 qutedance-quotes 相同的 API Key",
  "rsshubUrl": "http://localhost:1200",
  "defaults": {
    "recentDays": 3,
    "limit": 100,
    "cacheTtlMinutes": 30,
    "sourceCacheTtlMinutes": 15
  }
}
  • serviceUrl:quotedance-service 的线上地址(与你现在使用的一致)
  • apiKey:和 qutedance-quotes/config.json 中一致,通过 X-API-Key 鉴权
  • rsshubUrl:你本地 RSSHub 服务地址(当订阅源 rss_url 为相对路径时会自动拼接)
  • defaults.recentDays:默认拉取「最近几天」的天数
  • defaults.limit:最终输出的最大文章数量
  • defaults.cacheTtlMinutes:缓存有效期,分钟
  • defaults.sourceCacheTtlMinutes:订阅源列表缓存有效期,分钟(默认建议 15)

能力

1️⃣ 全部订阅源资讯流

  • 调用 quotedance-service:
    • GET /feeds/registry
    • 通过 X-API-Key 自动识别用户,返回该用户 已启用的订阅源列表
  • 脚本在本地做:
    • 逐个抓取订阅源的 rss_url(支持 RSS / Atom)
    • 本地聚合并去重(优先按链接去重)
    • 只保留最近 recentDays 天内的文章
    • 截断为最多 limit
    • 格式化为 Markdown 列表(标题、来源、时间、链接)
    • 结果写入简单缓存文件(同一参数组合在 TTL 内重复调用直接命中缓存)

2️⃣ 按资讯源名称筛选

  • 用户可以在对话中描述:
    • “看下少数派最近几天的文章”
    • “只看机核网的更新”
  • 脚本会:
    • 先从 /feeds/registry 拉取该用户订阅源
    • 本地抓取这些订阅源的 RSS 内容并聚合
    • 在本地用 资讯源名称关键字 做模糊过滤(例如匹配 source_name / feed_title / source.name 等字段)
    • 同样支持最近 N 天过滤与缓存

注意:由于服务端的数据结构可能调整,脚本在取“来源名称”时做了多种字段兜底,只要大致有个 source/name/title 字段就能工作。


在对话中如何使用

当用户说:

  • “帮我汇总下最近几天的资讯流”
  • “看下我订阅源最近 3 天有啥值得看的”
  • “只看 少数派 的更新”
  • “汇总最近 5 天我所有订阅源的新文章”

Agent 应该:

  1. 选择本技能 rss-digest
  2. 推断参数:
    • 若用户没有提天数 → 使用 defaults.recentDays
    • 若用户提到“最近 N 天 / 两三天 / 一周左右” → 转成具体天数
    • 若提到具体资讯源名称 → 作为 name 关键字过滤
  3. 调用脚本生成 Markdown 资讯流,并直接展示给用户,必要时做少量总结。

手动脚本用法

workspace-quotedance 目录运行:

cd ~/.openclaw/workspace-quotedance

# 默认:最近 defaults.recentDays 天,全部源
node skills/quotedance-rss-digest/scripts/rss-digest.js

# 指定最近 N 天
node skills/quotedance-rss-digest/scripts/rss-digest.js --days 5

# 只看某个资讯源(按名称关键字模糊匹配)
node skills/quotedance-rss-digest/scripts/rss-digest.js --name 少数派

# 同时指定天数和输出数量
node skills/quotedance-rss-digest/scripts/rss-digest.js --days 7 --limit 50

# 强制刷新(忽略文章缓存和订阅源缓存)
node skills/quotedance-rss-digest/scripts/rss-digest.js --refresh

# 只刷新订阅源列表(文章缓存仍按原规则)
node skills/quotedance-rss-digest/scripts/rss-digest.js --refresh-sources

# 清空缓存并立即重新抓取
node skills/quotedance-rss-digest/scripts/rss-digest.js --clear-cache

目录结构

skills/quotedance-rss-digest/
├── SKILL.md
├── config.json
├── scripts/
│   └── rss-digest.js
└── memory/
    └── rss-cache-*.json   # 本地缓存(脚本运行时自动创建)

实现概要

  • config.json 读取:
    • serviceUrl / apiKey / rsshubUrl / defaults
  • 请求 quotedance-service:
    • 使用 X-API-Key 做鉴权
    • 调用 /feeds/registry 获取当前用户已启用订阅源
  • 本地处理:
    • 先读取订阅源缓存(sourceCacheTtlMinutes),超时后重新请求 /feeds/registry
    • 对每个订阅源抓取 RSS/Atom(rss_url 为相对路径时会拼接 rsshubUrl
    • 聚合、去重并按发布时间倒序排序
    • 根据 recentDays 过滤最近几天的文章
    • 可选按 name 关键字过滤资讯源
    • 限制输出为 limit
    • 生成结构化 Markdown 文本
    • 结合 cacheTtlMinutes 做文章缓存(按 days + name + limit 组合区分)

Comments

Loading comments...