Product

The Patterns That Work

Before the breakdown: here are the ten patterns that consistently ship well. Everything else in this article is just the detail behind each one.

  • Draft + Edit — AI generates a first draft; human refines it. The collaboration frame, not the automation frame.
  • Ambient Suggestions — non-blocking inline suggestions that appear without the user asking. Low friction, high acceptance.
  • Magic Input — a single natural language input that populates a structured form or workflow. Structured output from unstructured input.
  • Progressive Enhancement — AI adds capability to an existing workflow without changing its shape. Adoption is invisible.
  • Background Agent — fire-and-forget task execution with async result delivery. Humans don’t wait; they review.
  • Confidence Surfacing — show why the AI said something, not just what it said. Trust requires legibility.
  • Graceful Handoff — AI handles what it can; hands off gracefully when it can’t. The fallback is a feature, not a failure.
  • Audit Trail — every AI action is visible and reversible. Non-negotiable for anything consequential.
  • Constraint-First — user sets guardrails before AI acts. Reduces error surface and builds trust through control.
  • Streaming + Skeleton — manage latency perception with streaming output and skeleton UI. Fast-feeling beats fast.

1. Draft + Edit

What it is: The AI generates a complete first draft. The human’s job is to edit, not author from scratch. The product is designed around this collaboration — the draft is immediately visible, editable in-place, and the human is never waiting at a blank screen.

When to use it: Any task where humans are currently staring at a blank input: email composition, document creation, PR descriptions, support ticket responses, job descriptions, code comments.

Real example: Notion AI’s “Write with AI” feature. You describe what you want, Notion generates a full block of content inline, and you edit from there. The output appears in your document immediately — not in a sidebar, not as a copy-paste export. The edit surface is the same surface the draft landed in. This is intentional: it removes the friction of switching contexts between “AI output” and “where I’m actually working.”

What most teams get wrong: They build a modal that generates text into a separate panel. Users have to copy-paste into their actual document. That one extra step cuts acceptance rates significantly. The draft needs to land in the working surface, not beside it.


2. Ambient Suggestions

What it is: The AI surfaces relevant suggestions without the user explicitly asking. These suggestions are non-blocking — they appear as ghost text, inline hints, or a dismissible widget. The user can accept, ignore, or dismiss. There is no interruption to the primary workflow.

When to use it: Code completion, writing assistance, next-step recommendations, auto-fill in structured forms, search query suggestions. Any task where a likely-correct prediction can be surfaced cheaply.

Real example: GitHub Copilot’s ghost text completions. As you type, Copilot predicts the next line, function body, or block and renders it as gray ghost text ahead of your cursor. Tab to accept; keep typing to ignore. No dialog, no modal, no button to click. The suggestion exists only to save a keystroke — it never demands your attention.

What separates good ambient suggestions from annoying ones: Latency and precision. If suggestions lag noticeably behind typing, they feel like interruptions. If they’re frequently wrong, users start actively ignoring the interface element. The acceptance rate benchmark that matters is not “how often do users accept” but “how rarely do users feel interrupted.” These are different things.


3. Magic Input

What it is: A single free-text input that, on submission, populates a structured form, creates a record, or kicks off a workflow. The AI handles parsing, classification, and field mapping. The user gets a structured artifact without filling out a form.

When to use it: Issue/ticket creation, CRM record entry, meeting notes to action items, feature request intake, project setup. Any workflow that currently requires a human to manually classify and route information.

Real example: Linear’s natural language issue creation. Type “add dark mode toggle to settings page, high priority, assign to frontend team” and Linear parses this into a properly structured issue: title set, priority set, team assigned. The form is bypassed entirely. The AI extracts intent and maps it to data model fields. This reduces the time to log an issue from ~45 seconds to ~5 seconds.

The extension: The same pattern works for more complex workflows. Describe a new project in a sentence; the AI creates the milestone structure, assigns default team members, and sets reasonable deadlines based on scope signals in the description. The user reviews and edits; they don’t build from scratch.


