The fundamentals
Understand why the five parts work, and you can adapt them to any task and any model.
A model predicts. It does not look things up.
Unless it has been given a tool that retrieves something, a language model is producing the most plausible continuation of your text, based on patterns learned during training. That single fact explains most of what surprises people.
It explains why a model can be fluent and confidently wrong at the same time, why it invents plausible-looking citations, why it has a knowledge cutoff, and why giving it the actual document works dramatically better than hoping it remembers.
What helps
- Supplying the source material directly
- Naming the audience and the decision
- Explicit limits on what it must not do
- Asking for uncertainty to be marked
- Examples of the quality you want
What rarely helps
- Flattery and grand role-play openers
- Threats, tips or emotional pressure
- Repeating the same instruction for emphasis
- Vague quality words like “professional”
- Longer prompts with no new information
Confidence is not evidence
Models are trained to produce helpful, well-formed answers. Nothing in that objective requires the answer to be true, and a wrong answer often reads exactly like a right one. This is why the verification part of the brief is not optional decoration.
The practical move is to make claims traceable rather than to demand that the model be correct. Ask it to cite what it used, to separate what the source says from what it inferred, and to flag where it is unsure. Then you can check the parts that matter instead of re-checking everything.
For every substantive claim, mark it as one of:
[SOURCE] — directly supported by the material I gave you, with a quote
[INFERENCE] — your reasoning from that material, with the step shown
[UNKNOWN] — not determinable from what you have
Do not fill gaps with plausible guesses. An explicit "I don't know" is a correct answer.Advice expires
A technique that was necessary on one model generation can be redundant, or actively harmful, on the next. Prefilling an assistant turn to force JSON used to be standard practice with Claude; on current models it returns an error. Telling a reasoning model to “think step by step” duplicates work it already does internally, and all three major vendors now say so in their own documentation.
Keep a small test set and re-run it when you change model. That is the only reliable way to know whether your prompt still earns its length.
Sources
- OpenAI: reasoning best practices — says explicitly not to prompt chain-of-thought on reasoning models
- Anthropic: prompting best practices — per-model guidance, updated with each release
- Google: Gemini 3 prompting — advises dropping older chain-of-thought scaffolding