Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add exmergo/skill-no-em-dashes --skill no-em-dashesgit clone --depth 1 https://github.com/exmergo/skill-no-em-dashesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/exmergo/skill-no-em-dashes/no-em-dashes)<a href="https://agentmods.dev/skills/exmergo/skill-no-em-dashes/no-em-dashes"><img src="https://agentmods.dev/badge/skills/exmergo/skill-no-em-dashes/no-em-dashes/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/exmergo/skill-no-em-dashes/no-em-dashes"><img src="https://agentmods.dev/badge/skills/exmergo/skill-no-em-dashes/no-em-dashes.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00167 | $0.01839 |
| Opus 5 | $0.00084 | $0.00920 |
| Sonnet 5 | $0.00033 | $0.00368 |
| Haiku 4.5 | $0.00017 | $0.00184 |
Grade A, and why
no-em-dashes scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 121 lines — stays where its author put it; the contents beside it link to each section on GitHub.
No Em Dashes
What this does and why it matters
Guarantee that writing produced for the user contains no em dashes, and, just as important, that it is built out of sentences that never reach for one in the first place.
Two reasons this is worth real care:
- Heavy em-dash use has become one of the most recognizable fingerprints of machine-written text. Many readers now read a dash-laden paragraph as "a bot wrote this." Clean punctuation keeps the writing reading as a person's.
- The em dash quietly encourages a particular cadence: the dramatic pause, the tacked-on reveal, the breathless aside. Removing it forces tighter, more deliberate sentences, which is usually an improvement on its own.
The wrong way to satisfy this skill is to swap one em dash for a lookalike (a spaced hyphen, a double hyphen, a stray en dash). That is the same move wearing a disguise. The right way is to recognize the sentence shape that wanted the dash and rewrite so it is no longer needed.
The rule
- Never type an em dash in prose you write or edit. The character is U+2014. It does not appear in your output.
- Do not smuggle the same pause back in. These are all banned when they do an em dash's job: a double hyphen (
word--wordor--), a hyphen padded with spaces (-), a stray en dash (U+2013) used between words, and the horizontal bar (U+2015). Replace the construction with real punctuation, not with another dash. - Reach for these instead, roughly in this order depending on the job: comma, semicolon, colon, period, parentheses (brackets).
Do not overcorrect
The target is the em dash and its stand-ins acting as sentence punctuation. Nothing else.
- Keep ordinary hyphens in compounds: well-known, state-of-the-art, twenty-one, a five-year-old, mother-in-law.
- Keep hyphens and en dashes in genuine number, date, and score ranges if they appear (for example 10-20, 2019-2024, a 3-1 win), and keep hyphens in code, file paths, URLs, command flags, and math. Never "fix" a minus sign.
- Leave Markdown structure alone. A line of three or more hyphens (a front matter delimiter or a horizontal rule) and a table separator row like
| --- | --- |are formatting, not punctuation. A run of three hyphens used as a pause inside a sentence is still a stand-in, so recast that. - Do not become so dash-averse that you start chopping sentences into choppy fragments. Good prose still flows; you are removing a crutch, not the connective tissue.
What ships with it
9 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- evals/evals.json 5.2 KB
- evals/results/benchmark.md 456 B
- evals/results/em_dash_counts.csv 384 B
- evals/results/examples/breakroom-dialogue.baseline.txt 1.1 KB
- evals/results/examples/breakroom-dialogue.with-skill.txt 1.1 KB
- evals/results/examples/release-delay-email.baseline.txt 1.1 KB
- evals/results/examples/release-delay-email.with-skill.txt 1.0 KB
- evals/results/README.md 2.2 KB
- scripts/check_em_dashes.py 5.6 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 121 lines · 167 tokens per session scan A 069341ca5677
no-em-dashes is a skill published in the GitHub repository exmergo/skill-no-em-dashes (8 stars, last pushed 2mo ago), licensed MIT. It adds 167 tokens to every session and 1,839 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
multai
Intelligent Multi-AI Router & Orchestrator. Submits prompts to 7 AI platforms simultaneously (or sequentially in Cowork) and synthesizes results. Supports two runtimes automatically detected at startup: • Code tab (Mac): Playwright/Browser-Use engine — parallel, full-featured • Cowork tab (Linux sandbox)…
comparator
Generic Comparison Matrix Builder: creates, populates, and maintains weighted XLSX comparison matrices for ANY domain and ANY pair (or set) of solutions. Evidence comes from whatever is available — CIRs produced by MultAI's solution-researcher, documents in the working folder, LLM knowledge, or user description. A CIR…
consolidator
Generic Multi-Source Consolidator: synthesizes content from any set of input sources — documents, research notes, interview transcripts, meeting summaries, AI platform responses, or any mix — into a unified, well-structured report. When invoked with a raw AI responses archive (produced by the orchestrator or a…
landscape-researcher
Market Landscape Researcher: orchestrates a full end-to-end landscape research workflow for any software solution category. Builds a research prompt from a proven template, runs it across 7 AI platforms in parallel (via the orchestrator skill), synthesises the responses into a structured 9-section Market Landscape…
solution-researcher
Orchestrates a simultaneous 7-AI competitive intelligence research round on any software product. Builds a capability-analysis prompt from a template, invokes the orchestrator engine, then invokes the consolidator skill to produce a Consolidated Intelligence Report (CIR). USE THIS SKILL whenever the user asks to…
multai:update
Check for MultAI updates, show changelog, and install if available.