# No Fancy Ascii

> Write text using only characters a person types on a normal keyboard. Use this WHENEVER producing or editing human-readable text: website copy, UI strings, headlines, taglines, marketing, READMEs, docs, code comments, commit messages, emails, social posts, or translations (any language). Decorative Unicode (middle dot ·, bullets •, curly quotes “ ” ‘ ’, ellipsis …, arrows → ▸ ▼, non-breaking spaces) reads as machine-generated, because people type straight quotes, three periods, and plain separators. Replace each fancy character with its plain keyboard equivalent; do not swap one ornament for another. Preserve characters a language genuinely needs (Turkish İ ı ş ğ ç ö ü, accents, non-Latin scripts), currency signs (₺ € £ $), and anything a code/data/math context requires. For dashes specifically, see the no-em-dashes skill.

- Skill: `thearmagan/no-fancy-ascii` (Agent Skill)
- Install (CLI): `npx skillmds@latest add thearmagan/no-fancy-ascii`
- Raw SKILL.md: https://api.skillmd.com/api/skills/thearmagan/no-fancy-ascii/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: TheArmagan (https://skillmd.com/u/thearmagan)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/thearmagan/no-fancy-ascii

---


# No fancy ASCII

A person types what is on their keyboard. Curly quotes, middle dots, ellipsis
glyphs, and little arrow symbols mostly appear when text was generated by a model
or run through a formatter that "prettifies" punctuation. So when a reader sees
them, the writing feels machine-made, even when the words are good. Plain keyboard
characters read as written by a human.

The rule: if you would not produce the character by pressing one key (or an
obvious Shift combo) on a normal keyboard, do not put it in prose.

## Replace these

| Fancy | Use instead |
| --- | --- |
| `“ ” ‘ ’` smart quotes | straight `"` and `'` |
| `…` ellipsis glyph | three periods `...` |
| `·` middle dot, `•` bullet | reword, a comma, a period, or a plain `-`; for real lists use list markup |
| `→ ← ▸ ▶ ▼ ► » «` arrows/guillemets | drop them, use a real icon/SVG, or plain text |
| `–` en dash, `—` em dash | see the `no-em-dashes` skill |
| `′ ″` primes used as quotes | straight `'` and `"` |
| `×` used as "x" or "by" in prose | `x` or the word `by` |
| non-breaking space, zero-width space, soft hyphen | a normal space, or nothing |

## Keep these

These are not ornaments, so leave them alone:

- Letters a language needs: `İ ı ş ğ ç ö ü`, accented Latin, and any non-Latin
  script. Stripping these breaks the words.
- Currency: `₺ € £ ¥ $`.
- `© ® ™` where they are genuinely standard, such as a footer copyright line.
- Emoji, when it is a deliberate voice choice the user wants.
- Any symbol a code token, data format, or math expression actually requires.

## Separators

`Brand · Type` and footer rows like `A · B` are where the middle dot sneaks in. A
person writes those with a comma, a period, a plain hyphen `-`, or a pipe `|`.
Pick one and stay consistent.

- Before: `APEX Autohaus · Showroom`
- After: `APEX Autohaus, Showroom`

- Before: `© 2026 · Built by Jane`
- After: `© 2026. Built by Jane`

## The trap to avoid

Do not trade one fancy character for another: `·` becoming `•`, or `"` becoming
`«`, solves nothing. Go all the way down to the plain key. The same applies to
"prettifying" later: if an editor or formatter offers to turn `"` into `“ ”` or
`...` into `…`, decline.

## Before you deliver

Scan the text for any character that is not a plain keyboard key. For each one,
ask: is it a letter this language needs, a currency sign, or required by code? If
not, replace it with the keyboard equivalent and read the result back to confirm
it still looks right.

Pair this with `no-em-dashes` (dashes) and `no-filler-phrases` (the broader set
of AI writing tells).

