I took one of the examples ("Leveraging sqlpipe's robust...") and just prefixed it with this:
> Rewrite this using ASD-STE100 simplified technical English:
And you get a good-enough result, it seems? Maybe add another sentence or two for guidance, but what's with needing these giant skills, when ASD-STE100 was surely in the training material?
I certainly get what makes you feel that the model should have been wise enough to utilize the knowledge in its pretraining, but it seems like the pretraining data gets pretty muddled in later stages.
The pretraining data isn't getting muddled, the instruction just gets in the lossy middle, and there's less for attention to grab on to. If you repeated the prompt with a hook every turn, it'd stay quite sharp.
Love this line in the critical material quoted there:
“Writing correctly in STE is not an easy task as it requires a good command of the English language together with a good knowledge of the matter of the writing.”
This is simply what is required for good writing (in English) in any domain with or without STE.
LLMs should be unreasonably good at exactly this kind of writing because they’re good translators; regardless in practice it works well to deslopify their writing, been using this in all my prompting in the last week or so, haven’t seen a single load bearing belt and suspenders since.
I use it with a rule package that has a variety of Vale styles for AI writing tells (github.com/tbhb/vale-ai-tells). Typically I have it set up in a project and then gate the agent with post tool use hooks and pre-commit hooks. It's far from perfect but it does help eliminate a lot of the common tells.
Does this actually work for you? I've tried adding rules in my user profile as well as adding instruction in my CLAUDE.md but my models always eventually go off the rails and start spewing technical jargon in doc strings & descriptions.
At this point I'd do anything to get claude to dumb down and simplify it's explanations in my code, so I'm looking forward to giving this a try and seeing how it goes.
I've added the same thing to the system prompt of the internal agent I wrote for work, which talks to claude models. I have not gone into the details on whether it adheres to the format exactly, but i do see visibly less slop and less marketing nonsense in the Assistant messages.
It’s ironic that the README has all the tells of being LLM-written:
> 53 numbered rules, 9 sections, written in 1983 by people whose readers die when a sentence is ambiguous. The ones doing the heavy lifting: …
Not really a promising tell for a writing skill, IMO.
The problem with at least ChatGPT is no matter what personality you set it still reads like a smug asshole trying to sound smart. You can just pick different flavors of smug asshole.
And the goddamn emojis. I get it, people use them when texting to make the writing a bit more chummy, but I can really live without them everywhere else.
I've been using a plain ASD-STE100 prompt for a little bit now, and while I somewhat prefer the text that agents produce while being told to use simplified English, it does not necessarily change the overall structure of what they write. It just now tends to have shorter sentences, and fewer drumroll, pitch-deck / vacuous section titles like "the finding that pivots the preposition", etc. Overall a significant quality increase in my opinion, but nothing earth shattering, and doesn't fully solve the problem.
How is that ambiguous? The best interpretation I can find where "test" is a verb is an elision: Test [that] B is an alternative to test A. That is an unlikely reading: "test" is a verb in the first instance and a noun in the second, breaking parallelism. And it's just a very unlikely thing to direct someone to do.
Ah, I see, taking "to test A" as an infinitive. But it would be strange to say test B is an alternative without saying what it's an alternative to. The other reading still seems quite unlikely.
The point of STE is to support technical writers who have knowledge of the matter and a style guide. In other words, STE will not make something unambiguous simply by replacing words. The example sentence is just to illustrate a grammar rule: "test" as a verb vs a noun. That is all. You should not assume an STE rule will disambiguate a single sentence pulled out of context.
Ironically?, you're not allowed to copy from the pdf (yes, trivially defeatable - but why).
I guess we'd need a linter (ruff, but for English) that gates whether you're using any non-ASD-STE100 word? Otherwise, yeah, any agent will almost certainly forget this (one line) instruction.
One question I have about stuff like this: How does it affect the models intelligence or thinking ability. If this modifies the output or chain of thought in any way, it may impact what the model is capable of right? Especially if it's not trained to use this kind of language during training.
Anecdote: was testing Opus 5 and even ASD-STE100 cannot save you from its meta-commentary and signposting all the time. It writes what it wants to write, e.g. "here's where you are right/wrong" instead of "Your instinct of the shape is right, but here's a sharper version". I could not get it to stop doing that.
In contrast if you ask GPT 5.5/5.6 to speak directly/plainly, it will just straight up tell you the content "X is right, Y is wrong". Much preferable.
This video benchmarks slop-style indicators with different skill/prompt solutions including the STE skill vs. George Orwell's six rules of writing prompt: Orwell came out on top overall.
Additional bonus: it doesn't add much more tokens to input context. I have compared prose prompts with these rules and without and I am liking the results.
1. Never use a metaphor, simile, or other figure of speech which you are used to seeing in print.
2. Never use a long word where a short one will do.
3. If it is possible to cut a word out, always cut it out.
4. Never use the passive where you can use the active.
5. Never use a foreign phrase, a scientific word, or a jargon word if you can think of an everyday English equivalent.
6. Break any of these rules sooner than say anything outright barbarous.
I don't know if I have been damaged by reading so much AI, but I swear the narrator of that video had the script for it written by Claude without any of those rules applied. There are so many platitudes and AI-isms in the way he speaks:
"now the honesty - those translation gains were real but small"
"and here is the honest part"
"same disease but with different symptom"
"so that brutal 3% number was a Claude quirk, not a law of nature"
the problem I’ve found with these things is that models drift immediately.
if it’s not a git commit hook that runs over docs and comments and commit messages objectively it’s probably useless.
which I might try.
Claude is so friggin wordy and has no idea how place comments iff they actually matter.
I've been using this method for about a week - great outcomes from it so far: clear, clean language that sounds like something someone would actually write.
- Ask it to update the skill to warn it against making that mistake again
I think that, using that iterative process, I end up with something better than just asking it to perform the task plainly
One observation: ask an LLM to write a skill, it tends to make them overly verbose and prescriptive. Often, something briefer and human-written actually works better
Another: I generally let the LLM propose edits to the skill, but I review them carefully and often modify them, because I find it has a tendency to solve the current problem at the price of worsening the solution to a previous one
> - Ask it to update the skill to warn it against making that mistake again
Yep! I have a canned prompt that basically boils down to "scroll up, read through and give me the top `n` things that were difficult..." and more often than not a small skill or change to `agents.md` comes out of that.
Technically speaking: it can't, any more than it can actually answer any other thing you ask it to do.
But in practice it does produce fairly reasonable output fairly often, and if you've been there watching and correcting it you can probably validate the result quite easily. "Re-read everything before" and similar are definitely anthropomorphizing, but that doesn't mean they're ineffective.
> One observation: ask an LLM to write a skill, it tends to make them overly verbose and prescriptive. Often, something briefer and human-written actually works better
Incredibly so. All too often a “hey, you shouldn’t have done that here” turns into “NEVER X”, without it actually understanding or making an effort to understand why the correction was made, though I would say usually the context to do so should suffice. I have a rule for it to reason this through and use nuanced language and would say the frontier GPTs (5.4 to 5.6 Sol) get it right around half of the time (very rough estimate). The conclusions are really dumb sometimes.
I’d be interested in an expertly crafted skill here, maybe there are things about it you can still improve. This is an area in which I still find LLMs to be quite lacking.
It also made me appreciate the complexity of the nuances and levels of indirection of what I want to teach it: “Upload to the remote host, which in this case is this but might be another one in another use case, only do this on the local system and this on the remote, do this to X unless Y …, prefer doing Z unless another rule overrides it …”
I sometimes feel like there could be a more expressive way to structure to structure these rules (bring the snark!).
Yep. That is what I do too. But a lot of times the changes it makes are bandaids rather than addressing root cause. I have to periodically evaluate the skills for consistency and opportunities for simplification.
Oh, skills are absolutely useful for giving the LLM distilled knowledge of things that it doesn't just know ("off the top of its head" so to speak). For example, a company's coding style guide is something that could be very useful to express as a skill.
Not true. At work I have skills for different sets of APIs for different scenarios. That saves some prompt bloat because you rarely need to straddle projects. So you just load whatever you're using and don't have to maintain a a giant prompt.
They are useful for packaging all the related bits together. Some instructions on the line to add to the main prompt, detailed policy doc that spells out details, troubleshooting docs, the code itself, etc.
I actually don't mean that skills are useless, I have them in my projects too. Just that any time I've seen one shared publicly, basically the introductory blurb of "what does this skill do?" would serve adequately as "the skill". Such is the nature of machines that understand natural language.
It makes it kind of funny publishing skills online because by the time somebody knows they want the skill, they already have it.
My agent skills are just sets of instructions for my preferred way for something to be done. Mostly code reviews listing classes of bugs and output format and the like.
But also development instructions focusing on how and what to research before implementing (some of the stuff I do ends up heavily influenced by papers and publications while the naïve implementation is often bad, old, or gets stuck.
I have something like "no over enthusiasm, and less marketing please. Also I have ADHD and therefore get distracted easily" in my agents.md. It made responses way more digestible and to the point.
I have a question about how did the project evaluate the technical English performance compared to other skills/MCPs and with LLM w/o skills? In the Github repo, there is a summary of "measured: 6 Claude models × 8 tasks × 2 conditions, 96 runs", Does it means the percentage of violations in the words? If that's the case, the measurement might be a little bit strange weather the STE measure is already in the prompt? STE violations per 100 words ▼ 72.9% (every model won). The bench or evaluation should not be in the same prompt, like eval/test.
Cruft complaints aside, what are people actually doing about this? Claude's prose output is becoming incomprehensible as its coding skill increases, and the concepts it needs to express are becoming more complex as it can handle more complex tasks.
I tried "be concise and respond in a blunt tone" and all that did was add a section to the bottom of every response "here's the blunt concise truth <1 million bullet points>"
The actual STE standard would score horrendously in a college essay. STE encourages simplification and tons of repetition of words that is discouraged by college professors. It is designed to be clear technical writing for people with a loose grasp of English. College writing encourages complex sentence structure, varied word choice for the same concept and other things that make the writing more interesting at the expense of clarity.
Nothing is more comical than AI Slope declaring that I kill AI slop:
> your AI writes like a LinkedIn post. make it write like a Boeing manual.
> An agent skill that forces LLMs to write docs in ASD-STE100 Simplified Technical English:
the controlled language aerospace has used since 1983 so a tired mechanic cannot misread an instruction.
AI slop dies as a side effect.
The “tired mechanic” is apocryphal at best. ASD was intended to be clear to non-native speakers. Here’s an example from another page:
THE SYNTHETIC LUBRICATING OIL USED IN THIS ENGINE CONTAINS ADDITIVES WHICH, IF ALLOWED TO COME INTO CONTACT WITH THE SKIN FOR PROLONGED PERIODS, CAN BE TOXIC THROUGH ABSORPTION.
In STE this sentence appears as below:
DO NOT GET THE ENGINE OIL ON YOUR SKIN. THE OIL IS POISONOUS. IT CAN GO THROUGH YOUR SKIN AND INTO YOUR BODY.
Consider if you translated those phrases into a foreign language you’re basically familiar with. You can be awake as you want and mis-interpret the first one.
I've added the prompt to use the ASD English, on my CLAUDE.md when I learnt of the standard. The generated output is more tolerable to read, and is less confusing.
I like it, and I'll also try the Economist one on another thread here. I have global instructions on how Claude should try to write things like I do.
I generally avoid having lots of skills, security risk as I won't vet them all.
The day I have to negotiate and persuade the machine to stop talking shit rather than command it is the day I decide fuck it and go and farm geese or something.
Smells like today. I’ll take goose shit over this.
I don't understand the challenges involved super well but I feel like this might be better as a piece of actual code (like a linter) that you can run to have an LLM iteratively de-slop its own writing, rather than forcing it out of distribution and having to contend with all the unreliability that entails.
Recent-ish models learned to use the same trick engineers played on non-engineers, where they try to sound very smart by overcomplicating very simple concepts.
It's very taxing, especially since these are usually multi-paragraph texts. I noticed I've started doing a lot of "hey, you're talking gibberish again" a lot with 5.6 Sol.
Both. Command the author to use the style, then command a reviewer to check it. Write one skill called review-prose with your rules, and another called write prose which tells the author they will be judged by review-prose, so you only write the rules once.
What I have found is that getting a model to rewrite a badly written passage is hard, because it seems to key off what it reads. It might swap some vocabulary around ok, but it doesn't fix structures very well. So getting it close to the preferred style in the first place is better.
To take this further, if you must fix existing bad prose, write a clean-prose skill which extracts the bare structure of the prose with none of the style, hands it to an author subagent who isn't poisoned with the original bad prose, then hands the output to a reviewer subagent.
Opus 5 writing is horrendous, so I have been experimenting with improving the output!
It would be nice if people were indeed doing things.
However, asking Claude to write a skill encoding ASD-STE100 after seeing it pop-up in your social feed is not doing much at all. It's certainly not worth a post on HN.
Having said that, this skill might have been the seed for the flurry of low-effort posts on the subject on various platforms this week. If that's the case, I take back the majority of my scorn.
You'll have to excuse me for becoming jaded by the diminishing levels of visible effort put into projects and products shared on here.
Based on what? I wouldn’t have learned about ASD-STE100 if I hadn’t stumbled upon this post. I’m not even going to use the linked GitHub project, just mentioning ASD-STE100 spec in certain prompts makes them useful.
Since your claim that adhering to a proven style guide is useless slop is not itself useless slop, I am looking forward to your empirical evidence or formal proof that there is no benefit to using it.
The examples are not good. In one example (incident report) the agent turns a generic "something went wrong" into overly precise error descriptions that may or may not spill internal details. Then it proceeds to make a promise to implement a persistent monitoring for that problem this week.
I mean generally this wouldn't be considered a bad response, but it is deeply problematic if an LLM tasked to just simplify language added both internals and promises to your customers without your knowledge.
> Rewrite this using ASD-STE100 simplified technical English:
And you get a good-enough result, it seems? Maybe add another sentence or two for guidance, but what's with needing these giant skills, when ASD-STE100 was surely in the training material?
reply