Product resource · Figma skill · 2026

Seamful Design Audit

A Figma skill that identifies where your UI hides automated decisions from the user, and where it should reveal them.

Seamful Design Audit

Against seamlessness

Seamless is often the highest compliment we pay an interface. Frictionless, invisible, effortless. The system does the work and the user barely notices.

I’ve created this Figma skill to agitate against that view.

When a flow is perfectly seamless, the user often can’t see what the system decided on their behalf: the default that got applied, the file that was silently compressed, the model that ranked their feed, the field that autofilled from data they never knowingly gave. The friction is gone, and so is the user’s grip on what just happened. Seamlessness, taken as a mostly unquestioned virtue, quietly trades away the user’s ability to understand, adjust, or push back.

Seams are where a system shows its work. Most design sands them off. This is an argument, and a tool, for intentionally putting some of them back.

An old idea

In talks in the mid-1990s, Mark Weiser made the case that seamless systems tend to make everything the same, flattening each component into bland compatibility. He argued that letting each part be visible, with its edges showing, is harder, and often better: that seamful systems might actually be the goal.

In 2003, Matthew Chalmers and Ian MacColl also questioned the orthodoxy of the invisible interface in wearables and ubicomp systems. Their reframing is that seams aren’t failures to be hidden: they’re resources. A well-placed seam gives a system legibility. It invites scrutiny and customisation instead of demanding trust.

This twenty-year-old idea from ubicomp research has never been more relevant to product design.

Why now

Agentic features are moving more and more decisions below the interface. Software increasingly ranks, sorts, corrects, completes, and pre-decides — handling things for the user before they’re ever asked. Individually they’re conveniences. In aggregate they’re a product making consequential choices about someone’s data, money, or attention with no seam for that person to see the choice, change it, or contest it when it’s wrong.

The seamful lens turns out to be exactly the right instrument for that moment. So I have tried to operationalise it.

What the skill does

Seamful-Design-Audit is a Figma skill. You run it against a selected frame, and it interrogates every automated decision in that design through three lenses:

Understand: can the user tell what the system did, and why?

Configure: can they change how it behaves?

Contest: when it gets it wrong, what recourse do they have without leaving the product?

It maps where the design hides complexity, weighs what each piece of hiding buys (speed, simplicity, lower cognitive load) against what it costs (agency, trust, the ability to catch an error), and ranks the gaps by severity. Then it annotates your screens with concrete suggestions: an override, an inline control, a reachable undo, rather than another disclaimer. A tooltip that explains a decision the user still can’t change is not a seam. A seam gives them an affordance.

Example finding

HIDDEN: A 40-message thread is collapsed into a three-line AI summary. What the model left out, or wasn’t sure about, never appears.

COST: The user treats the summary as the whole conversation, with no way to tell what was dropped.

SEAM: Keep the summary, but anchor each line to the messages it came from and flag the least-confident parts: “summarised from 40 messages · view source.”

The summary still saves the read. The seam lets the user check it before they trust it.

Not everything should be a seam

Seamful design is not a mandate to expose every internal process. Some hiding is right. A smooth default that saves the user a decision they don’t want to make is a gift, not a betrayal. So the audit does two honest things most checklists don’t: it revisits each hidden decision and asks whether the hiding is justified, stating plainly what the user gives up so the experience can stay smooth, and it refuses to run on designs that don’t need it. Point it at a marketing page or a static form and it tells you there’s nothing to audit, rather than manufacturing problems to look busy.

The goal isn’t friction for its own sake. It’s putting the seams back where their absence costs the user something.

Try it

The skill is free on Figma Community. For use with Figma Agents.