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.From its SKILL.md
npx -y skills add TheArmagan/skills --skill no-fancy-asciiAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.5 KB, 718 tokens by cl100k_base, as published. Nobody here has run it
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).
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.