name: rss-ai-digest description: Use when an agent needs quick RSS or Atom subscription digests, daily news, key information, OPML import, new AI or technical article discovery, keyword/date/author/category/language filtering, scoring, or seen-item dedupe.
RSS AI Digest
Overview
Use this skill to turn RSS/Atom feeds and OPML files into high-signal AI and technical reading digests. Keep the workflow portable: use explicit input/output files, produce Markdown or JSON, and avoid runtime-specific assumptions.
Workflow Selection
- For daily news, key information, quick reading, or "今日/本周重点资讯", prefer
subscription-research rss archive-digestwhen a local research workspace archive exists; otherwise runsubscription-research rss digestand followreferences/digest-report.md. - For source cleanup, failed-feed review, source quality, or registry maintenance, use
rss-source-curatorinstead of including source-maintenance details in the digest. - For deep research, evidence briefs, research memos, long-form synthesis, or multi-step investigation, use
subscription-research-agent. - For keyword, author, project, or topic monitoring, run
subscription-research rss check-new. - For OPML import, run
subscription-research rss import-opml, then use the resulting registry for digest or monitoring. - For scheduled checks, read
references/automation.mdand provide a platform-neutral recipe.
Runtime Command
Examples use subscription-research as a compatibility command. Before running commands, resolve the runtime command:
- When
DIGESTPILOT_BACKEND_URLis available, product actions such as daily generation, archive refresh, or WebUI-backed workflows may use the Backend task API first, then read the resulting workspace output. - If the Backend API is unavailable, keep using the local runtime command fallback below. Do not require WebUI, cloud, or a hosted service in generic Agent environments.
- Use
DIGESTPILOT_RUNTIME_CMDwhen the environment provides a custom runtime command. - Use
digestpilot-runtimewhen it is available onPATH. - Use
subscription-researchwhen only the legacy compatibility command is available onPATH. - From a repository checkout without a linked command, replace
subscription-researchwithnode packages/research-cli/dist/src/cli.js. - Run
node scripts/doctor.mjsfrom the repository root to diagnose local runtime setup. - If no runtime command is available but this repository or plugin package includes runtime source, run
node scripts/bootstrap-runtime.mjs, then retry the command.
Core Commands
Import OPML into a registry:
subscription-research rss import-opml \
--opml feeds.opml \
--metadata skills/rss-ai-digest/references/source-metadata.json \
--registry feeds.json
Create a digest of new high-quality AI/technical entries:
subscription-research rss digest \
--registry feeds.json \
--state seen.json \
--health source-health.json \
--since 24h \
--preset ai-strict \
--min-score 7 \
--mark-seen reported-only \
--timeout 20 \
--max-workers 8 \
--format markdown
Create a fast ordinary digest from a local research workspace archive:
subscription-research rss archive-digest \
--workspace research-workspace \
--since 24h \
--keywords "agent,llm,evals,inference" \
--max-archive-age-hours 36 \
--min-score 7 \
--limit 20 \
--format markdown
Use archive-first for quick daily reports and repeated user queries. Pass --max-archive-age-hours when the caller needs a freshness signal. Refresh live RSS with rss digest only when the archive is missing, stale, or the user explicitly asks for fresh fetching.
Check for new matching entries without a minimum score gate:
subscription-research rss check-new \
--registry feeds.json \
--state seen.json \
--health source-health.json \
--keywords "evals,inference,agents" \
--mark-seen reported-only \
--timeout 20 \
--max-workers 8 \
--format json
Output Guidance
For user-facing daily digests, summarize the ranked entries instead of dumping raw feed data. Include title, source, link, short summary, and why it matters. Keep it focused on the subscribed information itself.
When the digest may feed the DigestPilot WebUI or another downstream Agent, preserve the structured daily fields in references/digest-report.md: daily date/title/summary/language, ordered sections, and item title/link/source/author/summary. Only include recommendation_reason when the Agent can write a concrete article highlight from the content; omit it rather than filling generic recommendation copy.
When a DigestPilot WebUI detail page is available, treat daily and feed item titles as links to the local detail page. Keep the original article URL as item metadata and expose it through a separate "read original" action. Do not make the ordinary daily page carry full extraction state, fetch errors, or long article bodies.
If RSS summaries are too thin and the user asked for a higher-quality digest, run article-content-summarizer only for a small set of high-value candidates, such as the top 5-10 selected items or items from trusted sources. Do not run full-text extraction for every RSS entry as part of a normal quick digest.
Do not add source maintenance sections, failed-feed lists, registry repair advice, or source-health recommendations to ordinary daily digests. Mention coverage only as a short caveat when failures materially affect the news selection.
Do not add research follow-up questions to ordinary daily digests unless the user asks for deep research or tracking questions. Route research follow-up to subscription-research-agent.
For automation, prefer --format json and pass the result envelope to the next tool or notification adapter. Digest JSON contains entries, failures, health, stats, and generated_at. Do not assume a specific notification channel unless the user asks for one.
Use --mark-seen reported-only for normal digests so only surfaced entries are deduped. Use --mark-seen none for dry runs and scoring experiments. Use --mark-seen all-filtered only when the user wants the old behavior of suppressing every filtered new item even if it is not reported.
Use --timeout and --max-workers on fetch-based commands to control slow sources and concurrent fetches. Results are sorted after fetching, so concurrent runs remain stable enough for diffs and automation.
Keyword matching is token-aware for single words and phrase-aware for multi-word keywords. Prefer specific keywords such as agent, llm, rag, evals, inference, benchmark, and project names. The script records matched_keywords and matched_keyword_locations so the agent can explain whether a match came from the title or summary.
For stricter AI digests, prefer --preset ai-strict. Use --require-any-title-keyword to suppress summary-only matches, --exclude-keywords to remove obvious noise, and --keyword-mode all when every requested keyword must match.
For higher-quality digests, use direction presets:
ai-research: models, agents, evals, inference, and AI research.product-tech: product, platform, startup, market, and workflow signals.engineering-deep-dive: architecture, reliability, infrastructure, and production engineering.security-risk: vulnerabilities, incidents, supply chain, privacy, and risk.papers: papers, arXiv, benchmarks, methods, datasets, and model evaluation.
Use --must-keywords, --should-keywords, and --exclude-keywords when the user provides explicit quality criteria.
Markdown digests are grouped by deterministic topics. JSON entries include topic for downstream routing.
Use rss-source-curator for source maintenance recommendations, registry patch review, failed-feed triage, and source-health governance.
References
- Read
references/feed-registry.mdwhen creating registry, seen-state, or source-health files for digest and monitoring runs. - Read
references/scoring.mdwhen tuning article scores. - Read
references/digest-report.mdwhen writing user-facing daily news, key information, or quick reading digests. - Read
references/automation.mdwhen setting up cron, GitHub Actions, Codex automation, Claude plugin wrappers, n8n, or another scheduler. - Use
references/base-feeds.opmlas the curated starter OPML for AI, engineering, security, product, and general technical sources. - Use
references/source-metadata.jsonwithimport-opml --metadatawhen the registry should start with curated source priors.