ACCEPTANCE CRITERIA (11/11)
☑ 1. Script `scripts/fetch-rss-news.js` fetches all enabled RSS feeds from `config/feeds.json`
☑ 2. Parses each feed using `rss-parser.parseRSS()` from lib
☑ 3. Filters articles older than `max_age_hours` (default 72h from config)
☑ 4. Limits results to `max_items_per_feed` (default 10 from config) per feed
☑ 5. Output `data/state/rss-latest.json` with articles grouped by category, item counts, and statuses
☑ 6. Each feed fetched independently -- failure in one does not block others
☑ 7. Rate limiting at 0.5 req/sec (1 request per 2 seconds)
☑ 8. Handles non-XML responses gracefully (log warning, set status="error")
☑ 9. Handles empty feeds (no parsed items) with status="empty"
☑ 10. Supports `--dry-run`, `--verbose`, `--help`, `--category {name}` flags
☑ 11. No API key required