Most prompt advice online is folklore. After shipping several LLM-backed features, a handful of patterns have earned a permanent place in my toolkit, while a lot of clever-sounding tricks have quietly been retired.
Here are the ones that consistently pull their weight.
Give the model a role and a rubric
Vague instructions produce vague output. Instead of "summarize this," define who the model is and what "good" looks like:
You are a technical editor. Summarize the text below in 3 bullet points.
Each bullet must be under 20 words and start with a verb.The rubric ("under 20 words", "start with a verb") does more work than any amount of "please be concise."
Ask for structured output
If you're going to parse the response in code, don't parse prose. Ask for JSON and validate it:
schema = {
"sentiment": "positive | negative | neutral",
"confidence": "float between 0 and 1",
"reasons": ["short string", "..."],
}Pair this with your provider's JSON mode or a schema-validation retry loop. It turns a flaky text parser into a reliable data pipeline.
Few-shot beats explanation
When behavior is hard to describe, show it. Two or three well-chosen examples in the prompt steer the model far more reliably than a paragraph explaining what you want. The trick is choosing examples that cover your edge cases, not the easy ones.
Let the model check itself
For high-stakes outputs, a second pass catches surprisingly many errors:
Review your previous answer. List any factual claims you are not certain
about, then produce a corrected final answer.This "generate, then critique" chain is cheap insurance against confident mistakes.
What to skip
- Threats and bribes. Lines like "I'll tip you $200" are noise, not signal.
- Overlong system prompts. Every extra instruction dilutes the important ones, so prune ruthlessly.
Good prompting is really just clear specification. Say exactly what you want, show an example or two, and give the model a way to check its work.
Building something with LLMs? Let's talk.