cd /news/large-language-models/typos-don-t-break-llm-prompts-one-mi… · home › topics › large-language-models › article
[ARTICLE · art-140630] src=dev.to ↗ pub= topic=large-language-models verified=true sentiment=· neutral

Typos don't break LLM prompts. One missing quote mark does.

An engineer benchmarked roughly 4,900 prompt sessions across five Claude models and seven local Ollama models to measure how spelling, grammar and punctuation errors affect LLM accuracy. Heavy misspelling (70% of words) and non-native grammar left Claude models at 100% correct, but a single missing closing quote or dropped colon before a list cut accuracy by 8 to 23 points, with Sonnet 5 dropping to 77% on the punctuation-break set. The missing-quote case caused every model to count three extra instances of a target word, and Opus 5.5 even noted the missing quote before returning the wrong answer.

by read5 min views1 publishedSep 27, 2026

Everyone who types prompts has wondered the same thing. Does the model care that I wrote "teh" or forgot a comma? Should I clean up my prompt before hitting enter?

I ran a test to find out. The short answer: stop fixing your spelling. Start checking your quotes and colons.

I wrote a set of tasks with short, checkable answers. Arithmetic, extraction from a passage, list filtering with "except" and "not", a Python snippet's output, counting words inside quotes, and so on. Then I broke the prompts in controlled ways and sent every version to every model, several times each, in a fresh session every time.

Two prompt sets:

9.45 instead of 9:45. resign instead of re-sign. Models: Claude Opus 5, Opus 5.5, Sonnet 5, Haiku 4.5, Fable 5.1 (all at low and medium effort), plus seven local models through Ollama: gemma4, qwen3 14B, phi4 14B, granite 4.2, ornith-1.5 9B, llama 3.1 8B, mistral 7B.

Total: about 4,900 sessions. An answer counts as correct if the ideal answer appears in the reply, even with an explanation attached.

Here is the hard set. Each cell is the percent of correct answers.

model clean 70% typos non-native grammar voice-to-text one punctuation break
Opus 5 100 100 100 100 88
Opus 5.5 100 98 100 100 88
Fable 5.1 100 100 100 98 92
Haiku 4.5 100 100 100 98 88
Sonnet 5 100 100 100 89 77
granite4.2 93 67 89 56 88
phi4 14B 74 74 85 78 62
gemma4 78 78 81 44 79
qwen3 14B 67 74 85 56 62
ornith-1.5 9B 74 48 70 52 42
llama 3.1 8B 44 56 63 33 38
mistral 7B 52 26 41 56 38

Read the Claude rows first. With 70% of the words misspelled, every one of them scored the same as on clean text. Non-native grammar: 100% across the board. This is the prompt that scored 100%:

shop sellin pens 3dolar each an notbooks 5 dolar,each tom buys 4pen an 2notbook.how much he pay totaly,anser numbr only

Now read the last column. One punctuation mark, with perfect spelling everywhere else, and the same models lose 8 to 23 points.

Not every break matters. Most were recovered from context by every Claude model. Two were not.

break Opus 5 Opus 5.5 Fable Haiku Sonnet
missing closing quote 0 33 33 0 17
colon dropped before a list 100 67 100 100 0
comma moved around "except" 100 100 100 100 100
European decimals (1.500 at 2,50) 100 100 100 100 100
9.45 instead of 9:45 100 100 100 100 100
managers' → manager's 100 100 100 100 100
resign instead of re-sign 100 100 100 100 100
comma dropped in "not closed, and assigned to Lee" 100 100 100 100 100

The missing quote. The task: count how many times "report" appears inside a quoted paragraph, not in the text after it. Remove the closing quote and every model counts the three extra "report"s after the paragraph. Answer 8 instead of 5. Opus 5.5 even wrote "the closing quote is missing, so I counted all" and still gave the wrong number. It noticed the problem and followed the broken structure anyway.

The dropped colon. "Give the plural form of each word below keeping the order mouse child foot analysis reply with the plurals only comma separated". Sonnet answered mice, children, feet, analyses, replies. Every local model did the same. The word boundary between instruction and data was gone, so "reply" became data.

Everything else was recovered, including the genuinely ambiguous one. "List the tickets that are not closed and assigned to Lee" can mean two things once the comma is gone. All five Claude models picked the intended reading every time, because the sentence started with "For Lee's standup".

The voice-to-text column is where the small models fall apart. gemma4 goes from 78 to 44. granite from 93 to 56. Two things do the damage: spelled-out numbers ("three hundred forty pallets across twenty two trailers") and, again, the missing colon before a list. Every local model scored 0% on the dictated list task.

The frontier models mostly shrug it off, with one honest exception. "fifteen hundred units at two fifty each": Sonnet read "two fifty" as $250 in six trials out of six and answered 375,000 instead of 3,750. Fable did it once. Haiku turned "extension two zero one" into 2001 once. These are not model bugs. Spoken numbers are ambiguous, and the model has to guess.

Sloppy prompts get slightly sloppier replies before they get wrong ones. Asked for "the number only", Fable and Opus 5.5 add a line of working in about 20% of runs on any prompt. Haiku, on the easy set, drifted into "Yes. If all bloops are razzies..." explanations as the grammar got worse, and at the heaviest level refused four times out of eight because "bloops and razzies are not real words". With clean grammar it had answered the same nonsense-word question fine.

Twelve short tasks and nine long ones, three trials per cell, one random seed for the typo generator. The voice-to-text prompts are hand-simulated, not real speech engine output. Claude models were called through the Claude Code CLI with a minimal system prompt and tools disabled. Local models ran at Ollama defaults with thinking off. The harness and every prompt and reply are in the repo linked below, so you can rerun it with your own tasks.

Repo with the harness, all prompts, and every raw reply: github.com/valbarov/prompt-noise-test

── more in #large-language-models 4 stories · sorted by recency
── more on @claude 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/typos-don-t-break-ll…] indexed:0 read:5min 2026-09-27 · —