Back

2026 · Design with AI

Who decided the default?

How I take design decisions back from AI models: a contract, checks written as code, and a person who signs. Tested on a real deliverable, measured in a benchmark, and told in part on stage at WUDRome 2026.

Reading time16 minutes
Tags
  • AI
  • Design Systems
  • Claude
  • Design Workflow
Role
Product Designer & Design Engineer
Team
Solo, with Claude
Platform
Claude · amaca.design
Outcome
A method, a 599-run benchmark, a talk at WUDRome 2026

01 · The diagnosis

A model doesn't decide. It picks what is most likely.

This isn't a page about what AI can do. It's about the question I ask every time a model designs something for me: who decided this?

Models have abilities they use better than we do, like moving through huge amounts of data, and they have limits. Knowing what to delegate to a model and what to handle yourself is now one of the founding skills of anyone who designs. This project is how I take back the decisions I shouldn't delegate. Before you can ask whether a system is ethical, you have to ask whether there is a decision inside it to contest, and who signs it.

A part of it became a thirty-minute talk at WUDRome 2026, Rome's World Usability Day, whose theme that year was Ethical AI is a lie. This page follows the talk step by step, with everything I had to leave out for time. The slides are at the end.

The dice

A simple question, the same, to two models: how many people die in Manzoni's The Betrothed?

  • Gemini
    10

    Se dobbiamo dare un numero preciso basato esclusivamente sui personaggi dotati di nome e cognome (o pseudonimo chiaro) che muoiono direttamente nel corso della narrazione o di cui viene esplicitamente annunciata la morte, il totale è 10 personaggi.

    named characters who die in the story
  • ChatGPT
    100,000

    Direi circa 100.000 morti, considerando le vittime della peste a Milano nel 1630, come raccontato nei Promessi Sposi.

    victims of the 1630 plague in Milan
Fig. 01«Quanti morti ci sono nell'opera dei Promessi sposi di Manzoni?» (How many people die in Manzoni's The Betrothed?) Two models, two defensible answers, quoted as they came.

Neither threw at random. One counted the named characters, the other the victims of the plague: each decided on its own what counts as a death. It's a default, and nobody asked for it. Where a model doesn't know, it fills the gaps.

Both got the same two questions; the second was «sì, ma se dovessi darmi un numero?», yes, but if you had to give me a number? At first, ChatGPT said an official count doesn't exist. The experiment is Luciano Floridi's, with Shakespeare. I redid it with Manzoni.

Same prompt, three tastes

The same happens in our trade. I asked three models, in chat, for the membership form of a neighbourhood sports club in Rome, made up for the test. The prompt doesn't say a word about style:

Progetta il modulo di iscrizione online per Palestra Popolare Ostiense, un'associazione sportiva
no-profit di quartiere a Roma. Il modulo serve a iscrivere un nuovo socio per la stagione 2026-27.
Mi aspetto una pagina html
Fig. 02In chat: same prompt, three models, three tastes. Each one opens live, as the model made it.

Green and lime. Black and orange. Black, cream and red. Three tastes. As with Manzoni: where you don't say what you want, the model fills the gaps, and each one fills them its own way. One run per model: a clue, not a law. Try it at home.

Better context, not more

The model fills the gaps. So let's fill them ourselves. Today it's called context engineering: not writing the perfect prompt, but designing everything the model has in front of it when it answers. The instructions, the examples, the documents, the rules, the conversation so far. For people in our trade, it means designing the context.

Better context, not more context. It isn't how much you give, it's which: context is designed, not piled up. And with good context you get far. How far?


The 70% problem

With good context, the dice is very good. In a few minutes it gets to 70% of what I had in mind: the structure, the hierarchy, an identity that stands up. The three forms above are all fine for a first meeting with a client. You show them, and the meeting goes well.

Then the client says: the green a bit darker, sign-up in two steps, the real logo. That's where the trouble starts, when it's time to refine the last 30%.

  • In a few minutes
    70%
    structure, hierarchy, an identity
  • All the rest of the time
    30%
    and 100% isn't guaranteed
Fig. 03Almost everything, right away. Addy Osmani, The 70% problem, December 2024.

Addy Osmani, an engineer at Google, calls it the 70% problem. He was talking about code; in design it's identical. The 30% that's left is where the time goes: the details, the edge cases, the decisions that make an interface yours and not just any. And there's no guarantee you get there. To see where it jams, you have to look at how context works, and where it breaks.

Inside a design tool, one taste

Remember the sports club? Same prompt, same three models. But this time inside Figma Make.

Fig. 04Inside Figma Make: same prompt, same three models, one taste. Each one opens live, rebuilt from the code Figma Make exported.

Paper background. Orange, terracotta, brick. Bold headings. One of them even drew the Gazometro, Ostiense's old gasholder; another put it in the form's address. Four words explain it.