4. Progressive Enhancement

What it is: AI capabilities are layered onto an existing workflow without changing its fundamental shape. The user’s mental model, navigation, and habits don’t change. AI makes the existing workflow faster or better, not different.

When to use it: When you’re adding AI to a product that already has established users with established habits. When your users are skeptical. When the AI capability is not the core value prop but an accelerant.

Real example: Cursor’s AI features on top of VSCode. The editor was originally VSCode. The keybindings, the file tree, the terminal, the extension ecosystem — all intact. The AI features (inline edits, the composer, tab completion) were additive. Developers who were productive in VSCode are productive in Cursor from day one; the AI features reveal themselves as needs arise. Contrast this with a hypothetical “AI-native IDE” that redesigns everything around AI — adoption would be much slower because the switching cost is much higher.

Why this matters for product strategy: The temptation is to rebuild everything around AI. That’s a multi-year bet. Progressive enhancement is a six-week bet that compounds.


5. Background Agent

What it is: The user initiates a task and the AI executes it asynchronously. There’s no progress bar to watch. The user gets a notification or sees results in a designated review queue when the task is done. The AI acts as an agent that runs in the background while the user does other things.

When to use it: Research tasks, code review, test generation, database queries, report generation, competitive analysis, inbox triage. Any task where the AI needs more than a few seconds and the human doesn’t need to supervise.

Real example: Fin’s AI agent. A support ticket comes in. Fin reads the ticket, checks the knowledge base, formulates a response, and sends it — or drafts it for human review depending on confidence threshold. The support agent doesn’t watch Fin work; they see resolved tickets and flagged drafts. The human handles exceptions; the agent handles volume. Fin resolves a significant portion of tickets without any human involvement at all.

The review queue is not optional: Background agents without a review interface are unshippable in most contexts. Users need to see what the agent did, verify the outputs, and intervene when wrong. The review queue is the trust surface for the background agent pattern.


6. Confidence Surfacing

What it is: Alongside the AI’s output, show the user why it said what it said. This can be source citations, probability indicators, the context used to generate the output, or a plain-English explanation of the reasoning. The goal is legibility: the user should be able to evaluate the output, not just accept or reject it blindly.

When to use it: Any high-stakes output — medical information, legal summaries, financial analysis, security vulnerability detection. Also anywhere the AI is wrong often enough that users need a fast way to detect errors. Also anywhere trust is a prerequisite for adoption.

Real example: Perplexity AI’s source citations. Every answer includes numbered citations linked to the source pages used to generate it. The user can click through to verify. This turns “the AI told me X” into “the AI synthesized X from sources A, B, and C, which I can check.” The output is no longer a black box.

What teams often skip: They show confidence percentages (e.g., “87% confidence”) without grounding them in anything the user can actually interpret. A confidence score without context for what it means or what to do when it’s low is not confidence surfacing — it’s confidence theater. Show the sources, the reasoning, or the limitations. Show the why.


7. Graceful Handoff

What it is: The AI handles a task up to the point where it’s uncertain or unable to proceed, then hands off to a human with full context — conversation history, attempted actions, and a clear explanation of where it got stuck. The handoff is seamless. The human picks up exactly where the AI left off.

When to use it: Customer support, medical triage, legal intake, complex troubleshooting flows. Any domain where AI handles high-volume routine cases and humans handle edge cases and exceptions.

Real example: Fin again. When Fin can’t resolve a ticket with high confidence, it escalates to a human agent — but it doesn’t just transfer the raw conversation. It summarizes what the customer needs, what Fin tried, and why Fin is escalating. The human agent doesn’t have to re-read the transcript to get context. They start with a briefing.

What the failure mode looks like: The AI fails silently, leaves the user with no response, or escalates without context. The human agent gets a cold transfer — raw conversation, no summary, no reason for escalation. The user has to repeat themselves. Trust in the AI drops immediately.


