rss-catchup
Catch up on RSS feeds by auto-summarizing new articles.
Prerequisites
Requires feedparser:
pip install feedparser
Helper Script
Use scripts/rss_helper.py for fetching data:
# List recent articles from a feed
python3 scripts/rss_helper.py feed URL [limit]
# Get article content (fetches full page)
python3 scripts/rss_helper.py article URL
Workflow
-
Load configuration
- Read feed list from
references/feeds.json - Read last run timestamp from
references/state.json - If first run: go back ~3 months
- Otherwise: only articles since last run
- Read feed list from
-
For each enabled feed:
- Run:
python3 scripts/rss_helper.py feed "FEED_URL" 20 - Filter to articles published since last run
- Deduplicate against existing notes:
grep -rl "media: {article_url}" "my-vault/07 Knowledge Base/Capture/Articles/" - If a note with that URL exists: skip (already processed, may be missing from state)
- Run:
-
For each new article:
- If feed provides full content, use that
- Otherwise, run:
python3 scripts/rss_helper.py article "ARTICLE_URL"to fetch full text - Summarize the content into bullet points (3-8 based on length/density)
- Create article note with status:
Summarized - Extract discoveries (see below)
-
Create discovery notes:
- While summarizing, identify any products, services, frameworks, tools, libraries, or technologies mentioned that might be worth exploring
- Search my-vault to check if a note already exists for each discovery
- For new discoveries, create a note in
my-vault/01 Inbox/ - Link the discovery note from the article's Related field
-
Update state
- Write current timestamp to
references/state.json - Report summary of what was processed
- Write current timestamp to
Tagging
IMPORTANT: Read my-vault/09 System/Tag Index.md before processing to verify valid tags.
Tags MUST come from the canonical list - do not invent new tags. Common valid tags for this skill:
#ai- LLMs, agents, prompting, AI tools#llm- Large Language Models, model comparisons#dev-tools- IDEs, Git tooling, developer productivity#python,#javascript,#typescript- language-specific#devops,#api,#databases- infrastructure topics#atlassian,#jira,#confluence- Atlassian products
Each feed in references/feeds.json has a tags array specifying default tags. Use these for article notes. Format: tags: ["tag1", "tag2"]
For discovery notes, choose tags based on what the discovery is (e.g., a Python library gets #python, an AI tool gets #ai).
Article Note Format
Create in: my-vault/07 Knowledge Base/Capture/Articles/[Feed Name]/[Title].md
Sanitize filenames: remove special characters, limit length to ~80 chars.
---
class: Article
media: https://example.com/article-url
publishDate: YYYY-MM-DD
status: Summarized
author: Author Name
reviewFrequency:
lastReviewedDate:
review:
aliases:
tags: ["tag1", "tag2"]
cssclasses:
archived:
---
Related:
## Summary
Capture the actual conclusions and insights - what would someone learn from reading this? Not topic labels or "this article discusses X" but the substance:
**Good:** "Multi-agent systems outperform single agents when context exceeds what fits in one prompt - Anthropic's research system with Opus 4 lead + Sonnet 4 subagents beat single-agent Opus 4 by 90.2%"
**Bad:** "Discusses multi-agent architectures and when to use them"
Aim for 4-8 substantive bullets that capture the key takeaways, conclusions, data points, and actionable insights.
## Discoveries
- [[Product Name]] - brief context from article
- (or "None" if nothing noteworthy)
## Why Read?
[One sentence on whether this seems worth actually reading in full]
Feed Config
Edit references/feeds.json:
{
"feeds": [
{
"name": "Feed Display Name",
"url": "https://example.com/feed",
"folder": "Folder Name",
"tags": ["tag1", "tag2"],
"priority": "high",
"enabled": true
}
]
}
Tags should be from the canonical list in my-vault/09 System/Tag Index.md.
Discovery Note Format
Create in: my-vault/01 Inbox/[Name].md
---
class: Note
reviewFrequency:
lastReviewedDate:
review:
aliases:
tags: ["tag1", "tag2"]
cssclasses:
archived:
---
Up:
Related: [[Article Title]]
## What is it?
[One sentence description of the product/service/framework]
## Why look into it?
[Brief note on why it seemed interesting from the article context]
## Links
- [Official site or docs if mentioned]
What counts as a discovery:
- Products or services (SaaS tools, apps, platforms)
- Frameworks or libraries (programming, ML, etc.)
- Technologies or protocols
- Notable companies or projects
- Methodologies or techniques worth researching
Skip creating notes for:
- Well-known mainstream things (e.g., "Python", "AWS", "React")
- Generic concepts that don't warrant their own note
- Things already covered extensively in existing notes
Processing Tips
- Process one feed at a time and report progress
- For long articles, focus on main arguments/takeaways
- If article content can't be fetched, summarize from title/description
- Skip articles that already exist in my-vault
- Keep summaries concise - this is for deciding what to read, not replacing reading
- When extracting discoveries, be selective - only create notes for things genuinely worth exploring
- Deduplicate by URL - some articles may appear in multiple feeds
Path Handling
CRITICAL - Never escape spaces with backslashes:
- Use paths exactly as shown:
my-vault/07 Knowledge Base/...(with literal spaces) - The Write tool handles spaces correctly - backslash escaping creates literal
\characters in directory names - When using Bash commands, wrap paths in double quotes:
"my-vault/07 Knowledge Base/..."