PRD: Aggregating Crypto News
Document Control
| Field |
Value |
| Skill Name |
aggregating-crypto-news |
| Type |
Data Aggregation & Information |
| Domain |
Cryptocurrency News & Media |
| Target Users |
Traders, Analysts, Researchers, Portfolio Managers |
| Priority |
P1 - Foundation Skill |
| Version |
2.0.0 |
| Author |
Jeremy Longshore jeremy@intentsolutions.io |
Executive Summary
The aggregating-crypto-news skill provides real-time cryptocurrency news aggregation from multiple authoritative sources including RSS feeds, news APIs, and social media. It enables traders and analysts to stay informed about market-moving events, protocol updates, regulatory changes, and ecosystem developments without manually monitoring dozens of sources.
Value Proposition: Consolidate crypto news from 50+ sources into a single, filterable feed with relevance scoring and coin-specific filtering.
Problem Statement
Current Pain Points
- Information Overload: Crypto news is scattered across hundreds of sources - Twitter, Discord, Telegram, news sites, protocol blogs, exchange announcements
- Signal vs Noise: Separating market-moving news from promotional content and spam is time-consuming
- Missed Events: Important announcements (airdrops, forks, delistings) can be missed without constant monitoring
- No Central Feed: No single tool aggregates RSS feeds, Twitter spaces, Discord announcements, and official blogs
Impact of Not Solving
- Traders miss alpha from early news detection
- Portfolio managers react late to regulatory changes
- Researchers waste hours manually checking sources
- Teams lack shared news intelligence
Target Users
Persona 1: Active Day Trader
- Name: Marcus
- Role: Full-time crypto day trader
- Goals: Catch news before price moves; identify catalysts
- Pain Points: Misses announcements; overwhelmed by noise
- Usage: Runs news scan every 30 minutes during active sessions
Persona 2: Research Analyst
- Name: Sarah
- Role: Crypto research analyst at investment firm
- Goals: Comprehensive coverage for reports; track regulatory changes
- Pain Points: Manual source monitoring; inconsistent coverage
- Usage: Daily digest with category filters; export for reports
Persona 3: Portfolio Manager
- Name: David
- Role: DeFi portfolio manager
- Goals: Monitor protocol updates; track governance proposals
- Pain Points: Misses critical updates buried in Discord/forums
- Usage: Protocol-specific feeds with alerts for high-priority items
User Stories
US-1: Breaking News Scan (Critical)
As a day trader
I want to scan for breaking crypto news from the past hour
So that I can identify market-moving events before they're priced in
Acceptance Criteria:
- Fetch news from past 1h/4h/24h windows
- Display source, title, timestamp, relevance score
- Highlight market-moving keywords (listing, delisting, hack, exploit)
- Complete scan in under 10 seconds
US-2: Coin-Specific News (Critical)
As a researcher
I want to filter news for specific coins or tokens
So that I can focus on assets in my coverage universe
Acceptance Criteria:
- Filter by single coin (--coin BTC) or multiple (--coins BTC,ETH,SOL)
- Match against title, body, and tags
- Include protocol-specific sources (e.g., Solana newsletters for SOL)
- Return results sorted by relevance or recency
US-3: Category Filtering (Important)
As a portfolio manager
I want to filter news by category (regulatory, DeFi, NFT, etc.)
So that I can focus on my domain without irrelevant noise
Acceptance Criteria:
- Categories: regulatory, defi, nft, layer1, layer2, exchange, security
- Multiple categories can be combined
- Category detected via keyword matching and source classification
US-4: Export to Multiple Formats (Important)
As a analyst
I want to export news to JSON/CSV
So that I can integrate with my research tools and create reports
Acceptance Criteria:
- Support table, JSON, CSV output formats
- Include all metadata (source, timestamp, category, relevance)
- Export to file with --output flag
US-5: Source Management (Nice-to-Have)
As a user
I want to manage which sources are included in my feed
So that I can customize quality and focus
Acceptance Criteria:
- List available sources with categories
- Enable/disable specific sources
- Save source preferences to config
Functional Requirements
REQ-1: Multi-Source Aggregation
- Fetch from RSS feeds (CoinDesk, CoinTelegraph, Decrypt, The Block, etc.)
- Parse feed entries with proper date handling
- Deduplicate across sources based on title similarity
REQ-2: Relevance Scoring
- Score articles based on keyword matches
- Boost scores for market-moving terms (exploit, hack, listing, partnership)
- Penalize promotional/sponsored content
REQ-3: Filtering System
- Time-based filtering (1h, 4h, 24h, 7d)
- Coin/token filtering with symbol matching
- Category filtering with multi-select
- Source filtering
REQ-4: Output Formatting
- Table format for terminal display
- JSON format for programmatic use
- CSV format for spreadsheet analysis
- Minimal format for quick scanning
REQ-5: Caching
- Cache feed responses to reduce API calls
- Configurable TTL (default 5 minutes)
- Cache invalidation on demand
Non-Goals
- Social Media Scraping: No Twitter/Discord/Telegram scraping (API access required, separate skill)
- Sentiment Analysis: Basic keyword detection only (sentiment-analyzer is separate skill)
- Alerts/Notifications: No push notifications (separate alerting system)
- Historical Archive: No long-term storage (scan only, not archive)
- Translation: No multi-language support (English sources only)
Success Metrics
| Metric |
Target |
Measurement |
| News fetch time |
< 10s for 50 sources |
Script execution time |
| Source coverage |
50+ curated sources |
Count in config |
| Relevance accuracy |
> 80% relevant in top 10 |
Manual review |
| User activation |
Triggered by relevant phrases |
Plugin analytics |
| Export success |
100% valid JSON/CSV |
Format validation |
UX Flow
User: "get latest crypto news"
│
├─► Parse intent (default: 24h, all categories)
│
├─► Fetch from RSS sources (parallel)
│
├─► Parse and normalize entries
│
├─► Score relevance
│
├─► Apply filters (time, category, coin)
│
├─► Sort by relevance or recency
│
├─► Format output (table/JSON/CSV)
│
└─► Display or export
Integration Points
Dependencies
- None (standalone skill, no other skills required)
Consumers (Skills that can use this)
- market-sentiment-analyzer: Can consume news feed for sentiment analysis
- crypto-signal-generator: Can use news as signal input
- whale-alert-monitor: Can correlate whale moves with news
External APIs
- RSS feeds (no API key required)
- CryptoCompare News API (optional, for enhanced coverage)
Constraints & Assumptions
Constraints
- RSS feed availability (some sources may block or change URLs)
- Rate limiting on news APIs
- No real-time push (polling model only)
Assumptions
- User has internet connectivity
- English language sources are sufficient
- 5-minute cache TTL is acceptable for most use cases
Risk Assessment
| Risk |
Likelihood |
Impact |
Mitigation |
| RSS feed URL changes |
Medium |
Medium |
Maintain source registry; auto-detection |
| Feed parsing errors |
Medium |
Low |
Graceful degradation; skip malformed feeds |
| Network timeouts |
Low |
Low |
Timeout per source; parallel fetching |
| Duplicate articles |
Medium |
Low |
Title-based deduplication |
Examples
Example 1: Default News Scan
python news_aggregator.py
Returns top 20 news items from past 24h, sorted by relevance.
Example 2: Bitcoin-Specific News
python news_aggregator.py --coin BTC --period 4h
Returns Bitcoin news from past 4 hours.
Example 3: DeFi Category with Export
python news_aggregator.py --category defi --format json --output defi_news.json
Exports DeFi news to JSON file.
Version History
| Version |
Date |
Author |
Changes |
| 1.0.0 |
2025-10-16 |
Jeremy Longshore |
Initial stub |
| 2.0.0 |
2026-01-14 |
Jeremy Longshore |
Full PRD, implementation |
1---2name: 027-prd-4ef5abe13description: PRD: Aggregating Crypto News4---5# PRD: Aggregating Crypto News67## Document Control89| Field | Value |10|-------|-------|11| **Skill Name** | aggregating-crypto-news |12| **Type** | Data Aggregation & Information |13| **Domain** | Cryptocurrency News & Media |14| **Target Users** | Traders, Analysts, Researchers, Portfolio Managers |15| **Priority** | P1 - Foundation Skill |16| **Version** | 2.0.0 |17| **Author** | Jeremy Longshore <jeremy@intentsolutions.io> |1819---2021## Executive Summary2223The aggregating-crypto-news skill provides real-time cryptocurrency news aggregation from multiple authoritative sources including RSS feeds, news APIs, and social media. It enables traders and analysts to stay informed about market-moving events, protocol updates, regulatory changes, and ecosystem developments without manually monitoring dozens of sources.2425**Value Proposition**: Consolidate crypto news from 50+ sources into a single, filterable feed with relevance scoring and coin-specific filtering.2627---2829## Problem Statement3031### Current Pain Points32331. **Information Overload**: Crypto news is scattered across hundreds of sources - Twitter, Discord, Telegram, news sites, protocol blogs, exchange announcements342. **Signal vs Noise**: Separating market-moving news from promotional content and spam is time-consuming353. **Missed Events**: Important announcements (airdrops, forks, delistings) can be missed without constant monitoring364. **No Central Feed**: No single tool aggregates RSS feeds, Twitter spaces, Discord announcements, and official blogs3738### Impact of Not Solving3940- Traders miss alpha from early news detection41- Portfolio managers react late to regulatory changes42- Researchers waste hours manually checking sources43- Teams lack shared news intelligence4445---4647## Target Users4849### Persona 1: Active Day Trader50- **Name**: Marcus51- **Role**: Full-time crypto day trader52- **Goals**: Catch news before price moves; identify catalysts53- **Pain Points**: Misses announcements; overwhelmed by noise54- **Usage**: Runs news scan every 30 minutes during active sessions5556### Persona 2: Research Analyst57- **Name**: Sarah58- **Role**: Crypto research analyst at investment firm59- **Goals**: Comprehensive coverage for reports; track regulatory changes60- **Pain Points**: Manual source monitoring; inconsistent coverage61- **Usage**: Daily digest with category filters; export for reports6263### Persona 3: Portfolio Manager64- **Name**: David65- **Role**: DeFi portfolio manager66- **Goals**: Monitor protocol updates; track governance proposals67- **Pain Points**: Misses critical updates buried in Discord/forums68- **Usage**: Protocol-specific feeds with alerts for high-priority items6970---7172## User Stories7374### US-1: Breaking News Scan (Critical)75**As a** day trader76**I want to** scan for breaking crypto news from the past hour77**So that** I can identify market-moving events before they're priced in7879**Acceptance Criteria:**80- Fetch news from past 1h/4h/24h windows81- Display source, title, timestamp, relevance score82- Highlight market-moving keywords (listing, delisting, hack, exploit)83- Complete scan in under 10 seconds8485### US-2: Coin-Specific News (Critical)86**As a** researcher87**I want to** filter news for specific coins or tokens88**So that** I can focus on assets in my coverage universe8990**Acceptance Criteria:**91- Filter by single coin (--coin BTC) or multiple (--coins BTC,ETH,SOL)92- Match against title, body, and tags93- Include protocol-specific sources (e.g., Solana newsletters for SOL)94- Return results sorted by relevance or recency9596### US-3: Category Filtering (Important)97**As a** portfolio manager98**I want to** filter news by category (regulatory, DeFi, NFT, etc.)99**So that** I can focus on my domain without irrelevant noise100101**Acceptance Criteria:**102- Categories: regulatory, defi, nft, layer1, layer2, exchange, security103- Multiple categories can be combined104- Category detected via keyword matching and source classification105106### US-4: Export to Multiple Formats (Important)107**As a** analyst108**I want to** export news to JSON/CSV109**So that** I can integrate with my research tools and create reports110111**Acceptance Criteria:**112- Support table, JSON, CSV output formats113- Include all metadata (source, timestamp, category, relevance)114- Export to file with --output flag115116### US-5: Source Management (Nice-to-Have)117**As a** user118**I want to** manage which sources are included in my feed119**So that** I can customize quality and focus120121**Acceptance Criteria:**122- List available sources with categories123- Enable/disable specific sources124- Save source preferences to config125126---127128## Functional Requirements129130### REQ-1: Multi-Source Aggregation131- Fetch from RSS feeds (CoinDesk, CoinTelegraph, Decrypt, The Block, etc.)132- Parse feed entries with proper date handling133- Deduplicate across sources based on title similarity134135### REQ-2: Relevance Scoring136- Score articles based on keyword matches137- Boost scores for market-moving terms (exploit, hack, listing, partnership)138- Penalize promotional/sponsored content139140### REQ-3: Filtering System141- Time-based filtering (1h, 4h, 24h, 7d)142- Coin/token filtering with symbol matching143- Category filtering with multi-select144- Source filtering145146### REQ-4: Output Formatting147- Table format for terminal display148- JSON format for programmatic use149- CSV format for spreadsheet analysis150- Minimal format for quick scanning151152### REQ-5: Caching153- Cache feed responses to reduce API calls154- Configurable TTL (default 5 minutes)155- Cache invalidation on demand156157---158159## Non-Goals160161- **Social Media Scraping**: No Twitter/Discord/Telegram scraping (API access required, separate skill)162- **Sentiment Analysis**: Basic keyword detection only (sentiment-analyzer is separate skill)163- **Alerts/Notifications**: No push notifications (separate alerting system)164- **Historical Archive**: No long-term storage (scan only, not archive)165- **Translation**: No multi-language support (English sources only)166167---168169## Success Metrics170171| Metric | Target | Measurement |172|--------|--------|-------------|173| News fetch time | < 10s for 50 sources | Script execution time |174| Source coverage | 50+ curated sources | Count in config |175| Relevance accuracy | > 80% relevant in top 10 | Manual review |176| User activation | Triggered by relevant phrases | Plugin analytics |177| Export success | 100% valid JSON/CSV | Format validation |178179---180181## UX Flow182183```184User: "get latest crypto news"185 │186 ├─► Parse intent (default: 24h, all categories)187 │188 ├─► Fetch from RSS sources (parallel)189 │190 ├─► Parse and normalize entries191 │192 ├─► Score relevance193 │194 ├─► Apply filters (time, category, coin)195 │196 ├─► Sort by relevance or recency197 │198 ├─► Format output (table/JSON/CSV)199 │200 └─► Display or export201```202203---204205## Integration Points206207### Dependencies208- **None** (standalone skill, no other skills required)209210### Consumers (Skills that can use this)211- **market-sentiment-analyzer**: Can consume news feed for sentiment analysis212- **crypto-signal-generator**: Can use news as signal input213- **whale-alert-monitor**: Can correlate whale moves with news214215### External APIs216- RSS feeds (no API key required)217- CryptoCompare News API (optional, for enhanced coverage)218219---220221## Constraints & Assumptions222223### Constraints224- RSS feed availability (some sources may block or change URLs)225- Rate limiting on news APIs226- No real-time push (polling model only)227228### Assumptions229- User has internet connectivity230- English language sources are sufficient231- 5-minute cache TTL is acceptable for most use cases232233---234235## Risk Assessment236237| Risk | Likelihood | Impact | Mitigation |238|------|------------|--------|------------|239| RSS feed URL changes | Medium | Medium | Maintain source registry; auto-detection |240| Feed parsing errors | Medium | Low | Graceful degradation; skip malformed feeds |241| Network timeouts | Low | Low | Timeout per source; parallel fetching |242| Duplicate articles | Medium | Low | Title-based deduplication |243244---245246## Examples247248### Example 1: Default News Scan249```bash250python news_aggregator.py251```252Returns top 20 news items from past 24h, sorted by relevance.253254### Example 2: Bitcoin-Specific News255```bash256python news_aggregator.py --coin BTC --period 4h257```258Returns Bitcoin news from past 4 hours.259260### Example 3: DeFi Category with Export261```bash262python news_aggregator.py --category defi --format json --output defi_news.json263```264Exports DeFi news to JSON file.265266---267268## Version History269270| Version | Date | Author | Changes |271|---------|------|--------|---------|272| 1.0.0 | 2025-10-16 | Jeremy Longshore | Initial stub |273| 2.0.0 | 2026-01-14 | Jeremy Longshore | Full PRD, implementation |