# SimpleEnglish: ASD-STE100 Writing Discipline for AI Coding Agents

> SimpleEnglish is an MIT-licensed agent skill that makes LLMs write in the discipline of ASD-STE100 Simplified Technical English, a controlled language aerospace has used since 1983 for maintenance documentation. It works in Claude Code, Cursor, OpenAI Codex, Gemini CLI, and about 25 other agents through the Agent Skills standard, with no runtime dependencies.

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

- Repository: https://github.com/AminBlg/SimpleEnglish
- Stars: 3,627 · Forks: 135
- Language: Python
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/aminblg-simpleenglish

## The Problem: AI Documentation Looks Like LinkedIn, Not a Boeing Manual

AI coding assistants writing documentation and runbooks default to patterns that the README describes plainly: em-dashes splicing half-thoughts, bold text on every lead-in, bullet lists where prose would be clearer, preamble before the actual answer, and hedging verbs like "should" or "may" that make instructions ambiguous.

ASD-STE100 Simplified Technical English is the controlled language standard the aerospace and defense industry has used since 1983 for maintenance manuals. Its premise is that a tired technician at 2 a.m. cannot misread an instruction if every sentence is short, every term means exactly one thing, and the condition appears before the command. SimpleEnglish is an agent skill that applies these rules to LLM output, targeting the documentation, runbooks, error messages, and release notes that engineers write alongside their code.

## Two Registers: Plain by Default, Strict on Request

SimpleEnglish defines two writing modes. Plain is the default and applies to every chat reply and document the agent writes. It enforces a specific set of formatting and style rules: prose only (no headers, bullets, bold, or tables), the first sentence must answer the question, no em-dashes, jargon terms must be defined on first use, no contractions, no filler openers or closers like "Great question!".

For documents, Plain also enforces: maximum 20 words per instruction sentence and 25 per description sentence, the condition stated before the command so the reader does not execute too late, simple tenses and active voice, no hedging with "should", "would", "may", or "might", and one word used for one meaning throughout the document.

Strict mode adds the STE vocabulary discipline from a strict-vocabulary.md reference file. The 53 numbered rules of STE Issue 9 live in rule-catalog.md inside the repository and are activated in Strict mode or when a check mode is requested. Plain is layman-readable by design; Strict is for teams that need full STE compliance.

## Installing in Claude Code, Codex, or Any Skills-Compatible Agent

SimpleEnglish follows the Agent Skills standard, which means it works in any agent that reads a SKILL.md file. To install in a skills-compatible agent:

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

This installs the skill file only. The session hook and the output style that set Plain as the default for every reply are separate. For Claude Code, the full installation that includes the session hook and the output style is:

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

The output style is named `simple-english:simple-english`. Select it under Output style in `/config`, or add `{"outputStyle": "simple-english:simple-english"}` to `~/.claude/settings.json`.

For OpenAI Codex:

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

The README notes that Codex asks you to trust the hook before its first run, and that the hooks require Node.js.

For agents without skill support, paste the rule block from `prompts/system-prompt.md` into your system prompt, `AGENTS.md`, or `.cursorrules`. The file ends with a 60-token version for tight context budgets.

## Benchmark Results and Their Limits

The README publishes benchmark numbers computed from committed raw files by `python3 evals/check_numbers.py`, which CI runs on every push. All Claude runs use `claude-sonnet-4-6`, low effort, with no settings loaded.

For replies (8 chat questions with a jargon term each, two runs, 16 replies total), version 2.0.1 produced 95% fewer visible defects compared to no skill: em-dashes dropped from 62 to 5, bold from 79 to 2, headers from 25 to 0, and bullets from 52 to 4. On gpt-4.1-mini, the same questions went from 64 bold spans and 101 bullets per 8 replies to zero formatting with 2.0.1.

For documents (8 technical writing tasks scored with an STE linter), version 2.0.1 reduced linter violations by 78% versus no skill (from 4.09 to 0.91 violations per 100 words).

The README's own 2026-09-02 audit noted that linter scores measure rule obedience, not what a reader actually sees. That is why the reply-level defect counts were added alongside the linter numbers. The README also states that judges are Claude models evaluating Claude text, making family bias possible, and that one run varies by about 0.5 on the linter metric, so rows should be read as parity or better, not as a precise ranking.

## What Changes Between Versions

