Pattern 12 · Chat or assistant · Interaction pattern
One question per turn
Practice view. What to build, the words on screen and how to measure it. Switch to Research for why it should work, the framework properties and the references.Research view. The research side is shown below the card: why it should work, the properties it targets and the references. Switch to Practice to hide it.
The answer format allows one question per turn. When the model produces two, the app rejects the turn and generates it again. Context is collected step by step: one field, one question, with a skip.
Done right, done wrong
Schematic screens, not real products. Click a screen to enlarge it.In practice
The fix in Goose was structural rather than a polite request in the prompt. Each phase fixes the shape of the model’s answer: usually one targeted question plus a few fields for the controller. A turn that breaks the shape is rejected and regenerated, so the rule holds on a bad day too. In the mobile version the intake became a short series of single questions, such as the age of the son and how the relationship is going, with the option to skip.
Watch the pace. One question per turn can feel like an interrogation when the questions have no visible end. Show the count, keep it under five, and let the person answer in their own words rather than picking from a list when the topic is personal.
Words on screen
Obligations to keep in mind (AI Act, GDPR)
- Let people skip a question. A forced answer is a control problem before it is a data problem. (O3, IUI 2026, Table 1)
Design considerations, not legal advice or a conformity assessment. What O1 to O5 mean.
Build it
Illustrative signatures, not a published library: the names below are suggestions to adapt to your stack. Thresholds are examples to tune on your own data.
States: asking, answered, skipped, complete
Component: <Intake questions={list} oneAtATime allowSkip />
Prompt snippet: Ask exactly one question. If more information is needed, wait for the answer before asking the next.
Output schema: { "question": "string", "field": "string", "done": false }
Measure it
Research side · why it should work
Why it should work
Properties targeted
Across contexts
| Context | Users | State | Result |
|---|---|---|---|
| Goose conversation guide, v3 | adults, desktop | Seen in a case | bundled questions were among the main usability complaints |
| Goose conversation guide, v4 | adults, mobile | Seen in a case | one question per phase; usability 3.38 to 3.75 on 5, three and four SUPR-Q answers per round |
| Your context | Bring your case |