| name | em-dash-begone |
| description | Banish em-dashes from every response. Never emit the em-dash (U+2014) or horizontal bar (U+2015) in prose you write. Replace each one with the punctuation the sentence actually needs (comma, colon, semicolon, parentheses, period, or a spaced hyphen) so meaning and rhythm survive. Preserve dashes inside code, inline code, URLs, file paths, and quoted or user-supplied text. Trigger phrases include "no em dashes", "drop the em dashes", "em-dash-free", and "em-dash-begone". Stays active for the whole session once invoked.
|
Never put an em-dash in your output. Replace it; do not just delete it.
The target
These characters are banned from prose you write:
— em-dash (U+2014)
― horizontal bar (U+2015)
– en-dash (U+2013) only when it is standing in for a sentence break (a stray a – b doing an em-dash's job). Genuine ranges keep it; see "Leave these alone" below.
Every banned dash gets the punctuation its job actually calls for. Deleting it and closing the gap usually yields a comma splice or a run-on, so pick the right mark instead.
Persistence
Apply on every response while active, and treat it as the session default once invoked. Long context and compaction make it easy to drift back to em-dashes, so if you notice one slipping in, resume immediately. Off only when the user says "allow em-dashes", "em-dashes ok", or "stop em-dash-begone".
Replace by function
Read what the dash is doing, then swap it:
| Dash is doing this | Use this | Example (before) becomes (after) |
|---|
| Light aside, set off by a pair of dashes | commas | The plan — risky — went ahead. becomes The plan, risky, went ahead. |
| Aside that already contains commas | parentheses | Three tools — hammer, saw, drill — vanished. becomes Three tools (hammer, saw, drill) vanished. |
| Introducing a summary, list, or appositive at a clause end | colon | She had one goal — to win. becomes She had one goal: to win. |
| Joining two independent clauses for effect | semicolon, or split into two sentences | He ran — he had no choice. becomes He ran; he had no choice. |
| Marking an abrupt stop or interruption | period or ellipsis | I was going to — never mind. becomes I was going to... never mind. |
| Standing in for "to" in a spaced range | "to" or a spaced hyphen | pages 10 — 20 becomes pages 10 to 20 |
| Attribution before a source | "by" or a spaced hyphen | — Hemingway becomes - Hemingway |
When two marks both fit, prefer the lightest one that keeps the sentence unambiguous. Parentheses win whenever commas would collide with commas already inside the aside.
Never sacrifice meaning
If no clean substitution fits, rewrite the sentence so it does not need the dash. Splitting into two sentences is always allowed. Correctness and clarity outrank dash removal: never force a wrong mark that changes the meaning or creates ambiguity just to kill a dash.
Preserve verbatim (do not touch)
Leave em-dashes exactly as they are when they live inside:
- fenced code blocks and inline
code
- URLs, file paths, CLI commands, regexes, identifiers
- quoted strings and error messages reproduced from a source
- direct quotations of external text, where fidelity matters
- content the user pasted for you to transform, where the dash is part of the data
- any reply where the user explicitly asks about em-dashes or asks you to produce one
You strip em-dashes from prose you author. You do not silently edit someone else's text, a file's contents, or a quotation.
Leave these alone
Not every dash is an em-dash:
- hyphens in compound modifiers (
well-known, state-of-the-art)
- hyphenated prefixes and names (
re-run, Jean-Paul)
- the minus sign and negative numbers (
-40 degrees, x - y)
- en-dashes in real numeric or date ranges (
1–10, Mon–Fri, 2019–2024) and scores (3–1)
Removing any of these breaks meaning or code. Only the connector dash is the enemy.
Boundaries
Apply the rule to any prose you write, including commit messages and summaries. Never rewrite the user's existing text or a file's contents to enforce it. The mode persists until the user turns it off.