Agent Skill to Force Docs in ASD-STE100 Simplified Technical English

4 days ago (github.com)

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.

STE Misapplication issues and limited adoption

https://en.wikipedia.org/wiki/Simplified_Technical_English#M...

  • 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 like the idea, but not sold on the skill.

But did lead to me finding https://vale.sh and its various available linters. Might give that a try.

  • STE is part of the training set, so the skill is redundant and only pollutes your context window.

  • How would one use Vale in LLM documentation?

    • 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.

Seems to be doing too much, a 1 line in the system prompt is all you need. And it works well enough.

“Output tokens are precious, be succinct in your responses. Use ASD-STE100 simplified technical english”

  • 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.

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.

  • 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.

  • They acknowledge this, but I really dislike whatever style they're using for the readme:

    > Yes, this README breaks half of them. Marketing is explicitly out of STE scope. The skill knows that and stays in the docs.

    > Where it refuses to go: marketing copy, blog voice, brand writing. Flat on purpose.

    (Each sentence there has an emoji that HN cuts out)

    • 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.

      3 replies →

    • 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.

  • The readme looks to me concise and correct. Tested it and it works. Better than many human-written readmes I've seen around.

Gotta love how the very first example in Issue 9 of the standard is already self-defeating:

> "Test" is an approved noun, but not an approved verb.

> STE: Test B is an alternative to test A.

So much for clear - unless you know the STE specific rule, the sentence is unambiguously ambiguous.

Direct access btw since the official site gates downloads with a Google form: https://www.asd-ste100.org/assets/files/ASD-STE100_ISSUE9.pd...

  • 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.

    • "Test B is an alternative to test A."

      could mean there's a Test B and a Test A, and they're interchangeable.

      Or:

      You can run Test B to confirm A works, that is "to test A".

      Again the stated goal to clear documentation for non-native or limited-exposure speakers. This doesn't pass that test.

      3 replies →

Does anyone know why ASD-STE100 is having a moment right now? Viral tweet?

I heard about it from a friend, and posted its "spec" here a few days ago:

https://asd-web-be-prod.azurewebsites.net/media/wunhmi5y/asd...

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.

https://youtu.be/uJblcC4lKYw

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.

This is cruft [1]. No one who is capable of using this needs it--it's a line in the prompt at most.

[1] https://knowyourmeme.com/memes/thinking-quickly-dave-constru...

  • Yes the prompt "only output ASD-STE100 Simplified Technical English" does the same thing as the skill.

    But it's very useful and skills is a good way to share promots, so whatever.

    Try the skill or the prompt. It will likely improve your experience interacting with agents

  • I have yet to see an "agent skill" that does not match this description.

    • How I use skills:

      - Create a skill to perform some common task

      - Watch the agent use it

      - Wait until the agent makes a mistake

      - 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

      8 replies →

    • 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.

    • 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.

    • 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.

      1 reply →

  • 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.

["Skill", "Force"]

Pick one.

  • Here is the revised post title that follows ASD‑STE100 Simplified Technical English rules:

    "Agent Skill to Enforce ASD-STE100 Simplified Technical English in Documents"

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 has quite a lot of luck making docs nicer by asking to "write using the dry/succinct style of ukgov/gds".

If you want to take things further you can use linters to enforce the whatever style you want, but just naming it is a good start.

  • 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>"

Okay here's one of the outputs:

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

Wouldn't it be better to write:

Before start, ensure AWS credentials are correct. Otherwise, S3 rejects uploads with permission error.

  • The example is unambiguous. Your modification is ambiguous at best. <failure to ensure aws credentials are correct> != <aws credentials are incorrect>

  • Violates rule 4.2: Do not omit words or use contractions to shorten sentences. Keep articles, keep "that".

  • Which one would do better in a college essay? I think the original one, and it has higher word count.

    • 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.

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.

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.

Oh, is ASD-STE100 this week’s mindless productivity/AI-bro trend?

Ads-STE100: Simplified Technical English - https://news.ycombinator.com/item?id=49108318

  • New models (especially Opus 5, released just last week) produces unintelligible output, so people are trying to fix it.

  • You didn’t link to it but I looked back at my very few submissions and realized that I had posted it in 2019. I thought it sounded familiar!

  • 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.

    • I tried letting Fable have a few passes at my docs (ultracode) and the output was basically unreadable. Nothing a human would ever write.

      I wonder if limiting them to a certain style like STE upfront would make them perform better/worse vs. applying the style after they’re done.

      1 reply →

  • What’s it like to be this abrasive about people simply doing things?

    • 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.

      5 replies →

I often ask it to aim for a Flesch-Kincaid Readibility Ease Score of around 50, with good results. ELI5 is good too where appropriate.

I'll add ASD-STE100 to my list of decorposlopification strategies.

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.

Anyone tried this as an output style and not just as a skill?

  • 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.

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.

  • You can't de-slop it you can only make it less slop.

    AI slop doesn't die at all.

You don't need any of this slop. Just add this to your AGENTS.md file, jesus christ.

"When writing plans or documentation use:

ASD-STE100 Simplified Technical English (STE for short)"

What a wonderful skill. I hate the long and verbose do strings or docs LLMs spit out. This will make a great addition to my docu agent.

And I agree, maybe I should use this for my emails too

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.

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.

The very first sections of the README having obvious claude-isms is not very reassuring:

> AI slop dies as a side effect

> One folder, no dependencies, MIT.

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.