Politics & policy — US political news, commentary and analysis across the spectrum. CF-robust RSS / Atom / RDF reader over a curated, edge-verified registry; on a Cloudflare egress block it falls back to the rss2json proxy.
Three tools with complete schemas and reasonable descriptions. Naming follows verb_noun convention (list_, read_, fetch_). Descriptions are adequate (100-150 chars) but lack actionable context for LLM selection. Parameters have types and basic descriptions, but lack constraints (enums, ranges, patterns). No output schema documentation. Error handling is minimal, no recovery guidance or categorization. Missing parameter validation rules and dependency hints.
Fetch and normalize any RSS / Atom / RDF feed by URL. CF-robust: fetches directly and falls back to a proxy if the source blocks the gateway. Use list_feeds first for curated sources.
List the curated politics & policy feeds (id, title, category, source). Optionally filter by category (politics) or keyword. Pass an id to read_feed.
Read a curated politics & policy feed by its id (from list_feeds). Returns normalized items (title, link, published, summary). Optionally filter items by keyword.
Output schemas not documented. LLMs cannot infer what fields to expect from responses (e.g., does readFeed return 'items' or 'entries'? What fields per item?). Forces agents to guess downstream field names.
Parameter 'limit' lacks range constraints in description. Code enforces 1-50, but description only says 'Max items (1-50, default 20)', LLMs may still pass invalid values. Should use JSON Schema minValue/maxValue or explicit constraint text.
Error messages lack recovery guidance. 'Unknown feed' and 'Feed unreachable' tell the agent nothing about next steps. Should suggest 'Use list_feeds to see valid ids' or 'The source may block datacenter egress; try a different feed.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Parameter 'category' in list_feeds hardcoded to 'politics' in description but no enum constraint. If more categories are added, LLMs won't know valid options without calling the tool first.
No tool composition guidance. Descriptions don't explain when to call list_feeds vs read_feed vs fetch_feed, or that list_feeds output (feed id) feeds into read_feed. Agents must infer the workflow.