The plan preview
How to show the model's intent before it spends your time.
The plan preview is the single highest-leverage surface in agentic UX. It's the place where the model tells you what it's about to do, in order, with enough specificity that you can interrupt, edit, or approve. Get this right and you can hand the model a mandate for ten steps. Get it wrong and you'll spend the session babysitting every tool call.
Most products skip this entirely. The model announces the plan in prose ("First I'll read the docs, then I'll summarize them, then I'll post to Slack") and just starts running. Prose is not a plan preview. A plan preview is a contract.
"An agent that tells you what it's about to do earns the right to do five more things after."
A checklist the user can edit.
A good plan preview is a vertical list of concrete steps. Each step is a verb plus an object. Each step has a checkbox or toggle. Each step that touches the outside world — an email, a Slack post, a file write, a payment — is flagged inline.
The user can uncheck any step before the agent runs. They can re-order. They can click into a step and edit its target. The whole list is one approve button away from execution. This is the move.
Review 5 PRDs and post a summary
- 01Will runRead all PRDs in /product/q2/
- 02Will runExtract scope statements and success metrics
- 03Will runCross-reference against OKR doc
⓵ External · External read: okrs.internal.notion
- 04Will runDraft a summary memo with risks flagged
- 05Will runSend memo to #product-leads
⚠ Destructive · Posts to Slack · reversible within 60 minutes
What the preview has to tell you.
- External reads. Which steps will touch a system outside this session. The user's Notion, their Gmail, an internal API. Inline, compact.
- Destructive writes. Any step that creates, sends, or modifies anything. A different color. A different word. "Destructive," not "will do."
- Reversibility window. When an action can be undone for some time, say so. "Reversible within 60 minutes." "Permanent after send."
- Cost estimate. For anything that costs money or time at scale — API calls, model spend, seat invites — show the estimate in the step itself.
Mandates, not commands.
The real reason plan previews work is economic. They shift the unit of user attention from "every tool call" to "every task." The user reviews once, approves once, and then sips coffee for ten minutes while the agent does what it said it would. That's the whole value of agentic UX. Without the preview, the user has to supervise each step, which means the agent has bought them nothing.
A preview also changes the model's incentives. When an agent is forced to pre-commit to its plan in human-readable steps, it generates better plans. The preview surface does the work of a prompt template, for free, in UI.
What this pattern gets wrong when it gets wrong.
- Runaway agent
- An agent that loops, spends, or edits past the user's intent with no visible cap.
- Phantom tool
- A visible tool call that didn't happen, or happened but with different arguments than shown.
- Confidence theater
- Language or typography that performs certainty beyond what the model actually has.
Three shipping variants worth copying.
- A checkbox list the user can edit before run
- Inline warnings on destructive or external steps
- A diff-like preview of what would change