> Runs a readability audit on a blog post draft or other multi-paragraph prose, calibrated for readers who read English as a second language. Checks ten categories — overall structure and topic order, paragraph structure, opening paragraph strength, tiered sentence length, passive voice, difficult words, filler and hedging, transitions, variation, and heading hierarchy — and reports a Flesch Reading Ease score with a per-category status. Use when the user asks to check readability, run a readability pass, or asks "is this readable", or proactively as a second pass after a substantial draft is complete. Also invoked by the github-repo, github-profile, and wp-readme-optimizer skills on their generated prose. For short strings (titles, meta descriptions, taglines, bios), use the `metadata-check` skill instead — Flesch and paragraph-level checks don't apply to them.
npx skills add https://github.com/jdevalk/skills --skill readability-check
Run a readability audit on a blog post draft or other multi-paragraph prose. Use when the user asks to check readability ("check readability", "readability pass", "is this readable"), or proactively after a substantial draft is complete — as a second pass after the blog-drafting skill's critical read, not during active drafting.
For short strings — page titles, meta descriptions, schema description fields, FAQ answers, profile bios, repo taglines — use the metadata-check skill. Flesch scoring and the ten-category rubric below don't fit a 5–30 word string and will mislead.
For whether a post earns a ranking — search intent fit, keyphrase placement, E-E-A-T, internal linking — chain into the content-seo skill after this audit. Readability is a prerequisite for ranking, not a substitute.
Always assume the reader reads English as a second language. That's the default, not a fallback.
In technical posts, the technical sections can use domain terms the audience expects — but any non-technical paragraph (introduction, context, conclusion, transitions, examples, analogies) must be readable by a non-technical L2 reader. Setup and motivation paragraphs carry the post for readers who don't know the domain yet; they're where you lose people.
Conversational beats formal. Posts that address the reader directly ("you", "your") and occasionally ask them a question hold L2 readers far better than impersonal prose. Flag long stretches of detached, third-person register in non-technical sections.
Readers scan before they commit. They look at the headings, the first paragraph, and the first sentence of each paragraph, and decide from those alone whether to read on. Search engines and AI systems weight the same elements when working out what a text is about. That's why the audit leans hard on those three places: a post whose headings and first sentences carry the argument works for scanners, full readers, and machines at once.
Read the full post, then report on each criterion below. For every issue, quote the specific text, reference its location (section heading or "intro" / "conclusion"), explain the problem, and suggest a concrete fix.
The post should read as if it was planned before it was written — topics grouped, ordered, and finished one at a time.
A paragraph is a thematic unit, not a visual one. Whitespace placed for looks, with no shift in topic, breaks the reader's map of the text.
The first paragraph carries disproportionate weight — it's what AI systems quote and what readers use to decide whether to keep reading. There's no room for a print-style teaser that warms up to the point; web readers give you seconds. A good intro does three jobs: states the message, hooks the reader, and sets expectations. Check specifically:
Hold the intro to the strictest readability bar in the post: short sentences, active voice, no difficult words. It should be the easiest section to read, not the hardest.
Use tiered thresholds:
Long sentences are especially costly for L2 readers because they have to hold more grammar in working memory. When a long sentence is unavoidable (e.g. a necessary list), check that the sentences around it are short.
Flag passive constructions ("X was done by Y", "it is recommended that..."). For each:
Don't rely on syllable count — it mislabels common words as hard ("information") and simple words as easy ("queue"). Instead, flag a word if:
Examples of words to flag when a simpler option works: *utilize* (use), *leverage* (use), *facilitate* (help), *commence* (start), *subsequently* (then), *ascertain* (find out), *endeavor* (try).
Exceptions:
When a difficult word is genuinely necessary, check that the surrounding sentences are short and simple so the reader has processing room.
Flag words that add length without meaning: *really*, *just*, *very*, *actually*, *basically*, *simply*, *in order to* (→ to), *at this point in time* (→ now), *due to the fact that* (→ because). Also flag hedges that weaken claims without reason: *I think*, *sort of*, *kind of*, *it could be argued that*.
Transitions are the cement between sentences and paragraphs — they tell the reader what relation to expect before they read it. Match the connector to the relation:
Checks:
Writers almost always use too few subheadings, not too many. When in doubt, the fix is to add one.
Report two things.
Flesch Reading Ease (computed: 206.835 − 1.015 × (words/sentences) − 84.6 × (syllables/words)). Target bands:
Flesch is mechanical and misses paragraph-level issues, but it's an objective anchor. If possible, also report the score for the intro and conclusion separately — those should sit at the top of the target band.
Per-category status — for each of the 10 checks above, assign one of:
## Readability audit: [post title]
### Score
- Flesch Reading Ease: [n] ([band])
- Intro: [n] · Conclusion: [n]
- Per-category: 1. ✓ 2. ⚠ 3. ✓ 4. ✗ 5. ⚠ 6. ✓ 7. ✓ 8. ⚠ 9. ✓ 10. ✓
### Summary
[One paragraph: overall readability, the one or two biggest issues, and which audience the post currently serves vs. which it should serve.]
### Issues found
[Grouped by category. For each: location, quoted text, why it's a problem, concrete fix.]
### What's working
[Specific sentences, paragraphs, or transitions that read well — quote them. Vague praise ("the intro is fine") doesn't help the writer calibrate; specific praise ("the analogy in the 'Setup' section lands because it bridges to a non-technical reader") does.]
Take jdevalk/readability-check from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.