Readable prose
SkillCommunicationGuides your agent to write clear, easy-to-read prose for pull request bodies, commit messages, docs, and replies.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Readable prose skill
About this skill
Write prose a reviewer can read once. Use when writing a PR body, a commit message, a walkthrough, a design doc, a review comment, or a chat reply that runs past a couple of sentences.
What this skill tells your AI
The instructions your AI receives, as published by dxos/dxos in .agents/skills/readable-prose/SKILL.md and read by ahel’s review.
The reader's time is the scarce resource, and review is the bottleneck. Every sentence spends it. A paragraph that takes two passes to parse has already failed, however accurate it is.
Two loads to keep down:
- Parse load: work to get through a sentence. Length, clause nesting, punctuation standing in for structure.
- Ground load: work to follow the argument. A term used before it is introduced, a claim with no evidence, a detour the reader has to hold open.
The moves
- Lead with the answer. The finding, the decision, the number. Context after, and only what changes what the reader does.
- One idea per sentence. If the reader has to backtrack, split it or drop a clause. Past ~30 words, assume it needs splitting.
- Say the mechanism, not the feeling. Not "the retry makes this more robust" but "the second attempt runs on a warmed socket". If you cannot restate a sentence as a fact, an instruction or a number, cut it. A sentence that would sit unchanged in another project's docs says nothing about this one.
- Ground a term before leaning on it. Name the idea and the word together, once, then reuse the same word. Synonym cycling reads as three concepts.
- Active voice, named actor. "The compiler validates queries", not "queries are validated".
- Plain word over fancy. use over utilize, help over facilitate, many over numerous, if over in the event that, add over wedge in, base over substrate, way over vector.
- Structure carries structure. A heading, a list or a table where the shape repeats; prose where there is an argument. Colons and dashes stitching clauses together are structure the reader has to reconstruct.
- Cut the connective em dash. End the sentence or use a comma. (This repo's older docs are full of them, which is the habit, not the standard. Leave them where they are; do not add more.)
- Bold leads end in a period and add new detail.
**Schema in TypeScript.** Tables live in one file.is fine.**Performance:** performance improvedis the line written twice. - Sentence case headings. No decorative emoji. Straight quotes.
Words that mark generated text
Cut on sight: additionally, crucial, delve, enduring, enhance, fostering, garner, groundbreaking, interplay, intricate, leverage, pivotal, robust, seamless, showcase, tapestry, testament, underscore, utilize, vibrant.
Rewrite: "serves as" / "stands as" / "boasts" to "is" or "has"; "it is important to note that" to nothing; "in order to" to "to"; "not just X but Y" to the point itself; "could potentially possibly" to "may".
Drop: sycophancy ("great question"), closing summaries that restate the document, "the future looks bright" endings, vague attribution ("experts believe", "some argue") with no name attached.
Watch the rule of three. Three items because there are three, not because three sounds finished.
Before you send
Reread your own paragraphs and ask, for each:
- What does this tell the reader to do or know? No answer means cut it.
- Where does the reader have to backtrack? Split there.
- Which claim has no evidence in the diff, the log or the run? Attach one or drop the claim.
- What would make this obviously generated? Fix that.
Length is earned by content. A three-line PR body for a three-line change is the right size.
Checking it
scoreWalkthrough in packages/plugins/plugin-github/src/walkthrough/score.ts grades a document
against several of these mechanically (sentence length, generated vocabulary, inline headers, title
case, prose density). It was written for walkthroughs, and it reads any markdown.
Credits
Adapted from unslop and principle-minimize-reader-load
(https://github.com/wittjosiah/agent-skills), writing-for-agents and the writing-shape grounding
model (https://github.com/mattpocock/skills), and the pstack principle skills
(https://github.com/cursor/plugins).
Signals
- GitHub stars
- 525
- Forks
- 49
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
readable-prose- Source
- github.com/dxos/dxos