A trailing space is a code change
Version your prompts like source, because surface perturbations move answers.
By the end of this your prompts will be versioned, paraphrase-tested, and order-randomised — which is three things most production systems do none of.
Stage 1 — treat prompt text as source
Put it in version control. Diff it. Review it. A trailing space is a change and should show up as one.
Prompts living in a database or a config UI where nobody can diff them.
Why: Then an answer changes and nobody can tell whether the model moved or the prompt did.
Stage 2 — test three paraphrases before shipping
"Capital of Australia?" vs "Australia's capital city is ___?"
Canberra on one, Sydney on the other.
Canberra both times.
Most models are stable here asked plainly. Add an irrelevant document and stability degrades sharply — on questions that document never mentions.
Three meaning-preserving rewrites, same expected answer. If they disagree, you shipped a phrasing rather than an intent.
Stage 3 — randomise anything list-shaped
If your task presents options, shuffle them and check the choice holds. Position bias is measurable, cheap to control for, and present across our panel.
The accelerator
Do not write paraphrases by hand for everything. Do it for the five prompts that carry your product, and accept the risk on the rest. Five is enough to find out whether you have a problem at all.
Where do your production prompts live — and can you diff last month's?
Every figure here describes something measured and committed. See the measurements · read the method