Skip to main content
A Singapore Government Agency Website
CNT-13L2 · recommendedhybridContent & naming

Copy is free of spelling and proofreading errors and uses British English spelling

Fails when: a misspelling or typo in user-facing copy ("recieve", "seperate", "teh") · US spelling where British is house style ("color", "organize", "center") · a doubled word or copy-paste artifact left in shipped text ("the the", "TODO")

Requirement

User-facing copy is spelled correctly, proofread, and uses British English spelling. Three things this catches:

  1. No misspellings or typos. "recieve", "seperate", "occured", "teh".
  2. British spelling, not American. Use the British form: "organise" not "organize", "colour" not "color", "centre" not "center". The high- frequency families are -ise (not -ize), -our (not -or), -re (not -er), and -ogue (not -og), plus common one-offs ("licence", "defence", "programme", "grey").
  3. No proofreading artifacts. A doubled word ("the the"), a stray placeholder ("TODO", "lorem"), or a copy-paste seam left in shipped text.

This applies wherever copy appears — headings, labels, buttons, helper text, error messages, empty states, and running prose. It grades orthography only: whether each word is spelled correctly and in the house dialect, whatever the sentence is doing.

See also: this control makes writing.mdx §10 ("Check for grammar and spelling") enforceable — it had no owning control before. The grammar half of §10 is already owned elsewhere: CNT-3 (voice, length), CNT-8 (nominalisations), CNT-9 (clarity mechanics), and CNT-12 (sentence case). CNT-13 does not re-grade any of those; it only checks spelling.

Rationale

A spelling error breaks trust faster than any style slip — it reads as carelessness on a tool people rely on. Dialect consistency matters too: mixing "color" and "colour" across a product looks unfinished. The rule is a strong default with narrow, legitimate exceptions (a quoted source, a branded name, a policy term that is spelled a fixed way), so it is L2: a deviation carries a recorded reason, not a block.

Passes when

  • "Organise your projects before the quarter starts." (British spelling)
  • "Sync to the centre record." ("centre", not "center")
  • "You'll receive a confirmation." ("receive" spelled correctly)
  • A branded or policy term keeps its fixed spelling, even where it differs from the house dialect, under an inline waiver.

Fails when

  • A misspelling in user-facing copy: "You will recieve a copy", "Enter your details seperately".
  • US spelling where British is house style: "Choose a color", "Organize your files", "Open the center panel".
  • A doubled word or leftover artifact: "Save the the draft", a stray "TODO" in shipped copy.

How to verify

Hybrid. Deterministic half — checks/content-lint.py reads two marker-delimited maps from this file at runtime, so the lint and the catalog never diverge. Each map is wrong -> right; a case-insensitive, word-boundaried hit on a wrong key flags the token and suggests the right spelling. Scoped to multi-word user-facing copy (like CNT-5 and CNT-6), so a bare one-word identifier in code is not flagged — a single-word label is left to the evaluator.

US → British spelling map — flagged word-boundaried, any position:

color -> colour, colors -> colours, colored -> coloured, coloring -> colouring, behavior -> behaviour, behaviors -> behaviours, favorite -> favourite, favorites -> favourites, favor -> favour, honor -> honour, labor -> labour, neighbor -> neighbour, organize -> organise, organized -> organised, organizing -> organising, organization -> organisation, recognize -> recognise, recognized -> recognised, customize -> customise, customized -> customised, personalize -> personalise, prioritize -> prioritise, apologize -> apologise, analyze -> analyse, analyzed -> analysed, capitalize -> capitalise, categorize -> categorise, emphasize -> emphasise, summarize -> summarise, center -> centre, centered -> centred, centers -> centres, theater -> theatre, fiber -> fibre, liter -> litre, defense -> defence, offense -> offence, gray -> grey, canceled -> cancelled, canceling -> cancelling, traveler -> traveller, modeling -> modelling, labeled -> labelled, enroll -> enrol, fulfill -> fulfil, skillful -> skilful,

Common misspellings — flagged word-boundaried, any position:

recieve -> receive, recieved -> received, seperate -> separate, seperately -> separately, occured -> occurred, occurence -> occurrence, definately -> definitely, accomodate -> accommodate, wich -> which, teh -> the, adress -> address, calender -> calendar, cancelation -> cancellation, existance -> existence, neccessary -> necessary, occassion -> occasion, publically -> publicly, recomend -> recommend, refered -> referred, succesful -> successful, tommorow -> tomorrow, untill -> until,

Judgment half — the evaluator proofreads for what no list catches: contextual typos and homophones ("their/there", "form/from", "its/it's"), doubled words, wrong-word slips that are themselves valid words, and any leftover placeholder in shipped copy.

Evaluator guidance

Quote the offending word in every finding and give the correct spelling.

Flag:

  • A misspelled word in user-facing copy.
  • US spelling where the British form is house style ("color" → "colour", "organize" → "organise").
  • A homophone or wrong-word slip a spell-check would miss ("form" for "from").
  • A doubled word or a leftover placeholder ("TODO", "lorem").

Do not flag:

  • A word inside quoted or waived text, a code span, or a table cell — the lint skips these; the evaluator does too.
  • A branded, product, or policy term with a fixed spelling (a dx-waive CNT-13 reason covers a legitimate exception).
  • Grammar, word choice, sentence structure, or capitalisation — those are CNT-3, CNT-8, CNT-9, and CNT-12, not this control.
  • A US spelling inside a quoted external source or a code identifier that must match an API (e.g. the CSS color property).

Waiver

rationale (L2) — inline dx-waive CNT-13 reason="..." at the deviation site. A branded or policy term whose fixed spelling differs from the house dialect is the canonical waiver case.

Also available as Markdown · catalog.yaml