Index MP

UX / Product Design · Case Study

Designers ship real code by working with an AI agent.

CSIRAC, a 1950s room-sized computer at Museums Victoria: the operator's console and desk with open notebooks, in front of grey cabinets of hand-wired racks. Photo by Museums Victoria on Unsplash

I designed and built an end-to-end workflow for a UX team working on an enterprise IoT-connectivity platform. This is not an AI prototyping tool: designers start structured activities that read the Jira ticket, pull context from the project's knowledge vault, and assemble screens from the design system's Storybook components and interaction patterns. The designer reviews the result live in a local dev server, iterates, and opens a pull request a front-end lead reviews and merges into the product.

This is neither a mockup tool nor a no-code toy. The pipelines are deterministic where it matters: two designers working the same ticket get roughly the same result, screens built from the same components and patterns. What differs is taste and fine-tuning.

Jira → PROne unbroken pipeline. No redlines, no translation step, no rebuild from a spec.
WCAG 2.2 AAAccessibility is a release blocker, enforced by automated checks before merge.
5 modesActivity skills: feature, explore, component, refine, research, each with its own pipeline and output.
3 artifactsEvery feature ships a visual spec, a written design doc, and a live 1:1 app replica.

TL;DR The 2-minute version

The whole project, at a glance.

The arc of the work, top to bottom. Open any step for a quick deeper read, or jump straight into the full section.

0activity modes
0artifacts per feature
Jira → PRone unbroken pipeline
  1. 01

    The pipelines pull context from the project's knowledge vault and assemble screens from the design system, so two designers on the same ticket get roughly the same result. The designer reviews live, iterates, and opens a pull request a front-end lead merges.

  2. 02

    Session open loads context silently; the build loop is incremental and designer-confirmed; session close updates memory and the ticket. Read the full section →

  3. 03

    Memory tiers and a layered system keep the agent grounded in product context, the design system, and team conventions, without the designer configuring anything. Read the full section →

  4. 04

    The designer picks a mode to match the task instead of writing one giant prompt; each mode shapes how the agent works and what it produces. Read the full section →

  5. 05

    Designers own the design branches; developers own develop and main. The boundary removes shared-file collisions by structure, not by asking people to be careful. Read the full section →

  6. 06

    Quality is built into the loop: the agent flags a request that contradicts a prior decision, and automated scans catch hardcoded values on the spot, so everything ships on the design system. Read the full section →

  7. 07

    Three artifacts per feature keep the work reviewable and stop the design diverging from the shipped product. Read the full section →

(02) The shape of the workflow

From a ticket to merged code, in one continuous session.

The governing principle is simple: remove every barrier between a UX decision and a working screen. A designer opens a session, picks a ticket, and builds the feature live, speaking in design intent while the agent handles the engineering standards underneath. Three rituals frame the work.

1 · Session open · an automated ritual

The designer types one command. Before the first design prompt, the system silently:

The designer configures nothing. By the time the first prompt is typed, the context is already there.

2 · The build loop · incremental, designer-confirmed

The repeating interaction at the heart of every session: the designer describes what they want in plain language (“Add an empty state to this list with a primary action to create the first item”), and the agent builds it with real design-system components pulled from the Storybook repo, hot-reloaded in the browser. The designer reviews the change live and either confirms or redirects. Nothing advances without confirmation.

One guardrail watches the loop. Before writing, the agent checks each request against the logged decisions; if something contradicts one, it surfaces the conflict first: “this conflicts with the decision made on [date]; revisit or proceed?”

3 · Session close · an automated ritual

