I have an iOS app called Flixtr — Strava for movies and TV. It has 279 Jest tests. Three real bugs still slipped through last month.
So I built two layers of safety net — and had Claude Code do most of it.
Layer 1 — every PR, reviewed
Every pull request on the repo gets reviewed by a Claude skill before I merge. It reads the diff, flags missing tests, and catches the gesture bug I shipped last week. I say “address the feedback” and Claude commits the fixes back.
This used to be a thing I did sporadically when I had time. Now it’s the default. The skill is configured per-repo, so the things it cares about for Flixtr (rating logic, image cropping, navigation state) are different from the things it cares about for another project. It’s the same trick a senior reviewer pulls off, except always-on and never grumpy.
Layer 2 — Maestro tests written from regressions
After any TestFlight regression, Claude writes a Maestro end-to-end flow that drives the real iPhone simulator — tap, swipe, scroll. The kind of testing Jest can’t do.
Pattern: bug ships. I find it in a build. I tell Claude what the bug was. Claude writes the regression flow (e.g. title-metadata-flow.yaml). The flow gets committed alongside the fix. Next time the same path breaks, CI screams before TestFlight ever sees the build.
The whole loop
Review → regression test → build → ship. It runs while I’m having lunch.
And the meta-bit: the video embedded above was itself made by another Claude skill I’m experimenting with — /rover-video. Script drafted by Claude, narration via ElevenLabs voice cloning, cards rendered with Pillow + ffmpeg, the e2e footage you see is a real Maestro test run from earlier this week. Code, tests AND content from one loop.
Try this on your own repo
The pieces are all off-the-shelf: Claude Code with a custom slash command for PR review, Maestro for the e2e layer, ElevenLabs for the narration, ffmpeg for the assembly. The thing that’s interesting isn’t any single piece — it’s that they compose. You can have an AI teammate that reviews your code in the morning, writes your tests in the afternoon, and ships your release notes by the evening.
Fuel your curiosity. Experiment with everything.