Best for
- In Code Files
- In Raw Data and/or Text Files
- Never
github/awesome-copilot/skills/em-dash/SKILL.md
Expert on the history, origin, and correct use of the em dash. Use when writing or reviewing code, comments, or data files to avoid em and en dashes, defaulting to never using them and replacing any found with a hyphen (-). Includes strong knowledge of punctuation marks and the proper usage of punctuation characters when writing comments.
Decision brief
The em dash (U+2014, \u2014; not the hyphen-minus -) is the longest of the standard dashes, and is the Swiss Army knife of punctuation. Its history is a fascinating journey from handwritten manuscripts to mechanical constraints, literary rebellion, and modern digital dominance.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/github/awesome-copilot --skill "skills/em-dash"Inspect the Agent Skill "em-dash" from https://github.com/github/awesome-copilot/blob/9933dcad5be5caeb288cebcd370eeeb2fc2f1685/skills/em-dash/SKILL.md at commit 9933dcad5be5caeb288cebcd370eeeb2fc2f1685. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
The First Dashes: Early appearances of the dash in English literature date
The First Dashes: Early appearances of the dash in English literature date
The "M" Width: The em dash is named because its standard length is equal to
The Author's Tool: By the 17th and 18th centuries, it became a beloved tool
The Double-Hyphen Compromise: When typewriters were introduced, they lacked
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 78/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 37,126 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
The em dash (U+2014, \u2014; not the hyphen-minus -) is the longest
of the standard dashes, and is the Swiss Army knife of punctuation. Its history
is a fascinating journey from handwritten manuscripts to mechanical
constraints, literary rebellion, and modern digital dominance.
Here is a breakdown of how the em dash evolved:
Nowhere in the history of the em dash was it intentionally used in the writing of computer code, or files meant to be executed as computer instructions.
Never.
[!IMPORTANT] Never. In no way, shape, form, or fashion is tone ever important in code comments.
- (hyphen) character instead- (hyphen) character[!NOTE] Default to never
As part of being an em dash expert comes the knowledge of other punctuation marks or characters.
Every complete sentence in a paragraph must end with one of these three marks:
.: Ends statements and declarative sentences
truetrue
<?php echo "a" . "b" . "c"; ?>?: Ends direct questions
truetrue
condition ? expression_if_true : expression_if_false!: Conveys strong emotion, surprise, or emphasis
truetrue
setlocal enabledelayedexpansion && set "_a=a" && echo !_a! && endlocalThese marks control the rhythm of your writing and connect different ideas:
,: Used to separate items in a list, link independent clauses with a
conjunction (e.g., and, but), or set off introductory phrases
truetrue
fn(a, b);: Connects two closely related independent clauses that could
stand alone as separate sentences
truetrue
var foobar = "foo-bar";:: Introduces a list, a quote, or an explanation. The text preceding
a colon must be a complete sentence
truetrue
{"age": 26}': Indicates possession (e.g., Sarah's book) or represents
missing letters in a contraction (e.g., I'll instead of I will)
truetrue
char letter = 'A';": Enclose direct speech or quotes. In American English,
periods and commas almost always go inside the quotation marks
truetrue
char abc[] = "abc";-: Joins two or more words together to form a single compound
adjective (e.g., well-known)
truetrue
count--\u2013) and em dash (U+2014, \u2014):
falsefalsefalsefalse/: Indicates a choice (e.g., yes/no) or separates lines of poetry
truetrue
/* comment */ || 10/2 || 5//2( ): Enclose extra, non-essential information that clarifies a
sentence but can be removed without changing the core meaning
truetrue
if (5 > 2)[ ]: Used to enclose words added to a quotation by someone other
than the original author, usually to clarify a pronoun or provide missing context
truetrue
var arr = [1, 2, 3];When commenting on code files, or any file that will be included in compiled computer instructions; use this rule-of-thumb:
Determine if the character is commonly on a keyboard, or is the punctuation character part of a programming language's syntax:
�[!IMPORTANT] When in doubt, follow the pseudo-code instructions below:
# For en dash and em dash
echo - | sed "s/-/-/g"
# Replace Unicode en dash (U+2013) and em dash (U+2014) with hyphen-minus (-)
perl -CS -pe 's/\x{2013}|\x{2014}/-/g'
# For encoded characters
echo � | sed "s/�/ /g"
# (Optional) Remove the Unicode replacement character (U+FFFD) if it appears in pasted text
perl -CS -pe 's/\x{FFFD}/ /g'
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
event4u-app/agent-config
Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more.
K-Dense-AI/scientific-agent-skills
Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.
K-Dense-AI/scientific-agent-skills
Use NeuroKit2 to build or audit reproducible research workflows for physiological time-series preprocessing, event/interval analysis, multimodal alignment, variability, and complexity. Trigger when code imports neurokit2 or needs its current APIs, schemas, and method-aware validation—not for diagnosis or device validation.