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...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 158 · 1 current installs · 1 all-time installs
byZhe (Phil) Yang@yangzhe1991
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (weekly tech briefings) match the included scripts and data: generate-briefing.py fetches RSS, filters/deduplicates, categorizes by company, and writes reports; setup-sources.py registers feeds with a local 'blogwatcher' CLI. No unrelated credentials, cloud APIs, or surprising binaries are requested.
Instruction Scope
SKILL.md instructs adding cron entries and running the Python scripts from the skill directory (persisting daily and weekly runs). Scripts operate only on the skill workspace (~/.openclaw/.../data) and /tmp for reports. They execute subprocesses (curl for one feed, and blogwatcher in setup) — expected for an aggregator but worth reviewing because subprocess calls run arbitrary local binaries.
Install Mechanism
There is no remote install/downloader in the registry metadata (instruction-only with included code files). The code does not download or extract arbitrary archives. It does rely on system binaries (curl, python3, blogwatcher) that are not installed by the skill.
Credentials
The skill requests no environment variables or credentials. Network access is required to fetch RSS feeds — appropriate for the purpose. The setup script interacts with a 'blogwatcher' CLI which may modify local blogwatcher state; this is proportional but should be run only if you trust that CLI.
Persistence & Privilege
The skill asks the user to add cron jobs (manual step) for daily/weekly runs; always:false and no autonomous model invocation flags beyond the platform defaults. Cron entries create persistent background activity (periodic network fetches and file writes) — expected for this use case but a persistence decision the user must opt into.
Assessment
This skill appears coherent with its stated purpose, but review a few points before enabling: 1) Inspect generate-briefing.py and setup-sources.py locally — they call subprocesses (curl and a 'blogwatcher' CLI) which will execute on your machine. 2) The SKILL.md suggests adding cron jobs; only add them if you want recurring network fetches and file writes in ~/.openclaw and /tmp. 3) setup-sources.py will run 'blogwatcher add' for many feeds — run that only if you trust what 'blogwatcher' does. 4) weekly-cron.sh contains a comment about sending to Telegram but currently only cats the report; if you plan to enable automated distribution, confirm which messaging tool will be used and that it won’t post sensitive local data. 5) Run the scripts manually first (dry run) and verify outputs and network targets before installing cron. If you want, I can highlight the exact lines in the scripts that call external binaries and files to check.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
aggregationvk9708f8rs9kj55a60ybtcvq1th82jks5automationvk9708f8rs9kj55a60ybtcvq1th82jks5latestvk9708f8rs9kj55a60ybtcvq1th82jks5newsvk9708f8rs9kj55a60ybtcvq1th82jks5robotaxivk9708f8rs9kj55a60ybtcvq1th82jks5techvk9708f8rs9kj55a60ybtcvq1th82jks5

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

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)

SourceRSS URLStatusFetch Method
TechCrunchhttps://techcrunch.com/feed/✅ Activeurllib
The Vergehttps://www.theverge.com/rss/index.xml✅ Activeurllib
Wiredhttps://www.wired.com/feed/rss✅ Activeurllib
Ars Technicahttps://arstechnica.com/feed/✅ Activeurllib
MIT Technology Reviewhttps://www.technologyreview.com/feed/✅ Activeurllib
The Informationhttps://www.theinformation.com/feed✅ Activecurl (bypasses 403)

Secondary Sources (Configured, To Verify)

SourceStatusNote
Axios⚠️ ConfiguredNeeds verification
Bloomberg Tech⚠️ ConfiguredMay have paywall
Reuters Tech⚠️ ConfiguredNeeds verification
WSJ Tech⚠️ ConfiguredPaywall 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:

  1. Fetches RSS feeds from all 6 primary sources
  2. Filters low-quality content (promotions, sports, lifestyle)
  3. Deduplicates articles by title/URL similarity
  4. 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:

  1. Loads articles from past 7 days
  2. Aggregates similar stories across sources
  3. Identifies hot news (≥2 media coverage)
  4. Categorizes by company mentions
  5. Generates formatted report
  6. 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:

  1. Jaccard similarity ≥ 18% on title keywords
  2. OR exact 3+ consecutive word match
  3. 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:

  1. Data directory: ls data/
  2. Last fetch: cat /tmp/tech-weekly-cron.log
  3. 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:

  1. Edit COMPANY_KEYWORDS in generate-briefing.py
  2. 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+
  • blogwatcher CLI for RSS monitoring
  • curl for The Information feed
  • Standard libraries: json, re, urllib, subprocess, datetime

Key Performance Indicators

MetricTarget
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

VersionDateChanges
1.0.02026-03-09Initial 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 total
Select a file
Select a file to preview.

Comments

Loading comments…