GitHub - AminBlg/SimpleEnglish: Agent skill: make LLMs write docs in ASD-STE100 Simplified Technical

GitHub

5 min read Original article ↗

✈️ your AI writes like a LinkedIn post. make it write like a Boeing manual.

An agent skill that makes LLMs write plain English with the discipline of ASD-STE100 Simplified Technical English:
the controlled language aerospace has used since 1983 so a tired mechanic cannot misread an instruction.
Layman-readable by default, STE-strict on request. AI slop dies as a side effect.

74.6% fewer violations, measured 7 models benchmarked Agent Skills version 2.0.0 MIT GitHub stars

AminBlg%2FSimpleEnglish | Trendshift

Works in every agent that reads the Agent Skills standard: Claude Code, Cursor, VS Code Copilot, OpenAI Codex, Gemini CLI, Goose, OpenCode, and about 25 more. One folder, no dependencies, MIT.

Install

Any agent, with the skills CLI:

npx skills add AminBlg/SimpleEnglish

Try it before you install: npx skills use AminBlg/SimpleEnglish@simple-english

Claude Code plugin (skill, session hook, output style):

claude plugin marketplace add AminBlg/SimpleEnglish && claude plugin install simple-english@simple-english

The plugin also ships an output style, named simple-english:simple-english. The short name does not resolve. For one project, run /config, open Output style, and select it. For all projects, put {"outputStyle": "simple-english:simple-english"} in ~/.claude/settings.json and start Claude Code again.

Codex plugin (skill, session hook):

codex plugin marketplace add AminBlg/SimpleEnglish
codex plugin add simple-english@simple-english

Codex asks you to trust the hook in /hooks before its first run. The hooks need Node.js. Details in src/hooks/README.md.

No skill support? Paste prompts/system-prompt.md into your system prompt, AGENTS.md, or .cursorrules. It ends with a 60-token version for tight budgets. On claude.ai, ChatGPT, or Gemini, paste it as the first message.

Then ask for any technical writing, or say: "rewrite this with simple-english".

See it

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

Without skill With skill

Leveraging sqlpipe's robust architecture, users can seamlessly synchronize their Postgres tables to S3 with minimal configuration overhead. Before getting started, you should ensure that your AWS credentials have been properly configured — this is crucial for avoiding frustrating permission issues down the line.

sqlpipe copies your Postgres tables to S3. It needs one configuration file.

Before you start, make sure that your AWS credentials are correct. If they are not, S3 rejects the upload with a permission error.

More rewrites in examples/before-after.md: READMEs, runbooks, incident reports, error messages, release notes.

Benchmarks

74.6% fewer STE violations per 100 words with the skill on, averaged across 7 Claude models × 8 writing tasks (112 generations). Measured on skill 1.3.0. The 2.0.0 pivot (Plain by default) was checked against 1.3.0 on two models, the reply set, and a blind judge: documents at parity, replies with 43% fewer violations. Details: evals/results/pivot-2026-09-01/RESULTS.md. Deterministic regex linter, same rules for both conditions, reasoning effort pinned to low. Method, caveats, and raw files: evals/results/RESULTS.md. Reproduce with python3 evals/run_bench.py and a logged-in Claude Code CLI.

Model Baseline viol/100w Skill viol/100w Reduction
claude-opus-5 2.13 0.32 85%
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%

A blind pairwise judge (claude-opus-4-8, both text orders, no labels) preferred the skill output in 45 of 56 pairs, with 5 ties and 6 losses. Output tokens went down on all seven models.

Other harnesses, same 8 tasks, same linter, one run per cell:

Harness Model Baseline viol/100w Skill viol/100w Reduction Raw files
Pi GLM-5.2 max 2.56 0.40 84.4% pi-2026-07-31
Pi GPT-5.6 Sol medium 1.33 0.16 88.0% same
Pi GPT-5.6 Terra medium 1.69 0.48 71.6% same
Pi GPT-5.6 Luna medium 1.28 0.42 67.2% same
OpenAI API gpt-4.1-mini 3.43 0.14 95.8% openai-2026-09-01

Every number above reproduces from committed raw files. Score any raw directory with python3 evals/score_text_dir.py <dir>.

The rules

53 numbered rules in 9 sections, paraphrased with software examples in SKILL.md. The ones that do the work:

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

Two modes. Plain (default) writes for a smart reader outside the field: the structural rules, common words, every technical term defined at first use, answer-first replies. Strict adds the STE dictionary discipline to the document when you name STE or compliance. The skill also covers error messages, runbooks, incident reports, release notes, agent prompts, and translation prep: use-cases.md. It does not touch marketing copy, on purpose.

FAQ

Does this make output STE-certified? No. Nothing does, because ASD certifies no tool. Strict mode gets close; word-level rulings live in the official standard, a free download.

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? It is maintained (Issue 9, January 2025), numbered, and testable. It is also a near-perfect negative of every AI writing tell.

How was it built? Against the primary Issue 9 text, not summaries. Agents without the skill invented rule numbers, so the skill carries the real ones. A community audit (#4) checked the vocabulary tables against the dictionary; the fix was A/B-tested before it merged. Scenarios and recorded results: evals/pressure-tests.md.

Star history

Star History Chart

Contributing

Open an issue for questions and bug reports. Pull requests are welcome. Every number in this README reproduces from committed raw files, so a change that moves a number ships the raw files with it. Run python3 evals/ste_lint.py --self-test before you push.

License

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.