| name | eigenfeed |
| description | Run your daily recommendation pipeline — discover, score, and publish articles to your feed. |
| allowed-tools | Agent, Bash(*), Read, Write, Glob, Grep, WebSearch |
Eigenfeed
Your daily recommendation command. Updates profile from recent source activity, discovers new articles, scores them, and publishes to feed.
Step 0: Clean up and read configuration
rm -rf tmp && mkdir -p tmp
Read config.md in the project root. Extract:
picks_per_run (default: 7)
sources — list of sources
lookback_days (default: 7) — how far back to scan sources for updates
Step 1: Check Prerequisite
Check if vault/profile.md exists. If not, tell the user:
"No taste profile found. Run /coldstart first to set up your profile."
Step 2: Refresh profile and topics from recent sources
Run the taste skill (follow .claude/skills/taste/SKILL.md) with lookback_days from config. This incrementally updates vault/profile.md and vault/topics/ with any new interests from recent source activity.
Step 3: Check Backlog
Query the database for unpublished recommended candidates:
sqlite3 local/eigenfeed.db "SELECT COUNT(*) FROM recommendations WHERE published_at IS NULL" 2>/dev/null || echo "0"
Decision logic:
- If unpublished recommendations >=
picks_per_run → skip explore, go to Step 5 (Score to publish from backlog)
- Otherwise → proceed to Step 4 (Reflect + Explore)
Step 4: Reflect
Follow .claude/skills/reflect/SKILL.md to generate niche search queries from topics.
Step 5: Explore + Score
Follow .claude/skills/explore/SKILL.md using queries from Step 4. Then follow .claude/skills/score/SKILL.md to score candidates and publish.
Do NOT pause to ask the user between these steps — proceed directly.
Step 6: Summary
Show the user:
- Which articles were newly published to the feed (title, score, one-line reasoning)
- Total unpublished backlog remaining
- Remind them to run
/serve if they haven't subscribed yet