Enterprise AI SystemsDesign System GovernanceWorkflow ArchitectureAccessibility-First DeliveryStrategic Initiative

An agentic UX system that shifted what UX ships into a room.

An org-wide agentic UX execution pipeline that reduced frontend build time, enforced design system and accessibility compliance at the code layer, and redefined what UX ships into a room — from prototypes to near production-ready systems.

90%+
Generated code shipped to production
Days → Mins
Auxiliary screen development time
22
Banking domains modeled
WCAG 2.1 AA
Enforced at generation time
Org-wide
Adopted across all teams (Mar 26)

The UX problem no one was designing for

Most UX work focuses on the interface a user touches. This initiative started with a different question: what is the experience of the people who build that interface? Product managers translating vision into tickets. Designers maintaining consistency across silos. Engineers interpreting Figma under sprint pressure. QA chasing inconsistencies caused by fragmented frontend behavior.

I was leading design across multiple banking domains inside a large-scale enterprise core banking platform — payments, deposits, customer management, billing, taxation, standing orders, pricing, workstation, and more. The organisation already had mature infrastructure: a shared component library (SBNG), a design system, agile delivery, and component-based frontend architecture.

Yet the delivery experience was broken — for everyone in it.

◆ THE REAL BOTTLENECK

Organisational intelligence — the design rules, domain knowledge, edge cases, accessibility requirements, and UX heuristics that existed across people's heads and disconnected documents — was not machine-consumable, and increasingly not human-consumable either. Every sprint began by re-explaining what everyone already knew. Every handoff lost something in translation.

A typical delivery flow:

PM VisionFeature SheetUX ExplorationJira TicketsFigmaDevClarificationsReworkSprint Drift

This produced compounding enterprise-level problems:

  • Sprint churn from requirements evolving mid-cycle
  • Frontend inconsistency across teams optimising locally
  • Repeated clarification loops between PMs, UX, and engineering
  • Designers consumed by handoff support instead of design work
  • Engineers rebuilding similar UI logic across features
  • QA inconsistencies caused by divergent implementation behavior
  • Accessibility treated as a retrofit, not a baseline

The insight: AI quality is a context architecture problem

Most AI-assisted workflows obsess over prompts. I focused on structured organisational intelligence.

The breakthrough was treating an AI execution layer not as a code generator but as a domain-aware delivery system — one capable of consuming UX heuristics, design system rules, persona research, domain workflows, architectural dependencies, edge cases, and accessibility standards simultaneously and consistently.

If I could structure everything the organisation already knew into a form a system could navigate, the pipeline wouldn't just generate faster code. It would generate correct code — code that already understood the guardrails, the patterns, the edge cases, and the accessibility requirements before a single developer looked at it.

This was a UX problem in its purest form: how do you structure complex, fragmented human knowledge into something a machine can act on — without losing fidelity, trust, governance, or the human judgment that makes enterprise software safe?

The system: an end-to-end agentic UX execution platform

I architected the pipeline as a layered system — every layer earning its keep, every layer governed. The full repository structure looked like this:

