NewsAPI + Challenge Tone + Expiry Policy (WI-2)
Context
Wire up live news content pipeline with challenge tone in AI prompts and 30-day expiry for news-derived facts.
Challenges
Challenge 2.1: Challenge Tone in AI Prompts
Requirement: AI extraction and generation use canonical challenge voice. Acceptance Criteria:
-
CHALLENGE_TONE_PREFIXconstant inpackages/ai/src/fact-engine.ts - Injected into
extractFactsFromStory()system prompt - Injected into
generateEvergreenFacts()system prompt Evaluation: PASS
Challenge 2.2: 30-Day Expiry Policy
Requirement: News-derived facts expire after 30 days. Acceptance Criteria:
-
insertFactRecordacceptsexpiresAtparameter - News-extracted facts get
expires_at = now + 30d - Expiry enforced in
archive-contentcron Evaluation: PASS
Challenge 2.3: High-Engagement Promotion
Requirement: Facts with 50+ interactions auto-promote to enduring. Acceptance Criteria:
-
promoteHighEngagementFactsquery function exists - Called from
archive-contentcron - Sets
expires_at = nullfor high-engagement facts Evaluation: PASS
Challenge 2.4: Extract Facts Handler Updated
Requirement: Fact extraction handler wires tone prefix. Acceptance Criteria:
-
apps/worker-facts/src/handlers/extract-facts.tsuses tone prefix Evaluation: PASS
Evaluation Summary
| Challenge | Result |
|---|---|
| 2.1 Challenge Tone in AI | PASS |
| 2.2 30-Day Expiry | PASS |
| 2.3 High-Engagement Promotion | PASS |
| 2.4 Extract Handler | PASS |
Score: 4/4 PASS