"Summarize this" is a wish. "Summarize this support ticket in two sentences for an engineer who has not seen it, and end with the single most likely cause" is an instruction. The difference in output quality is usually large, and it costs nothing.
A structure that works
Task: what exactly should be produced?
Context: what does the model need to know that it cannot guess?
Constraints: length, tone, things to avoid, what to do when unsure.
Format: the shape of the output, ideally something your code can parse.
Examples: one or two samples of a good answer for tricky cases.
Put the model in the right situation
Describe who the output is for and why it matters. A model writing for "a new customer who is frustrated" behaves differently from one writing for "an internal QA log". Concrete audiences beat generic adjectives.
Ask for structured output
When code consumes the answer, request a fixed format such as JSON with named fields, and validate it on your side. Never assume the output is well-formed.
Extract the following from the email and return JSON only:
{
"customer_name": string | null,
"issue_summary": string,
"urgency": "low" | "medium" | "high"
}
If a field is not present, use null. Do not invent values.
Give the model a way out
Models try to be helpful, which can mean inventing an answer. Say explicitly what to do when the information is missing, for example "reply with unknown if the document does not say."
Iterate with real examples
Collect a small set of real inputs, including awkward ones.
Change one thing at a time and compare outputs side by side.
Keep the prompts in version control like any other source file.
Re-run your examples whenever you change the prompt or the model.
A prompt is a specification. If two people would read it differently, the model will too.
What prompting cannot fix
If the model lacks the necessary facts, no phrasing will supply them; retrieve them and put them in the context. If a task needs exact calculation, call a function. Prompting is powerful, but it works best alongside good data and good tools.
