Automated daily research digest — fetches papers from RSS feeds, filters out based on topics of interest.
A GitHub Actions workflow runs every weekday: a Python script pulls entries from arXiv and Microsoft Research, then a Copilot CLI agent applies two skills — research-filter and research-digest — to separate signal from noise and publish a digest as a GitHub Discussion.
RSS Feeds → fetch.py → /tmp/research-monitor/feeds/ → Copilot Agent → output.json → GitHub Discussion
-
Fetch —
fetch.pyreadsconf/feeds.ymland downloads all RSS/Atom feeds. Entries are written as individual Markdown files (YAML frontmatter + body) with atitles.jsonlindex per feed. -
Filter — The Copilot CLI agent loads
skills/research-filter/SKILL.mdand applies a two-phase filter: broad title scan, then strict abstract review using positive/negative signals fromconf/topics.yml. Default: exclude. -
Format — Surviving entries are tiered (High / Medium / Low) and formatted into a Markdown digest using
skills/research-digest/SKILL.mdand its FOR_EACH template. -
Publish — The agent writes
output.json. The workflow creates a GitHub Discussion with the formatted digest.
- A GitHub repository (public or private)
- GitHub Copilot access (for the Copilot CLI agent step)
The Copilot CLI agent authenticates via the COPILOT_GITHUB_TOKEN environment variable. Follow the Copilot CLI authentication docs:
- Go to Fine-grained personal access tokens
- Under Permissions, click Add permissions and select Copilot Requests
- Click Generate token
- Copy the token
The workflow publishes digests as GitHub Discussions. This requires a separate token with Discussions write access. If not set, the workflow runs normally but skips publishing.
- Go to Fine-grained personal access tokens
- Set Repository access to your ResearchDrops repo
- Under Repository permissions, set Discussions → Read and write
- Click Generate token
- Copy the token
Go to your repo → Settings → Secrets and variables → Actions → New repository secret:
| Secret | Value | Required |
|---|---|---|
COPILOT_GITHUB_TOKEN |
The Copilot token from step 1 | Yes |
DISCUSSIONS_WRITE_TOKEN |
The Discussions token from step 2 | No |
- Go to Settings → General → Features
- Check Discussions
- Make sure a "General" category exists (it's created by default)
The workflow runs automatically every weekday at 6 AM PST (arXiv doesn't update on weekends). To trigger it manually:
- Go to Actions → Daily Research Monitor → Run workflow
- Optionally override the model (default:
claude-sonnet-4.6) - Check the job summary for the digest, or look in Discussions
Edit conf/feeds.yml. Each entry has:
- id: my-feed
name: "Human-readable name"
url: "https://example.com/rss"
description: "What this feed covers"
format: rss # rss or atom
update_frequency: dailyEdit conf/topics.yml. Each topic has:
- id: my-topic
name: "Topic Name"
description: "What this topic cares about"
keywords:
- relevant-keyword
positive_signals:
- "Framings that make a paper worth surfacing"
negative_signals:
- "Look-alike traps to exclude"The skills read these at runtime — no code changes needed.