Tech Weekly Briefing
Generate weekly tech news briefings from 6 major English tech media sources (TechCrunch, The Verge, Wired, Ars Technica, MIT Technology Review, The Informati...
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Tech Weekly Briefing Skill
Generate comprehensive weekly tech news briefings from major English-language technology media sources with structured format and interactive navigation.
Core Principle
Data Integrity First: Never fabricate data. All market data and news must be fetched from actual sources before generating reports.
Media Sources
Primary Sources (Active)
| Source | RSS URL | Status | Fetch Method |
|---|---|---|---|
| TechCrunch | https://techcrunch.com/feed/ | ✅ Active | urllib |
| The Verge | https://www.theverge.com/rss/index.xml | ✅ Active | urllib |
| Wired | https://www.wired.com/feed/rss | ✅ Active | urllib |
| Ars Technica | https://arstechnica.com/feed/ | ✅ Active | urllib |
| MIT Technology Review | https://www.technologyreview.com/feed/ | ✅ Active | urllib |
| The Information | https://www.theinformation.com/feed | ✅ Active | curl (bypasses 403) |
Secondary Sources (Configured, To Verify)
| Source | Status | Note |
|---|---|---|
| Axios | ⚠️ Configured | Needs verification |
| Bloomberg Tech | ⚠️ Configured | May have paywall |
| Reuters Tech | ⚠️ Configured | Needs verification |
| WSJ Tech | ⚠️ Configured | Paywall likely |
Data Collection Workflow
Step 1: Daily Data Fetch (Every Day at 00:00)
Command:
cd ~/.openclaw/workspace-group/skills/tech-weekly-briefing && python3 scripts/generate-briefing.py daily
What it does:
- Fetches RSS feeds from all 6 primary sources
- Filters low-quality content (promotions, sports, lifestyle)
- Deduplicates articles by title/URL similarity
- Saves to
data/articles_YYYY-MM-DD.json
Cron Setup:
# Add to crontab
crontab -e
# Add this line for daily fetch at 00:00:
0 0 * * * cd ~/.openclaw/workspace-group/skills/tech-weekly-briefing && python3 scripts/generate-briefing.py daily >> /tmp/tech-weekly-cron.log 2>&1
Step 2: Weekly Report Generation (Every Saturday 09:00)
Command:
cd ~/.openclaw/workspace-group/skills/tech-weekly-briefing && python3 scripts/generate-briefing.py weekly
What it does:
- Loads articles from past 7 days
- Aggregates similar stories across sources
- Identifies hot news (≥2 media coverage)
- Categorizes by company mentions
- Generates formatted report
- Saves to
/tmp/tech-weekly-briefing-YYYYMMDD.txt
Cron Setup:
# Every Saturday at 09:00 Beijing Time
0 9 * * 6 cd ~/.openclaw/workspace-group/skills/tech-weekly-briefing && python3 scripts/generate-briefing.py weekly >> /tmp/tech-weekly-cron.log 2>&1
Report Format Specification
Structure (4 Sections)
📊 外媒科技周报 | YYYY-MM-DD
1️⃣ 概览 (Overview) - Chinese only
2️⃣ 🔥 热点新闻 (Hot News) - English titles, all source links
3️⃣ 🚗 Robotaxi Weekly - All autonomous driving news
4️⃣ [Inline Buttons] - Company categorization
Section 1: 概览 / Overview
Language: Chinese only Content: One paragraph summarizing ALL hot news stories Format:
📈 概览
本周扫描X家科技媒体,获取X篇文章,聚类为X条独特新闻。
X条热点新闻被≥2家媒体报道:[①news summary; ②news summary; ③news summary; ④news summary]
Section 2: 🔥 热点新闻 / Hot News
Criteria: Stories covered by ≥2 media outlets Language: English titles only (no Chinese translation in body) Format:
🔥 热点新闻(按媒体报道数倒序)
1️⃣ [English Title]
📰 X家:
• Source1: https://link1
• Source2: https://link2
• Source3: https://link3
2️⃣ [English Title]
📰 X家:
• Source1: https://link1
• Source2: https://link2
Requirements:
- All source links must be clickable
- Listed by coverage count (descending)
- Maximum 20 hot news items
Section 3: 🚗 Robotaxi Weekly
Scope: All autonomous driving news (not just ≥2 coverage) Keywords: robotaxi, waymo, zoox, aurora, cruise, autonomous, self-driving Format:
🚗 Robotaxi Weekly / 自动驾驶一周汇总
1. [Title]
📰 Source | 🔗 https://link
2. [Title]
📰 Source | 🔗 https://link
Section 4: Inline Buttons
Layout:
[🔴 OpenAI (X篇)] [🟣 Anthropic (X篇)]
[🔵 Google (X篇)] [🍎 Apple (X篇)]
[🟢 NVIDIA (X篇)] [🚗 Waymo]
[📋 查看全部]
Companies Tracked:
- OpenAI, Anthropic, Google, Apple, Microsoft, Amazon, Meta
- Tesla, NVIDIA, Waymo, Zoox, Aurora, Cruise
- Nintendo, Sony, Netflix, Block, Robinhood
Content Validation Rules
Rule 1: No Fabricated Data
MUST:
- Execute fetch commands before generating reports
- Use actual fetched data only
- Mark missing data as
[获取失败]if command fails
NEVER:
- Fill in prices/percentages without executing commands
- Use cached data as real-time without timestamp
- Guess or estimate any numeric values
Rule 2: Accurate Source Attribution
MUST:
- Every news item must have source link(s)
- Multi-source stories must list ALL sources
- Use actual URLs from RSS, not generated links
Rule 3: Deduplication
Algorithm:
- Jaccard similarity ≥ 18% on title keywords
- OR exact 3+ consecutive word match
- Remove duplicates, keep earliest published
Rule 4: Low-Quality Filtering
Filtered Content:
- Sports: "baseball game", "championship", "tournament"
- Promotions: "promo code", "% off", "coupon", "discount"
- Shopping: "mattress firm", "kitchenaid promo", "norton coupon"
- Lifestyle: "bird-watchers", "brew coffee", "sleep week deals"
Logged: All filtered items printed during daily fetch
Manual Operations
Check Data Collection Status
# View today's collected articles
ls -la ~/.openclaw/workspace-group/skills/tech-weekly-briefing/data/
# Check article count
python3 -c "import json; data=json.load(open('data/articles_$(date +%Y-%m-%d).json')); print(f'{len(data)} articles today')"
Verify Media Source
# Test RSS accessibility
curl -s "https://techcrunch.com/feed/" | head -5
curl -s -A "Mozilla/5.0" "https://www.theinformation.com/feed" | head -5
Force Re-fetch Today
rm ~/.openclaw/workspace-group/skills/tech-weekly-briefing/data/articles_$(date +%Y-%m-%d).json
python3 scripts/generate-briefing.py daily
Generate Test Report
# Use existing data to generate report
python3 scripts/generate-briefing.py weekly
# View output
cat /tmp/tech-weekly-briefing-$(date +%Y%m%d).txt
Troubleshooting
The Information Returns 403
Cause: Python urllib blocked, curl works Solution: Script automatically uses curl subprocess for The Information Verify:
curl -s -A "Mozilla/5.0" "https://www.theinformation.com/feed" | head -10
No Articles Found
Check:
- Data directory:
ls data/ - Last fetch:
cat /tmp/tech-weekly-cron.log - RSS status:
blogwatcher blogs
Duplicate Articles in Report
Cause: Similarity threshold too low or high
Adjust: Edit is_same_news() function in generate-briefing.py
Missing Company in Buttons
Add Company:
- Edit
COMPANY_KEYWORDSingenerate-briefing.py - Re-run weekly report generation
File Structure
tech-weekly-briefing/
├── SKILL.md # This file
├── scripts/
│ ├── generate-briefing.py # Main script
│ ├── setup-sources.py # Initial RSS setup
│ └── weekly-cron.sh # Cron wrapper
├── data/
│ ├── articles_YYYY-MM-DD.json # Daily fetched articles
│ └── company_data_YYYY-MM-DD.json # Company categorization
└── assets/
└── (optional assets)
Dependencies
- Python 3.10+
blogwatcherCLI for RSS monitoringcurlfor The Information feed- Standard libraries: json, re, urllib, subprocess, datetime
Key Performance Indicators
| Metric | Target |
|---|---|
| Daily fetch success rate | ≥95% (6/6 sources) |
| Article deduplication accuracy | ≥90% |
| Low-quality filter precision | ≥85% |
| Hot news detection (≥2 sources) | Capture all multi-source stories |
| Report generation time | <30 seconds |
Version History
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2026-03-09 | Initial release with 6 sources, bilingual format, company buttons |
Usage Examples
User Request: "生成科技周报"
1. Check if data exists: ls data/articles_*.json
2. If no data: Run daily fetch first
3. Run: python3 scripts/generate-briefing.py weekly
4. Send report with inline buttons
User Request: "查看OpenAI新闻"
1. Load company_data_*.json
2. Filter OpenAI articles
3. Display with bilingual format
User Request: "添加新公司追踪"
1. Edit COMPANY_KEYWORDS in generate-briefing.py
2. Add: "CompanyName": ["keyword1", "keyword2"]
3. Re-run weekly report
Last Updated: 2026-03-09 Maintainer: OpenClaw Agent Status: Production Ready
Files
7 totalComments
Loading comments…
