house-style-linter
Reidify's copy rules as a linter: 25 deterministic checks for em dashes, stock phrases, unsourced numbers and other things a machine can decide.
- Status
- Live
- Launched
- Licence
- MIT
- Language
- Python
One command, copied from the repo.
Install house-style-linter: git clone https://github.com/reidifydesign/house-style-linter && cd house-style-linter && python -m house_style_linter examples/before.md
reidifydesign/house-style-linter
What it does
Point it at a file, a folder of .md, .markdown and .txt files, or standard input. It runs 25 checks in four groups: mechanics (em and en dashes, curly quotes, exclamation marks), language (stock brand claims, agency filler, hype claims, rationed words), claims (unsourced attributions, unsourced numbers, income and urgency hooks) and shape (flat rhythm, triple lists). Errors always fail the run. Warnings are heuristics that need a human decision, and fail the run only with --strict. It makes no model calls, needs no network, and uses only the Python standard library.
It decides mechanics and patterns. It cannot tell whether a claim is true, whether a line would work for any other company, or whether copy sounds like a person. Those stay with a human. Measured on its 26 synthetic fixture files, precision is 98.5% and recall is 98.5%, which the README calls a regression floor, not a general accuracy claim. The default banned phrases and rationed words are Reidify's own, and a config file replaces them for another house style.
Why it exists
Reidify is a design studio, and our copy standard is strict: no em dashes, no curly quotes, no stock brand claims, no number without a source. Most of that can be decided by a program, so we wrote it as one and keep the human read for what a program cannot judge.
We built it to check our own copy, and its README passes it.