Keeping AI-generated UI on-system.
AI tools could build a product screen in minutes. Nothing stopped them inventing colours or rebuilding components that already existed. I built the step that checks every screen against the design system before it ships, whoever or whatever made it, and it became part of how the engineering org builds with AI.
- My role
- Owner of the design system. Designed and built the governance step, wrote the model behind it, drove adoption beyond engineering. [NEED: who you worked with, by role]
- Where
- A cybersecurity platform company. Product details are under NDA.
- Tools
- Angular, TypeScript, PrimeNG, Tailwind, Figma, Claude Code.
Speed without a floor.
When the company started generating UI with AI tools, the design system had a new problem. The tools were fast, but they drifted. They invented colours, rebuilt components we already had, and made visual decisions nobody had approved. Hand-built UI had the same problem. It was just slower about it.
The design system described what good parts looked like. Nothing enforced it at the moment a screen was made.
The first gate was a wall.
My first version asked one question: is this in the kit? If yes, it shipped. If no, it failed.
It was safe, and it was wrong. It turned the design system into a ceiling. Nobody could propose anything new without a fight, so people either gave up or went around the system, which is the opposite of what a system is for.
Permit new compositions. Prevent undeclared visual decisions.
The fix was to stop asking one question and ask three separate ones.
- Where did this come from? An existing part, a new arrangement of existing parts, or something brand new.
- Is it built correctly? If not, snap it back to the system.
- If it's new, how far does it reach? Does it stay local, or does it touch the foundations?
Brand new is never a failure on its own. Undeclared drift is. And the one thing an author can't declare for themselves is whether they touched the foundations, because that's the one they'd be tempted to understate. So the system works it out from the change itself.
That model became the contract the rest of the tooling follows.
Snap what fits. File what doesn't. Let a designer decide.
Every screen, generated or hand-built, gets checked against the approved parts and colours. Where it fits, it snaps back to the system and ships. Where it doesn't, it files a clear, typed gap instead of quietly inventing something. A designer makes the call, the gap becomes a real component, and that component goes back into the kit the next check uses.
Letting real users find the holes.
It worked in my hands. The real question was whether it worked for people who weren't me.
Other teams' tools started calling it, and it became a named step in the engineering org's AI development workflow. The CTO sponsored rolling it out to designers and PMs, not just engineers. I moved PMs onto a zero-setup path inside the AI design tool they already used, and treated their first real runs as research, not support tickets.
That paid off quickly. A PM running a real design found colour being used to mean "safe to act on", something nobody had planned for, and it became a formal system proposal. Leadership then moved to consolidate two design systems onto mine.
Adoption is still early, and I'd rather name it honestly. The first PMs are building with it, and every genuinely useful finding that month came from someone running a real screen.
From a rule nobody enforced to a step everyone passes through.
- A named step in the engineering org's AI development workflow.
- Other teams' tools depend on its contract.
- CTO-sponsored rollout to designers and PMs.
- Two design systems moving to consolidate onto one.
- [NEED: any rough number. Teams or tools calling it, gaps turned into components, time to get a screen on-system before and after, or PMs and designers using it.]
[NEED: your answer]
[Two or three honest sentences. Staff panels always ask this, and they want your answer, not a polished one.]