Prose Style (Adom House Style)
Public Made by Adomby adom
The Adom house writing style. Apply to ALL user-facing copy you write: NO em-dashes (use a comma, colon, or period), and cut the tics that make text read as AI-generated (delve, seamless, robust, leverage, 'it's not just X, it's Y', 'in today's world'). Write plainly, like a person. Read before writing any README, wiki page, release note, chat message, UI string, or docs.
name: prose-style description: > The Adom house writing style, applied to ALL user-facing copy you write: NO em-dashes (use a comma, colon, or period), and cut the tics that make text read as AI-generated (delve, seamless, robust, leverage, "it's not just X, it's Y", "in today's world"). Write plainly, like a person. Read before writing any README, wiki page, release note, chat message, UI string, or docs. Enforce with the prose-lint CLI.
Adom House Style
We ship a lot of copy that customers and teammates read: wiki pages, README files, release notes, chat announcements, UI strings, component descriptions. Much of it is drafted by an AI, and it too often reads that way. This is the standard for all of it. The goal is simple: it should read like a person wrote it.
Two things give AI writing away, and both are fixable:
- Em-dashes. Models reach for them constantly. People rarely do.
- A house dialect of favorite words and sentence shapes that signal "generated."
Fix both and the copy sounds human.
Rule 1: No em-dashes
Do not use the em-dash (—), the en-dash in prose (–), or a spaced double-hyphen
(--) as a substitute. Replace with whatever the sentence needs:
- A comma for a light pause:
the PCL runs real boards, not simulations. - A colon to introduce:
one job: catch em-dashes before they ship. - A period for two thoughts:
It failed. Here is why. - Parentheses for a true aside:
the watchdog (every two minutes) pulls master.
| Instead of | Write |
|---|---|
real data — feeding back into our models |
real data that feeds back into our models |
it works — fast |
it works, and it's fast |
three sources — JLCPCB, DigiKey, Mouser |
three sources: JLCPCB, DigiKey, Mouser |
The en-dash is fine in a genuine number range (2-5 V, pins 3-7); a hyphen reads
just as clearly there. Everywhere else, rewrite.
Rule 2: Cut the tell-words
These words cluster in AI copy. Prefer the plain version, or delete.
| Tell | Use instead |
|---|---|
| delve into | dig into, look at |
| leverage / utilize | use |
| seamless / seamlessly | smooth, simple, cleanly |
| robust | solid, reliable |
| in-depth | detailed, thorough |
| cutting-edge / state-of-the-art | new, modern |
| showcase | show |
| foster / facilitate | build, help |
| streamline | simplify, speed up |
| empower / unlock / unleash | let, enable |
| myriad / plethora | many |
| meticulous | careful |
| boasts | has |
| game-changer / revolutionize | (just say what changed) |
| realm / landscape / tapestry / testament | (name the actual thing) |
Hype adjectives (powerful, seamless, revolutionary, world-class) usually add
nothing. If a claim is true, a concrete number or fact proves it better than an
adjective: not "blazing-fast search" but "search returns in under 20 ms."
Rule 3: Kill the cadence
Certain sentence shapes are pure AI tell. Rewrite them into a plain statement.
- "It's not just X, it's Y." -> say what it is.
It's a search index over three distributors. - "Not only X but also Y." -> a plain list or two sentences.
- "In today's fast-paced world..." -> delete the opener, start with the point.
- "When it comes to X..." -> delete; start with X.
- "That's where X comes in." -> say what X does.
- "Whether you're a beginner or an expert..." -> cut it.
- "X plays a pivotal role in..." -> say what X actually does.
- "Look no further" / "Say goodbye to..." -> ad-copy cliches; delete.
- Rule-of-three padding ("fast, reliable, and scalable") -> keep the one that's true and specific.
- Rhetorical fragments ("The result? ...") -> write the full sentence.
How to write instead
- Lead with the point. First sentence says what the thing is or does. No windup.
- Be concrete. Names, numbers, file paths, real behavior. Specifics read as human; abstractions read as generated.
- Short, active sentences. Prefer "the watchdog pulls master" over "master is pulled by the watchdog."
- Say "use", "help", "start", "show". Plain verbs over Latinate ones.
- Cut filler. "in order to" -> "to". "a variety of" -> "several" or a count. Drop "very", "really", "simply", "actually".
- It's fine to sound like an engineer. Dry and precise beats polished and vague.
Litmus test: read it aloud. If you would not say it to a colleague at their desk, rewrite it.
Where this does NOT apply
- Code, commands, and identifiers. A
--flag, a2-5 Vrange, a filename, a URL. Leave them exactly as they are. - Direct quotes from a person or a datasheet. Quote faithfully, em-dashes and all.
- Established product names.
Enforce it: prose-lint
prose-lint is the deterministic checker for everything above. Run it before you
ship copy:
prose-lint README.md # or a wiki page, release notes, any file
cat draft.md | prose-lint # stdin works too
prose-lint --fix README.md # apply the safe 1:1 word swaps automatically
It reports line:col, the rule, and a suggestion, and it is code-aware (it will not
flag a flag in a code span or a real number range). Em-dashes are the hard rule and
fail the check; tell-words and cadence are advisory, because judgment still matters.
--fix only handles the unambiguous word swaps. Em-dashes and cadence you rewrite
by hand, using this guide.
Wire it in wherever copy is generated or published: before adom-wiki page publish,
in README and component-page generators, and before an announcement goes to chat.
---
name: prose-style
description: >
The Adom house writing style, applied to ALL user-facing copy you write: NO
em-dashes (use a comma, colon, or period), and cut the tics that make text read
as AI-generated (delve, seamless, robust, leverage, "it's not just X, it's Y",
"in today's world"). Write plainly, like a person. Read before writing any
README, wiki page, release note, chat message, UI string, or docs. Enforce with
the prose-lint CLI.
---
# Adom House Style
We ship a lot of copy that customers and teammates read: wiki pages, README files,
release notes, chat announcements, UI strings, component descriptions. Much of it
is drafted by an AI, and it too often reads that way. This is the standard for all
of it. The goal is simple: **it should read like a person wrote it.**
Two things give AI writing away, and both are fixable:
1. **Em-dashes.** Models reach for them constantly. People rarely do.
2. **A house dialect** of favorite words and sentence shapes that signal "generated."
Fix both and the copy sounds human.
## Rule 1: No em-dashes
Do not use the em-dash (`—`), the en-dash in prose (`–`), or a spaced double-hyphen
(` -- `) as a substitute. Replace with whatever the sentence needs:
- A **comma** for a light pause: `the PCL runs real boards, not simulations.`
- A **colon** to introduce: `one job: catch em-dashes before they ship.`
- A **period** for two thoughts: `It failed. Here is why.`
- **Parentheses** for a true aside: `the watchdog (every two minutes) pulls master.`
| Instead of | Write |
|---|---|
| `real data — feeding back into our models` | `real data that feeds back into our models` |
| `it works — fast` | `it works, and it's fast` |
| `three sources — JLCPCB, DigiKey, Mouser` | `three sources: JLCPCB, DigiKey, Mouser` |
The en-dash is fine in a genuine number range (`2-5 V`, `pins 3-7`); a hyphen reads
just as clearly there. Everywhere else, rewrite.
## Rule 2: Cut the tell-words
These words cluster in AI copy. Prefer the plain version, or delete.
<!-- prose-lint-disable (the table and examples below name the banned words on purpose) -->
| Tell | Use instead |
|---|---|
| delve into | dig into, look at |
| leverage / utilize | use |
| seamless / seamlessly | smooth, simple, cleanly |
| robust | solid, reliable |
| in-depth | detailed, thorough |
| cutting-edge / state-of-the-art | new, modern |
| showcase | show |
| foster / facilitate | build, help |
| streamline | simplify, speed up |
| empower / unlock / unleash | let, enable |
| myriad / plethora | many |
| meticulous | careful |
| boasts | has |
| game-changer / revolutionize | (just say what changed) |
| realm / landscape / tapestry / testament | (name the actual thing) |
Hype adjectives (`powerful`, `seamless`, `revolutionary`, `world-class`) usually add
nothing. If a claim is true, a concrete number or fact proves it better than an
adjective: not "blazing-fast search" but "search returns in under 20 ms."
## Rule 3: Kill the cadence
Certain sentence shapes are pure AI tell. Rewrite them into a plain statement.
- **"It's not just X, it's Y."** -> say what it is. `It's a search index over three distributors.`
- **"Not only X but also Y."** -> a plain list or two sentences.
- **"In today's fast-paced world..."** -> delete the opener, start with the point.
- **"When it comes to X..."** -> delete; start with X.
- **"That's where X comes in."** -> say what X does.
- **"Whether you're a beginner or an expert..."** -> cut it.
- **"X plays a pivotal role in..."** -> say what X actually does.
- **"Look no further" / "Say goodbye to..."** -> ad-copy cliches; delete.
- **Rule-of-three padding** ("fast, reliable, and scalable") -> keep the one that's true and specific.
- **Rhetorical fragments** ("The result? ...") -> write the full sentence.
<!-- prose-lint-enable -->
## How to write instead
- **Lead with the point.** First sentence says what the thing is or does. No windup.
- **Be concrete.** Names, numbers, file paths, real behavior. Specifics read as human;
abstractions read as generated.
- **Short, active sentences.** Prefer "the watchdog pulls master" over "master is
pulled by the watchdog."
- **Say "use", "help", "start", "show".** Plain verbs over Latinate ones.
- **Cut filler.** <!-- prose-lint-disable -->"in order to" -> "to". "a variety of" -> "several" or a count.
Drop "very", "really", "simply", "actually".<!-- prose-lint-enable -->
- **It's fine to sound like an engineer.** Dry and precise beats polished and vague.
Litmus test: read it aloud. If you would not say it to a colleague at their desk,
rewrite it.
## Where this does NOT apply
- **Code, commands, and identifiers.** A `--flag`, a `2-5 V` range, a filename, a
URL. Leave them exactly as they are.
- **Direct quotes** from a person or a datasheet. Quote faithfully, em-dashes and all.
- **Established product names.**
## Enforce it: prose-lint
`prose-lint` is the deterministic checker for everything above. Run it before you
ship copy:
```
prose-lint README.md # or a wiki page, release notes, any file
cat draft.md | prose-lint # stdin works too
prose-lint --fix README.md # apply the safe 1:1 word swaps automatically
```
It reports `line:col`, the rule, and a suggestion, and it is code-aware (it will not
flag a flag in a code span or a real number range). Em-dashes are the hard rule and
fail the check; tell-words and cadence are advisory, because judgment still matters.
`--fix` only handles the unambiguous word swaps. Em-dashes and cadence you rewrite
by hand, using this guide.
Wire it in wherever copy is generated or published: before `adom-wiki page publish`,
in README and component-page generators, and before an announcement goes to chat.