跳到正文
FunCoding

rss-digest

Read an RSS or Atom feed and summarize the newest entries. Use when the user gives a feed URL, asks what a blog or release feed has published lately, or wants a digest of a site that offers a feed.

Star
1,580
许可证
MIT
最近提交
2026年10月13日

hub/skills/rss-digest/SKILL.md

在 GitHub 上查看

RSS Digest

The pack's one tool-providing skill. Every other starter skill is a procedure over tools the agent already has; this one ships its own code in tools.py and registers it as rss-digest/fetch_rss.

It exists to show the shape: a manifest entry per @tool function, matching the signature exactly, plus the network:read permission the tool actually uses.

Procedure

  1. Fetch the feed with rss-digest/fetch_rss(url, max_entries=10). It returns {"feed_title": ..., "entries": [{"title", "link", "published", "summary"}], "count": N} in feed order — conventionally newest first, but the feed decides, so read the published values rather than assuming.
  2. If the call returns an error key, report it verbatim. A malformed feed, a 404, a blocked host, a feed with no recognizable entries, and a feed carrying a DTD are all real answers; an invented digest is not.
  3. Digest the entries. One line per entry: what it is and why it might matter, with its link. Group by theme when more than five entries share one.
  4. Lead with the exception. If one entry is materially different from the usual traffic on this feed — a breaking change, a security release, a shutdown notice — put it first and label it.
  5. Say the range you covered — feed title, entry count, and the oldest date included — so the user knows what was and was not read.

Notes

  • The tool follows GAIA's WebClient, so private and loopback addresses are refused. Point it at a public feed.
  • Feeds declaring a DTD are refused rather than parsed: entity expansion is a denial-of-service vector, and no real feed needs one.
  • RSS 1.0 / RDF feeds are not supported and report an error rather than an empty digest — "nothing published" and "I could not read this" must never look alike.
  • Entry summaries in feeds are frequently truncated or HTML-laden. Treat them as a headline, not the article; say so rather than over-reading a stub.

Fork this

Copy the directory and edit tools.py — that is the whole point of a tool skill. Parse a JSON API instead of XML, or add a since parameter for date-bounded fetches. Whatever you change in the signature, mirror in metadata.gaia.tools: the loader compares them and refuses the skill if they disagree, so a stale manifest can never ship.

相似的 Skill

using-git-worktrees

OBobra/superpowers298k近 7 天新增 2,631 个 star

verification-before-completion

OBobra/superpowers298k近 7 天新增 2,631 个 star

finishing-a-development-branch

OBobra/superpowers298k近 7 天新增 2,631 个 star

wizard

MAmattpocock/skills288k近 7 天新增 10,178 个 star

git-guardrails-claude-code

MAmattpocock/skills288k近 7 天新增 10,178 个 star

triage

MAmattpocock/skills288k近 7 天新增 10,178 个 star