name: ac878-news-evaluate description: Evaluate and rank aggregated news stories for AC878 radio bulletins. Use after news aggregation to score, deduplicate, and select the best stories for each bulletin segment (Finance, Australian, China/Asia, International). Outputs a curated story list as JSON for the script writer. Can optionally use PinchTab for deep-scraping top stories.
AC878 News Evaluate
Score, rank, and select news stories from the aggregated news brief for radio bulletin production.
Input
Read the latest aggregated brief:
BRIEF=$(ls -t /Users/jackycheung/.openclaw/workspace/news/raw/news_brief_*.md | head -1)
Process
1. Parse Stories
Extract all stories from the brief. For each story capture: headline, summary, source tier, category.
2. Score Each Story (0-100)
| Factor | Weight | Criteria |
|---|---|---|
| Recency | 25 | Published <6h=25, <12h=15, <24h=5 |
| Relevance | 25 | AU audience interest (AU domestic=25, China/HK=20, International=15, Niche=5) |
| Impact | 20 | Affects many people=20, moderate=10, limited=5 |
| Source tier | 15 | Tier 1=15, Tier 2=10, Tier 3=5 |
| Uniqueness | 15 | Not covered in recent bulletins=15, partially covered=5, duplicate=0 |
3. Deduplicate
Group stories about the same event. Keep highest-scored version only.
4. Categorize and Select
Allocate stories to 4 segments:
- Segment 1 (Finance): Markets, RBA, property, energy, trade — pick 6-8 stories
- Segment 2 (Australian): Domestic news + weather cities — pick 6-8 stories
- Segment 3 (China/Asia): China, HK, Taiwan, ASEAN, Japan, Korea — pick 6-8 stories
- Segment 4 (International): US, Europe, Middle East, global — pick 6-8 stories
5. Deep-Scrape Top Stories (Optional — PinchTab)
For the top 3 stories per segment that need more detail:
pinchtab nav "<story_url>"
pinchtab text
This extracts full article text token-efficiently (~800 tokens vs screenshots). Use the extra detail to enrich the script writer's input.
6. Check Previous Bulletin
Read the most recent bulletin scripts to avoid repeating stories:
# Morning check afternoon, afternoon check morning
ls -t /Users/jackycheung/.openclaw/workspace/news/bulletin-file-*.txt | head -4
ls -t /Users/jackycheung/.openclaw/workspace/news/afternoon-file-*.txt | head -4
Mark any story already covered as duplicate: true.
Output
Write curated story list to:
- Morning:
news/evaluated/morning-stories.json - Afternoon:
news/evaluated/afternoon-stories.json
JSON schema:
{
"evaluatedAt": "ISO timestamp",
"briefSource": "path to brief file",
"segments": {
"finance": [
{
"headline": "...",
"summary": "...",
"score": 85,
"sourceUrl": "...",
"sourceTier": 1,
"enrichedText": "... (if deep-scraped)",
"duplicate": false
}
],
"australian": [...],
"china_asia": [...],
"international": [...]
},
"totalStories": 28,
"duplicatesRemoved": 5
}
Filters (Hard Rules)
- EXCLUDE HK national security law stories
- EXCLUDE stories older than 48 hours
- EXCLUDE opinion pieces / editorials (unless very significant)
- PREFER stories with cross-source verification (appeared in 2+ sources)
- NEVER include source names in output (no ABC, Reuters, etc.)
PinchTab Setup
PinchTab must be running for deep-scrape:
# Check if running
curl -s http://localhost:9867/health
# Start if needed
pinchtab &
If PinchTab is unavailable, skip deep-scrape and proceed with brief summaries only.