Ghost Hat Studio
Work
Case study · Shipped

Agentic email migration pipeline

A major rideshare brand was moving its whole marketing program onto a new brand system. That meant rebuilding a deep library of email templates, and nobody wanted to put a team of designers on find-and-replace for a month.

Role  Pipeline design & build Year  2026 Build  Claude skills, deterministic tooling, Figma tokens, CDN assets Status  Shipped & running
01

The problem

The new brand system touched everything: colors, type, icons, logos, dark-mode rules. The email templates were hand-built HTML, some of them years old, with patterns layered on top of patterns. Every one of them had to move to the new standard.

By hand, one template took anywhere from 20 minutes to two hours when things went smoothly. In practice it ran four to six hours, once you count the trial and error, the design-system lookups, and the render tests. The time wasn’t even the worst part. The work was spread across four or five tools. There was no real QA step. The brand guidelines changed halfway through a batch. And the know-how for doing it right sat in a few people’s heads, not in anything you could hand to someone else.

The manual loop, template by template
01 Batch assignment 02 Pull legacy HTML 03 Manual brand updates · 20m to 2h 04 Design-system lookups 05 Upload assets to CDN 06 Eyeball QA & render tests 07 Stakeholder feedback · iterate
02

The approach

We built the pipeline around one rule:

Automate the friction.
Humans inspect. Humans accept.

You hand it a batch of old templates and a task sheet. It hands back updated templates that have already been through an independent QA pass, ready for a person to look at. The reviewer’s notes go back to the agent, and approved work ships. Four layers make that work.

Agentic email update pipeline
InputBatch of legacy templates + task sheet
OutputUpdated templates + AI QA pass, ready for review
Human reviewFeedback to the agent
ProductionApproved & shipped
Knowledge
Figma design systemLive color tokens, background palette, approved component specs.
Asset index2026 CDN icon & logo URLs mapped to their legacy identifiers.
Code-pattern libraryCanonical HTML for every email module type.
Living brand guideCSS, font mappings, and dark-mode rules, kept current as the standards change.
Setup
Asset loaderReads the task sheet, uploads images to the CDN, and builds a batch index mapping template IDs to their new asset URLs.
Pipeline
Automated toolsDeterministic transforms: fonts, colors, CSS, logo URLs, dark-mode classes, table structure.
Brand-update skillHandles what the tools can’t: hero images, icon swaps, CTA restructuring. Flags anything that’s missing instead of guessing.
QA skillAn independent full-review pass. Reads every element, fixes what slipped through, asks about anything unclear.
Living memory
Updates its own guides when it makes a mistake or hits an edge case, so the pipeline gets better with every batch.
↻ self-improving
03

What’s automated, and what isn’t

The whole design rests on one split. Most of the work is mechanical: swapping fonts, recoloring, rewriting CSS, mapping logo URLs, applying dark-mode classes. That runs through plain deterministic tools, which are fast and never improvise. What’s left needs judgment, like a hero image that has to be rethought or an icon with no clean swap. That part goes to a reasoning skill, and the skill is built to stop and ask when it’s unsure rather than guess.

Then a second reasoning pass reviews the whole template from scratch. You’d never let the person who wrote the code be its only reviewer, and the same logic applies here. Every correction it makes gets written back into the guides, so the know-how stops sitting in a few people’s heads and starts building up where anyone can reach it.

04

The outcome

45 min
per 3-template batch
30 minutes of agent work for the brand update and full QA. 15 minutes of human work for the visual check, render tests, and paste to production.
~85%
less time
Down from one to six hours of manual work on the same batch.
Every batch
gets smarter
Living memory captures each new edge case, so quality climbs as volume grows.

The team stopped hand-editing HTML. Now they review finished, QA’d work instead. The know-how that used to bottleneck on a few experienced people sits in a system anyone can run, and what comes out is ready to ship, not a rough draft to clean up.

05

What it demonstrates

  • Deterministic tools and reasoning skills, kept separate. Tools do the mechanical work. Skills handle the judgment. A second skill QAs the result.
  • A person stays in the loop. The agent produces. A person inspects and accepts. Nothing ships without that.
  • The know-how lives in the system. Brand rules and patterns sit in versioned, self-updating guides instead of in someone’s memory.
  • It compounds. Because the memory improves itself, the pipeline is worth more after every batch than it was before.
  • It runs on your stack. Built around the client’s own design system, assets, and tools, not a product you have to move into.
Got a migration or a batch process bleeding hours?
Thirty minutes. We listen, we ask questions, we find out whether there’s a fit.
Book a call