Your Prompt Has 3,840 Right Answers, and It Picked One
You ask for something, you get back something that is technically what you asked for and not at all what you wanted, and the conclusion is that the model is not very good.
Try a different conclusion first. Count what you actually asked for.
Send it and see
The prompt below is six words long and completely ordinary. It is also not a request for one thing.
The prompt is Write a post about our launch. That sentence leaves 6 decisions unmade β how long, what format, who reads it, what tone, what to ask for, whose voice β and the options for each multiply out to 3,840 different things you might be handed.
Pinning them down one at a time, largest first, leaves 768, then 192, then 48, then 12, then 3, then 1. Half of them specified still leaves 48 combinations, because the space is multiplicative rather than additive β each decision divides what is left, it does not subtract from it.
The practical form of that: every decision you leave open is a round of no, not like that you will pay for afterwards. One sentence that states all 6, or one sentence plus 6 corrections. It is the same work either way.
Your prompt is Write a post about our launch. Press send and see what comes back. Then pin the decisions down β each button is one thing you could have said β and send again.
- Things that still fit
- 0
- Decisions you made
- 0 of 6
- Messages to converge
- 1 + 6
- Times sent
- 0
This attempt, as text
Prompt
Still fits
You got
The draw is uniform over the options listed. A real model's choices are not uniform β it has habits, and a house style. That does not rescue you: a model with habits is still the thing making the decision, and its habits are not your intent.
Press send before you pin anything. Whatever comes back was a fair reading of what you wrote β that is the uncomfortable part.
Nothing there is a trick. Every option is one a competent human writer would have to pick between, and picking is not optional: something has to come out, so something has to be chosen. The only question is who does the choosing.
Counting it
PROMPT = "Write a post about our launch."
# Each entry is a decision the request leaves open. The options are the plausible ones a competent
# writer would have to choose between - not everything imaginable, which is why the totals below
# are a FLOOR on the ambiguity rather than a measurement of it.
DECISIONS = [
("how long", ["one line", "a paragraph", "300 words", "1,000 words"]),
("what format", ["LinkedIn post", "X thread", "blog article", "email", "press release"]),
("who reads it", ["customers", "strangers", "investors", "developers"]),
("what tone", ["formal", "conversational", "excited", "understated"]),
("what to ask for", ["sign up", "book a demo", "read the docs", "nothing"]),
("whose voice", ["we", "I", "third person"]),
]
def combinations(open_decisions):
total = 1
for _, options in open_decisions:
total *= len(options)
return total
TOTAL = combinations(DECISIONS)
print(f"The prompt: {PROMPT!r}")
print()
print(f"{'decision left open':<20}{'options':>9} the model picks one of")
print("-" * 62)
for name, options in DECISIONS:
print(f"{name:<20}{len(options):>9} {', '.join(options)}")
print("-" * 62)
print(f"{'combinations':<20}{TOTAL:>9}")
print()
print(f"You did not ask for one thing. You asked for one of {TOTAL:,}.")
print(f"Odds it guesses the one in your head: 1 in {TOTAL:,}.")
print()
# What does one extra sentence buy you? Pin each decision alone and see what is left.
print("If you could add only ONE of these to the prompt:")
best = None
for i, (name, options) in enumerate(DECISIONS):
rest = DECISIONS[:i] + DECISIONS[i + 1:]
left = combinations(rest)
if best is None or left < best[1]:
best = (name, left)
print(f" pin {name:<18} -> {left:>6,} left")
print(f" best single move: {best[0]} -> {best[1]:,} left, still {best[1] * 100 // TOTAL}% of the space")
print()
# Multiplicative spaces reward front-loading: each pinned decision divides, it does not subtract.
by_size = sorted(range(len(DECISIONS)), key=lambda i: -len(DECISIONS[i][1]))
print(f"{'pinned up front':<17}{'left to guess':>14}{'combinations':>14} {'rounds to converge':>18}")
print("-" * 66)
for pinned in range(len(DECISIONS) + 1):
keep = [DECISIONS[i] for i in sorted(by_size[pinned:])]
left = combinations(keep)
print(f"{pinned:<17}{len(keep):>14}{left:>14,} {'1 + ' + str(len(keep)):>18}")
print()
print("Read the last column. Every decision you leave open is a correction you pay for later:")
print(f"one message that pins all {len(DECISIONS)}, or one message plus {len(DECISIONS)} rounds of 'no, not like that'.")
print("The work is the same work. Doing it up front costs one sentence; doing it afterwards")
print("costs a round trip each, and every round trip re-sends the whole conversation.")The prompt: 'Write a post about our launch.' decision left open options the model picks one of -------------------------------------------------------------- how long 4 one line, a paragraph, 300 words, 1,000 words what format 5 LinkedIn post, X thread, blog article, email, press release who reads it 4 customers, strangers, investors, developers what tone 4 formal, conversational, excited, understated what to ask for 4 sign up, book a demo, read the docs, nothing whose voice 3 we, I, third person -------------------------------------------------------------- combinations 3840 You did not ask for one thing. You asked for one of 3,840. Odds it guesses the one in your head: 1 in 3,840. If you could add only ONE of these to the prompt: pin how long -> 960 left pin what format -> 768 left pin who reads it -> 960 left pin what tone -> 960 left pin what to ask for -> 960 left pin whose voice -> 1,280 left best single move: what format -> 768 left, still 20% of the space pinned up front left to guess combinations rounds to converge ------------------------------------------------------------------ 0 6 3,840 1 + 6 1 5 768 1 + 5 2 4 192 1 + 4 3 3 48 1 + 3 4 2 12 1 + 2 5 1 3 1 + 1 6 0 1 1 + 0 Read the last column. Every decision you leave open is a correction you pay for later: one message that pins all 6, or one message plus 6 rounds of 'no, not like that'. The work is the same work. Doing it up front costs one sentence; doing it afterwards costs a round trip each, and every round trip re-sends the whole conversation.
Adding one thing barely helps
This is the part that catches people out, and it is why βI did give it more detailβ is such a common complaint.
Specifying the single highest-value decision β the format, which has the most options β takes 3,840 down to 768. That is a real improvement and it still leaves a fifth of the original space. Adding detail feels like progress in proportion to the effort spent, and it is not: the space is multiplicative, so each decision divides what remains rather than subtracting from it.
Three of six specified still leaves 48 readings. Five of six still leaves 3.
The arithmetic runs the other way too, and this is the useful direction: because each decision divides, the last few are as valuable as the first few. There is no point at which you have added enough detail and can stop β but there is a point where you are done, and it arrives all at once.
The rule this gives you
Look again at the last column of that table. It is the practical form of the whole page.
Every decision you leave open is a round trip you will pay for later.
You are going to make all six decisions regardless. The only choice is whether you make them in one sentence up front, or discover them one at a time through make it shorter, less formal, this is for customers, not investors. Six corrections, each one a full regeneration, each one re-sending the entire conversation so far β which costs more every turn than the turn before it.
The specified version is not longer than a paragraph:
Write a 300-word LinkedIn post announcing our launch, aimed at people who have never heard of us, conversational, first person plural, ending by asking them to book a demo.
Thirty words instead of six. One message instead of seven.
The shortcut that pins four at once
If writing that out feels like work, there is a cheaper move that does most of it: show it one you liked.
A single example pins tone, format, length and voice simultaneously, because all four are visible in the sample rather than described. Four of six, from the table above, is 3,840 down to 12. No adjectives required, and it dodges the fact that words like professional and punchy mean different things to you and to it.
This is the entire reason few-shot prompting works. It is not a magic incantation; it is a very efficient way to make four decisions without having to name them.
The six questions
They generalise past this example, and they are worth keeping somewhere:
- How long? The single most common source of a disappointing answer.
- What format? A thread, an email and a doc are different objects, not styles.
- Who reads it? Determines what can be assumed and what must be explained.
- What tone? The one people do specify, and the least valuable of the six.
- What should the reader do next? Absent this, expect a limp ending.
- Whose voice? We, I, and the company in third person read completely differently.
If a request survives all six with nothing left ambiguous, it will usually come back right the first time.
What this page simplifies
- The options are enumerated by hand. Real requests are open-ended, so 3,840 is a floor on the ambiguity rather than a measurement of it. A model choosing freely has far more than four lengths available.
- The draw in the widget is uniform; a real modelβs is not. It has habits β a house length, a house tone β so some of the 3,840 are far likelier than others. That makes outcomes more predictable, not more yours: its habits are not your intent.
- Decisions are treated as independent. They are not. Asking for a press release drags tone and voice along with it, which is why format is the highest-leverage single thing to specify, and why the true count is somewhat below the product.
- One round trip per correction assumes each correction lands. Sometimes fixing the length disturbs the tone and you pay for the same decision twice.
- Not every task deserves this. For something you will read once and throw away, six words and a bad first draft is the right trade. The arithmetic matters when the output matters.