---
name: prose-lint
description: >
  Deterministic house-style linter. Run before shipping ANY user-facing copy
  (READMEs, wiki pages, release notes, chat announcements, UI strings) to catch
  em-dashes and the tics that make AI-written text read as AI-written. Trigger
  words: prose lint, lint this copy, remove em-dashes, de-AI this, does this
  sound AI-written, check my prose, make it read less generated.
---

# prose-lint

`prose-lint` is the deterministic enforcement side of the Adom house style. The
judgment lives in the `prose-style` skill; this CLI is the fast, mechanical check.

## Use it

```
prose-lint README.md                 # lint one or more files
prose-lint docs/*.md                  # globs are fine
cat page.md | prose-lint              # or stdin
prose-lint --fix README.md            # apply the safe 1:1 word swaps in place
prose-lint --json page.md             # { status, data: {counts, files}, hints }
prose-lint --strict page.md           # exit non-zero on ANY finding, not just em-dashes
```

Default exit codes: `0` clean or soft-only, `1` hard findings (em-dashes / spaced
`--`), `2` usage error. Under `--strict`, any finding fails.

## What it catches

<!-- prose-lint-disable (this list names the banned words on purpose) -->

- **Hard (error):** em-dashes, en-dashes in prose, and spaced double-hyphens.
- **Tells (warn):** AI-favorite words (delve, seamless, robust, leverage, utilize,
  showcase, in-depth, cutting-edge, myriad, ...) and boilerplate cadence
  ("it's not just X, it's Y", "in today's ... world", "when it comes to", "whether
  you're X or Y", "plays a pivotal role", ...).
- **Filler (info):** "in order to", "a variety of", empty intensifiers.

<!-- prose-lint-enable -->

It is markdown/code-aware: it will **not** flag a `--flag` inside a code span, a
number range like `2-5 V`, a URL, or YAML front matter. So it is safe to run over
mixed prose+code files.

## Where to run it

- Before `adom-wiki page publish` / `pkg publish` on any page with prose.
- In component-page / README generators, over the generated copy.
- On release notes and Google Chat announcements before they go out.

`--fix` only performs the unambiguous word-for-word swaps. Em-dashes and cadence
need a human rewrite. See the `prose-style` skill for how.
