skill
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.
← Commit history
Publish 0.1.0
7 files changed
+230
SKILL.mdadded+130@@ -0,0 +1,130 @@+---+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.
docs/HERO.mdadded+1@@ -0,0 +1 @@+Put a 1200x630 `hero.png` in this folder. It is the billboard reused on the page header, the homepage, and the screensaver. Until it exists, `adom-wiki pkg lint` reports the hero as the one outstanding item.
docs/hero.htmladded+41@@ -0,0 +1,41 @@+<!doctype html><html><head><meta charset="utf-8"><style>+ * { margin:0; padding:0; box-sizing:border-box; }+ html,body { width:1200px; height:750px; }+ body { background:#0a0e13; color:#e9eef5; font-family:-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;+ overflow:hidden; position:relative; }+ .glow { position:absolute; inset:0;+ background:radial-gradient(900px 500px at 84% 16%, rgba(88,166,255,.16), transparent 60%),+ radial-gradient(760px 520px at 10% 94%, rgba(0,230,220,.15), transparent 60%); }+ .wrap { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; padding:76px 84px; }+ .kicker { font-size:19px; letter-spacing:.30em; text-transform:uppercase; font-weight:700;+ background:linear-gradient(90deg,#00e6dc,#58a6ff 55%,#bc8cff); -webkit-background-clip:text; background-clip:text; color:transparent; }+ h1 { font-size:92px; font-weight:800; letter-spacing:-.03em; margin:14px 0 6px; line-height:1.0; }+ .sub { font-size:33px; font-weight:600; color:#aeb9c6; }+ .accent { height:7px; width:230px; border-radius:6px; margin:26px 0 34px;+ background:linear-gradient(90deg,#00e6dc,#58a6ff 55%,#bc8cff); }+ .card { position:absolute; right:70px; bottom:74px; width:620px; background:#0f151d; border:1px solid #1e2a37;+ border-radius:16px; box-shadow:0 40px 90px rgba(0,0,0,.55); overflow:hidden; }+ .bar { height:38px; background:#131b25; border-bottom:1px solid #1e2a37; display:flex; align-items:center; gap:8px; padding:0 14px;+ font-family:-apple-system,'Segoe UI',sans-serif; }+ .bar span{margin-left:2px; font-size:14px; color:#7d8b9a; letter-spacing:.02em}+ .row { padding:18px 22px; font-size:22px; line-height:1.5; border-bottom:1px solid #1a232e; }+ .row:last-child{border-bottom:none}+ .tag { font-size:13px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; display:block; margin-bottom:6px }+ .bad .tag{ color:#ff6b6b } .good .tag{ color:#00e6dc }+ .bad .txt{ color:#8593a1; text-decoration:line-through; text-decoration-color:#ff6b6b88 }+ .good .txt{ color:#e9eef5 }+ .em{ color:#ff6b6b; font-weight:800 }+</style></head><body>+ <div class="glow"></div>+ <div class="wrap">+ <div class="kicker">Adom Wiki · Global Skill</div>+ <h1>Adom House Style</h1>+ <div class="accent"></div>+ <div class="sub">Write like a person,<br>not a model.</div>+ </div>+ <div class="card">+ <div class="bar"><span>the same sentence, de-AI'd</span></div>+ <div class="row bad"><span class="tag">AI-written</span><span class="txt">real data <span class="em">—</span> a seamless, robust pipeline that leverages ML.</span></div>+ <div class="row good"><span class="tag">House style</span><span class="txt">real data that feeds a simple, reliable pipeline. It uses ML.</span></div>+ </div>+</body></html>
docs/hero.pngadded⋯ 1 unchanged line ⋯
install.shadded+7@@ -0,0 +1,7 @@+#!/bin/sh+set -e++# Symlink your install targets back into the module dir so edits+# propagate and reinstalls do not clobber, e.g.:+# ln -sfn "$PWD/bin/run" "$HOME/.local/bin/run"+echo "installed"
package.jsonadded+46@@ -0,0 +1,46 @@+{+ "slug": "prose-style",+ "title": "Prose Style (Adom House Style)",+ "type": "skill",+ "version": "0.1.0",+ "description": "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.",+ "tags": [+ "skill",+ "writing",+ "house-style",+ "copy"+ ],+ "dependencies": {+ "adom/prose-lint": "^0.1.0"+ },+ "discovery_triggers": [+ "write the readme",+ "write release notes",+ "write the wiki page",+ "draft an announcement",+ "make this sound less AI",+ "remove em-dashes",+ "house style",+ "does this read as AI-written"+ ],+ "discovery_pitch": "Read before writing any user-facing copy so it sounds like a person, not a model: no em-dashes, no AI-tells.",+ "sample_prompts": [+ {+ "label": "Write a README",+ "prompt": "write the README for this tool"+ },+ {+ "label": "De-AI a draft",+ "prompt": "this reads AI-generated, rewrite it in our house style"+ }+ ],+ "scripts": {+ "install": "./install.sh",+ "uninstall": "./uninstall.sh"+ },+ "hero": {+ "headline": "Adom House Style",+ "subhead": "No em-dashes. No AI slop. Write like a person.",+ "screenshot": "docs/hero.png"+ }+}
uninstall.shadded+5@@ -0,0 +1,5 @@+#!/bin/sh+set -e++# Undo what install.sh did (remove the symlinks you created).+echo "uninstalled"