Problem
A transcript is one column with two speakers in it. The reader scrolling back through yesterday’s conversation needs to find the moment they asked a particular thing, and they need to do it without reading. Undifferentiated paragraphs make that impossible.
Solution
The instinct inherited from messaging is a bubble on each side, left and right. It fails here for a structural reason. In SMS both parties write roughly the same amount, so symmetric treatment is honest. In an assistant transcript the question is eleven words and the answer is nine hundred, with headings, a table and a code block in it. A bubble drawn around nine hundred words of formatted prose constrains the measure, breaks the code block, and decorates the thing the reader came for.
So the field converged on asymmetry. The user turn gets the chrome: a tint, a rounded container, a constrained width. The assistant turn gets none, and runs as plain prose at the full column measure. This reads as a reversal of importance and is the opposite. The assistant turn is the content. The user turn is the label on it, and a label should be small, distinct and scannable.
That also matches how people actually navigate a long conversation. They look for their own questions, because a question is eleven words they wrote and remember. The answers are found by way of the questions. Making user turns compact and visually distinct turns them into landmarks down the left edge, which is worth more than making them pretty.
Attribution beyond that’s mostly removable. Once the asymmetry carries the signal, the assistant avatar is a 40-pixel gutter repeated down every turn forever and paying for nothing. Timestamps are a stronger habit and a weaker idea: messaging needs them because humans reply hours apart, and in an assistant transcript both turns happened four seconds apart. Put the time on the conversation—not the turn.
The semantics have to be built rather than implied, because colour and indentation reach nobody using a screen reader. The transcript wants list semantics with each turn as an item, and every turn wants a programmatic speaker label that doesn’t depend on its styling. Alignment-based attribution is the most fragile version of all of this, since it carries no meaning to assistive technology and inverts under right-to-left text.
Use when
Any interface where a person and a model take alternating turns and the history stays on screen.
Don’t use when
The exchange is one question and one answer with no history, which is how answer engines and most in-product assists work. There turn chrome is pure decoration, and the answer reads better as a document with the question as its heading.
Trade-offs
Symmetric bubbles cap the measure at something too narrow for code and tables. Dropping chrome from both sides loses the speaker signal entirely and produces a wall. Alternating background tints seem like a cheap fix and produce visible banding down a long page, which gets worse as turns get shorter. And compact user turns collide with long pasted input: someone drops in a two-thousand-word document to summarise, and the landmark becomes the biggest object on the page. Collapsing long user turns to a few lines with an expander is the usual answer, and it needs to be obvious that text was hidden.
Checklist
- Can the reader find their own question from six turns ago without reading any answers?
- Does the assistant turn run at the full measure, or is it boxed?
- What does a two-thousand-word pasted user turn do to the layout?
- Is the speaker exposed programmatically, or only through colour and position?
- Does the attribution survive right-to-left text?
- What does the avatar or the timestamp earn on every single turn?
- How does a code block inside an assistant turn behave at the narrowest supported width?
- Is there banding down the page once turns get short?
- Where does a system message or an error sit in the two-voice scheme?
- Can a single turn be linked to, quoted, or shared on its own?
Compare
ChatGPT tints and constrains the user turn and lets the assistant turn run full width with no avatar. That’s the asymmetry in its most common form. Claude does the same and pushes it further by moving long generated documents out of the transcript entirely, so the turn stays a turn. Perplexity drops turn chrome almost completely: the question becomes a heading and the answer is a document underneath it, which is the right call for one-shot use and loses the thread once a conversation actually develops. Slack takes the opposite trade, because an AI reply lands in the existing message list and inherits the same avatar, name and timestamp row every human message gets. The assistant becomes a participant rather than a surface.
Related
Streaming response is what fills an assistant turn while the reader watches. Response actions attach to the turn and have to sit somewhere that doesn’t compete with it. Conversation history is the layer above, where turns become a thread with a name. Edit and resend rewrites a user turn in place rather than appending another one. Composer produces the turns on one side of the exchange.