L1.01.4control determinism contractdesignresearch

Controls promise that the same action yields the same result; generation breaks that promise

Aliases: command-result contract · button contract · named-command stability

What it is

“Summarize in one click” is a control. A control is already a speech act: there is a named action, doing it yields a result of that kind, and the same press points at the same transform. The control determinism contract is narrower than “interface convention” — it sits on that one control’s speech act, and does not require the user to have used other software. Hook the control to a distribution and the promise breaks.

An empty dialogue does not promise that one sentence always yields one answer. A button labelled “Write the weekly report” does. The clash comes from the control, not from chat.

Why it happens

Buttons, menu items, toolbar icons are proper names of commands. Proper names presuppose stable reference: same name, same object. Users do not need a lesson in probability; literacy is enough to read “Write the weekly report” as a function. A spinner then reinforces “computing that result,” not “drawing a result.”

Products often slot generation into an existing command site: Smart export next to Export PDF. Placement inherits the neighbours’ contract. Neighbours are deterministic transforms; the newcomer samples. People do not rewrite the contract because the icon grew a sparkle. They evaluate right and wrong by the neighbours’ rules — a different second press means this button is broken.

Studying it

Shell the same generative ability two ways: a chat sentence versus a named button. Measure the judgement “should a second press match?” and fault attribution when it does not. Independent variables: control type (button / menu / command palette), whether the label contains smart/generate, whether it sits beside deterministic neighbours. Dependent variables: contract expectation (same / different), rate of defect attribution, whether the first output is saved.

Label studies must control length and concreteness. Generate and Write a new one set different expectations. Eye tracking can ask whether people compare the new button with its neighbours — whether the placement contract is actually being read.

Where it stops holding

When the button is read as “start a composition” rather than “run a transform,” the contract flips and change becomes the feature. That usually needs label, examples, or a multi-result layout to make composition unmistakable; a sparkle icon will not do it. On a control used once, with the result checked by a downstream system (“extract the order id,” retry on check fail), the broken contract is barely visible. This entry does not discuss undo semantics, nor drawing regenerate as a refresh icon.

Applying it

  • Labels for generative commands should say write or draft, not apply, calculate, or refresh.
  • Do not park a generate button against export, sort, or format paint, or placement will borrow their contract.
  • If it must be a button, let the result well keep the previous run by default; a new run is an addition, not a replacement. Replacement needs a second confirm.
  • Check: crop the button with its left and right neighbours, show it to someone new to the product, ask “pressed twice, should the two be the same?” If the answer is “they should,” the control is still promising what it cannot give.

Related

  • Same group: L1.01.1 The same input can yield different outputs · L1.01.2 Interface conventions assume actions are repeatable and results are stable · L1.01.3 Users misread a lucky correct answer as stable competence · L1.01.5 Retry cannot tell whether the phrasing was wrong or the system itself is fluctuating · L1.01.6 Undo and redo lose their meaning when output cannot be reproduced · L1.01.7 Presenting regeneration as “refresh” implies the previous result was a failed load · L1.01.8 Presenting variability as several parallel options is more honest than hiding it behind a single result
  • Nearby: L2.04 Complementarity of parameter controls and natural language · E1.06 Button labels · L3.01 Generating multiple options
  • Search terms: control determinism contract · named command · speech act of buttons

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/L1.01.4