These patterns are boring on purpose. Boring prompts keep working when the model changes underneath you.
State the task, not just the role#
"You are a helpful assistant" does very little. "Summarise this support ticket for an engineer in three bullet points" does a lot. Say what the output is for.
Give constraints a place#
Put rules in a short list, one rule per line. Models follow a list more reliably than a paragraph of "never" and "always".
Show, do not only tell#
One or two examples of the exact output you want beat a page of description. Make sure the examples are different from each other.
Task: classify the ticket.Return JSON: {"category": "billing" | "bug" | "other", "urgent": boolean}Example input: "I was charged twice this month"Example output: {"category": "billing", "urgent": false}Ask for a format you can parse#
If code will read the answer, ask for JSON (or another strict format) and validate it. Retry once on failure, then fail loudly.
Tip
Change one thing at a time and re-run your examples. Prompts are easy to make worse without noticing.
Replace the highlighted parts, then paste it into your assistant.