🎉Introducing "What did you break this week?"

An AI-generated rundown of the things that are going to have me patching integrations at 10pm on a Friday.

🎉Introducing "What did you break this week?"

I've had just enough times that something rolled out to live on Ghost that broke things. Sometimes it's self-hosters only. Sometimes it's a custom integration. In any case, this AI-generated rundown of what's going on in the Ghost repo is meant to flag those things, and be faster than manually scanning for new PRs. Maybe.

100% AI unless it occurs to me to edit something, comes out Thursday mornings. Might be useful, might not. No promises. It's a big experiment.

I back-generated a couple weeks while testing, so you can get some sense of what it'll look like. FWIW, it would have flagged the reason I was patching integrations this Friday at 9pm.

Find it on the web at https://www.spectralwebservices.com/wdybtw/ or subscribe using the form below!

I back-generated a couple weeks while testing, so you can get some sense of what it'll look like. FWIW, it would have flagged the reason I was patching integrations last Friday.

Tidbits from development, for anyone curious:

I've got the AI ignoring non-organization PRs until merged. I think that's a good tradeoff between not missing something likely to merge next week but not getting swamped by dozens of community contributions that are likely on a long timeline – if ever.

I'm running a non-AI filter step for paths that are likely to create problems with integrations, then a triage step with Haiku (title, description, file list), then a deep read with Opus on an allow-listed diff (see below), returning structured findings that feed the newsletter render, plus an AI-generated intro paragraph, value unclear. A Ghost helper prepends and appends boilerplate text to each one, with the idea that eventually this thing could ship unattended, although I'll be looking at drafts for a few weeks first.

I spent most of my dev time trying to get the output down to a manageable size. I want enough there that you can look at it and say "oh, that's a problem", but not so much that it's a big wall of text and you can't find the problems. It's still long, but I'm hoping that the important bits pop to the top, at least.

The allow list

Server core (ghost/core/core/server/)

  • api
  • web
  • models
  • data/schema
  • data/migrations

Server services (ghost/core/core/server/services/)

  • auth
  • signing-keys
  • identity-tokens
  • internal-keys
  • members
  • webhooks
  • permissions
  • integrations
  • email-service
  • newsletters

Server lib (ghost/core/core/server/lib/)

  • email-rendering
  • magic-link
  • signed-webhook.ts (single file)
  • public-jwk.ts (single file)

Frontend and framework

  • ghost/core/core/frontend
  • packages/api-framework/lib
  • packages/api-framework/src

Snapshot directories (ghost/core/test/)

  • e2e-api/admin/__snapshots__
  • e2e-api/content/__snapshots__
  • e2e-api/members/__snapshots__
  • unit/frontend/helpers/__snapshots__

Missed nominations welcome.