When I joined Apple Pay, Terran had been built screen by screen, with no shared system. I turned one model screen into a design system in code, then built skills that redesigned the rest of Terran from it, and keep it evolving, with me at every gate.
NDA note. This is internal Apple work, so I cannot show the real system. Everything here is a faithful recreation with representative data, and I am happy to walk through it in more depth privately.
When I arrived at Apple Pay engineering, Terran had grown the way internal tools do: one screen at a time, each shipped under its own deadline. There was no shared source of truth, so every screen carried its own spacing, its own patterns, its own idea of the product.
New work reinterpreted the last screen from memory. Consistency was technically everyone's job, which made it no one's, and design review turned into policing drift after it was already built. The tool worked. It just did not feel like one tool.
Every screen remembered the product a little differently.
The reflex was a component library and a doc site. But a library is opt-in. It still asks every person to remember it, correctly, every time, under a deadline, and it only catches drift after the work is already built.
The real problem was that alignment was never the fastest path. So I flipped it. Make the aligned path the path of least resistance, by encoding the system as code an AI operates, so the default output is already aligned, and a genuinely new pattern gets captured instead of improvised.
Do not document the system. Operate it.
Before any system, I designed a single model screen: the CICD view at the core of Terran, done right. Every state, spacing, and component decided once, on purpose. Then came the unglamorous part, pulling that one screen apart into a system, its tokens, its archetype, and its components written as code the whole tool could share.
One screen became the source of truth. From there, the rest of Terran could be rebuilt to match it, not by hand, but by skills that read the system and compose from it.
Get one screen exactly right. Then make it the rule.
The skills do the assembly, always from the system. But nothing new enters the system on its own. A gap stops the work and asks for a decision, so the library grows on purpose, one approved pattern at a time. The AI proposes. I decide.
This is the redesign skill, recreated here. Run it and watch it read the page, compose from the system, hit a gap it cannot fill, and stop for a human decision before anything is stored. The interesting moment is the one where it asks you.
Tokens, archetypes, and components live as markdown specs, one module, readable by a person and by the model in the same breath. The skills read the existing page, extract its structure, and infer the right API hooks from the patterns already there. Need a demo before the backend exists? It generates mock data that matches the shape.
And when a redesign captures a new component, this is where it lands, a real file, reviewed and reusable, so the next feature inherits it for free.
The skills did not just hold the line. They redesigned the whole of Terran from the system, screen by screen, until the tool finally looked like one product. Then the same skills went further: new workflows and screens that never existed before, composed from the system, aligned from the first draft.
A screen that used to take days of reinterpreting patterns by hand now starts aligned in minutes, wired to the right hooks or running on mock data for a demo. And every approved pattern makes the next build faster than the last. The system does not just keep Terran consistent. It is how Terran gets built.
Speed and consistency stopped being a trade.
A design system that ships features instead of documenting them, and grows itself under review. I built it in code, so what everyone ships is exactly what I designed.
Next case Terran·AI-triaging for Apple Pay