enterprise-ux-pipeline/
│
├── .kiro/                                ── BRAIN  (always-loaded behavioral rules)
│   ├── agents/sbng-companion/            ── SBNG component library agent + conventions
│   ├── steering/                         ── UX principles, design system, gold standards
│   │   ├── enterprise-ux-pipeline.md
│   │   ├── sbng-showcase.md              ── Single source of truth: component inventory
│   │   ├── zeroheight-guidelines.md      ── Design system guidelines (Zeroheight)
│   │   └── Guardrails/
│   │       ├── accessibility.md          ── WCAG 2.1 AA enforcement
│   │       ├── design-guidelines.md      ── Table/form/list conventions
│   │       ├── quality-first-generic.md  ── No tradeoffs · Code hygiene
│   │       ├── structure.md              ── Project structure conventions
│   │       └── tech.md                   ── Tech stack rules
│   └── skills/                           ── Migration + audit skills (e.g. ptable→mattable)
│
├── intelligence/                         ── REUSABLE INTELLIGENCE (referenced by ID)
│   ├── personas/                         ── Persona registry · banking 2026 archetypes
│   ├── patterns/                         ── sb-data-table, sb-forms, sb-form-stepper, sb-consult
│   ├── workflows/                        ── approval-flow, bulk-actions, search-filter
│   ├── shared-components/                ── Component API contracts
│   ├── rules/global/ux-rules.json        ── Enterprise UX enforcement rules
│   └── contracts/templates/              ── API contract templates (e.g. crud-list)
│
├── domains/                              ── 22 ENTERPRISE DOMAINS
│   ├── AIC · BILL · CAM · CARE · CPTF · CRD · CTM · DCM · IASB · IPCE
│   ├── MKTP · MPCE · OSAAM · PAYCE · PRICE · RTPM · SHARED · STORM
│   └── TASK · TAX · TDM · TRANSVERSAL · WKS
│       └── domain.json + architecture + reference docs
│
├── feature-packs/                        ── DELIVERABLES  (one folder per Jira ticket)
│   ├── PRICE-4521-commission-list/       ── docs-only state (design phase)
│   └── PRICE-5100-commission-family-crud/── fully generated, production-ready
│
├── runtime/                              ── LIVE ANGULAR PREVIEW APP
│   ├── core/mock-api.service.ts          ── Mock API interceptor
│   └── preview/preview-shell.component   ── Locale + viewport controls for PMs
│
├── validations/                          ── AUTOMATED GOVERNANCE
│   ├── validators/                       ── Structure + i18n validators
│   └── schemas/feature-pack.schema.json  ── JSON schema enforcement
│
├── scripts/                              ── PIPELINE AUTOMATION
│   ├── scaffold-feature-pack.js          ── `--jira PRICE-5100 --feature commission-family`
│   ├── validate-feature.js               ── Run full validation suite
│   ├── export-feature.js                 ── Package for developer download
│   ├── create-snapshot.js                ── Version snapshot
│   └── lint-structure.js                 ── Repo structure lint
│
├── exports/                              ── Packaged downloads
└── docs/                                 ── git-strategy.md · scalability.md

The full pipeline at the repo level. Every folder is a UX decision — what to encode, what to enforce, what to leave to human judgment.

Four layers of design intelligence

01

The Steering Layer — design principles as system behavior

I authored a markdown-based steering layer that loaded into the system on every task. This wasn't a prompt — it was a persistent operating context. Every code generation event ran against:

  • UX principles and heuristics applied to enterprise banking workflows
  • SBNG design system component inventory as the single source of truth
  • Zeroheight design guidelines encoded as enforceable rules
  • Guardrails for accessibility (WCAG 2.1 AA), code quality, tech stack, and project structure
  • Persona context and user mental models from research
  • 74 org-level guardrails spanning software, project-specific, and agentic delivery concerns

I also built an SBNG companion agent with knowledge of conventions for components, HTML templates, TypeScript, i18n, unit tests, and Cypress E2E patterns. The system didn't guess which components existed — it knew, and knew how to use them.

02

The Intelligence Layer — reusable, referenceable design memory

Rather than encoding everything in steering, I built an intelligence layer of versioned, referenceable assets — personas, UX patterns (data table, forms, form stepper, simple consult), workflows (approval, bulk actions, search & filter), shared component contracts, global UX rules, and API contract templates.

This made the system composable. A new feature could reference an existing pattern by ID and inherit its accessibility behavior, keyboard navigation, error states, and i18n scaffolding — consistent with everything else in the platform.

03

The Domain Layer — 22 banking domains as structured knowledge

For each of the 22 banking domains I worked across, I synthesised and structured the organisational knowledge that previously lived only in people's heads or siloed documents:

AICInterest Calculation
BILLBilling
CAMCustomer Account Management
CARECustomer Care
CPTFDocument Management
CRDCustomer Reference Data
CTMConsumer Transaction Management
DCMDecisioning / Compliance
IASBPayments (IASB)
IPCEPayments (IPCE)
MKTPMarketplace / Calendars
MPCEPayments (MPCE)
OSAAMRole-driven Management
PAYCEPayments (PAYCE)
PRICEProduct & Pricing
RTPMReal-Time Pricing
SHAREDShared Services
STORMStanding Order Management
TASKTask Orchestration
TAXTaxation
TDMTerm Deposit Management
TRANSVERSALCross-domain Concerns
WKSWorkstation

Each domain folder carried its own domain.json, architectural diagrams, dependency flows, and feature reference docs. For high-complexity domains like PRICE, I authored separate architecture and product knowledge documents that the system loaded only when working in that context.

This was the hardest UX work in the project. Teams had never needed to share their knowledge in one place before. Synthesising it required understanding the organisation holistically — architecturally, operationally, and as a user research exercise on the people who built the software.