RLHF
Reinforcement learning from human feedback. After training, models are refined this way: they produce several answers, people pick the one they prefer, and the model learns to give what pleases. Keep it in mind.
Overfitting
The funnel narrows too much and a detail becomes a rule. The prompt had one word, Ostiense, and Gemini made a whole identity out of it. In its own words:

Palette ispirata all'architettura industriale di Ostiense e alla stampa tipografica sociale romana: carta non sbiancata, intonaco caldo, inchiostro asfalto, terracotta romana e ocra mutualista.

A palette inspired by Ostiense's industrial architecture and Roman social letterpress: unbleached paper, warm plaster, asphalt ink, Roman terracotta, mutualist ochre.
Sycophancy
The effect of RLHF: reward whoever pleases you, and the model learns to please. In design I call it visual sycophancy: the model offers again the patterns that worked. The paper background, the bold title, the warm accent. The choices everyone likes, and so the most likely ones.
Flattening
The consequence, which I call statistical flattening, and which research sees as a loss of diversity. Outside there were three tastes; inside, one is left. Three models from three companies end up in the same place. Not the best answer: the most likely one inside that tool.

A caveat, because it's a reading and not a measurement. I can't see Figma's layer, I infer it: outside, the three diverge; inside, they converge. RLHF is there outside too, so it explains where they converge; the tool explains why.

Nobody asked for paper. When you don't decide, whoever built the tool does. That's who decided the default.

Lost in the middle

The last way context breaks is in how a model reads, and it explains why that 30% is so tiring. In 2023 a group of researchers hid the right answer at different points of a long text. At the start, the model finds it. At the end, fairly well. In the middle, it loses it: it does worse than with no document at all.

Finding the answer in 20 documents, by where it sitsLiu et al. 2023 · GPT-3.5-Turbo
75.8 57.2 53.8 55.4 63.2
1st5th10th15th20th
  • No document at all: 56.1
  • Position of the right document
Fig. 05Position of the right document, from first to last. Liu et al., Lost in the middle, GPT-3.5-Turbo.

Context isn't memory: it's a text, and the middle of a text reads badly. Now think about how we work. I fix a button, then the grid, then a colour. Every fix makes the conversation longer, and the decisions from ten messages ago slide right there, into the middle. Fix it here, break it there.

So the temptation is to write rules. A list: use this colour, don't use that font, the button always on the right. But a rule in the context isn't a rule followed. It's a piece of text like the others: if it lands in the middle, the model may not read it, and if it reads it, it may not follow it. The more rules you add, the fewer it follows. A 2025 test, IFScale, gave models up to five hundred instructions at once: the best followed 68%. A longer list isn't a guarantee. It's more text in the middle.

The problem isn't fixing better. It's that nobody decided first, and the model fills the gaps.

If nobody decided, nobody answers for it.

02 · Delegation and description

First I decide. Then I delegate.

So far, the problem. From here, how I took the decisions back. I realised afterwards that what I was doing already has a name: Rick Dakan and Joseph Feller call it AI Fluency, and split it into four Ds. Here they are in the order I did them.

  1. 01Before

    Delegation

    I decide the default, before the model does.

  2. 02Handing over

    Description

    I give it to the model in a form it can use.

  3. 03Checking

    Discernment

    Every mistake I spot becomes a check.

  4. 04Signing

    Diligence

    A person answers for the result.

I tested them on a real deliverable, with a deadline and an audience: the deck of the talk itself. A deck about taking decisions back from AI had to be built that way, or it would be a lie of its own. The first version had 18 slides and a technical promise; I rebuilt it around the four Ds in parallel, without touching the original, and reviewed every step by looking at it. The final talk has 16 slides and runs 28 minutes 30.

Delegation: decide first

The first D is the one everybody skips: deciding before you open the chat. The advice I give everyone: as soon as a style is approved, consolidate the decisions in a design system.

A design system is, in the end, documentation, with two parts that matter. The tokens are the decisions that have a value: colours, sizes, durations. They pack into formats a model reads and respects without effort. The contract is the hard part. It's the rules: how a component is built, when to use it, when never to.

Tokens · the values
Colour AaTypography Space Radius Shadow Layout Motion
Contract · the rules
ConstructionMicro-header, title, text, at most one action VisualBackground --obsidian-800, 1 px border, radius --r-lg MotionEnters from below; with reduced motion it stays still Anti-patternNever a gradient as background
Component
CardOrder

Order confirmed

Arrives Thursday. We'll write to you when it ships.

Fig. 06The approved decisions become a design system: documentation with two parts. Amaca, the Card contract.

And so the question becomes: in what form do I give them to the model?

Description: the form matters

