There is a lot of writing advice on the internet, and there is a full aerospace standard for controlled English. Almost nobody has put the two next to each other on real text. This post is the comparison I went looking for and could not find: an ordinary engineering draft on the left, its ASD-STE100 rewrite on the right, five kinds of text, with the rule numbers so you can check me.
Why I wrote this comparison
I found ASD-STE100 through a video that calls it the cure for AI slop. The claim is that the reason LLM output reads like LLM output is not the vocabulary — it is the shape. Stacked auxiliaries, 40-word sentences with three subordinate clauses, passive verbs with nobody doing the acting. The first aerospace guide appeared in 1986. Its current rules restrict those patterns because a mechanic in a hangar cannot afford to re-read a sentence. The standard says nothing about marketing adjectives or nominalizations as categories — those are my own additions, and I keep them in a separate table below for exactly that reason.
What I could not find anywhere was the boring artifact: the same text, written both ways, so you can see what the standard actually costs and what it buys. Search results give you the spec, some consultancy pages, and a lot of posts about banning the em dash. So I wrote the comparison instead, with the standard open next to it.
What is ASD-STE100?
ASD-STE100 is a controlled language: a fixed dictionary plus a set of writing rules. The European aerospace industry started work on it in the late 1970s and published the first release in 1986, as an AECMA document, because maintenance manuals written in fluent English were being read by technicians who did not speak it fluently. Ambiguity in that context is not a style problem. The standard is maintained today by ASD and its Simplified Technical English Maintenance Group, and the standard is free to download.
Two halves. The dictionary approves roughly 900 general words. In general, each approved word has one meaning and one part of speech, although the dictionary contains exceptions. fall means to move down, so you cannot write that latency falls. Technical nouns and verbs for your own domain are allowed on top of that list — you are not limited to 900 words total. The writing rules cover sentence length, voice, tense, punctuation and structure, and those are the part that does the work outside aerospace.
Who actually uses it
Plain language and STE are not the same thing
Worth settling before the examples, because the two get used interchangeably and they are different kinds of object. Plain language is defined by the outcome: ISO 24495-1:2023 calls writing plain when the intended reader can find what they need, understand it, and use it. It does not hand you a word list. How you get there is judgment.
STE is defined by the input. A fixed dictionary, 53 numbered rules, a word cap you can count. It can be written into a contract and a large part of it can be checked by a machine. That checkability suits contractual workflows today and also makes the rules easier for an LLM to follow.
The two overlap but neither contains the other. A text can be plain and fail STE — this paragraph does. A text can pass every STE rule and still leave the reader stuck, because no rule about sentence length can tell you that you documented the wrong thing.
The ASD-STE100 rules that matter most
Issue 9 has 53 numbered writing rules in nine sections, plus the dictionary. Below are the ones that change how ordinary technical text reads, with the rule numbers so you can check me against the source. The rule wording is my paraphrase, because the standard is copyrighted. In the tables below, an example in quotation marks is the standard's own — that is Rules 1.2, 3.4 and 3.7, and nothing else. Everything unquoted I wrote to fit software, so hold me and not ASD responsible for those.
Use approved words, technical nouns and technical verbs only
✗ utilize, facilitate, prior to, subsequent to, obtain
✓ use, help, before, after, get
Use an approved word only as its approved part of speech
✗ “Test the system for leaks.” (test is a noun, not a verb)
✓ “Do the leak test of the system.”
Do not use two technical nouns for the same item
✗ login screen / sign-in page / auth view
✓ login screen, every time
American spelling
✗ colour, fibre, centre
✓ color, fiber, center
No complex verb constructions built from auxiliaries
✗ “The operator has adjusted the linkage.”
✓ “The operator adjusted the linkage.”
Active voice — passive only in descriptive text with an unknown agent
✗ The file is read by the parser.
✓ The parser reads the file.
Use an approved verb for an action, not a noun
✗ “The ohmmeter gives an indication of 450 ohms.”
✓ “The ohmmeter shows 450 ohms.”
No contractions, no omitted words
✗ don’t, it’s, we’ll
✓ do not, it is, we will
20 words maximum in an instruction
✗ one command with three subordinate clauses
✓ three sentences
One instruction per sentence — unless the actions happen at the same time
✗ Disconnect the cable and wait, then open the cover.
✓ three numbered steps
Condition first, when the reader must know it before acting
✗ Press RESET if the LED is red.
✓ If the LED is red, press RESET.
25 words maximum in a descriptive sentence
✗ a 40-word explanation of the what, the why and the workaround
✓ two sentences, or a list
One topic per paragraph, six sentences maximum
✗ a paragraph that changes subject halfway through
✓ a paragraph break at the turn
Every standard punctuation mark is allowed except the semicolon
✗ The build failed; the cache was stale.
✓ The build failed. The cache was stale.
No phrasal verbs
✗ spin up the server, tear down the stack
✓ start the server, remove the stack
And these are mine, not the standard's
Five habits I apply on top of STE, kept in a separate table so nobody quotes them back at me as aerospace rules. They are editorial choices, not compliance requirements.
Delete any adjective you cannot measure
✗ seamless, robust, powerful, effortless, cutting-edge
✓ the number the adjective was standing in for
Find the agent instead of using the descriptive exception in Rule 3.6
✗ The requests are counted in a rolling window. (permitted only if the agent is genuinely unknown)
✓ The server counts your requests. (after you identify the agent)
No hedge stacks
✗ It is important to note that this can potentially help.
✓ This helps. — or delete the sentence
Prefer the plain verb when English has one
✗ Perform an analysis of the log.
✓ Read the log. (note: STE's own dictionary would say MAKE AN ANALYSIS OF)
No em dash
✗ a sentence — like this one — with an aside in the middle
✓ two sentences, or parentheses (STE allows both dashes)
The em dash is not banned
A typical draft vs ASD-STE100, side by side
Five kinds of text an engineer actually writes. Be clear about what the left column is: an unedited first draft, the way I would have written it on a normal day or the way a chat model hands it to you. It is not a plain-language version — a careful plain-English writer would already have cut most of what is flagged. The comparison is draft-to-STE, not method-to-method.
The flags are a mixed bag, and it matters which is which: some break a numbered rule (a passive with a known actor, a contraction, a 40-word sentence), others are my own editorial calls (an adjective I cannot measure, stock warmth). Word counts and the longest sentence in each panel are counted at render time, so those numbers cannot drift from the text.
5 texts, same job, two styles.
README opening
The first paragraph a stranger reads about your project.
Sortra is a powerful, blazing-fast desktop utility that leverages smart heuristics to seamlessly bring order to your chaotic Downloads folder. No configuration is required, as sensible defaults are provided out of the box. Whether you are a developer drowning in build artifacts or a designer juggling hundreds of exports, Sortra is designed to slot into your existing workflow with minimal friction.
Sortra sorts the files in a folder. It reads the name and the extension of each file, then moves the file into a folder for that file type. You do not have to write a configuration file. Sortra runs on Windows, macOS and Linux.
What changed: 61 words become 44, and the reader finally learns three facts the first version never contained: what Sortra reads, where it puts the file, and which systems it runs on. Every adjective I deleted had to be replaced by something checkable — that trade is the whole method.
Error message
What the user sees when a background sync fails.
Oops! Something went wrong while we were trying to sync your changes. Don’t worry — your data has not been lost, and we will keep retrying in the background. If the issue persists, please don’t hesitate to reach out to our support team, who will be happy to help.
The app cannot connect to the server. Your changes are on this device. The app sends them again when the connection returns. If this message stays for more than one hour, send a report to support@example.com.
What changed: This is STE's cleanest win. “Something went wrong” names no actor and no failure, so the user cannot decide anything. The rewrite names the actor (the app), the state (your changes are on this device), the recovery (it sends them again), and the threshold for asking a human (one hour).
Hardware procedure
A maintenance step — the exact text ASD-STE100 was invented for in the first place.
Before attempting to replace the battery, it should be noted that the device must first be disconnected from mains power and allowed to discharge, as failure to do so may result in electric shock or damage to the mainboard.
WARNING: Electric shock can kill you. Do the steps in this order.
- 1.Disconnect the power cable from the device.
- 2.Wait 60 seconds. The capacitors discharge in this time.
- 3.Remove the four screws from the battery cover.
- 4.Remove the battery.
What changed: The original buries two actions and one hazard inside a single 39-word sentence, and the warning arrives after the instruction. STE puts the warning first, one action per line, in the order your hands do them. A technician can follow the right column with gloves on and a torch in their mouth. That was the design brief.
Pull request description
The body of a PR that another engineer has to review.
This PR refactors the authentication layer to leverage a more robust token refresh mechanism, ensuring that users are no longer unexpectedly logged out during long-lived sessions. Additionally, the ad-hoc retry logic that was previously duplicated across call sites has been removed, which should improve maintainability going forward.
The client now refreshes the access token 60 seconds before it expires. The user stays logged in during a long session. This change removes the retry code from useSession and from apiClient. One function, refreshToken, now does the retry.
What changed: Barely shorter — STE is not a compression tool, and on the rate-limit example below it is longer. What changes is reviewability, and note that I had to look up the 60 seconds and the two file names to write the right column. The rules removed the fog; finding the facts was my job.
API documentation
The paragraph explaining a rate limit.
Rate limiting is implemented in order to ensure fair access for all users of the platform. Requests are counted using a rolling window, and once the threshold has been exceeded, subsequent requests will be rejected until such time as the window has elapsed.
The server counts your requests in a window of 60 seconds. The limit is 100 requests in this window. If you send more, the server rejects the extra requests and returns status 429. The response has a Retry-After header. Wait for this number of seconds, then send the request again.
What changed: Four passive verbs get an actor: the server counts, the server rejects. That part is Rule 3.6. The numbers are not — STE never asked for the window, the limit or the status code, and this rewrite is longer than the original (50 words against 43) because I added them. What the rules did was make the gap impossible to ignore.
Why STE removes the common AI-writing tics
Look at what got flagged. Almost none of it is vocabulary. It is hedging (may help to improve), passive verbs with a hidden actor (requests are counted), nominalizations (perform an analysis), stock warmth (don’t hesitate to reach out), and sentences that hold three ideas at once. That list is a fairly complete description of what people mean by slop.
Banning words treats the symptom. A writing system removes the shape that produces the words.
This is also why a banned-words list disappoints. Strike seamless and the model writes frictionless. Cap the sentence at the applicable 20- or 25-word limit, prefer a named actor, and demand one instruction per sentence in procedures, and there is nowhere left for a filler adjective to sit — the sentence has no room for anything but a subject, a verb and an object. The author of the video ran that comparison against several models and published the kit and the numbers: a writing system beat a banned-words list on every model tested. I have not reproduced that experiment, so treat it as his result and not as mine. On this page the only evidence is five rewrites and the counters next to them.
The part I did not expect — with a caveat
My rewrites came out more specific, not just shorter. Be careful about what that proves. STE does not require a status code or a timeout value; the standard asks you to keep the meaning of the source. What happened is narrower and more interesting: once I could not lean on “subsequent requests will be rejected” or “a more robust refresh mechanism”, the sentence had nowhere to hide, and I had to go and find the numbers. The rewrite only became useful after I supplied the operational detail the original had omitted.
So two separate things happen when you apply STE to a vague draft: the form gets fixed by the rules, and the content gets fixed by you, because the rules make the hole visible. Only the first half is the standard's doing. That is also the real cost — it makes writing slower in a useful way.
Where ASD-STE100 is the wrong tool
STE strips voice on purpose. That is a feature in a maintenance manual and a bug almost everywhere else. The hero line on this site reads:
I build digital stuff that actually works.
In STE that becomes something like “This person writes software. The software operates correctly.” Both sentences are clear. One of them is worth reading. Anything persuasive, funny or personal — landing pages, essays, cover letters, this paragraph — loses more than it gains.
- Short sentences can drone. Five 12-word declaratives in a row read like a robot. Vary the length inside the cap.
- It can add words. Splitting a dense sentence into three costs you the connective tissue. STE optimizes for reading speed and accuracy, not word count.
- It does not make anything true. A hollow paragraph rewritten in STE is a shorter hollow paragraph. It fixes form, never substance.
- Full compliance needs a human. Whether a sentence “makes good sense” and whether you picked the right technical noun are judgment calls. A linter can only catch the mechanical part.
So I use it in two modes. Strict for procedures, error messages, runbooks and API reference — every rule, both length caps. Loose for READMEs, PR descriptions and commit messages — keep active voice, one idea per sentence and the length cap, drop the dictionary lockdown. For anything with a voice, ignore it entirely.
A 6-step STE-inspired check
This is my editing shortcut, not a compliance test. Procedures have a 20-word limit, descriptions have a 25-word limit, and full compliance also requires the dictionary. Run this over a draft — yours or a model’s — and fix what it catches:
- 1Any procedural sentence over 20 words, or descriptive sentence over 25? Split it at the first
andorwhich. - 2Any semicolon? Make it a period.
- 3Any passive verb with a known actor? Put the actor in front:
the parser reads the file. - 4Any nominalization or hedge —
perform an analysis,may help to improve? Use one plain verb. - 5Any adjective that cannot be measured —
robust,seamless,powerful? Delete it, then write the number it was standing in for. - 6Is one thing named two ways across the document? Pick one name and use it every time.
Step 5 is where the work is, and it is the one that changes the content rather than the prose. Next in this series I want to build a small browser lint for this, and run my own before/after numbers instead of borrowing someone else’s.
Questions people actually ask about ASD-STE100
Is ASD-STE100 the same thing as Plain English?
No, and they are not even the same kind of thing. Plain language is a goal, defined in ISO 24495-1:2023 by whether the intended reader can find, understand and use the information; how you get there is your judgment. ASD-STE100 is a controlled language: a fixed dictionary of approved words plus 53 numbered writing rules. It can be required by contract and much of it can be checked mechanically. A text can be plain and not STE, or STE and still unclear.
Is the ASD-STE100 standard free?
Yes. Issue 9, dated 15 January 2025, is free to download from asd-ste100.org. The document stays copyrighted, so you can apply it freely but you cannot republish the dictionary or the rule text.
Does ASD-STE100 ban the em dash?
No. Rule 8.1 permits every standard English punctuation mark except the semicolon, so both dashes are allowed. The idea that an em dash marks AI writing is a separate internet convention, not part of the standard. If you want it gone, that is your own extra rule.
How many rules and how many words does ASD-STE100 have?
Issue 9 has 53 writing rules in nine sections, and a dictionary of roughly 900 approved general words. In general, each approved word has one meaning and one part of speech, although the dictionary contains exceptions. On top of the dictionary you may use the technical nouns and technical verbs of your own domain, so you are not limited to 900 words in total.
Can I use ASD-STE100 outside aerospace?
Yes. The writing rules are domain-neutral. Error messages, runbooks, procedures and API reference gain the most. Marketing pages, essays and anything with a personal voice lose more than they gain, because STE removes voice by design.
Does writing in STE stop text from sounding AI-generated?
It removes several of the mechanical markers people react to: hedge stacks, passive verbs, long compound sentences and contractions. It does not touch substance, so it cannot make a hollow claim true, and five short declaratives in a row read like a robot in their own way. Treat it as a fix for the form of the writing, not as a detector-beating trick.
Is there an official ASD-STE100 checker?
No. ASD and the STE Maintenance Group state that they do not endorse, certify or authorize any software tool, including AI-based ones, and that vendors cannot claim ASD approval. Commercial checkers exist and are widely used, but no tool can certify compliance. For everyday writing, a heuristic linter that flags long sentences, passive voice and unmeasurable adjectives catches the mechanical part; the judgment calls, such as choosing the right technical noun, still need a human.
Sources
- asd-ste100.org — the official standard. Every rule number comes from Issue 9, dated 15 January 2025, as do the quoted examples for Rules 1.2, 3.4 and 3.7. The remaining examples and all five rewrites are mine. The document is copyrighted, so the rule wording here is my paraphrase.
- ASD on STE software — ASD and the STE Maintenance Group do not endorse, certify or authorize any checker, AI-based or otherwise.
- ISO 24495-1:2023 — the plain-language standard, for the distinction above.
- “The cure for AI slop is a 1986 aircraft manual” — where I got the idea.
- The companion repository — a distilled STE agent skill, a heuristic anti-slop linter, and the cross-model experiment data.
Corrections welcome
