Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Fetch and digest any RSS or Atom feed with zero API keys — curl plus disciplined parsing into a ranked, deduplicated briefing instead of a link dump. Use when asked summarize this feed, what's new on this blog, digest these RSS feeds, or build me a morning briefing from these sources. Produces the digest with dates and one-line what-it-is summaries, cross-feed dedup, and the rerunnable commands per feed.
.claude/skills/mohitagw15856-rss-digest/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 130% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 494% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 187% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 171% | 0% |
RSS never died — every blog, newsroom, podcast, release page, and status page still speaks it, keylessly, and it remains the cleanest way for an agent to answer "what's new from the sources I care about." This skill fetches feeds with curl, parses the two dialects (RSS 2.0 and Atom) without ceremony, and produces what the user actually wanted: a dated, deduplicated briefing with one line of substance per item — not thirty titles.
Ask for these if not provided:
/feed, /rss, /atom.xml, /index.xml, and the <link rel="alternate" type="application/rss+xml"> tag in the page head)curl -sL "https://hnrss.org/frontpage" — follow redirects (-L), and identify politely if a feed rejects default agents (-A "rss-digest/1.0"). Feeds are XML; both dialects carry the same essentials: RSS <item><title><link><pubDate><description> · Atom <entry><title><link href><updated><summary/content>.pubDate/updated converted to the user's zone; items without dates are labeled undated, not invisibly slotted; and the digest states its own window ("covering the last 48h as of time]").If a lens was set: the matching items first.]
Source A]
…]
Duplicates noted: "also covered by X, Y" · thin-description items marked]
Feeds: [curl per feed] · window: the since-filter applied]
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 23,563 | 21,921 | -7% | 1 | 1 | 0% | 3,287 | 4,388 | +33% | 0 | 0 | — |
case-02 | fail→pass | 12,327 | 15,413 | +25% | 1 | 1 | 0% | 1,232 | 2,836 | +130% | 0 | 0 | — |
case-03 | pass→pass | 7,216 | 14,088 | +95% | 1 | 1 | 0% | 1,059 | 2,534 | +139% | 0 | 0 | — |
case-04 | fail→pass | 8,599 | 17,159 | +100% | 1 | 1 | 0% | 477 | 2,833 | +494% | 0 | 0 | — |
case-05 | pass→pass | 12,492 | 13,139 | +5% | 1 | 1 | 0% | 1,209 | 2,581 | +113% | 0 | 0 | — |
case-06 | pass→pass | 8,417 | 9,485 | +13% | 1 | 1 | 0% | 468 | 1,816 | +288% | 0 | 0 | — |
case-07 | pass→pass | 19,527 | 16,413 | -16% | 1 | 1 | 0% | 2,542 | 2,936 | +15% | 0 | 0 | — |
case-08 | pass→pass | 16,605 | 15,589 | -6% | 1 | 1 | 0% | 1,716 | 2,680 | +56% | 0 | 0 | — |
case-09 | pass→pass | 11,097 | 14,377 | +30% | 1 | 1 | 0% | 1,291 | 2,494 | +93% | 0 | 0 | — |
case-10 | fail→pass | 10,892 | 15,992 | +47% | 1 | 1 | 0% | 840 | 2,409 | +187% | 0 | 0 | — |
case-11 | pass→pass | 15,753 | 14,711 | -7% | 1 | 1 | 0% | 1,850 | 2,315 | +25% | 0 | 0 | — |
case-12 | fail→pass | 11,006 | 14,927 | +36% | 1 | 1 | 0% | 993 | 2,689 | +171% | 0 | 0 | — |
case-13 | pass→pass | 13,352 | 13,502 | +1% | 1 | 1 | 0% | 1,983 | 2,510 | +27% | 0 | 0 | — |
case-14 | fail→pass | 17,253 | 23,742 | +38% | 1 | 1 | 0% | 2,078 | 3,714 | +79% | 0 | 0 | — |
case-15 | pass→pass | 14,531 | 9,951 | -32% | 1 | 1 | 0% | 1,664 | 1,741 | +5% | 0 | 0 | — |
case-16 | fail→pass | 22,982 | 16,714 | -27% | 1 | 1 | 0% | 2,673 | 3,041 | +14% | 0 | 0 | — |
case-17 | fail→pass | 17,205 | 15,394 | -11% | 1 | 1 | 0% | 2,488 | 2,655 | +7% | 0 | 0 | — |
case-18 | fail→pass | 14,087 | 13,792 | -2% | 1 | 1 | 0% | 1,449 | 2,103 | +45% | 0 | 0 | — |
case-19 | fail→fail | 6,350 | 16,705 | +163% | 1 | 1 | 0% | 738 | 2,506 | +240% | 0 | 0 | — |
case-20 | pass→pass | 15,276 | 18,329 | +20% | 1 | 1 | 0% | 2,406 | 3,512 | +46% | 0 | 0 | — |
case-21 | pass→pass | 18,847 | 13,135 | -30% | 1 | 1 | 0% | 2,316 | 2,595 | +12% | 0 | 0 | — |
case-22 | fail→pass | 21,464 | 24,241 | +13% | 1 | 1 | 0% | 3,635 | 4,800 | +32% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.