Rules reference
The three default rules and what they catch.
faircopy ships with three rules enabled by default. They target writing tells that weaken marketing prose.
no-em-dash
Bans the em-dash character (—, U+2014).
Example violation:
The product ships this week — we hope.
Fix: split at the break. Use a period, semicolon, or parenthesis.
The product ships this week. We hope.
Em-dashes are a stylistic tell. Sentences with them often hide two shorter sentences that would read more directly on their own.
Options:
rules: {
'no-em-dash': ['error', {
flagEnDash: true, // also flag – (U+2013). Default false.
flagDoubleHyphen: true, // also flag --. Default false.
}],
}
no-weasel-words
Bans reinforcement adverbs that defend a claim instead of making it.
Default words: actually, truly, really, literally.
Example violation:
Our platform is fast.
If you write that sentence and your instinct is to stiffen it with “our platform is really fast”, the real problem is that “fast” on its own reads weak. Delete the adverb; if the sentence now reads unconvincing, rewrite the claim.
Options:
rules: {
'no-weasel-words': ['error', {
words: ['actually', 'truly', 'really', 'literally', 'just', 'simply'],
}],
}
no-rhetorical-scaffolding
Catches two formulaic patterns:
X is Y, not Zconstructions.Without X... With X...sentence pairs.
Both spend a clause denying a straw man or performing a reveal instead of landing the claim. Drop the setup. Keep the claim.
Example violations:
- “Our platform is a workflow, not a product.”
- “Without structure, chaos. With structure, clarity.”
Fix: state the claim directly.
- “Our platform organizes the team’s daily workflow.”
- “Structure turns chaos into clarity.”
Options:
rules: {
'no-rhetorical-scaffolding': ['error', {
allowIsNotConstruction: false, // disable pattern 1
allowWithoutWithConstruction: false, // disable pattern 2
extraPatterns: ['\\bnot\\s+your\\s+\\w+\\b'], // extra regex patterns
}],
}