This one I measured, on my own design system, Amaca. One question: if I give a model the same system in different forms, which one makes it work best, and at what price? Seven tasks, from a button to a dashboard. Four models. Seven ways of handing over the system, from nothing at all to a server the model can query. 599 runs, each scored automatically out of 100 on how far the code respects the system.

Adherence to the system599 runs · out of 100
Fig. 07Same system, seven ways. The light part of a bar is the score without one false positive of the scorer. Full report.

Without a file, the model invents colours, sizes, durations. With the tokens the values are right, but the short files name the components and don't say how each one is made: the model invents the parts, and stops between 76 and 79. The full specification, DESIGN.md, gets almost to the top, 89 to 93, but it reads 85,000 tokens on every run. The MCP server gets higher, 94, with half the tokens. I don't give it a book to read: I give it the piece it needs, when it needs it.

But it doesn't win everywhere. Faced with a component the system doesn't have, agents with files stopped and asked; the agent with only the server built it from the pieces it had. So the form of the context matters as much as its content. And not even the best form decides for me what to do when the rule isn't there. One test, one design system, October 2026: a clue, not a law. «No file» doesn't mean a blank model either: it knew the system existed, it just had nothing to read.

Values are data, rules are prose

Diamond and graphite are the same atom: carbon. One is the hardest material we know, the other crumbles on a sheet of paper. Only the way the atoms are bonded changes.

Design systems work the same way. The tokens are the atoms, the alphabet. The contract is the bonds, the grammar. And every design system is a language of its own. I looked at fourteen of the most mature public ones: the values are all there. The rules, when to use something and when never to, live in pages of prose. Look at one rule, a single primary button, in three of the most used.

The value

button.primary.bg
→ color.brand.500

A piece of data. The model uses it as it is.

The rule · one primary button
Polaris
«High emphasis button for the primary action on the page. Should be used sparingly.»
Primer
«[…] and rarely use more than one per page.»
Ant Design
«[…] we recommend that you use 1 primary button + n secondary buttons.»

Three sentences for the same rule. How often is «rarely»?

Fig. 08Values are data, rules are prose. A person knows what «rarely» means. A model guesses.

The value is data. The rule is advice. And how does a model execute «rarely»? It reads the values; the prose, as we've seen, gets lost in the middle.

A page the contract had never seen

Back to the sports club. Of the three proposals from the chat, the client chose one: the black one, with the red stripes. I did what I advise: I consolidated that choice in a design system. Tokens, components, rules. No text, no page described. Where it talks about headings, it states a rule:

Il titolo di pagina usa display-xl, su righe strette; la sua parte più importante
(un numero, una data, una parola chiave) può essere in primary.

First, the page the client had already seen: the membership form, the same prompt as at the start, plus one line: follow the attached DESIGN.md.

Fig. 09The membership form with the contract: three models, one system, the client's.

Then the real test: a page the file had never seen, the courses and the timetable. It's the hard case. The topic is almost the same, the same club, the same season, the same audience, and that's exactly where a model is tempted to redraw the page it already knows, or to drift away from it. Holding a system together across pages is where coherence usually breaks.

Fig. 10A page the contract had never seen. Still one system, and still the client's.

Different titles, different texts, different content. The same system. Not on somebody else's orange paper: on my client's decision. Where the contract is silent, they still interpret: the format of the year, a menu nobody asked for.

Here an awkward question came up, and I said it out loud while building the deck: we're doing all this to show the strength of harnesses and skills, and then we show that one markdown file gets the job done? Yes: to start, a file is enough. The 70%, done well, on the first try.

But look at what this contract is. Apart from the tokens, it's prose: sentences. No format makes rules deterministic. The model reads them, and it may not follow them. And a file remembers nothing. It doesn't know what went wrong yesterday, and it doesn't notice what goes wrong today.

A file is enough to start. It isn't enough to stay.

03 · Discernment

The rules are context. The checks are code.

So how do you keep a decision over time? With a harness. In English it's also the straps that hold you in. I picture it as the giant robots of Japanese cartoons: a huge machine that multiplies what you can do, but that doesn't take a step on its own. There's always someone inside, piloting it. Mine has four pieces.

  1. 01Delegation

    Plan

    The decisions, written first: the contract we just saw.

  2. 02Description

    Skill

    The way of working, better at every round.

  3. 03Discernment

    Verify loop

    Code that checks, before anything is delivered.

  4. 04Diligence

    Gate

    A person who signs.

The machine amplifies. But someone pilots it.

The skill

The skill is the way of working, written down. The first time, I do a process myself, and take it apart as I go. The second time, the model does it and I hold its hand. The third time, it goes almost on its own. Every mistake I see becomes a line in the skill.

But rules are prose. Anthropic says so in its own documentation for Claude Code: instruction files over about 200 lines reduce adherence, because they are context, not configuration. And nothing makes them respected.


