← All work

01 / 05 · Live

CyberCookie

A model reads the news. A validator reads the model.

Python · Next.js 16 · Anthropic SDK · Supabase · Upstash Redis · GitHub Actions

Visit live ↗

20+Feeds ingested
100+Issues published
90+CVEs tracked
Today’s issue on the live site

The problem

Cybersecurity and AI news moves too fast to read by hand, and models can invent facts or be steered by hostile web text. CyberCookie writes a short daily digest and checks it with code before it is published.

My role

Solo. I built the whole system: feed ingest, three LLM agents, the parser and validation gate, the GitHub Actions runs, the Supabase schema and the Next.js site.

How it works

  1. InputScrape RSS feeds48h window, dedupe, CVE regex
  2. ScorerScore and pick storiesScorer agent picks one per section
  3. WriterWrite the issueWriter agent drafts from full articles
  4. ReviewerReview onceReviewer agent fact-check, one revision
  5. Code gateParse and validateStrict rules, bad links stripped
  6. OutputPublish and notifySupabase write, Telegram alert

Model stepHuman or code gatePlain step

What I built

Trust boundaries · where the AI is held in check

Hardest part

The model once dropped the section headings and published an empty issue with no error. The fix moved the guarantee into code: a strict validator, a link allowlist, rollback on failed writes, and tests built from real drafts.

Outcome

128 issues published since June 2026 (96 Cyber, 32 AI) and 93 CVEs tracked, all visible on the live stats page.