OVERRIDES runtime profile: uses direct_mixed because the script bypasses claude CLI — it calls yt-dlp directly for channel scraping and the NotebookLM helper (Gemini-backed) for artifact generation.
Weekly macro / investment / economics audio overview — Saturdays 09:00 SAST (07:00 UTC).
Pulls last 7 days of videos from a curated list of reputable macro sensemaking sources (Lyn Alden, Real Vision, Patrick Boyle, Aswath Damodaran, The Compound/Ritholtz, FT, Bloomberg, Moneyweb, BizNews, Just One Lap, etc.) defined in scripts/investment_weekly_digest.py (CHANNELS list). Hype-heavy crypto/equity-influencer channels are excluded or kept skeptical/non-primary.
Filters by recency + view threshold using full yt-dlp metadata (not flat extraction — flat mode drops upload_date/view_count and silently selects 0 videos), creates a NotebookLM notebook with the qualifying videos, then generates audio overview (podcast), slide deck and video overview framed for an SA investor with offshore funds. Artifacts land in ~/workspace/reports/investment-weekly-YYYY-MM-DD/. Telegram summary sent on completion.
Failure modes that now alert (notify_on: failure + non-zero exit):
- All channel fetches failed / empty (likely yt-dlp or network issue)
- Zero videos qualified after filtering (channels gone stale or filter too strict)
- NotebookLM artifact generation produced no audio (the primary deliverable)
Dry-run mode (skips NotebookLM + Telegram, prints collection summary):
INVESTMENT_DIGEST_DRY_RUN=1 python3 scripts/investment_weekly_digest.py
First fire: Sat 2026-05-02 09:00 SAST.
cd /home/lucienne/workspace && python3 /home/lucienne/workspace/scripts/investment_weekly_digest.py
Format: minute hour day month weekday
Mission Control is the board for your delegated work: requests come in, Luci coordinates the next step, and evidence stays visible for review.
Luci is your always-on assistant for routing, status updates, and follow-through. Operators can still open deeper evidence when needed.