← Back to portfolio

morning-brief-agent

A daily brief that writes itself and emails me.

A scheduled cloud agent that every morning reads my calendar, inbox, deadlines and weather, composes a manager-style brief, and sends it. The behaviour is a Markdown spec, so a change is an edit, not a redeploy.

This was one of my first autonomous cloud agents. It runs on a schedule, pulls from Gmail and Google Calendar through MCP connectors, folds in deadlines and weather, and writes the brief in a consistent voice before emailing it. It has been running daily on cron since June, plus a Sunday weekly wrap.

The design choice I keep reusing is spec-as-config: the entire behaviour lives in a Markdown file read at run time, so tuning what the brief says is editing a document, not shipping code. And it fails loud, not silent. If a source is empty or a tool errors, the brief tells me so instead of inventing a plausible line, which is the difference between a report I can trust and one I have to double-check.

  • scheduled cloud agents
  • spec-as-config design
  • MCP (Gmail + Calendar)
  • fail-loud reliability
  • cron automation

living system

What it actually took. The temptation with a brief is to let the model smooth over a missing source so it always reads nicely. That is exactly the wrong call, because a brief you cannot trust is worse than no brief. Making it admit "inbox unavailable" instead of hallucinating a summary is a one-line rule and the whole reason I still read it.