The cure for AI slop is a 1986 aircraft manual/kit

ste-recurring-errors.md

3 KB·Raw on GitHub ↗

The spec's own list of the 39 most frequent STE writer errors, with approved replacements

The 39 recurring errors

ASD-STE100 Issue 9 closes its dictionary introduction with a list of the errors that writers make most often — the words people reach for on autopilot, with the approved replacement for each. This file is that list, as data. It is a small factual excerpt; the full standard is free at https://asd-ste100.org.

Approved replacements are UPPERCASE, the way the dictionary prints them. Some replacements change the part of speech (check as a verb becomes CHECK the noun: "do a check") — those need a different sentence construction, not a word-for-word swap.

#Do not writeWrite
1acceptable (adj)PERMITTED
2alternate (adj)ALTERNATIVE
3any (adj)none, or a different sentence construction
4avoid (v)PREVENT
5both (adj)THE TWO
6check (v)CHECK (n) — "do a check"
7cover (v)COVER (n)
8complete (adj)COMPLETED
9damage (v)DAMAGE (n)
10ensure (v)MAKE SURE
11fit (v)INSTALL
12follow (v)OBEY
13further (adj)MORE
14further (adv)MORE
15have to (v)an action verb in the imperative form
16however (adv)BUT
17insert (v)PUT
18main (adj)PRIMARY
19may (v)CAN
20need (v)NECESSARY (adj)
21now (adv)AT THIS TIME
22old (adj)REMAINING, USED, EXPIRED
23over (prep)ABOVE, ON, ALONG
24people (n)PERSON, PERSONNEL
25perform (v)DO
26portion (n)PART
27press (v)PUSH
28reach (v)GET
29repeat (v)DO … AGAIN
30required (v)NECESSARY (adj)
31rotate (v)TURN
32secure (v)ATTACH, SAFETY
33shall (v)MUST
34should (v)MUST
35since (conj)BECAUSE
36test (v)TEST (n)
37therefore (adv)THUS, AS A RESULT
38under (prep)BELOW, IN, LESS THAN
39using (v)USE, WITH

The ones that matter for software docs#

Most of this list is aerospace muscle memory. Ten entries show up constantly in engineering prose and are worth internalizing even in flavored mode:

  • ensure → make sure — the single most common one in READMEs.
  • however → but and therefore → thus / as a result — cheaper connectors, same logic.
  • since → because — "since" is banned because it can mean time or cause. In docs this ambiguity is real: "since the server restarted" is both.
  • may → can and should / shall → must — permission and obligation language. If it is optional, say "can". If it is not, say "must".
  • perform → do — "perform an analysis" is the nominalization pattern.
  • using → use / with — "Using the CLI, run…" hides the actor. "Run … with the CLI."
  • check / test as verbs — STE makes them nouns ("do a check", "do a test") so the action verb stays unambiguous. In software prose, keeping "check" as a verb is fine — but pick one word for the action and never rotate synonyms.

The --strict flag of ste-lint.py enforces the strict subset (however, since, may, should, shall, using, follow). Flavored mode leaves them alone.

← Back to the episode