8. Audit Trail

What it is: Every AI-initiated action is logged, visible to the user, and reversible. The user can see exactly what the AI did, when, why (if confidence surfacing is implemented), and undo any action individually. Nothing is permanent until the user decides it is.

When to use it: Always, for any AI action that changes state. Code edits, database writes, email sends, calendar changes, file deletions, configuration changes. If the AI acted, the user must be able to undo it.

Real example: Cursor’s diff view for AI edits. When Cursor edits a file, it shows the change as a git-style diff — green for additions, red for deletions. The user sees exactly what changed and can accept the whole diff, reject the whole diff, or edit individual hunks before accepting. No change is applied invisibly.

The trust argument: Audit trails are not just a safety feature. They’re a trust-building feature. Users who can see and undo AI actions are willing to let the AI do more. The inverse is also true: users who’ve been burned by invisible AI changes become hyper-conservative about AI permissions. An audit trail is cheap to build and expensive not to have.


9. Constraint-First

What it is: Before the AI acts on a task, the user sets explicit constraints: scope, tone, limits, exclusions, format. The AI then acts within those guardrails. This is different from describing the task — constraints are negative space (“don’t touch the tests,” “only suggest changes in this file,” “response must be under 100 words”).

When to use it: Code generation and refactoring (scope constraints), content generation (brand/tone constraints), data analysis (column or date range constraints), agentic tasks with external side effects (permission constraints). Any high-stakes or high-blast-radius AI task.

Real example: Midjourney’s prompt modifiers. Users constrain the AI’s output with explicit style, aspect ratio, and exclusion parameters (--no people, --ar 16:9, --style raw). These aren’t suggestions — they’re enforced guardrails. The model operates within the bounded space the user defined. The result is much more predictable output and much less wasted generation.

The product design implication: Build the constraint surface before you ship the capability. A code refactor agent that lets users constrain scope to a single file, exclude test files, and set a maximum diff size will get adopted. One that modifies anything it deems relevant will not.


10. Streaming + Skeleton

What it is: AI responses are streamed token-by-token as they generate, combined with skeleton UI (placeholder shapes, shimmer effects) that renders immediately and fills in as content arrives. The goal is to make latency feel shorter by giving users something to look at immediately and letting them begin reading before generation is complete.

When to use it: Any AI-generated text response with more than ~500ms of expected latency. Chat interfaces, document generation, code generation, long-form content, analysis reports.

Real example: ChatGPT’s streaming chat interface. The first token appears in under a second. The user starts reading while the rest of the response is still generating. For a 400-word response that takes 8 seconds to fully generate, the user is already halfway through reading by the time it finishes. The perceived wait time is a fraction of the actual generation time.

The implementation detail that matters: Don’t stream random-length chunks. Stream at a rate that looks like natural reading speed. If you dump 200 tokens at once and then pause, it looks like the model is struggling. Smooth streaming is a presentation layer problem — buffer and release at consistent velocity if needed.

Skeleton before streaming: For structured content (cards, lists, tables), render the skeleton layout immediately. Don’t wait for the first token to render anything. A skeleton that fills in is always faster-feeling than a blank space that suddenly fills.


What These Patterns Have in Common

None of these patterns are about AI doing more. They’re about AI fitting into how humans actually work.

Draft + Edit, Ambient Suggestions, and Progressive Enhancement all preserve human agency. Background Agent, Magic Input, and Constraint-First all reduce friction at specific high-friction points. Confidence Surfacing, Graceful Handoff, and Audit Trail all address the trust deficit that AI products start with by default. Streaming + Skeleton addresses the latency problem that every AI product has.

The teams that ship AI products that stick pick two or three of these patterns and execute them extremely well — clean implementation, tight feedback loops, real acceptance metrics. The teams that struggle try to build novel AI-native interaction paradigms from scratch.

Use the patterns. They exist because they work.