Version 2.0.0 (2026-09-01) set Plain English as the default mode, replacing an earlier design where the skill needed to be invoked more explicitly. Version 2.0.1 improved the enforcement significantly, as reflected in the benchmark defect counts dropping from 218 to 11 for visible formatting artifacts. Version 2.1.0 (2026-09-16, the current release) removed the five-sentence reply cap that 2.0.1 had imposed. The README notes that no benchmark run exists yet for 2.1.0, so the published numbers reflect 2.0.1 behavior.

The SKILL.md file that agents read is approximately 1,700 tokens. The 53 numbered rules of STE Issue 9 live separately in rule-catalog.md for check mode and Strict mode, so they do not consume context on every request. The repository includes an examples/before-after.md file with rewrites of READMEs, runbooks, incident reports, error messages, and release notes.

## Limitations: Agent Compatibility and What the Benchmark Does Not Cover

SimpleEnglish works only in agents that read the Agent Skills standard or accept a modified system prompt. Agents that do neither will not enforce any of the rules. The README lists Claude Code, Cursor, VS Code Copilot, OpenAI Codex, Gemini CLI, Goose, and OpenCode as supported, plus about 25 more.

The session hook requires Node.js. In environments where Node.js is not available, the hook will not run. The README says this specifically about Codex: it asks to trust the hook before the first run, and the hooks need Node.js.

The benchmark judges are Claude models evaluating Claude text, so the numbers may not transfer to other model families in the same proportion. The README acknowledges this directly. Engineers using models other than Claude should treat the published reduction percentages as directional rather than exact.

The skill enforces structural rules (sentence length, formatting) and vocabulary discipline. It does not verify factual correctness of what the agent writes, catch logical errors in instructions, or check that commands in the documentation actually work.

## System Prompt Pasting as an Alternative to the Plugin

For agents or environments that do not support the plugin or the skills CLI, the README documents a fallback: paste the rule block from `prompts/system-prompt.md` directly into the system prompt, `AGENTS.md`, or `.cursorrules`. This approach covers the same rules without requiring the plugin installation or Node.js hooks.

The trade-off compared to the plugin is session persistence. A pasted system prompt applies in whatever context it is included, but does not run as a session hook that activates automatically for every conversation. The plugin, when installed with the session hook, sets the rules as a persistent output style that applies by default without requiring the engineer to include the prompt text manually each time.

The README provides a 60-token condensed version of the rules for contexts with tight token budgets. This does not include the full 53-rule STE catalog, which stays in rule-catalog.md and is loaded only when needed.

## Conclusion

SimpleEnglish is worth installing for engineers who find their AI coding tools produce documentation or runbook prose filled with em-dashes, bold lead-ins, hedging verbs, and bullet walls. The benchmark shows measurable reduction in those patterns. The skill is limited to agents that read a SKILL.md file or accept a modified system prompt, so agents that do neither will not benefit. Benchmarks measure rule obedience rather than reading experience directly, as the README's own 2026-09-02 audit notes. Install via `npx skills add AminBlg/SimpleEnglish` and ask for a technical rewrite to see whether the output change fits your documentation standards.

## FAQ

### What is simple english in the context of this tool?

In SimpleEnglish, "simple english" refers to writing in the discipline of ASD-STE100 Simplified Technical English, a controlled language standard used in aerospace maintenance documentation since 1983. The skill makes LLMs apply these rules to chat replies and technical documents.

### How do I use simple english with Claude Code?

Install the Claude Code plugin with `claude plugin marketplace add AminBlg/SimpleEnglish && claude plugin install simple-english@simple-english`. Then select `simple-english:simple-english` as the output style via `/config` or add it to `~/.claude/settings.json`. After that, ask for any technical writing or say "rewrite this with simple-english".

### Does SimpleEnglish work with agents other than Claude Code?

Yes. The README states it works in any agent that reads the Agent Skills standard, which includes Cursor, VS Code Copilot, OpenAI Codex, Gemini CLI, Goose, OpenCode, and about 25 others. For agents without skill support, paste the rule block from `prompts/system-prompt.md` into the system prompt or `.cursorrules`.

## Sources

- [AminBlg/SimpleEnglish on GitHub](https://github.com/AminBlg/SimpleEnglish)
- [Issues](https://github.com/AminBlg/SimpleEnglish/issues)
- [License: MIT](https://github.com/AminBlg/SimpleEnglish/blob/main/LICENSE)
- [README](https://github.com/AminBlg/SimpleEnglish/blob/main/README.md)
- [Releases](https://github.com/AminBlg/SimpleEnglish/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/aminblg-simpleenglish
