Requirement
Remove words with low informational value ONLY if it does not reduce clarity and readability:
- Empty openers (e.g. "There is," "There are," "It is," "This is," and "In order to")
- Filler words (e.g. "such," "just," "that," "really," "very," and "please")
- Articles and conjunctions (e.g. "a," "the," "and")
Applies to all user-facing copy: instructions, helper text, error messages, empty states, confirmations.
Rationale
People scan the interface between other tasks, and every no-information word is scan cost — an empty opener delays the point of the sentence; filler blurs the instruction it decorates. Removing them is the cheapest clarity gain available, which is why the rule carries its own exception: cut only when clarity survives.
Boundary with SLP-9: SLP-9 catches how AI writing sounds — buzzwords, phrase filler, negative parallelism, copula avoidance, forced triads. CNT-6 catches no-op words in any copy regardless of author. The lint lists stay disjoint, so one token never fires two controls; a string can fail both, but never twice for the same words.
Passes when
- "Incorrect postal code. Enter valid postal code for example 123456." (openers and filler already cut)
- "Save changes. Changes are saved as a draft until you submit."
- "Please note this action cannot be undone" rewritten as "This can't be undone."
- A retained word is doing real work: "Please" softening a sensitive moment, "that" needed for the sentence to parse.
Fails when
- "There is a problem with your form." ("A field needs your attention" says it sooner.)
- "Just enter your postal code to really get started." (filler carrying no meaning)
- "It is required that you select a project." ("Select a project.")
How to verify
Deterministic half (lint): checks/content-lint.py reads two marker-delimited
lists from this file at runtime, so the lint and the catalog never diverge.
Empty openers — flagged only at the start of a sentence:
there is, there are, it is, this is
Filler words — flagged word-boundaried, any position:
just, really, very, please
Deliberately NOT in the lint lists:
- "In order to" — already on SLP-9's filler-phrase list, which flags it anywhere in a sentence; listing it here too would fire two controls on one token. It remains part of this control's requirement for human readers.
- "such," "that," and the articles and conjunctions ("a," "the," "and") — far too context-dependent to lint; a scan of every "the" would be all noise. These are the evaluator's half, together with the clarity exception on every hit.
Evaluator half: the harder calls need judgment — see below.
Evaluator guidance
Quote the offending copy in every finding, and show the cut version so the clarity exception can be judged on the spot.
Flag:
- A sentence-initial empty opener where the sentence reads fine without it.
- Filler words (such, just, that, really, very, please) that can be deleted with no loss of meaning.
- Droppable articles and conjunctions in space-tight surfaces (labels, buttons, table headers) where the fragment reads cleanly without them.
Do not flag:
- Any cut that hurts clarity or readability — the exception is part of the rule, not a waiver.
- "Please" softening a sensitive or destructive moment; kindness is doing work there (Kind Utility).
- "That" as a relative pronoun the sentence needs to parse ("the team that meets on Mondays").
- "It is" / "This is" openers carrying real weight ("This is permanent." in a destructive confirmation).
- Words inside quoted or waived text, code spans, and tables — the lint already skips these; the evaluator does too.
This is L2 — a deliberate deviation carries an inline rationale
(dx-waive CNT-6 reason="..."), not a rewrite war.