Claude Code Tools

@faircopy/plugin

official

Claude Code plugin for faircopy — stop hook + faircopy skill

Version
1.14.0
Last Updated
2026-05-11
Source
official

faircopy

A copy linter for landing pages. Catches writing-quality bugs in the prose that ships inside your codebase: em-dashes, weasel words, and rhetorical scaffolding patterns.

error[no-em-dash]: use a sentence break instead of an em-dash
  ┌─ src/pages/index.astro:12:38

12 │   <p>Omni Aura builds the memory layer — the part that matters.</p>
  │                                          ^

  = help: Split the sentence. Use a period, a semicolon, or a new sentence.

Install

npm i -D faircopy @faircopy/astro

Configure

// faircopy.config.ts
import { defineConfig } from '@faircopy/config'
import { astro } from '@faircopy/astro'

export default defineConfig({
  files: ['src/**/*.astro'],
  ignore: ['src/content/blog/**'],
  adapters: [astro()],
  rules: {
    'no-em-dash': 'error',
    'no-weasel-words': 'error',
    'no-rhetorical-scaffolding': 'error',
  },
})

Run

npx faircopy lint

CI

- uses: actions/checkout@v4
- run: npm ci
- run: npx faircopy lint --format github

--format github emits ::error workflow commands so diagnostics appear as inline PR annotations.

Claude Code plugin

Install the plugin to get a stop hook (blocks the turn if lint errors are found) and a skill (Claude runs faircopy automatically when editing marketing copy):

/plugin marketplace add github.com/omniaura/faircopy
/plugin install faircopy

Rules

RuleDefaultDescription
no-em-dasherrorBan in marketing copy
no-weasel-wordserrorBan actually, truly, really, literally
no-rhetorical-scaffoldingerrorBan X is Y, not Z and Without X / With X patterns

Optional NLP rules live in @faircopy/rules-nlp. Load the ruleset once to configure its rules with bare IDs:

export default defineConfig({
  rulesets: ['@faircopy/rules-nlp'],
  rules: {
    'no-expletive-openers': 'warn',
    'no-filter-words': 'warn',
    'no-future-promises': 'warn',
    'no-hedge-words': 'warn',
    'no-jargon': 'warn',
    'no-passive-voice': 'warn',
    'no-weak-modals': 'warn',
    'no-stacked-adjectives': 'warn',
    'no-nominalized-phrases': 'warn',
    'no-pronoun-led-claims': 'warn',
    'no-buzzword-stacks': 'warn',
    'no-vague-quantifiers': 'warn',
    'no-meaningless-modifiers': 'warn',
    'no-superlative-claims': 'warn',
  },
})

Use a package-qualified ID if two loaded rulesets expose the same bare rule name.

RuleDescription
@faircopy/rules-nlp/no-expletive-openersFlag sentence openings like There are
@faircopy/rules-nlp/no-filter-wordsBan filter phrases like I think and it seems
@faircopy/rules-nlp/no-future-promisesFlag future-tense promises like will help you
@faircopy/rules-nlp/no-hedge-wordsFlag hedge words like kind of and somewhat
@faircopy/rules-nlp/no-jargonFlag business jargon like leverage and circle back
@faircopy/rules-nlp/no-passive-voiceFlag likely passive-voice constructions
@faircopy/rules-nlp/no-weak-modalsFlag hedged modal claims like can help and might improve
@faircopy/rules-nlp/no-stacked-adjectivesFlag noun phrases with multiple adjectives before the noun
@faircopy/rules-nlp/no-nominalized-phrasesFlag nominalized X of Y phrases like optimization of onboarding
@faircopy/rules-nlp/no-pronoun-led-claimsFlag vague sentence openers like This helps and It enables
@faircopy/rules-nlp/no-buzzword-stacksFlag sentences overloaded with abstract benefit nouns
@faircopy/rules-nlp/no-vague-quantifiersFlag bare quantifiers without numeric anchors
@faircopy/rules-nlp/no-meaningless-modifiersFlag intensifiers like very and obviously that add no information
@faircopy/rules-nlp/no-superlative-claimsFlag unproven superlatives like best and world-class

Packages

PackagePurpose
faircopyMeta-package — install this
@faircopy/clifaircopy binary
@faircopy/coreEngine: types, config loader, file resolver, rule runner
@faircopy/astroAstro adapter
@faircopy/rules-defaultDefault ruleset
@faircopy/rules-nlpOptional NLP-powered ruleset
@faircopy/configdefineConfig() helper
@faircopy/pluginClaude Code plugin

License

MIT