Case study

An AI-first design process that won a national security pitch — and matured into a governed product.

Client
A national civil aviation security agency
Role
Senior Designer · led the AI-powered design process
Timeframe
2026 — ongoing

Win a national security pitch with a full functional prototype built by four designers and zero engineers — then mature that prototype into eBCAS 2.0, a production-ready platform on a governed design system.

TL;DR
The outcome
Won the national pitch. The prototype became eBCAS 2.0.
Engineers were allocated after the win — we shipped extendable frontend, not a mockup.
The arc
Functional prototype, then governed product.
Speed-first prototype → eBCAS 2.0 on a real design system.
The bet
Claude Code + a custom design-system skill + Figma↔code sync.
Code became canonical. Figma became the gallery.
The team
4 designers, 0 engineers.
Solo at the start. Hired and trained the rest.

Two processes, one product

The work ran in two phases, and the story is the process maturing between them.

The first process optimized for one thing: a functional prototype good enough to win the pitch, in weeks. The second process traded that raw speed for governance — turning the prototype into eBCAS 2.0, a product built on a real, canonical design system. The interesting decisions live in the gap between them.

Phase 1 — the functional prototype

The brief grew mid-flight: from a slice of one module to a full working prototype for a room of senior civil servants and the agency's own engineering leadership — people who click into edge cases. We had weeks, not months, and multiple personas to cover.

Three build paths sat in front of me. The trade-off was real money against real time.

Figma Make

Upside

Fastest to a first prototype. AI-native generation inside the tool we already used.

Cost

$3,750 per seat (org plan) ≈ ₹3.5 lakhs for only 7,500 tokens. The full prototype would have outpaced the pitch budget itself.

Pure Figma design

Upside

Predictable cost. Total designer control. The familiar process.

Cost

Lost the AI velocity we needed to cover multiple flows in days.

Chosen

Claude Code + custom skill + Figma↔code sync

Upside

Predictable cost, AI velocity preserved, and code becomes the canonical artifact — designs ship as production-ready frontend.

Cost

We had to build the workflow before we could use it. Design governance had to be encoded, not assumed.

We inverted the source of truth: plan in Claude Code, build in code against our design system, refine in code, then push the refined screens to Figma via MCP. To move fast enough, the prototype stood on a forked Make Kit — roughly 35 components lifted from a vendor library at peak. It got the happy flows clickable in days. That was the right call to win the room, and a debt we knew we'd pay.

Figma stopped being where the design lives. Code became the design. Figma became the gallery.

Design directions for the core interaction

The hardest part of the prototype wasn't a screen — it was the two-persona review loop: a Director-level reviewer reads a security programme submitted by a regulated entity, leaves observations on specific clauses, the entity responds, back and forth with an audit trail until approved or returned. The interaction is the design.

I explored three ways to hold that conversation before committing.

Chosen

Inline clause annotations

Upside

Reviewers act exactly where the issue lives — observations anchor to the clause, lowest cognitive load to leave and read feedback.

Cost

Long programmes get noisy fast; needed collapsing and threading to stay legible.

Docked review queue

Upside

Every open observation in one panel — strong for triage and oversight across many submissions.

Cost

Forces the reviewer to map a flat list back to the document; constant context-switching.

Split-view diff

Upside

Entity response and reviewer observation sit side by side — clearest read of the back-and-forth.

Cost

Eats horizontal space; weak on the smaller agency-issued laptops most reviewers actually use.

Inline annotations shipped because the reviewer's mental model is the document, not a task list — and field research at airports confirmed reviewers wanted to stay in the clause they were reading. The queue's triage strength came back later as a secondary view rather than the primary frame.

Chosen direction — inline clause annotations, both personas. Three to five anonymized stills.

Screens from both sides of the review loop, anonymized.

Phase 2 — maturing into eBCAS 2.0

We won. And winning is exactly when the forked-kit debt comes due. eBCAS 2.0 is the prototype brought under governance: the same flows, rebuilt on a canonical design system instead of a vendor fork.

This is the core trade-off of the whole project.

Forked Make Kit — the functional prototype

Upside

~35 vendor components, forked, got the happy flows clickable in days. Enough fidelity to win the pitch on time and on budget.

Cost

Every forked component is debt: no governance, drift from the real system, and a re-check waiting on every consumer screen that used it.

Chosen

Governed design system — eBCAS 2.0

Upside

The skill enforces one canonical system; components are real, versioned and engineering-ready. Durable well past the pitch.

Cost

Slower per step, and we pay the migration debt on-touch as forked screens come back under governance — a cost we discovered rather than planned.

We're migrating on-touch — a screen comes under governance the next time anyone edits it — which spreads the cost instead of stopping the world. The right call, but I'd tell my past self to plan for it from week one rather than meet it at the finish line.

How the governed process holds together

The leverage in Phase 2 isn't a clever prompt — it's a Claude Code skill acting as the constraint layer between the AI and the design system. Three rules carry most of the weight.

01

Session mode lock

Every session locks to either design-system mode or screen-build mode. Discipline enforced by the tool, not by a designer remembering to context-switch.

02

Read and write MCP servers, separated

One Figma MCP has read access only; a second has write. The AI cannot write through a read connection. Capability separation is architectural, not policy.

03

Dependency walk before push

Before a component reaches Figma, every sub-component must already exist there as a real component. Placeholders — the silent compromise that created the fork in the first place — are refused outright.

Four of us shipped eBCAS 2.0 through GitHub with pull-request review; two PMs ran field research at airports in parallel, and pain points fed the flows the same week we heard them. I started solo and trained three designers as the velocity became visible — less here are our components, more here is how to think about working with AI.

Outcome — and what it cost

Leadership's reaction landed where we wanted it: this isn't a prototype, it's closer to production than we expected at this stage. We won. The proof was in the sequencing — engineer allocation began after the win, against frontend code engineers can extend rather than a clickable mockup they'd rebuild from scratch.

The win came with a bill, and it's the honest centre of this story: the speed that won the pitch was borrowed against a forked kit, and eBCAS 2.0 is us paying it back deliberately. The skill itself needed iteration too — the first session-mode lock was too restrictive, the first dependency walk missed icon libraries. Building this kind of skill is a design problem, not a one-time setup.

Wall of love

Leadership message after the pitch — “closer to production than we expected.” (anonymized screenshot)

Agency engineering lead on the eBCAS 2.0 handoff quality. (anonymized screenshot)

Teammate feedback on learning the AI workflow. (anonymized screenshot)

PM note on field-research turnaround speed. (anonymized screenshot)

The win wasn't AI making us faster. The win was AI making us shippable — and then governed.