# Agent Skill to Force Docs in ASD-STE100 Simplified Technical English

> Source: <https://github.com/AminBlg/SimpleEnglish>
> Published: 2026-07-30 19:34:27+00:00

An agent skill that forces LLMs to write docs in [ASD-STE100 Simplified Technical English](https://www.asd-ste100.org/):

the controlled language aerospace has used since 1983 so a tired mechanic *cannot* misread an instruction.

AI slop dies as a side effect. 💀

[See it](#-before--after) ·
[Install](#-install) ·
[The rules](#-the-rules) ·
[Not just docs](#-not-just-docs) ·
[Receipts](#-receipts) ·
[FAQ](#-faq)

Works in every harness that speaks the [Agent Skills standard](https://agentskills.io): Claude Code, Cursor, VS Code Copilot, OpenAI Codex, Gemini CLI, Goose, OpenCode, and ~25 more. One folder, no dependencies, MIT.

Left column is **real unedited Claude output**. Right column is the same model with the skill loaded.

| 🤖 Without skill | |
|---|---|
|
|
|
|
|
|

```
┌── measured: 6 Claude models × 8 tasks × 2 conditions, 96 runs ──┐
│  STE violations per 100 words     ▼ 72.9%  (every model won)    │
│  output tokens                    ▼ on all 6 models             │
│  mean sentence length             11.2 → 9.7 words              │
│  "seamlessly" survived            0                             │
└─────────────────────────────────────────────────────────────────┘
```

More rewrites in [ examples/before-after.md](/AminBlg/SimpleEnglish/blob/main/examples/before-after.md): READMEs, error messages, incident reports, release notes.

```
npx skills add AminBlg/SimpleEnglish
```

That is it. The [skills CLI](https://github.com/vercel-labs/skills) detects your agents (Claude Code, Cursor, Codex, Copilot, Gemini CLI, and more) and installs for the ones you pick. Try before installing:

```
npx skills use AminBlg/SimpleEnglish@simple-english
```

No SKILL.md support at all? Paste [ prompts/system-prompt.md](/AminBlg/SimpleEnglish/blob/main/prompts/system-prompt.md) into your system prompt, AGENTS.md, or

`.cursorrules`

. There is even a ~60-token version for tight budgets.Then ask for any technical writing, or say: *"rewrite this with simple-english"*.

**Claude.ai** (paid plans) supports skills natively:

- Download the skill file: open
[SKILL.md](https://github.com/AminBlg/SimpleEnglish/raw/main/skills/simple-english/SKILL.md)and save it (Ctrl+S / Cmd+S). - In claude.ai, go to
**Settings → Capabilities** and turn on code execution. - Go to
**Settings → Customize → Skills → Upload** and upload the saved`SKILL.md`

. - Toggle the skill on. Done. Claude applies it when you ask for technical writing.

**ChatGPT**: no skill support, so use the prompt version. Copy the block from [ prompts/system-prompt.md](/AminBlg/SimpleEnglish/blob/main/prompts/system-prompt.md) into

**Settings → Personalization → Custom Instructions**, or into the instructions of a Project or Custom GPT.

**Gemini**: create a Gem and paste the same block into its instructions.

**Any other chatbot**: attach or paste `prompts/system-prompt.md`

into the chat and say "apply this to everything you write for me".

53 numbered rules, 9 sections, written in 1983 by people whose readers die when a sentence is ambiguous. The ones doing the heavy lifting:

| Rule | What it kills 🪦 |
|---|---|
| Max 20 words per instruction, 25 per description | The run-on sentence |
| One word = one meaning, whole document | check/verify/confirm/validate roulette |
| Simple tenses only | "has been updated" → "we updated" |
| No "-ing" verb forms | ", making it easy to..." clauses |
| Active voice | "it should be noted that" |
| No should/would/may/might | Hedging. (`can` , `will` , `must` survive) |
| Condition BEFORE command | Trailing "...if the flag is set" that readers execute too late |
| One instruction per sentence | Steps nobody can follow at 2 a.m. |
| Keep articles, keep "that" | Telegraph style. STE is short, not terse |

Full paraphrased set with software examples: [ SKILL.md](/AminBlg/SimpleEnglish/blob/main/skills/simple-english/SKILL.md). Yes, this README breaks half of them. Marketing is explicitly out of STE scope. The skill knows that and stays in the docs. 😌

The skill ships adaptations ([ use-cases.md](/AminBlg/SimpleEnglish/blob/main/skills/simple-english/references/use-cases.md)) for:

- 🚨
**Error messages**: what happened → why → what to do, in that order - 📟
**Runbooks**: STE's home turf; a runbook IS a maintenance manual - 🧯
**Incident reports**: simple past murders "we have identified an issue that may have impacted" - 📣
**Release notes**: breaking changes as warnings: command first, risk second - 🤖
**Your AGENTS.md / prompts**: a system prompt is a procedure for a reader that cannot ask questions. Models read "should" as optional. STE bans "should". Think about it. - 🌍
**Translation prep**: STE's original job: readable for non-natives, cheap to localize

Where it refuses to go: marketing copy, blog voice, brand writing. Flat on purpose. ✋

**72.9% fewer STE violations per 100 words with the skill on, averaged across 6 models × 8 writing tasks (96 generations, measured).**

| Model | Baseline viol/100w | Skill viol/100w | Reduction |
|---|---|---|---|
| claude-opus-4-8 | 1.05 | 0.62 | 41% |
| claude-opus-4-7 | 2.28 | 0.42 | 82% |
| claude-opus-4-6 | 2.24 | 0.40 | 82% |
| claude-opus-4-5 | 2.55 | 0.57 | 78% |
| claude-sonnet-5 | 2.67 | 0.53 | 80% |
| claude-sonnet-4-6 | 2.06 | 0.52 | 75% |

Output tokens went DOWN on all six models too (the skill writes shorter). Deterministic regex linter, same rules for both conditions, honest-caveat list and full method in [ evals/results/RESULTS.md](/AminBlg/SimpleEnglish/blob/main/evals/results/RESULTS.md). Reproduce with

`python3 evals/run_bench.py`

— needs only a logged-in Claude Code CLI.Built TDD-style against the **primary Issue 9 text** (2025), not blog summaries:

- Baseline agents without the skill wrote 40-word sentences and
**invented rule numbers**. One confidently cited "Rule 3.1: short sentences" (real Rule 3.1 is verb forms 💀) - Secondary sources online are wrong about the modals:
`can`

and`will`

ARE approved. We checked the PDF. - The skill was written to close each recorded baseline failure, then re-tested until agents pass. Scenarios + recorded results:
`evals/pressure-tests.md`

**Does this make output STE-certified?** No. Nothing does, because ASD certifies no tool. Default mode is pragmatic: structural rules + your domain vocabulary. Strict mode gets close; word-level rulings live in the official standard, a [free download](https://www.asd-ste100.org/request.html).

**Will my docs sound robotic?** They will sound like Airbus manuals: flat and impossible to misread. For docs that is the whole point. Keep your voice for your blog. ✍️

**Why not just prompt "write clearly"?** "Clearly" is an opinion. "No sentence over 20 words" is a spec. Agents follow specs. 📐

**Why a 40-year-old aerospace standard?** Because it is not vibes. It is maintained (Issue 9, January 2025), numbered, and testable. And it happens to be a near-perfect negative of every AI writing tell.

MIT for everything here. The repo paraphrases the rules for teaching and reproduces **zero** spec text or dictionary content. Unofficial project, not affiliated with or endorsed by ASD or STEMG. ASD-STE100 is a registered trademark of ASD.
