Comment thread
Inline replies on a model's output.
The moment you can comment on a model's response, the product becomes a document. Threads anchor to specific words, not to "the response." Resolutions mark the line where the team agreed. A conversation with the model grows a spine and stops feeling like a disposable session.
This is the pattern that transforms AI output from ephemera into something a team can collectively sharpen.
"A reply anchored to a sentence is worth ten general notes."
Anchor, reply, resolve.
Every thread anchors to a specific selection — a phrase, a sentence, a paragraph. Hovering the anchor in the output highlights the thread in the margin. Hovering the thread highlights the anchor. Nothing about a thread is ambient. It is always bound to something precise.
Replies are short and lightly formatted. Resolution dims the thread without hiding it. A "reply with regeneration" action lets a commenter ask the model to revise the anchored text in response to the thread — turning a comment into a draft move.
- MCan I quote the SAM instead of the ACV here?· today 10:14
- DFair — let me ask the model to redraft.· today 10:17
- EAudit-log lag — is that the 2.1 release dependency?· today 10:22
Precise disagreement makes better work.
General notes are the enemy of sharp output. "I don't love this part" is useless. "This sentence implies I shipped on time, I did not" is actionable. Threads that anchor to specific text force the precision that makes collaborative editing possible.
They also let the model participate. A reply-with-regeneration that names the anchored text as the subject of revision keeps the model grounded in exactly what the team wants changed.
The thread I'd ship.
- Margin over modal. Threads live in the margin next to the output. A modal severs the thread from the text and forces a reader to hold the anchor in their head.
- Resolve, don't delete. Resolution is how a conversation says "I'm done with this disagreement." Deletion loses the history of what was debated and why.
- Let the model answer. A thread should be able to address the author or the model. A "reply with regeneration" button turns feedback into a revision instead of a meeting.
Stale threads on regenerated text.
When a user regenerates a response, what happens to the threads anchored to the old text? The easy answer is "drop them." The better answer is "surface them as orphaned, with the text they were anchored to, and let the user re-anchor or archive."
A thread is a record of a disagreement. Don't quietly delete the record because the artifact moved.
What this pattern gets wrong when it gets wrong.
- Ambiguous state
- Running, done, errored, paused all look the same. The user has to infer from context.
- Leaky context
- Content from another source, session, or user surfacing in a place it shouldn't.
Three shipping variants worth copying.
- A margin-rail that shows thread count per paragraph
- A resolve affordance that dims the thread but keeps it recoverable
- A 'reply with regeneration' affordance that asks the model to revise the anchored sentence