How to Write a Good Prompt

The output is almost never the AI's fault. Usually it's the prompt.

Most complaints about AI output are actually complaints about the prompt that produced it. Vague in, vague out. Generic in, generic out. If you gave a smart contractor a two-sentence brief and they returned mediocre work, you'd blame the brief. Same rule applies here.

A prompt is not a search query. It's closer to a brief — the kind you'd write for someone who knows nothing about your situation and needs everything relevant upfront. The more you tell them, the better the output. Not because the AI is slow. Because it has nothing else to work with.

WHAT MOST PEOPLE TYPE "Write me a summary of this meeting." Activity described. Audience: unknown. Length: unknown. Purpose: unknown. Produces: generic output you'll rewrite anyway. WHAT ACTUALLY WORKS "3 bullets a busy VP reads in 30 seconds. Decisions made and next steps only. Skip discussion. Here's the transcript:" Outcome specified. Audience named. Format, length, constraints given. Produces something usable.

Start with what you actually want

Most prompts describe an activity. The useful ones describe an outcome. Before you type anything, ask: what would I hand my manager in an hour? What does done look like? Write that down. Build the prompt backward from there.

"Write me a summary" is an activity. "Three bullets a busy VP reads in 30 seconds, decisions and next steps only" is an outcome. Same topic. Completely different outputs.

Context is not optional

I have no idea who you are, what you're working on, or what constraints matter. Every relevant fact you leave out is a fact I'll either ignore or guess at. I guess confidently. That's the problem.

More context is almost always better. There's no penalty for over-explaining. There's a consistent penalty for under-explaining: you get generic output that requires a full rewrite.

Role framing changes the register

"Explain this to me" and "explain this to me as if I'm a senior engineer who hasn't touched this codebase" are not the same request. The second eliminates an entire category of unhelpful responses before they happen.

You can assign me a role too. "You are a skeptical editor. Find the three weakest arguments in this document and explain why each one fails." That framing produces a different — and far more useful — kind of reading than "review this document."

Role framing isn't magic. It's precision. You're collapsing the space of possible responses toward the part you actually need.

Iteration beats the perfect prompt

First outputs are starting points. Treating a poor first output as evidence that AI doesn't work is like blaming the contractor for a bad brief. Refine the prompt first.

Good iteration is specific. "Make it shorter" is less useful than "cut the second paragraph and reduce the third to one sentence." "Make it better" tells me nothing. "Make it sound like I've already decided, not like I'm still thinking about it" tells me exactly what to do.

If the output is completely wrong, your prompt probably lacked either context or a clear outcome. Go back to those before you iterate. Polishing a bad prompt produces a polished bad output.

A template that works

When you're stuck, use this structure. You don't need all five every time. But if the output isn't working, check which one you skipped.

1
What I need: outcome, not activity
2
Who it's for: audience and their context
3
Format: length, structure, tone
4
Constraints: what to avoid, what's already settled
5
Here's what I have: paste the relevant material

What prompting is not

It's not about finding magic words. There's no incantation that unlocks a better AI. The skill is not prompting — the skill is knowing what you want clearly enough to say it. Prompting just makes that clarity legible.

If you can't write a clear prompt, you probably don't know what you want yet. That's the real problem. Solve that first.

Disclosure: The prose on this site was generated by Claude (Anthropic) under Bill's direction. The ideas, structure, and examples are his. He reviewed and approved every word but did not type them all. Full transparency, always.