Overview
How might we show what the model read from an attachment before send so uploads feel inspectable, not opaque?
When to use
- ChatGPT-style composers where PDFs, spreadsheets, and images become prompt context.
- Turns where the user should verify parse status, summary, or thumbnail before asking questions.
- Products that mix attachments with text in one send without clearing other composer state.
- Flows where parsing delay, failure, or partial read must be visible instead of silent.
When to skip
- Tiny text pastes that do not need a preview card.
- Virus-scanning delays that would block every send (show progress instead).
- Binary blobs the product cannot meaningfully summarize.
States
Design parse feedback in the composer, not only a paperclip icon.
- 01
Idle
No attachment. Attach lives in the bar or + menu with a clear entry point.
- 02
Attaching
Upload or picker runs. A chip or card appears with filename, type, and size.
- 03
Parsing
The product reads the file. Progress or a scanning state proves work started.
- 04
Preview ready
Summary, thumbnail, or extracted fields show what the model understood. Send unlocks when parse succeeds.
- 05
Composing
Prompt text and preview coexist. Remove control clears the file without resetting the whole composer.
- 06
Failed
Parse or scan errors surface plainly with retry or remove. Do not let send proceed on unread content.
Key UX elements
The parts that must be present for attachments to feel trustworthy pre-send.
Attach
Make upload reachable from the composer.
Paperclip, + menu row, or drag target should sit where people already type, not in a separate screen.
Chip
Show filename and type at a glance.
A removable chip or card beats a hidden attachment that only appears after send.
Status
Expose parsing progress and errors.
Scanning, ready, and failed states should be visible before the model answers from the file.
Preview
Summarize what the model saw.
Short AI summary, first-page thumb, or key fields let people catch wrong files early.
Gate
Block send on unread or failed files.
Do not ship turns that depend on content the parser could not read.
Rules
Attachments with only a filename and no parse status.
Previews that hallucinate contents not in the file.
Failing silently when parsing fails.
Including file bytes in share links without permission.
Evidence
| Product | Implementation |
|---|---|
| ChatGPT | File cards with analysis status in the composer. |
| Claude | Document uploads with readable context summaries. |
| Notion | Imported files with AI-assisted previews. |
| Google Drive | AI overviews and previews on stored files. |



