simple-english skill
Rewrite text to ASD-STE100 Simplified Technical English.
Is the simple-english skill safe?
Clean: nothing in its files matched our rules. We read 3 files in the folder on 2026-10-25.
No findings.
Install the simple-english skill
A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.
git clone --depth 1 https://github.com/NousResearch/hermes-agent.git /tmp/hermes-agent mkdir -p ~/.claude/skills cp -r /tmp/hermes-agent/optional-skills/creative/simple-english ~/.claude/skills/simple-english
In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub
The instructions your agent would load
SKILL.md as published, without the frontmatter. Read it on GitHub
Simple English: Write Like an Aerospace Manual
Write technical text with the rules of ASD-STE100 Simplified Technical English. STE is the controlled language that aerospace and defense manufacturers use for maintenance documentation. The rules exist so that a tired reader who is not a native English speaker cannot misread an instruction. They remove the usual signs of AI-generated text as a side effect: long sentences, synonym rotation, hedges, filler, and decorative clauses.
Write for that tired reader. Each sentence must survive one read.
How to use it in Hermes
The text usually arrives one of three ways:
- Inline. The user pastes the text into the message. Rewrite it in place and reply with the result.
- File. The user points at a file (README, runbook, docs page). Use readfile to load it, then patch for targeted section rewrites or writefile for a full rewrite. Never touch code blocks, identifiers, or quoted errors (see Untouchables).
- Check mode. The user asks you to audit text for STE compliance instead of rewriting it. Report each violation as rule number + offending text + compliant rewrite, using references/checklist.md.
This skill differs from humanizer: humanizer restores natural human voice; simple-english enforces a controlled language for technical instructions. For docs, runbooks, and error messages use this skill. For blog posts, essays, and personal writing use humanizer. Do not apply both to the same text.
Your Task
When asked to write or rewrite technical text:
- Select the mode (pragmatic or strict, below).
- Classify each passage as procedural or descriptive. Every other rule depends on this.
- Correct your vocabulary before drafting. In strict mode, use make sure that for the check/verify/confirm/ensure concept — the dictionary rejects all four as verbs. In pragmatic mode, pick one and keep it. Pick ONE noun for config/settings (all are valid technical nouns — pick one and keep it). Use no other word for these concepts in the whole document.
- Apply the rules from the catalog below.
- Do the self-check before you deliver. This step is not optional.
- Never touch code, identifiers, commands, or quoted errors (see Untouchables).
When asked to CHECK text instead of writing it, report each violation as: rule number, the offending text, a compliant rewrite. Cite only rule numbers that exist in this file. Do not cite rule numbers from memory: the numbering is unintuitive and models invent it (tested — an agent without this file cited "Rule 3.1: short sentences"; the real Rule 3.1 is about verb forms).
Two Modes
Step 1: Classify the Text
Do not mix the two in one passage. A "Getting started" section is procedural. An "Architecture" section is descriptive. A note inside a procedure is descriptive (25-word limit, no imperative).
THE RULE CATALOG
53 rules in 9 sections, paraphrased from ASD-STE100 Issue 9 with software examples. The official wording is in the free standard at asd-ste100.org.
Section 1 — Words (Rules 1.1-1.14)
In pragmatic mode, rules 1.5, 1.8, and 1.12 do the heavy lifting: your domain vocabulary is legal. The ones agents break are 1.7, 1.11, and 1.13.
Before: You can webhook the event, then do a deploy. After: Send the event to the webhook. Then deploy the service.
Section 2 — Multi-word nouns (Rules 2.1-2.2)
Break long noun chains with prepositions (of, on, in, for):
Before: the connection pool timeout configuration value After: the timeout value for the connection pool
Section 3 — Verbs (Rules 3.1-3.7)
Approved modals: can, will, must. Banned: should, would, may, might, could (Rule 3.2). The standard rejects "could" even for possibility: write "an explosion can occur", never "could occur". For "should": a requirement becomes "must"; a suggestion is stated as fact or deleted. This matters double for agent instructions — models read "should" as optional.
Before: The migration has completed and the table is being rebuilt. After: The migration is complete. The database rebuilds the table.
Before: The flag can be set in the config file, making restarts unnecessary. After: You can set the flag in the config file. Then a restart is not necessary.
Before: The temperature must be adjusted. After: Adjust the temperature.
Section 4 — Sentences (Rules 4.1-4.5)
Rule 4.2 is the anti-terseness rule. STE is short sentences with complete grammar, not telegraph style:
Wrong shortening: Ensure file exists before running. STE: Make sure that the file exists before you run the command.
Section 5 — Procedural writing (Rules 5.1-5.5)
Before: You'll want to grab the API key from the dashboard before configuring the client, which you can do under Settings. After: Get the API key from the dashboard, under Settings. Then configure the client with this key.
Section 6 — Descriptive writing (Rules 6.1-6.6)
No imperative in descriptive text. Descriptions explain; procedures instruct.
Section 7 — Safety instructions (Rules 7.1-7.3)
Never bury the instruction after the explanation. The pattern transfers directly to destructive CLI flags, irreversible migrations, and dangerous API options.
Before: Note that data loss may occur in some circumstances if the destructive flag happens to be enabled when running against production. After: CAUTION: Do not use the --force flag against production. The flag deletes rows that do not match the source.
Section 8 — Punctuation and word count (Rules 8.1-8.7)
Rule 8.6 matters for software text: sqlpipe run --config sqlpipe.yaml in backticks is quoted text and counts as one word. Long identifiers do not blow your sentence budget.
Section 9 — Writing practices (Rules 9.1-9.4, GR-1 to GR-8)
General recommendations GR-1 to GR-8: keep the conjunction "that", be careful with "with", give pronouns clear referents, prefer "this + noun" over bare "this", avoid false friends, avoid Latin abbreviations, use inclusive language, and use the possessive apostrophe form only when you are sure it is correct (GR-8: if unsure, do not use it — non-native readers find it hard).
GR-6 for software docs: "e.g." → "for example", "i.e." → "that is", and delete "etc." — name the items or write "and more".
VOCABULARY DISCIPLINE
The official dictionary (~900 approved words, ~1,200 banned words with alternatives) is copyrighted by ASD and is not reproduced here. Its mechanics apply without it: one word, one meaning, one part of speech.
Known part-of-speech rulings, useful as patterns:
The modal ladder
Slop-to-simple substitutions
This table is ours, not the ASD dictionary. It maps the words AI-generated docs overuse to plain replacements. If the word carries no fact, delete it instead of replacing it.
Consistency pass
Collapse synonym rotations to one term each (Rules 1.11, 9.4). The two lists below work differently.
Technical nouns — not in the dictionary. Pick one and keep it consistent (both modes):
- config / configuration / settings / options → pick one
Dictionary rulings — the standard has already chosen. Use the approved word (strict mode); pick one and keep it consistent (pragmatic mode):
Untouchables
These are technical names (Rules 1.5, 8.6). Leave them exact, even when they break vocabulary rules:
- Code blocks, inline code, identifiers, CLI commands, flags, file paths
- Quoted error messages and log lines
- Product names, API endpoint names, config keys
- Numbers with units — each counts as one word in the sentence limit
Beyond Documentation
Same rules, different targets. Full adaptations in references/use-cases.md:
- Error messages: state what happened (simple past), the cause if known, then the fix as an imperative. No "Oops", no "Please ensure", no apology filler.
- Runbooks: STE's home turf. Imperative steps, conditions first, warnings before the step.
- Incident reports: simple past only. "We have identified an issue that may have impacted" becomes "Between 14:02 and 14:31 UTC, 12% of requests failed."
- Release notes: breaking changes follow the warning pattern — command first, risk second.
- Agent instructions (prompts, AGENTS.md): a system prompt is a procedure for a reader that cannot ask questions. One instruction per sentence, no "should", condition first.
- Translation prep: STE's original job. One meaning per word plus complete grammar removes most translation ambiguity.
Self-Check Before You Deliver
More skills from NousResearch/hermes-agent
- A1passwordSet up op CLI, sign in, and read or inject secrets.
- A3-statement-modelBuild integrated IS/BS/CF financial workbooks in Excel.
- AaccelerateRun PyTorch training across GPUs with minimal changes.
- Cactual-setupSet up Actual Computer (actual.inc) inference in Hermes.
- Aadversarial-ux-testRoleplay a hostile user to find and triage UX pain points.
- Aagent-merge-conflict-arbiterNeutral arbiter for merge conflicts between two agents.
- AagentmailUse when an agent needs AgentMail CLI email inboxes.
- Aai-presenter-videoMake a verified AI presenter video from script + image.
- AairtableAirtable REST API via curl. Records CRUD, filters, upserts.
- AanatomyExplain an idea as an interactive isometric machine figure.
- Cantigravity-cliOperate the Antigravity CLI (agy): plugins, auth, sandbox.
- Aapple-notesManage Apple Notes via memo CLI: create, search, edit.