skills/news-digest/SKILL.md
Fetch and digest news from Google News RSS feeds and Google Alerts by topic. Extracts full article content, images, and videos. Scans configured topics, deduplicates stories, and produces a rich markdown digest with article summaries. Use when the user wants a news summary, news digest, Google News scan, or says things like "what's in the news", "news about X", "news digest", "scan my news feeds", or "/news-digest".
npx skillsauth add catalan-adobe/skills news-digestInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fetch Google News RSS feeds by topic, extract full article content, and produce a rich markdown digest with article summaries, images, and video links.
if [[ -n "${CLAUDE_SKILL_DIR:-}" ]]; then
NEWS_SCRIPTS="${CLAUDE_SKILL_DIR}/scripts"
else
NEWS_SCRIPTS="$(find ~/.claude -path "*/news-digest/scripts" \
-type d 2>/dev/null | head -1)"
fi
if [[ -z "$NEWS_SCRIPTS" || ! -d "$NEWS_SCRIPTS" ]]; then
echo "Error: news-digest scripts not found." >&2
exit 1
fi
Before the first invocation, install dependencies:
cd "$NEWS_SCRIPTS" && [ -d node_modules ] || npm install
Run this at the start of every invocation. The [ -d node_modules ]
check makes subsequent runs instant.
Google News URLs require a headless browser to resolve. The script uses
playwright-cli (must be on PATH). Verify with:
which playwright-cli || echo "playwright-cli not found — install it first"
The user maintains a config.yaml with topics to track. If no config
exists yet, copy the default:
DEFAULT_CONFIG="${NEWS_SCRIPTS}/../references/default-config.yaml"
Ask the user where they want their config (e.g., ai/news/config.yaml)
and copy the default there. Then they can edit topics and settings.
cd "$NEWS_SCRIPTS" && node news-fetch.mjs --config /path/to/config.yaml
cd "$NEWS_SCRIPTS" && node news-fetch.mjs --query "search terms"
cd "$NEWS_SCRIPTS" && node news-fetch.mjs --config /path/to/config.yaml --topic "AI"
The script outputs a JSON array to stdout. Each item has:
title — headlinesource — publisher nameurl — Google News redirect URLresolvedUrl — actual article URL after redirect. null if decoding failedpubDate — publication date stringtimestamp — epoch mstopic — which configured topic matchedcontent — full article text (plain text). null if extraction failedpaywall — true if paywall detected, false otherwiseerror — error message if extraction failed, null on successimages — array of { src, alt } for article images (ads filtered out)videos — array of { src, domain } for embedded videosYour job as the LLM:
topiccontent: write a 2-3 sentence summary from the full article textcontent (paywall or error): fall back to headline-only formatimages) inline when availableresolvedUrl for article links (not the Google News redirect url)Save to ai/news/YYYY-MM-DD-digest.md in the user's project. If a
digest for today already exists, append new sections rather than
overwriting.
Format:
# News Digest — YYYY-MM-DD
## Topic Name
### Headline here
**Source:** Source Name (2h ago) | [article](resolvedUrl)
2-3 sentence summary of the full article content generated from the
`content` field.

---
### Paywalled headline
**Source:** Source Name (3h ago) | [article](resolvedUrl) | 🔒 Paywall
*(Full article not available)*
content: full summary + lead image + video linkspaywall: true: headline only, marked with 🔒error and no paywall: headline only, no special markertools
Reduce a webpage to a structural skeleton with semantic tokens. Two-phase pipeline: Phase 1 injects a browser script that tokenizes content ({TEXT}, {HEADING:n}, {IMAGE:WxH}, {CTA:label}, {LINK:label}, {INPUT:type}, {VIDEO}, {ICON}). Phase 2 applies LLM structural reasoning to collapse repeated patterns ({REPEAT:N}), remove decorative wrappers, strip utility classes, and produce skeleton.html + manifest.json. Use when migrating pages to EDS, analyzing page structure, extracting page blueprints, or preparing input for GenAI block generation. Triggers on: reduce page, page skeleton, page blueprint, extract structure, tokenize page, page reduction, structural skeleton, reduce URL.
tools
Capture a spatial hierarchy of rendered DOM elements from any webpage. Injects a pre-built script via playwright-cli that walks the DOM, detects layout grids, extracts backgrounds, prunes invisible nodes, promotes elements rendered outside their DOM parent (overlays, fixed navs, modals), and tags overlay nodes with occlusion metadata. Returns three outputs: LLM-friendly indented text, structured JSON tree, and a nodeMap mapping positional IDs to CSS selectors with background and overlay data. Use before page decomposition, overlay detection, brand extraction, or any workflow that needs structured page analysis. Triggers on: visual tree, capture tree, page structure, page hierarchy, DOM tree, capture visual, page analysis, extract tree.
tools
Summarize any video by analyzing both audio and visuals. Downloads via yt-dlp, extracts transcript (YouTube captions or Whisper), pulls scene-detected keyframes, and produces a multimodal summary with clickable timestamped YouTube links. Use this skill whenever the user wants to summarize a YouTube video, digest a talk or tutorial, get notes from a video, extract key points from a recording, or says things like "tl;dw", "summarize this video", "what's in this video", or pastes a YouTube URL and asks for a summary. Also triggers for non-YouTube URLs that yt-dlp supports.
development
Design and build web UIs with Adobe Spectrum 2 design system. Applies S2 layout principles, visual hierarchy, spacing, and component composition to produce accessible interfaces. Outputs vanilla CSS with Spectrum tokens (static pages) or Spectrum Web Components (interactive apps). Recommends tier based on complexity. Covers sp-theme setup, side-effect imports, overlay system, form patterns, --mod-* token customization, and 14 critical gotchas. Use for: spectrum 2 web, SWC, sp-button, sp-theme, build UI with spectrum, S2 layout, spectrum application, adobe design system, web component form, spectrum overlay.