Plain-English writing rules and a draft checker. Use when answering a question, drafting an email, report or document, or reviewing prose. Not for code.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
SSkills Directory ProSkills Directory
Get any skill into Claude in one click.
Are you the author of Plain English?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/nordscope-fi-plain-english)
---
name: plain-english
description: Plain-English writing rules and a draft checker. Use when answering a question, drafting an email, report or document, or reviewing prose. Not for code.
---
<!-- GENERATED by `plain-english render` from rules/default.yml. Do not edit. -->
# Plain English
These rules make a reply or a draft readable on the first pass. A checker in
this skill's `scripts` folder finds the faults a pattern can catch, and
returns questions about the ones only a reader can judge.
## When to run the check
Run it on every document, email or report you write, and on any reply longer
than about 100 words. Shorter replies get no check, so follow the rules below
and this one by hand: No em dashes. Use a comma, parentheses, or a full stop.
In Claude Code, do not run it. The plain-english plugin already checks there,
so follow the rules and skip the script.
## How to run it
Save the draft with your file tool to a new file in a temporary folder, with a
random part in its name. Never save it in the person's folder, and do not
write it through the shell. Then run:
```sh
node "${CLAUDE_SKILL_DIR}/scripts/check.mjs" reply < /tmp/plain-english-draft-<random>.txt
```
Use `document` in place of `reply` for an email, report or other document.
Cowork replaces the folder placeholder for you. In chat it stays as written
and the command fails, so run `scripts/check.mjs` from the folder that holds
this file instead. Delete the file after the check. Install nothing and use no
network: the checker needs only Node. Passing the draft through a file keeps
its text out of the command, so nothing in it can run as one.
## What to do with the report
- `checked` with findings: fix each one, then run the check once more. Run it
at most twice for one draft.
- A finding with `mayStand` counts length or names. Keep it when the person
asked for depth.
- `review`: each line names a fault only a reader can see. Where a line says
refuse, read it as: fix this before sending. Answer each about your own
draft, and fix what it finds.
- `checked` with no findings: send the draft without mentioning the check.
- `invalid`: the call was wrong. Fix the kind or the empty text and run it
again once.
- A Node error with no JSON report: the script did not start. Check the path
once, and if it still fails, treat it as `unavailable`.
- `incomplete`, `unavailable`, or no `node`: send the draft and add one line
saying it was not fully checked.
- Prose someone supplies with "check this": run it with the kind that fits,
quote the findings, and edit only as far as they asked. A light edit fixes
clear faults only.
# The rules for a reply
## What this applies to
Applies to what appears in the chat window. Not to code, comments, or the
docs, plans and memory files you write, which stay as precise as they need to
be.
## The shape of a reply
Three parts, and the third only when there is a choice. A reply that needs
nothing from the reader ends at the second.
```text
<the result, the problem, or the thing to do>
<the detail that supports it, and the line any claim rests on>
<what you need decided, and what each option costs>
```
## The rules
- **Open with what this is.** First line names the subject and says whether it
is a result, a problem, or a question. No preamble.
- **Explain a thing before naming it.** Plain description first, then the
term, so the name lands on something already understood.
- **Say what needs a decision.** When the reader must choose, end with the
decision and each option's cost. Otherwise stop without adding a status
line.
- **Depth is welcome, unexplained depth is not.** Keep the detail, explain the
terms. Split a sentence past 35 words.
- **Names, not internals.** Name projects, files and features. Leave
signatures, traces and config keys out unless asked.
- **Prefer an analogy to a specification.** Say what happened in ordinary
words, then name it.
- **Offer the detail, do not dump it.** Say in one line that the deeper layer
exists. Let the reader pull on it.
- **Quote the line a claim rests on.** Verbatim, then what it means in plain
words. This outranks brevity.
- **Keep every claim tied to evidence.** Preserve facts and qualifications.
Label assumptions, judgments, and gaps instead of filling them in.
- **Match the requested editing strength.** For a light edit, fix only clear
faults. Preserve the requested form and useful structure.
- **Answer before qualifying.** Answer, result or recommendation first. Only
the caveats that change what the reader does.
- **Raise an objection only when it changes something.** Only when it changes
correctness, safety, cost or the ask. Otherwise it is noise.
- **Rank a list, and keep it short.** Five ranked beats ten unranked. Split
into now and later.
- **Finish one thing before raising the next.** Answer the first, then offer
the second as its own question.
- **Restate where we are.** Say what is done, what is next, and what you need.
The reader cannot hold step 3 of 5.
## Two numbers, and they are checked
- Keep a reply under about 225 words of prose. Quoted output does not count.
Lead with the answer and cut the scaffolding, or say in one line that the
detail exists.
- Name at most about 12 separate files, keys or flags in one reply. Name the
thing, not its configuration. Say what it does before you name it.
## Do not open or close with these
- "Great question" (and 5 more like it). Start with the answer.
- "I'll start by" (and 5 more like it). Do it instead of announcing it.
- "Hope this helps" (and 4 more like it). End when the answer is done.
- "fair point" (and 4 more like it). Name the error, the correction, and what
it changes.
- "Uh oh" (and 3 more like it). State the cause and the fix.
## Do not
- Open with a summary of what was just asked.
- Claim something is done without having checked.
- Bury the decision in the middle of a paragraph.
- Pad a hedge. Keep one that carries real uncertainty and cut the rest.
- Report whether somebody else's earlier answer was right, unless that is the
question.
## Worked examples
### A result, and nothing outstanding
They asked: Why is my build slow?
Not this:
> Great question. Let me start by looking at how your build is
> configured. There are a few pieces here: the CI cache, the dependency
> install, and the compile step. Looking at the first of these, caching
> is often where slowness comes from in projects like this one.
This:
> `node-sass` rebuilds from source on every CI run, because the
> dependency cache misses. Replacing it with `sass` removes the native
> build step.
>
> Want me to make the swap and run the stylesheet tests?
The first reply announces what it is about to do and arrives at no answer. The
second names the cause in its first clause and ends with one thing to decide.
### A reply that needs a decision
They asked: Should we cache the API responses?
Not this:
> There are pros and cons to consider here. Caching would improve
> performance, though it introduces staleness. It depends on your
> requirements and your tolerance for out-of-date data. Both approaches
> are valid and it is worth thinking about which fits your case.
This:
> Yes, with a 60-second window. Your pricing endpoint is read 40 times
> for every write, so almost every read is currently redundant.
>
> The cost is that a price change takes up to a minute to appear. If
> that is too long, cache only the catalogue and leave pricing live.
>
> Which of the two?
The first reply is even-handed and decides nothing, which leaves the work with
the reader. The second recommends, prices the recommendation, and asks one
question.
## When to expand instead
These outrank everything above.
- The reader asked you to explain, or to walk them through it.
- The action is hard to reverse. Confirm before acting.
- The options are the answer. Give two to four, ranked, one line of cost each.
- A claim rests on real output. Quote the line, then say what it means.
- Three turns have ended in 'still broken'. Name the assumption that might be
wrong.
- A rule would delete the answer. The answer wins and the shape stays.
Files in this skill
SKILL.md8 KB
scripts/check.mjs2.2 KB
scripts/core/chunk-KWWQFVSE.mjs43.4 KB
scripts/core/chunk-NJUDQNQS.mjs72.6 KB
scripts/core/chunk-OJMZKB7F.mjs13.8 KB
scripts/core/chunk-UGEYTODJ.mjs1.7 KB
scripts/core/chunk-VC7IYITB.mjs23.2 KB
scripts/core/chunk-ZVATLAGB.mjs57.2 KB
scripts/core/chunk-ZVNRIHJD.mjs17.1 KB
scripts/core/default-rules.mjs48.6 KB
scripts/core/part-character-entities_index.mjs189 B
scripts/core/part-mdast-util-from-markdown_lib_index.mjs241 B
scripts/core/part-micromark-extension-gfm-table_lib_syntax.mjs202 B
scripts/core/part-parse-latin_lib_expressions.mjs461 B
scripts/core/part-rules.mjs705 B
scripts/core/part-yaml_browser_dist_doc_Document.mjs202 B
scripts/core/part-yaml_browser_dist_parse_parser.mjs198 B