syntax.nested-negation
What it flags
Sentences that stack multiple negations. Two or more negations in the same sentence force the reader to mentally toggle truth values — a known burden for readers with aphasia and attention-fragile readers (ADHD), and a load multiplier for everyone reading under cognitive pressure. Plain-language guidelines (FALC, CDC Clear Communication Index, plainlanguage.gov) recommend rewriting double negatives as positives.
At a glance
| Category | syntax |
| Default severity | warning |
| Default weight | 2 |
| Condition tags | aphasia, adhd, general |
| Languages | EN · FR (language-specific counting) |
| Source | src/rules/nested_negation.rs |
Detection
Count the negations per sentence; report sentences whose count exceeds max_negations.
- English — sum of word-boundary matches against the language’s negation list (
not,no,never,none,nothing,nobody,nowhere,neither,nor,cannot,without) plus occurrences of the contractedn'tsuffix (don't,won't,isn't,doesn't, …). - French — pair-based bipartite counting. Each
ne/n'clitic contributes one negation and pairs with its nearest second-position particle (pas,rien,jamais,plus,personne,aucun,aucune,guère,nulle part) within a short window; the pairing just consumes the particle to avoid double-counting. Unpaired particles in ane-sentence contribute one more — this catches forms likerienused as a nominal negative subject. Guards:pas/plusnever count when unpaired (too ambiguous outsidene …);rienpreceded bydeis treated as the idiomde rienand skipped; particles in a sentence with noneclitic are skipped too (plus de courage,personne d'autre). Standalonessans/nonalways count.
Parameters
| Key | Type | dev-doc | public | falc |
|---|---|---|---|---|
max_negations | int | 3 | 2 | 1 |
Examples
lucid-lint reports; the rewrite is always yours.
English
Three negations → three affirmatives, colour-matched across the rewrite. The not simply drops — the simplification shows.
Before (flagged):
We do not say nothing is never possible.
Three negations (not, nothing, never).
What lucid-lint check --profile public reports:
warning input.md:1:1 Sentence stacks 3 negations (maximum 2). Rewrite as a positive statement or split the negations across separate sentences. [syntax.nested-negation]
After (your rewrite):
We say something is possible.
French
Passes under public:
Nous ne sommes pas prêts.
Bipartite ne ... pas counts as one negation.
Before (flagged):
Nous ne disons pas que rien n’est jamais possible.
Three negations: ne…pas (one bipartite), rien (unpaired), n'…jamais (one bipartite).
What lucid-lint check --profile public reports:
warning input.md:1:1 Sentence stacks 3 negations (maximum 2). Rewrite as a positive statement or split the negations across separate sentences. [syntax.nested-negation]
After (your rewrite):
Nous disons que quelque chose est possible.
Suppression
See also
References
See References for the full bibliography.