Common sense, written down

The smallest example is my favourite. I had Claude build me a board to sort some content: cards that open with a click. Simple. But an open card could end up underneath another one, and its text became unreadable.

To me it was embarrassingly obvious. To the model it wasn't. So I started a file of common sense rules: a short list every design must pass before it reaches me. Common sense, if you don't write it down, isn't there.


The verify loop

So I did what is done with code: the checking isn't left to the model that did the work. Before a design reaches me, it goes through two checks. Python scripts, deterministic, for everything that can be measured: colours, sizes, contrast, what happens on a phone. And a subagent that starts cold, another model that hasn't seen the work, for what has to be read. It's what continuous integration does for code, applied to design.

FIG. 11 · The verify loop, slide 14

If it's red, I triage: what's certain gets fixed, what's doubtful is mine to decide. Either way the mistake becomes a new rule and a new check. Then it runs again. When it's green, it reaches me.

Motion is code too

The deck animates every slide following amaca.design's motion grammar: reading entrances, numbers that count up, bars that grow. Animation is the first thing to drift, so I checked it the same way. The end state of every animation must match, pixel for pixel, the same slide with reduced motion turned on. All sixteen slides.

The bugs were instructive. Two generic class names collided with existing ones: one collapsed the header, the other erased the token labels on slide 09. New rule: every motion class gets its own prefix. Counting numbers made the layout jitter as their width changed, so each number now gets a fixed box, measured when it starts.

04 · Diligence

Whoever opens it, signs.

One piece is missing. A check that only flags is a well-documented opinion. That's the state of every ethical principle written in a manifesto.

The gate is the point where the system has the power to stop. And the gate has a key: whoever opens it, signs. Even when everything is green. That's where «decided by whom?» stops being a rhetorical question. It has a name and a date.

Gate closed · no target
Fig. 12The gate, rebuilt from slide 15 with the same rules. Open it, and the pulses reach the target.

I wanted the slide about it to show the idea, not explain it: a field of nodes, pulses travelling towards a gate, and a target deliverable that only exists once the gate opens. It took many rounds, all visual, steered by rules simpler than any spec. If the nodes are off, the lines between them are off. If the gate isn't passed, there is no target. Each rule exposed a bug: a straight line crossing the closed gate, wires reaching dead nodes, a target that stayed lit for pulses already in flight. I checked the fixes by sampling 64 frames, not by eye.

Green isn't enough

Floridi puts it this way: it doesn't matter who wrote it, it matters who answers for it. And he has an image I can't shake off: whoever made the climb with a backpack has a critical sense. AI is the descent.

Checks verify that a rule exists and is respected. Not that the result is good for a person. Checks remember the mistakes I've already seen. New ones, only a person sees.

Claude's mistakes, on the record

More than once, the AI that helped me proved the method right. A case study about human sign-off that hid it would make the same mistake it warns against.

  • It told me the speaker notes were updated when one replacement had silently failed.
  • It got a statistic wrong on a slide. zeroheight's 2026 report says 40% of design systems have a pipeline that automates their tokens, not that 40% apply them.
  • A test export of the PDF showed the keyboard hint over the first slide. This one was caught by reviewing a contact sheet of every page: the loop working as intended.

The moral is almost too neat. You need a human gate even when the AI is helping you write about the human gate.


What this doesn't solve

  • A check only guards against a mistake someone has already seen. The first time, catching it is still my job.
  • The cold reviewer is a model as well: a second opinion, not a proof.
  • The benchmark is one test on one design system.
  • Models don't reliably check their own work. With only the MCP server, agents ran the compliance check before delivering in 41% of runs, and the share changed a lot from model to model.

Readable by the machine, decided by a person

The robot only moves if someone is inside. Southleft has a phrase that sums it all up: machine-readable, not machine-governed.

None of this makes a system ethical. It makes its decisions inspectable, and attributable to someone. It's the minimum needed for the question «at whose expense?» to have an answer you can check.

Next time a model hands you 70% in five minutes, before you fix it, ask: who decided the default? And if the answer is nobody, decide it yourself.

What's next

This piece opens a series: a closer look at the MCP server behind the benchmark, one on harnesses and verify loops, one on moving fast to experiment. The benchmark report is public. The deck of the talk is right below, with every source clickable and a PDF to download.

The talk · WUDRome 202616 slides · 28 min

«Chi ha deciso il default?»

The excerpt I brought on stage at MAM, Rome, on 12 November 2026. The slides are online in Italian.

NoteAn excerpt of this work became the talk «Chi ha deciso il default?» (Who decided the default?), given at WUDRome 2026 on 12 November 2026, at MAM Media Art Museum in Rome. Quotes from design systems are paraphrased; the benchmark figures come from the public report.