Download

Prose Lint

The deterministic house-style linter for Adom copy. It flags em-dashes and the tics that make AI-written text read as AI-written, so anything we ship (READMEs, wiki pages, release notes, chat announcements, UI strings) sounds like a person wrote it.

prose-lint is the mechanical half of the house style. The judgment half lives in the prose-style skill; read that for how to rewrite what this flags.

Install

adom-wiki install adom/prose-lint

Ships as part of adom/core, so a normal Adom workstation already has it. Needs Node 16+ (already present on Adom containers).

Usage

prose-lint README.md                  # lint one or more files
prose-lint docs/*.md                   # globs
cat page.md | prose-lint               # or stdin
prose-lint --fix README.md             # apply safe 1:1 word swaps in place
prose-lint --strict page.md            # fail on ANY finding, not just em-dashes
prose-lint --json page.md              # { status, data, hints[] } for machines

Exit codes: 0 clean or soft-only, 1 hard findings (em-dashes / spaced --), 2 usage error. --strict makes any finding fail (useful in CI / publish gates).

What it flags

Severity Rule Example
hard em-dash, en-dash-in-prose, spaced -- a game-changer — really
warn tell-words delve, seamless, robust, leverage, utilize, showcase, in-depth, myriad
warn boilerplate cadence "it's not just X, it's Y", "in today's world", "when it comes to", "plays a pivotal role"
info filler "in order to", "a variety of", empty intensifiers

It is markdown- and code-aware. It will not flag a --flag in a code span, a number range like 2-5 V, a URL, or YAML front matter, so it is safe over mixed prose + code files.

Wiring it into a publish flow

Run it non-blocking before publishing and show the findings:

prose-lint page.md || true   # advisory: print findings, never abort the publish

Or gate hard in CI with --strict when you want zero tolerance.