04

The Feature Pack Layer — what developers receive

Every Jira ticket flowed in via MCP. The pipeline scaffolded a structured feature pack for that ticket — and that pack became the contract between design intent and engineering execution.

Here is what a developer downloads for a real, fully-generated feature (commission family CRUD inside the PRICE domain):

feature-packs/PRICE-5100-commission-family-crud/
├── feature.json                         ── Manifest · Jira link · status · execution version
├── README.md                            ── Overview + developer quick-start
│
├── requirements/                        ── UX DISCOVERY INPUT
│   ├── requirement.md                   ── User story · acceptance criteria · API
│   ├── initiative-sheet.md              ── Business value · KPIs · timeline
│   └── tech-constraints.md              ── API limits · SBNG gaps · permissions
│
├── source/                              ── DESIGN INTENT (drives generation)
│   ├── ux-goals/goals.json              ── 4 measurable goals
│   ├── business-rules/rules.json        ── 7 rules
│   ├── edge-cases/edge-cases.json       ── 9 enumerated edge cases
│   ├── workflows/workflow-refs.json     ── CRUD flow definition
│   └── prompts/generation-prompt.md     ── Full generation prompt
│
├── generated/                           ── PRODUCTION-READY ANGULAR
│   ├── models/commission-family.model.ts          ── Typed interfaces
│   ├── constants/commission-family.constants.ts   ── Patterns · test IDs · error codes
│   ├── services/commission-family.service.ts      ── HTTP CRUD service
│   ├── components/
│   │   ├── family-list/                ── List page · signals · MatTableDataSource
│   │   ├── family-create/              ── Create form · reactive · typed
│   │   ├── family-edit/                ── Edit form · prefill · code disabled
│   │   └── family-delete-dialog/       ── Confirmation · focus on Cancel · warn button
│   ├── routing/commission-family.routes.ts        ── Lazy-loaded · permission-aware
│   └── i18n/en.json                                ── 18 translation keys
│
├── contracts/
│   └── commission-families-api.json    ── Full API contract (GET/POST/PUT/DELETE)
│
├── configs/                            ── AUTOMATED GOVERNANCE
│   ├── validations/ux-validation.json  ── UX rules audit: PASS
│   ├── accessibility/a11y-audit.json   ── WCAG AA audit: PASS
│   └── i18n-validation/i18n-check.json ── 18 keys · 0 missing · 0 hardcoded
│
├── docs/                               ── HANDOFF
│   ├── design-handoff.md               ── HTML structures · routing · nav flow
│   ├── ux-specs.md                     ── Persona · goals · edge cases · keyboard
│   ├── component-inventory.md          ── SBNG + Material components used
│   └── i18n-keys.md                    ── Complete key structure
│
└── executions/
    └── v0.1.0-1/snapshot.json          ── Versioned execution record

A single feature pack. The developer downloads this folder, connects the backend, and ships. Accessibility, i18n, edge cases, and design system compliance are already validated before they open the code.

Designing governance into the system

Enterprise AI without governance is enterprise risk. Three governance systems were built directly into the pipeline — not bolted on as review processes.

1 · Automated validation

Structure validators, JSON schema enforcement, and i18n completeness checks ran on every feature pack before it could be exported. No missing keys, no hardcoded strings, no broken accessibility audits could reach a developer.

2 · Accessibility as a first-class output

WCAG 2.1 AA compliance was encoded in steering rules, enforced at generation, and audited as part of every feature pack (a11y-audit.json). Inclusive design wasn't a checklist — it was a contract.

3 · Runtime preview before commit

A separate Angular runtime app with a mock API interceptor let PMs and designers preview generated features — locale by locale, viewport by viewport — before anything reached a sprint. Errors surfaced before they cost engineering time.

How delivery changed

Before

PM VisionUX ExplorationFigma HandoffDev InterpretationClarification LoopsReworkAccessibility RetrofitSprint Drift

After

PM Vision → Structured ContextJira MCP → Feature Pack ScaffoldedEdge Cases · Business Rules · A11y · CodeRuntime Preview · Automated ValidationUX Sign-off · Git PushDeveloper reviews and plugs Backend · ShipsBackend Integration · Architecture Review

We stopped walking into reviews with static prototypes. We walked in with working systems that could be altered at a single click.

Empowering Product Managers

