rss-ingest
Fetch new items from subscribed RSS/Atom feeds and record interesting content to the vault
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Fetch new items from subscribed RSS/Atom feeds and record interesting content to the vault
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Unified knowledge base — shared Obsidian-compatible vault for curated pages, journal entries, and user notes
Daily scheduled brainstorm (also runnable on demand via /blog-ideas) that reviews the week-so-far across ingested activity, the daily journal, and the blog archive, and maintains a living weekly page of blog-post ideas.
Fetch recent Linkding bookmarks, analyze their content in child agents, and record insights to the vault
Fetch recent Mastodon posts and record interesting content to the vault
Fetch recent activity across all me-to-markdown sources (Mastodon, Linkding, GitHub, Spotify, YouTube, Pocket Casts), analyze each source in a child agent, and record insights to the vault
Review recent journal entries and conversations, distill insights into vault pages
SOC 직업 분류 기준
| name | rss-ingest |
| description | Fetch new items from subscribed RSS/Atom feeds and record interesting content to the vault |
| effort | default |
| allowed-tools | shell($SKILL_DIR/fetch.sh*), vault_read, vault_write, vault_search, vault_list, vault_backlinks, vault_journal_append, current_time |
| user-invocable | true |
Fetch new items from subscribed RSS/Atom feeds and integrate interesting content into the vault knowledge base. Fills the gap for sources without a Linkding-style aggregator: blogs, YouTube channels via RSS, podcast shownotes, newsletters.
Write all RSS-derived pages directly under agent/pages/rss/ as a flat
namespace — no topical subdirectories. Use [[wiki-links]] between pages to
express relationships, and link out to related pages elsewhere in the vault.
The garden skill handles promoting clusters to subdirectories when they earn
it.
Subscriptions live in a plain-text file at
workspace/skill-state/rss-ingest/feeds.txt — one feed per line, blank lines
and # comments ignored, with an optional name|url form to set a display
name:
# my subscriptions
https://example.com/blog/feed.xml
Simon Willison|https://simonwillison.net/atom/everything/
Manage subscriptions through the fetch script (no direct file editing needed):
$SKILL_DIR/fetch.sh list # show current subscriptions
$SKILL_DIR/fetch.sh add <url> [name] # subscribe to a feed (idempotent)
$SKILL_DIR/fetch.sh remove <url> # unsubscribe
When the user asks to subscribe to a feed (e.g. "add this blog's RSS" or
"follow "), run $SKILL_DIR/fetch.sh add <url> "<name>". Pick a short
human name for the second argument when you can infer one. Confirm the result
back to the user. To unsubscribe, use remove <url>.
Run the fetch script using the shell tool. It is bundled with this skill:
$SKILL_DIR/fetch.sh
What this does (no-args mode):
fetch_feeds.py via uv run (feedparser is resolved automatically as
an isolated, cached dependency — no setup needed beyond uv).workspace/skill-state/rss-ingest/feeds.txt.workspace/skill-state/rss-ingest/state.json),
deduped by entry id.Backfill / re-scan mode. Passing any of --since <dur>, --start,
--end re-scans without advancing the stored cursor, so a backfill doesn't
clobber the scheduled cycle's state:
$SKILL_DIR/fetch.sh --since 7d
If the script fails (no feeds configured, uv missing, all feeds
unreachable), report the error and stop.
Read through the fetched items. For each one, consider:
Skip low-signal items — pure link dumps, promotional posts, duplicate coverage of something you already recorded this cycle, and shallow updates don't need wiki entries.
For each interesting item:
vault_search to find existing relevant pages.vault_read it, revise with new context.
PRESERVE the existing frontmatter as-is. APPEND a new entry to the
sources: list for this item (don't modify earlier entries — they record
when each source was first added), and append the item to the body
## Sources section. vault_write the updated page.sources: with just this item. Don't backfill historical
sources from the body.[[wiki-links]], and a ## Sources section listing
this item.New-page frontmatter:
---
tags: [<topic-tags>]
summary: one-line summary of the page
sources:
- url: <item URL>
date: <item date as YYYY-MM-DD>
added_by: rss-ingest
---
In the ## Sources section, note the item's publish date and its URL.
If you made vault changes, summarize what you added/updated. If there was nothing interesting to ingest, respond with HEARTBEAT_OK.