The designer signals the session is done. The system then:

  1. 1Designer · Setup

    Invoke an activity skill

    One command. Workspace prepared automatically: branch created, dev server up.

  2. 2System · Context

    Context loaded silently

    Design system + UX methodology + project memory + the ticket’s full detail. The designer configures nothing.

  3. 3Designer + Agent · Build

    The incremental build loop

    Describe → build → review → confirm. ↺ designer confirms each step; an accessibility check runs after each task.

  4. 4Agent · Artifacts

    Three outputs produced

    HTML visual spec · design doc · 1:1 live app replica.

  5. 5FE Lead + Business · Review

    Quality gate

    FE Lead reviews code & standards (sole merge authority); business reviews against acceptance criteria.

  6. 6FE Lead → L3 · Handoff

    Merged & packaged

    design/* PR merged to develop; artifacts handed to the L3 team, who wire the real data layer. Memory updates flow back to context.

Fig. A · End-to-end path, ticket → handoff (owner-coded)

(03) System architecture

Three structures hold the workflow up.

The workflow is built on three foundations rather than a single clever prompt: a memory model that survives the AI’s amnesia, a set of activity skills that load the right context for the job, and a layer model that keeps the code clean enough to ship.

A · A two-layer memory model

The AI has no memory between sessions, its context resets on a fixed cycle, so every session is a cold start. The workflow treats that statelessness as a design material rather than a bug, and rebuilds context two ways.

LayerWhat it isWhen it loads
Persistent memory (the vault)A repo-committed, team-shared knowledge base, in effect the agent's second brain: product brief, team structure, design decisions and rationale, component patterns, meeting outcomes (date-stamped, treated as hard constraints), traceability, and quality gates.Always: read at the start of every session.
On-demand skillsFocused capability files: design-system inventory, UX methodology, team conventions, workspace setup, user-research findings and user-interview data. They only cost context when the task needs them.Loaded by the activity skill that needs them; never all at once.

The system is deliberately token-frugal: a small always-on core loads at session start, and everything else streams in on demand, so the working session stays sharp.

Skills · behaviour triggers on demand
/feature · /explore · /component · /refine · /research
loaded on demand, zero cost when idle
↓ layered on
Project memory · the vault repo-committed · team-shared
org-memory · design-system · ux-methodology · layer rules · quality gates · team structure · decision records · traceability · research layer
single source of truth, grows every session
↓ sits on
Global memory · per user all projects
identity · working style · preferences · personal rules & directives
who the designer is, independent of any one project
Fig. B · Memory tiers · a lean always-on core at start, the rest on demand

B · Five activity skills

A designer doesn’t write one giant prompt. They pick a mode. Each activity skill loads the exact context and runs the exact pipeline its kind of work needs. (See the next section.) All five sit on a shared base of team memory, design-system rules, and UX methodology, so output is consistent without re-explaining the system each time.

C · The three-layer model · the spine of the code

The most consequential rule in the codebase. Every piece of UI belongs to exactly one of three layers, and the layers may only depend downward. It’s what keeps the design system reusable and makes a designer’s output safe to merge.

depends on ↓
L3 · App FE Lead + L3 dev team
Real data, validation, identity/access, URL state, telemetry, business rules.
L2 · Blueprints Designers · reviewed by FE Lead
Controlled compositions with slots and callbacks. Mock data only, no API calls, auth, or persistence.
L1 · Primitives DS maintainers + Designers
Accessible UI atoms: design tokens, themes, Radix-based wrappers. No business meaning, data, or copy.
Fig. C · Designers build L1 + L2. The data layer (L3) is never their concern. Reverse dependencies forbidden.

Dependency direction is sacred: L3 depends on L2 depends on L1. The reverse is forbidden: a primitive may never import a blueprint; a blueprint may never import app code.

(04) The activity modes

Five ways to start, each with its own pipeline.

The designer chooses the mode that matches the intent. Some produce real, mergeable deliverables; others are for thinking, validating, or asking the research layer before anything is committed.

ModeUse it when…ProducesMerge path
featureYou have a UI feature ticket and are building a production screen.HTML visual spec · design doc · live 1:1 app replica · committed code.PR → reviewed by FE Lead → merged.
componentYou’re building or extending an L1 primitive in the design system.Component code · Storybook story · unit + accessibility tests · token-only styling.PR → published to the package registry.
exploreNo ticket yet, you’re searching the problem space for direction.Raw exploration: sketches, concepts, multiple directions.Discovery only, no PR, no handoff.
researchYou need to know what users actually said. Every feedback and user-testing session is logged into the system and queryable.A sourced answer drawn from the research layer: sessions, quotes, patterns.Insight feeds the work directly; nothing to merge.

A fifth mode, refine, handles post-review changes. It detects which artifacts already exist and which branch scenario applies, so the designer never has to diagnose state by hand after feedback comes back.

(05) Team & ownership

Clear roles, and one hard boundary that makes it work.

The workflow spans two teams with a single, enforced line between them. Designers own everything up to and including the blueprint layer. The data layer, and the right to merge, sit with engineering.

RoleResponsibility in the workflow
DesignersRun sessions and build real UI (L1 + L2) from tickets. Own the design system and all design/* branches. Maintain the project memory.
UX ManagerOwns the backlog and research strategy; runs cross-team meetings and logs their outcomes into project memory as date-stamped constraints. Can also build features like any designer.
FE LeadThe design-side quality gate. Reviews every design build for standards and integration fit, and is the sole merge authority for design branches. Never authors design work.
PM / ProductWrites the tickets designers work from and signs off features against acceptance criteria.
L3 Intake / Dev teamReceives the merged handover package and wires the real data layer for production.

The hard boundary

Designer territory

  • design/{name}/{feature} · feature work
  • Design system: components, tokens, themes
  • The project memory file
  • Layers L1 and L2

Dev territory

  • develop, main, feature/*, fix/*
  • The real data layer (L3)
  • Merging design PRs
  • API integration, identity, persistence

The boundary is a hard rule. The dev team never silently edits a component, token, or theme. If a developer disagrees with something in a design PR, it goes back to the designer with a comment, never changed in place. Design decisions stay with designers.

main └─ develop ← shared integration · dev-owned ├─ design/ design system · tokens ├─ design/{designer-a}/{feature} ├─ design/{designer-b}/{feature} └─ design/{ux-manager}/{feature} ▲ FE Lead review + merge sole merge authority on every design/* → develop
Fig. D · Designer territory (design/*) · dev territory (develop / main). One reviewer integrates.

(06) Artifacts & the quality bar

What ships, and the standard it has to clear.

Every feature produces three artifacts

Before a feature can be reviewed, the session has to produce all three:

ArtifactWhat it isWho it’s for
HTML visual specA self-contained file showing every state, default, loading, empty, error, success, edge cases, fully rendered across breakpoints, annotated with the design-system component used for each element.The dev team’s visual reference. Every state must match the live build before ship.
Design docA written record: every component used (with pinned version), prop decisions and rationale, interaction behaviour, accessibility requirements, dev notes, and open questions.The dev team and future designers.
1:1 app replicaThe feature running live inside the real app shell, with mock data, correct navigation and surrounding context, and every state reachable.Reviewers: it’s the thing the FE Lead and business actually click through.

The rules every build has to pass

All of them are enforced by automated checks and the agent’s instructions:

Without the quality bar

  • Hardcoded values break theming silently
  • Accessibility caught late, or never
  • Happy-path only; states found in production
  • Inconsistent patterns drift across screens

With the gates built in

  • Every value themeable by default
  • Accessibility verified before merge
  • All states designed up front
  • One design system, applied consistently

The standard holds because enforcement lives in the system itself: rules in the agent’s instructions, automated scans on write, and test gates in CI. Quality stays structural instead of depending on anyone’s memory.

(07) In one line

Quality at speed, because the discipline lives in the system.

Every safeguard a senior team relies on is built into the workflow itself:

The distance between a designer having an idea and a developer seeing working, accessible, on-system code collapses from days to hours, and the designer’s role shifts from producing static deliverables to producing live, production UI.

2 min scan