Two pages, every morning, written by crons.

The News Brief curates yesterday's newsletters into a digest at 9:15; the Morning Brief assembles tasks, calendar, focus stats, and flagged mail into a single page at 10:30. Both publish to Notion — exactly once.

2 pages / day1 LLM call each0 raw URLs shown to the model0 duplicate days, ever

01 / FIG. 5News Brief — the sieve

cron 09:15 ET · news-labeled mail from the last 24h
News mailLAST 24H · TRACKING STRIPPEDALWAYSFRONTIER AI · LEADERSHIP · ACQ · REGULATIONSOMETIMESMACRO & MARKETS · BIG-TECH · GADGETSNEVERPROMOS · LIFESTYLE · LISTICLESOne Notion pageGROUPED BY CATEGORYDROPPEDONE FORCED-TOOL-USE CALL DECIDES — THE MODEL CITES [N] LINK IDS, NEVER RAW URLS

STREAM WIDTH ≈ SHARE OF MAIL PER TIER · STORIES GROUPED BY CATEGORY · SOURCES RANKED BY PRIORITY

02Morning Brief — the fan-in

cron 10:30 ET · five sources, one page
TasksNOTION
Focus hoursNOTION
LeetCode statsNOTION
Flagged emailGMAIL
EventsCALENDAR
🌅 Morning Brief — Thu
ONE PAGE PER DAY · DEDUP LOOKUP BEFORE PUBLISH
TL;DR: 3 tasks due today, 1 flagged email needs a reply, light calendar.
Today (3)
Finish the review draft
2 LeetCode problems
Reply to the flagged thread
Calendar
· 10:00 — team call · 18:00 — gym

TASK BUCKETS (TODAY / THIS WEEK / OVERDUE / RESCHEDULE) ARE CLASSIFIED IN CODE — THE LLM ONLY WRITES THE INTRO, TL;DR, AND NEWS

03What lands in Notion

strict formats — one quote-line per story
📰 News — Thu
NEWS BRIEF · GROUPED BY CATEGORY
AI & Tech
Frontier models: Lab ships a new reasoning model. — The Information
Chips: Fab capacity tightens again. — Bloomberg
Markets
Macro: Yields drift ahead of CPI print. — Reuters
Format rules
ENFORCED BY THE PUBLISHER, NOT THE PROMPT
One quote-block line per story — label, sentence, source link.
Citation URLs are allowlisted against the source markdown — no invented links.
$ is escaped — Notion would render math.
A failing source degrades its section, never the page.

04Brief guarantees

publishing discipline
One page per day

A failed dedup lookup is fatal — it never publishes twice.

Graceful degradation

A source outage costs its section, not the brief.

[N]
No raw URLs

The model cites link ids; the publisher resolves them.

Allowlisted citations

Every link is verified against the fetched sources.

Curated, assembled, published — while you sleep in.

Both briefs are plain Python plus one LLM call each. The interesting part is the discipline around them.

internals →read the code ↗