# CNT-3 — Copy uses second person and active voice, and keeps sentences to 25 words or fewer

L2 · hybrid · Content & naming

**Fails when:** passive constructions in instructions · third-person references to the user ("Users can…")

## Requirement

UI copy addresses the user directly in second person ("you", "your") and uses active
voice. Sentences are 25 words or fewer. These mechanics are enforced wherever copy
appears as prose — instructional text, help copy, confirmation messages, empty states,
and error messages. Labels and fragments are not sentences and are not in scope for
the word-count or voice rules.

See also: CNT-7 (descriptive copy leads with its purpose before the mechanism) —
split out of this control on 2026-07-03; the purpose rule for titles, descriptions,
and intros lives there now.

## Rationale

People read UI copy at a glance, between other tasks. Long passive sentences make
the user decode the message before acting on it. Second person and active voice keep
the interface conversational and directive: it is clear who does what. The 25-word
ceiling is a lintable proxy for clarity — it does not guarantee good copy, but it
reliably prevents run-on explanations that belong in documentation, not UI.

## Passes when

- Instructions address the user directly: "Select a project to begin."
- Active voice: "We could not save your notes." (not "Your notes could not be saved.")
- No sentence exceeds 25 words.
- Settled product names and quoted programme text carrying a waiver appear verbatim
  without triggering a flag.

## Fails when

- Passive instructions: "The form should be submitted before the deadline."
- Third-person reference to the user: "Users can export their contact list."
- A sentence exceeds 25 words.
- Second-person is absent throughout a screen's instructional copy.

## How to verify

Deterministic half — `checks/content-lint.py`: tokenise copy strings, count
words per sentence, exit 1 on sentences > 25 words. Judgment half — the evaluator
reads the copy for person and voice, as described below.

## Evaluator guidance

Quote the offending sentence in every finding. Do not paraphrase.

**Flag**:

- Passive-voice instructions: "The form should be submitted", "Attendance can be
  marked here", "Members will be notified".
- Third-person references to the user: "Users can…", "Members must…", "Staff
  should…".
- Any sentence exceeding 25 words (the lint check catches these, but flag on sight
  if the check has not run).

**Do not flag**:

- Settled product names (the product's own name, established acronyms) — these are
  identities, not copy failures.
- Quoted policy or programme text: copy that must appear verbatim and carries an
  inline `dx-waive CNT-3 reason="..."` is out of scope — confirm the waiver is
  present and move on.
- Labels and fragments: "Save", "Task Planner", "Due date" are not sentences and
  the 25-word and voice rules do not apply.
- Passive voice used for genuine tone reasons in a negative or sensitive context
  ("Your account has been suspended" is intentionally distancing — prefer active
  reframes, but do not flag if the tone is deliberate and documented).

## Waiver

`rationale` (L2) — inline `dx-waive CNT-3 reason="..."` at the deviation site.
Policy-mandated copy that must appear verbatim is the canonical waiver case.
