-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
go:needs-researchNeeds investigationNeeds investigationsquadSquad triage inbox — Lead will assign to a memberSquad triage inbox — Lead will assign to a membersquad:freamonAssigned to Freamon (Lead / Editor-in-Chief)Assigned to Freamon (Lead / Editor-in-Chief)
Description
Overview
Implement Dev.to REST API adapter to enrich existing RSS blog coverage with engagement metrics (reactions, comments) and discover Aspire content via tag-based search. Complements RSS feeds with social proof signals.
Background
Per gap analysis:
- Current state: Blog content at 85% completeness via RSS, but missing engagement data
- Dev.to value: 20-40 articles/week with reaction counts, comment threads, and reading time
- Kima's insight: Many Aspire authors publish on Dev.to first, then cross-post to personal blogs
- Signal enhancement: Reactions = community validation, comments = discussion quality
Requirements
- Implement DevToSourceAdapter extending SourceAdapter interface
- Use Dev.to REST API (public, no auth): \https://dev.to/api/articles?tag={tag}\
- Search tags: "dotnetaspire", "aspire", "dotnet" (filter by title/body keywords for Aspire relevance)
- Extract: title, author, URL, published date, tags, reactions (public_reactions_count), comments_count, reading_time_minutes
- Map to ContentItem type with channel="dev.to", source="dev.to"
- Enrich existing ContentItem metadata with \�ngagementMetrics\ field: { reactions: number, comments: number, readingTime: number }\
- Respect Dev.to rate limits: 10 requests/second (throttle if needed)
- Handle API pagination (fetch 30 articles per tag, 3 pages max = 90 articles)
Squad SDK Integration
- Adapter registration: Auto-discovered by SourceRegistry
- Validation logic: DevToSourceAdapter.validate() returns true (no env vars needed)
- Metadata enrichment: Adds engagement metrics to ContentItem without breaking existing fields
Acceptance Criteria
- AC1: Adapter discovers 15+ Aspire-related articles per run
- AC2: Each Dev.to article maps to ContentItem with: id, title, url, author, publishedAt, tags, engagementMetrics
- AC3: Engagement metrics include reactions count, comments count, reading time
- AC4: Duplicate detection works (same URL = same canonical ID, even if discovered via RSS + Dev.to)
- AC5: If Dev.to API returns 429 (rate limit), adapter waits 1 second and retries once
- AC6: Dev.to articles appear in reports with channel="dev.to" and visible engagement metrics
Dependencies
Depends on: Issue #1 (Architecture Refactor)
Assigned To
- Kima (Content scout, implementation)
Estimated Effort
1 session
- Implement DevToSourceAdapter
- Test tag search + pagination
- Validate engagement data accuracy
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
go:needs-researchNeeds investigationNeeds investigationsquadSquad triage inbox — Lead will assign to a memberSquad triage inbox — Lead will assign to a membersquad:freamonAssigned to Freamon (Lead / Editor-in-Chief)Assigned to Freamon (Lead / Editor-in-Chief)