Problem
The viewer asked for a four-hundred-line file, a full report, or a working page. It arrives inside a chat turn. The conversation above scrolls away, the thing can’t be read without scrolling past it, and the next revision produces a second four-hundred-line copy directly underneath the first.
Solution
Promote output that behaves like a document into its own panel beside the transcript. The conversation stays about the work; the panel holds the work. That separation fixes four problems at once: the transcript stays navigable, the output gets its own scroll, revisions replace rather than accumulate, and the object can carry actions a chat turn can’t.
Versioning is what makes the panel worth building rather than a styling choice. Iterating on a document through conversation produces a sequence of drafts, and in a plain transcript those drafts are six near-identical walls of text the viewer has to diff by eye. In a panel they’re versions with a pager, and going back to the third attempt is one click. HAX guideline 9 asks for efficient correction, and for generated documents the correction loop is precisely this sequence of revisions.
The promotion heuristic is the hard part. Output should move to the panel when it’s long, structurally self-contained, and something the viewer will act on rather than read once. Getting it wrong in either direction is irritating in a specific way: a two-line snippet exiled to a panel makes the viewer click to read three words, and a full report left inline destroys the conversation. The heuristic wants to be legible, and a manual override in both directions covers the cases it misses.
Once the panel exists it accumulates the actions the output actually needs, which vary by type: copy and download for a document, run and preview for code, publish for a page. Editing belongs there too. A viewer who fixes one word by hand expects the model to see the edited version on the next turn, and a panel whose contents silently diverge from what the model holds is the worst failure available here.
Use when
The output is a self-contained thing the viewer will keep, revise, or use elsewhere.
Don’t use when
The answer is an answer. Explanations, comparisons and short code fragments belong in the conversation, and moving them out adds a click and removes them from the context the reader is holding.
Trade-offs
The panel takes horizontal space from the conversation permanently, and on a laptop that’s a real loss for exchanges where the artifact is incidental. Splitting the output from the discussion means the answer’s explanation and the answer are in different places, which is worse for teaching and better for doing. Versions preserved in the panel diverge from the transcript’s account of what happened. On a phone the whole arrangement collapses. Side-by-side becomes a sheet that covers the conversation, and the pattern is a modal again.
Checklist
- What promotes output into the panel, and can the viewer override it in both directions?
- Are previous versions reachable, and is the current one labelled?
- If the viewer edits in the panel, does the model see the edit next turn?
- What actions does the panel carry, and do they match the output’s type?
- Does the transcript keep a readable reference to what was produced?
- What happens on a phone?
- Can the artifact be exported or shared on its own?
- Is content still streaming into the panel visible without switching to it?
- What happens when one conversation produces several different artifacts?
- Does closing the panel destroy anything?
Compare
Claude opens a side panel for documents and code and keeps a version history on it, so the conversation stays a conversation while the output accumulates revisions in one place. ChatGPT offers a canvas that turns the output into a directly editable surface with inline controls, moving the panel from a viewer toward an editor. Gemini routes long output into Google Docs instead. The container problem goes away because the artifact lands in a product built to hold one. v0 inverts the arrangement entirely and makes the preview the main surface with the conversation as a narrow rail. When every turn produces a new version of one thing, that’s the right call.
Related
Streaming response is what the panel is protecting the transcript from. Code block actions is the same problem at the scale of a single fence. Response collapse is the cheaper fix when a panel is more than the output warrants. Assistant sidebar is the same geometry with the roles reversed. Message turn is what stays behind in the conversation once the artifact leaves it.