Writing at 80% ASD-STE100
I told my agents to write in the controlled English of aircraft maintenance manuals, then measured what changed in their replies.
On 2 October Andrej Karpathy posted a thread of tips for reading model output. The first one was about writing. Ask the model to explain things in ASD-STE100.

I had never heard of it. ASD-STE100 is Simplified Technical English, the controlled language the aerospace industry uses for maintenance manuals. It exists because the mechanic who reads a torque procedure at 3 a.m. may not read English as a first language, and a misread instruction can take down an aircraft. So the spec limits what a sentence can do. An instruction has 20 words at most and one action. A description has 25 words at most. A paragraph has six sentences. Each approved word has one meaning, and you use that word every time.
Karpathy said he found the output more readable than the model's default prose. He also said "80% of the way", because the full spec is strict enough to hurt. That softening is what made me try it. I had spent September fighting slop in my agents' writing (the em dash post is the long version), and every rule I had was a ban on a pattern. STE was the first thing I had seen that describes the target instead of the failures.
What I added
I wrote it into the no-ai-slop skill that every agent in my vault loads, and into my global CLAUDE.md, the same afternoon. The commit landed at 14:02 Saigon time. The rules that carry over at 80%:
- Instructions: 20 words max, one instruction each, verb first.
- Descriptions: 25 words max. Paragraphs: six sentences max.
- Active voice, unless the actor is unknown.
- Simple tenses. "The job is running" becomes "the job runs".
- One term per meaning. If the doc calls it a "run", it never becomes an "execution" two paragraphs later.
- Noun clusters of three words max.
- Keep the articles. A terse model drops "the" and "a" to save tokens, and the text gets shorter and slower to read.
- In a warning, the command comes first and the reason second.
The 20% I left out: technical terms and product names stay as they are, my own voice wins when an agent edits something I wrote, and hedges stay when the uncertainty is real. This post is in my voice, so it breaks the 25-word limit in a few places.
The noun-cluster rule is the one I feel most when I read agent output about my own product. Test management software is a factory for stacked nouns.
The test run report export button was being shown to users without the project analytics view permission, which was causing confusion during sprint review preparation workflows.
1 sentence · 27 words · 3 stacked clustersUsers without permission to view project analytics saw the button that exports the test run report. This confused people who prepared the sprint review.
2 sentences · 13 + 9 words · active voiceTwo more rules came from the same thread, and I added them in the same commit. An explanation for someone who did not build the thing opens with an ELI5 paragraph: three sentences, everyday words, one analogy. And when the goal is understanding, prose is the lowest rung of a ladder. A diagram beats prose, an HTML page beats a diagram, and an explainer video beats a page, as far as the medium allows. Code is cheap now, so a page that exists to explain one thing and then gets thrown away is a fine thing to build.
What changed in the transcripts
I like to check whether a rule did anything. Claude Code keeps every session as a JSONL transcript, so I wrote a small script (ste-compare.py, in my vault next to the model comparison script) that takes every text block the lead agent wrote, strips code and quotes, and splits the prose into sentences. Bullets, table rows and headings count as fragments and do not count toward sentence length. It compares Opus 5.5 in the ten days before the commit with Opus 5.5 in the days after. The after window is only five days old, so read every number below as early.
The first result surprised me. Sentence length barely moved.
Mean sentence length went from 12.8 words to 12.3. The median went from 12 to 11. Under Opus 5 and Fable 5.1 in early September, about one sentence in seven ran past 25 words. Under Opus 5.5 it was already one in twenty-one before I wrote a word of STE into the harness. Paragraphs over six sentences were already at zero. The length limits in STE describe a place my agents had already reached through a newer model and a month of bans.
The grammar rules did show up. Sentences with a passive verb fell from 9.2% to 7.6%. Progressive verbs ("is running", "was failing") fell from 2.6% to 1.8%. Those are small numbers on a small window, but they move the way the rule says, and they are the kind of change that a length check cannot catch. My passive regex is crude, so I trust the direction more than the size.
One number went the wrong way. Replies got longer, from 76 words per text block to 98. Some of that is the ELI5 paragraph, which adds three sentences to the front of every explanation. Some of it is probably what I asked for in those five days. I do not have a way to separate the two yet.
The format ladder did more
The rule that changed my week was the ladder, and it took one line of grep to see it. In the ten days before the commit, my lead agent published 19 HTML artifacts across 1,409 text replies. In the five days after, it published 52 across 479. That is 1.3% of replies before and 10.9% after, about eight times as often.
I can feel the difference more than I can measure it. This week a question about our standalone runner roadmap came back as a page with a timeline I could scroll, and the reply in chat was a sentence and a link. A month ago the same question got paragraphs. The ELI5 opener counts for less in the numbers (the grep found it in six replies), but when it appears it is the part I read first.
Part of this is the model. Opus 5.5 reaches for tools more than any model before it, and I wrote about that last month. The ladder gave it permission to reach for one specific tool, and it took the permission right away.
What I would tell someone starting
If your agents still write long, nested sentences, the STE length limits will help, and "write this in 80% ASD-STE100" is a short enough instruction to paste anywhere. Models know the spec. You do not need to explain it.
If your agents already write short sentences, the length rules will not move much, and the value is in the parts a ban list cannot express: active voice, one term per meaning, warnings that lead with the command. Those describe good writing directly, which is easier for a model to aim at than a list of things to avoid.
And try the ladder. I expected the language rules to be the main change and the ladder to be a footnote. Five days in, it is the other way around. I will rerun the script at the end of October with a full month on each side and see whether either result holds.