← All AI output fixes

AI adds curly quotes and arrows that break things

Last verified: Claude Sonnet 5.5 ยท October 2026

It looked fine in the chat. Then the script failed on a quote that was not quite a quote, the CSV import choked, or the CMS showed a question mark where an arrow should be. AI writes in typographic characters by default: curly quotes, long dashes, arrows, non-breaking spaces. A person cannot see the difference. Code and databases can. This page gives you a prompt that builds a plain-text output block for exactly the places your text goes.

Part 1 · The generator prompt

Paste this into a fresh Claude or ChatGPT chat. It asks where your output ends up and what has broken before, then hands back a plain-text block you paste at the top of any chat that feeds code, data or a CMS.

Generator prompt
You're going to build my PLAIN-TEXT OUTPUT BLOCK: a reusable instruction block I'll paste into any AI chat whose output I copy into code, spreadsheets, a CMS, a terminal or an email system, so it only uses characters those places accept.

Interview me first, one question at a time. Where I don't know, propose a default and move on:
1. Where does the output go? List every destination (code editor, shell, CSV or spreadsheet, CMS, email tool, database, JSON or YAML).
2. For each one: what has broken before? (a failed import, a script error, a question mark where a symbol should be.)
3. Do I ever want typographic characters, such as in a published article or a slide, or is everything plain?
4. Which characters should always be plain: straight quotes, straight apostrophes, hyphens, three full stops instead of the ellipsis character, the word 'to' instead of an arrow, normal spaces?
5. Should I name the destination in each request (for example 'for: CSV') so you pick the right rules?

Then output my PLAIN-TEXT OUTPUT BLOCK as one copy-paste block containing: (a) the destinations and what each accepts, (b) a character rule per destination (destinations that share rules can be grouped), with the plain replacement for each banned character, (c) a rule for when typographic characters are allowed, (d) a requirement that code, JSON, CSV and shell output goes in a code block with straight characters only, (e) a closing self-audit that scans the output for curly quotes, long dashes, arrows, ellipsis characters and non-breaking spaces before showing me, then appends 'Character check: pass' or lists what it changed.

Keep it under 300 words. After the block, tell me how to check pasted text for hidden characters myself, and the two places this is most likely to still go wrong.

Part 2 · Catch what the block misses

The block stops most of it. These steps catch the rest, because the damage is invisible until something fails.

  1. Name the destination in every request, for example 'for: CSV' or 'for: shell script'. The block applies the matching rule and the AI stops guessing.
  2. Ask for code, JSON, YAML and CSV in a code block. Code blocks keep straight characters far more reliably than prose does, and they make the output easy to copy without surrounding text.
  3. Check suspect text before it goes live. Paste it into a plain-text editor with visible characters turned on, or search for the curly characters themselves: the curly quote, the long dash, the arrow and the ellipsis character.
  4. When something does break, add the exact character to the block with its replacement. The block learns from each failure.
  5. Watch the destination as well. Google Docs, Word and some CMS editors turn straight quotes back into curly ones as you paste or type, so check the text as it is stored, not only as it appeared in the chat.

Part 3 · A worked example

Here is the block the generator hands back, for our running example company, the fictional consultancy Fenwick & Cole.

Example: Fenwick & Cole, a boutique management consultancy
DESTINATIONS: client documents (Google Docs), a CSV import into our CRM, shell scripts, and the website CMS.

GOOGLE DOCS: typographic characters are fine in prose. Curly quotes and en dashes for number ranges are allowed.

CSV, JSON, YAML AND SHELL: straight quotes and straight apostrophes only. Plain hyphens. Three full stops, not the ellipsis character. The word 'to' instead of an arrow. Normal spaces, never non-breaking. Output in a code block with nothing else inside it.

CMS: straight quotes and apostrophes only (the CMS converts them itself). Plain hyphens. No arrows.

REQUESTS: I will say 'for: <destination>' at the start. If I do not, ask which destination before you output.

SELF-AUDIT: before showing output for CSV, JSON, YAML, shell or the CMS, scan it for curly quotes, long dashes, arrows, ellipsis characters and non-breaking spaces and replace each. Then append one line: 'Character check: pass', or list what you changed.

Common questions

Why does AI output curly quotes and arrows?

It writes in the typographic style of published text, so it produces curly quotes, long dashes, ellipsis characters and sometimes arrows and non-breaking spaces. They look right to a reader, but they are different characters from the plain ones keyboards and code expect.

Why do curly quotes break my code or CSV?

Code, shells and CSV parsers expect straight quotes. A curly quote is a different character, so a string never closes, a command fails or a field splits in the wrong place. The error often points at a line that looks perfectly normal.

How do I get AI to use plain quotes and no arrows?

Tell it the destination and the exact characters allowed, with the replacement for each banned one, and ask for code and data in a code block. Store the rules in your project instructions so every chat starts with them. The generator prompt here builds that block.

Can I fix the characters after the fact?

Yes. Most editors can find and replace in one pass: search for the curly quote, the long dash, the arrow and the ellipsis character and swap each for its plain version. Prevention is quicker, but this is the clean-up when something has already broken.

More fixes for AI output

AI output doesn't sound like us

The AI writes competent but generic prose: wrong register, hedging, buzzwords you would never use, sometimes American spelling. Someone rewrites every draft to sound like the company, which cancels out the time saved.

Open the fix

AI forgets my instructions halfway through a chat

The AI follows your rules for the first few replies, then drifts: the format slips, the banned words return, the tone changes. In a long chat you end up repeating yourself.

Open the fix

AI output looks broken when pasted into Google Docs

AI writes documents in Markdown. Pasted with Ctrl+V into Google Docs, the symbols arrive as literal text (##, **, pipes) and someone spends hours reformatting by hand.

Open the fix

The prompt is the aspirin. Stored context is the cure.

The plain-text block you just generated is the kind of rule an AI Brain stores as always-on context, tuned on your real work and kept current as new problems appear. Paste it and this chat keeps to characters your tools accept; installed, every chat starts that way, because the rule lives in the system and not in your memory of what to fix.

What else does AI get wrong that you fix by hand? Browse the other fixes

Keep working from the question you have.

Each tool gives you a first-pass answer in your browser. No email gate and nothing stored.