Equipped with the KIRO brain, Product Managers were empowered to directly generate and iterate on screens at runtime. Product vision could now be presented with unprecedented clarity, as requirements were already refined against functioning interfaces. By shifting validation to the earliest possible stage, downstream change requests dropped significantly.

Team and organisational impact

I initiated and architected this pipeline solo, as a strategic initiative running alongside my team's product delivery work. The rollout, however, was deliberately collaborative — because adoption, not invention, is the harder design problem.

Phase 1

Proof of Concept

Validated that generated code could meet production standards and that the pipeline architecture could scale across domains.

Phase 2

Co-validation with Product Owners

Partnered with lead product owners to test generated outputs against live feature work. Then partnered with product managers to test the pipeline as a vision-to-insight translator — converting strategic vision documents into consumable outputs for engineering communities.

Phase 3

Org-wide Adoption — March 2025

Officially adopted across all delivery teams after a launch presentation walking developers through the skill. Adoption was immediate. My design guardrails were pulled into the organisation's community guardrail layer — making design standards machine-enforced across every developer's local environment, not just my own.

The pipeline never replaced my team's product work; it accelerated it. While I led the strategic initiative, my designers continued shipping incremental product features for our banking domains — and increasingly used the pipeline themselves to move faster. Design leadership, for me, meant making the entire system better, not just the work I personally touched.

What stayed human — by design

The pipeline was never about removing people. It was about directing human attention toward work that required human judgment — and designing the trust boundary deliberately.

Pipeline handled

  • Frontend UI code generation
  • Edge case enumeration
  • WCAG 2.1 AA validation
  • i18n completeness checks
  • Design system compliance
  • Handoff documentation
  • Consistency enforcement across all teams

Humans led

  • Backend integration & architecture review
  • Business validation & sign-off
  • UX refinement & emotional design decisions
  • Trust-sensitive workflow design
  • QA & production review
  • Strategic problem framing
  • User research & insight synthesis

What designers became responsible for was the quality of intent— how clearly we could articulate user needs, system behavior, and edge cases. The pipeline amplified the precision of UX thinking. It did not replace it.

Impact

Delivery speed

Auxiliary screen development time dropped from days to minutes. Roadmap execution accelerated measurably across all delivery teams. PMs could visualise features during initiative presentations without waiting for a design sprint.

Code quality & consistency

90%+ of generated code shipped directly to production. Every button, header, footer, and component looked identical, behaved identically, and shared the same underlying CSS — across 22 domains, all teams. QA inconsistencies caused by frontend divergence dropped dramatically.

Accessibility

WCAG 2.1 AA compliance became a default output, not an audit finding. Every feature pack carried its own accessibility audit. Inclusion stopped being a downstream cost and became part of the system's definition of "done."

Developer experience

Engineers stopped writing repetitive UI code and redirected effort toward architecture, backend orchestration, and business logic. Adoption was immediate after launch. The pipeline became a trusted part of their workflow — not a burden.

Design system as living governance

The design system stopped being a website developers occasionally checked. It became a machine-enforced baseline running at the repo level across every team — turning design guidelines into executable governance.

Organisational adoption

Officially adopted org-wide in March 2025. Design guardrails merged into the organisation's community guardrail layer. Strategic initiative, validated.

What this changed about how I think about UX

As implementation becomes increasingly automated, the role of UX expands upward:

  • Systems thinking — designing delivery frameworks, not just screens
  • Intent architecture — structuring what users need into machine-consumable clarity
  • Trust design — deciding what stays human, and defending why
  • Organisational alignment — synthesising siloed knowledge into shared intelligence
  • Strategic evangelism — making the case for UX at the system level, not the feature level

The new bottleneck is not implementation speed. It is the ability to understand what users actually need, structure that intent clearly, and align organisations around it before a single line of code is written. That is the work UX leadership exists to do.

"We stopped entering reviews with static prototypes. We entered with working systems capable of evolving in real time."

Reflection

The hardest part of this project was not building the pipeline. It was understanding the organisation well enough to build it correctly — synthesising architectural diagrams, domain flows, business rules, and component patterns from teams who had never needed to share that knowledge in one place before.

Preventing hallucinations required sustained governance: structured guardrails, automated validation, runtime preview, and a human review step at every push. Governance wasn't a constraint on the system. It was a feature of it.

The future of enterprise UX is not faster wireframes. It is the ability to transform human intent into executable systems — and to design those systems with the same rigour, empathy, and craft we bring to the interfaces they produce.