agentleFS
alint-devalint-dev/alint/.agents/skills/simple-english/SKILL.md

simple-english

Skill123 starsChanged 3 months agoMITView on GitHub

Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop. Use for documentation, READMEs, runbooks, procedures, error messages, release notes, incident reports, and API guides. Also use when the user says "STE", "Simplified Technical English", "ASD-STE100", "de-slop", "make this readable", "write for non-native readers", or asks for docs that translate well. Enforces the standard's 53 rules: 20/25-word sentence limits, one word one meaning, simple tenses, active voice, condition before command.

We split this skill into the rules it gives an agent

14 rules. 0 are common, 11 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 18 edited versions we read keep these.

  • 11

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write for that tired reader.

    line 23
  2. Distinctive:

    When asked to write or rewrite technical text:

    line 27
  3. Distinctive:

    Run the self-check: before you deliver. This step is not optional.

    line 33
  4. Distinctive:

    Do not mix the two in one passage.

    line 54
  5. Distinctive:

    Wrong shortening: Ensure file exists before running.

    line 132
  6. Distinctive:

    STE: Make sure that the file exists before you run the command.

    line 133
  7. Distinctive:

    No imperative in descriptive text.

    line 159
  8. Distinctive:

    Never bury the instruction after the explanation.

    line 169
  9. Distinctive:

    check / verify / confirm / validate / ensure → pick one

    line 263
  10. Distinctive:

    delete / remove / drop / destroy → one per meaning, kept consistent

    line 265
  11. Distinctive:

    run / execute / invoke / launch → pick one

    line 267
  12. Very specific:

    Search your draft for: 'll, 're, 's (contraction), has been, have been, should, -ing verbs after a comma, semicolons.

    line 295
  13. Very specific:

    Search for every if and when.

    line 296
  14. Very specific:

    Search for the verbs you did NOT pick in Your Task step 3 (the check/verify/confirm set).

    line 297

“Common” is measured: kept by at least 6 in 10 of the 18 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Simple English: Write Like an Aerospace Manual

Write technical text with the rules of ASD-STE100 Simplified Technical English. STE is the controlled language that aerospace and defense manufacturers use for maintenance documentation. The rules exist so that a tired reader who is not a native English speaker cannot misread an instruction. They remove the usual signs of AI-generated text as a side effect: long sentences, synonym rotation, hedges, filler, and decorative clauses.

Write for that tired reader. Each sentence must survive one read.

Your Task

When asked to write or rewrite technical text:

  1. Select the mode (pragmatic or strict, below).
  2. Classify each passage as procedural or descriptive. Every other rule depends on this.
  3. Fix your vocabulary before drafting. Pick ONE verb for the check/verify/confirm/validate concept and ONE noun for config/settings. Use no other word for these concepts in the whole document.
  4. Apply the rules from the catalog below.
  5. Run the self-check before you deliver. This step is not optional.
  6. Never touch code, identifiers, commands, or quoted errors (see Untouchables).

When asked to CHECK text instead of writing it, report each violation as: rule number, the offending text, a compliant rewrite. Cite only rule numbers that exist in this file. Do not cite rule numbers from memory: the numbering is unintuitive and models invent it (tested — an agent without this file cited "Rule 3.1: short sentences"; the real Rule 3.1 is about verb forms).

Two Modes

ModeWhenWhat you apply
Pragmatic (default)Docs, READMEs, error messages — the user wants clear textAll structural rules. Domain words stay ("idempotent", "webhook").
StrictThe user names STE, ASD-STE100, or complianceStructural rules + full vocabulary discipline, and tell the user that full compliance needs the official dictionary (free at asd-ste100.org).

Step 1: Classify the Text

Procedural (instructions)Descriptive (explanations)
PurposeTell the reader what to doExplain what a thing is or does
Verb formImperative: "Install the pump."Simple present/past/future
Sentence limit20 words (Rule 5.1)25 words (Rule 6.3)
Unit ruleOne instruction per sentence (5.2)One topic per paragraph (6.5), max six sentences per paragraph (6.6)

Do not mix the two in one passage. A "Getting started" section is procedural. An "Architecture" section is descriptive. A note inside a procedure is descriptive (25-word limit, no imperative).

THE RULE CATALOG

53 rules in 9 sections, paraphrased from ASD-STE100 Issue 9 with software examples. The official wording is in the free standard at asd-ste100.org.

Section 1 — Words (Rules 1.1-1.14)

RuleInstruction
1.1Use only approved words, technical nouns, or technical verbs.
1.2Use an approved word only as its listed part of speech.
1.3Use an approved word only with its approved meaning.
1.4Use only the approved forms of verbs and adjectives.
1.5You can use domain words as technical nouns ("webhook", "commit", "endpoint").
1.6Use an unapproved word only when it is a technical noun or part of one.
1.7Do not use technical nouns as verbs.
1.8Use the technical nouns of your project or industry.
1.9When you pick a technical noun, pick a short and clear one.
1.10No regional, slang, or jargon words as technical nouns.
1.11One item, one name. Do not call it "config" here and "settings" there.
1.12You can use domain verbs as technical verbs ("deploy", "compile", "merge").
1.13Do not use technical verbs as nouns.
1.14Use American English spelling.

In pragmatic mode, rules 1.5, 1.8, and 1.12 do the heavy lifting: your domain vocabulary is legal. The ones agents break are 1.7, 1.11, and 1.13.

Before: You can webhook the event, then do a deploy. After: Send the event to the webhook. Then deploy the service.

Section 2 — Multi-word nouns (Rules 2.1-2.2)

RuleInstruction
2.1Write multi-word nouns of three words or fewer.
2.2When a technical noun needs more than three words, write it in full once, then give a short form or hyphenate the units.

Break long noun chains with prepositions (of, on, in, for):

Before: the connection pool timeout configuration value After: the timeout value for the connection pool

Section 3 — Verbs (Rules 3.1-3.7)

RuleInstruction
3.1Use only the verb forms that the dictionary gives.
3.2Use only: infinitive, imperative, simple present, simple past, simple future, past participle as adjective.
3.3Use the past participle only as an adjective ("the cached response").
3.4No auxiliary verbs for complex constructions. No present perfect, no "is to be installed".
3.5Use an "-ing" form only as a technical noun or inside one ("logging", "the mounting bracket") — never as a verb.
3.6Active voice. In descriptive text, passive is legal only when the agent is unknown.
3.7Describe an action with a verb, not a noun ("compress the file", not "perform compression of the file").

Approved modals: can, will, must. Banned: should, would, may, might, could. The standard rejects "could" even for possibility: write "an explosion can occur", never "could occur". For "should": a requirement becomes "must"; a suggestion is stated as fact or deleted. This matters double for agent instructions — models read "should" as optional.

Before: The migration has completed and the table is being rebuilt. After: The migration is complete. The database rebuilds the table.

Before: The flag can be set in the config file, making restarts unnecessary. After: You can set the flag in the config file. Then a restart is not necessary.

Before: The temperature must be adjusted. After: Adjust the temperature.

Section 4 — Sentences (Rules 4.1-4.5)

RuleInstruction
4.1Write short and clear sentences.
4.2Do not omit words or use contractions to shorten sentences. Keep articles, keep "that".
4.3Use a vertical list for complex text.
4.4Use connecting words between sentences on related topics ("Then", "As a result").
4.5Put an article (the, a, an) or a demonstrative adjective (this, these) before nouns where applicable.

Rule 4.2 is the anti-terseness rule. STE is short sentences with complete grammar, not telegraph style:

Wrong shortening: Ensure file exists before running. STE: Make sure that the file exists before you run the command.

Section 5 — Procedural writing (Rules 5.1-5.5)

RuleInstruction
5.1Maximum 20 words per sentence. Warnings and cautions included.
5.2One instruction per sentence, unless two actions happen at the same time.
5.3Write instructions in the imperative: "Run the migration."
5.4Put a required condition before the command, divided by a comma: "If the build fails, read the log."
5.5Notes give information, never instructions. Notes get the 25-word limit.

Before: You'll want to grab the API key from the dashboard before configuring the client, which you can do under Settings. After: Get the API key from the dashboard, under Settings. Then configure the client with this key.

Section 6 — Descriptive writing (Rules 6.1-6.6)

RuleInstruction
6.1Give information gradually: one new fact per sentence.
6.2Use key words and phrases to give the text a logical structure.
6.3Maximum 25 words per sentence.
6.4Group related information in paragraphs.
6.5One topic per paragraph.
6.6Maximum six sentences per paragraph.

No imperative in descriptive text. Descriptions explain; procedures instruct.

Section 7 — Safety instructions (Rules 7.1-7.3)

RuleInstruction
7.1Use a word that shows the risk level ("WARNING" = injury, "CAUTION" = damage).
7.2Start with a clear command or condition.
7.3Then give the risk or the possible result.

Never bury the instruction after the explanation. The pattern transfers directly to destructive CLI flags, irreversible migrations, and dangerous API options.

Before: Note that data loss may occur in some circumstances if the destructive flag happens to be enabled when running against production. After: CAUTION: Do not use the --force flag against production. The flag deletes rows that do not match the source.

Section 8 — Punctuation and word count (Rules 8.1-8.7)

RuleInstruction
8.1All standard punctuation is legal except the semicolon. Write two sentences instead.
8.2Use hyphens to connect words that act as one unit.
8.3Parentheses are legal for references, item numbers, abbreviations, plural forms, explanations, alternatives.
8.4In a vertical list, the lead-in colon ends a sentence for word count.
8.5Text inside parentheses counts as one word.
8.6Count as one word each: numbers, numbers with units, abbreviations, alphanumeric identifiers, quoted text, titles, labels, proper nouns.
8.7A hyphenated word counts as one word.

Rule 8.6 matters for software text: sqlpipe run --config sqlpipe.yaml in backticks is quoted text and counts as one word. Long identifiers do not blow your sentence budget.

Section 9 — Writing practices (Rules 9.1-9.4, GR-1 to GR-8)

RuleInstruction
9.1When a word-for-word replacement does not work, restructure the sentence.
9.2Use each approved word correctly: approved meaning, approved part of speech.
9.3Do not build phrasal verbs ("go down" → "decrease", "set up" → "install" or "configure").
9.4Keep one consistent style and terminology through the whole document.

General recommendations GR-1 to GR-8: keep the conjunction "that", be careful with "with", give pronouns clear referents, prefer "this + noun" over bare "this", avoid false friends, avoid Latin abbreviations, use inclusive language, and use the possessive apostrophe form only when you are sure it is correct (GR-8: if unsure, do not use it — non-native readers find it hard).

GR-6 for software docs: "e.g." → "for example", "i.e." → "that is", and delete "etc." — name the items or write "and more".

VOCABULARY DISCIPLINE

The official dictionary (~900 approved words, ~1,200 banned words with alternatives) is copyrighted by ASD and is not reproduced here. Its mechanics apply without it: one word, one meaning, one part of speech.

Known part-of-speech rulings, useful as patterns:

WordRuling
test, check, workNoun only. "Do a test", not "test the pump". "Check that X" becomes "make sure that X".
oilNoun only as used in STE examples. For the verb, the dictionary gives "lubricate".
helpVerb only. For the noun, the dictionary gives "aid": "with the aid of".
fall"To move down by gravity" only, never "decrease".
follow"To come after" only, never "obey". Write "obey the instructions".
above, belowPhysical positions only. For limits write "more than", "less than".

The modal ladder

You wroteSTE writes
should (requirement)must
should (recommendation)Delete it, or state it as fact: "X is better because Y."
may / might / could (possibility)can
may (permission)can
would (hypothetical)Restructure: "If X occurs, Y occurs."

Slop-to-simple substitutions

This table is ours, not the ASD dictionary. It maps the words AI-generated docs overuse to plain replacements. If the word carries no fact, delete it instead of replacing it.

SlopWrite instead
leverage, utilizeuse
in order toto
prior tobefore
ensuremake sure that
it is worth noting that(delete)
it's important to, crucially(delete — state the fact)
simply, just, easily, seamlessly, effortlessly(delete)
robust, powerful, comprehensive, performant(delete, or give the measurable property)
functionalityfunction, feature
enables you to, allows you toyou can
is designed to, aims to(delete — say what it does)
facilitatehelp, make possible
dive into, delve intoread, examine
when it comes tofor
in the event thatif
due to the fact thatbecause
as needed, as necessary(state the condition)
and/orPick one, or write "X, or Y, or both"
e.g. / i.e. / etc.for example / that is / (name the items)
gracefully handles(say what it does: "retries three times, then stops")
out of the boxby default
under the hoodinternally
blazingly fast, state-of-the-artfast (give the number) / (delete)
streamlinemake simpler, make faster
plethora, myriadmany
addresses the issue, tacklescorrects the fault, removes the error

Consistency pass

Collapse these common rotations to one term each (Rules 1.11, 9.4):

  • check / verify / confirm / validate / ensure → pick one
  • config / configuration / settings / options → pick one
  • delete / remove / drop / destroy → one per meaning, kept consistent
  • error / issue / problem / failure → "error" for errors, "failure" for failed operations
  • run / execute / invoke / launch → pick one
  • show / display / render / present → pick one

Untouchables

These are technical names (Rules 1.5, 8.6). Leave them exact, even when they break vocabulary rules:

  • Code blocks, inline code, identifiers, CLI commands, flags, file paths
  • Quoted error messages and log lines
  • Product names, API endpoint names, config keys
  • Numbers with units — each counts as one word in the sentence limit

Beyond Documentation

Same rules, different targets. Full adaptations in references/use-cases.md:

  • Error messages: state what happened (simple past), the cause if known, then the fix as an imperative. No "Oops", no "Please ensure", no apology filler.
  • Runbooks: STE's home turf. Imperative steps, conditions first, warnings before the step.
  • Incident reports: simple past only. "We have identified an issue that may have impacted" becomes "Between 14:02 and 14:31 UTC, 12% of requests failed."
  • Release notes: breaking changes follow the warning pattern — command first, risk second.
  • Agent instructions (prompts, AGENTS.md): a system prompt is a procedure for a reader that cannot ask questions. One instruction per sentence, no "should", condition first.
  • Translation prep: STE's original job. One meaning per word plus complete grammar removes most translation ambiguity.

Self-Check Before You Deliver

This step is not optional. Run these four checks on your draft:

  1. Count words in your three longest sentences. Over the 20/25 limit → split them.
  2. Search your draft for: 'll, 're, 's (contraction), has been, have been, should, -ing verbs after a comma, semicolons.
  3. Search for every if and when. Each one stands at the START of its sentence, before the command. "Increase the timeout if the network is slow" → "If the network is slow, increase the timeout."
  4. Search for the verbs you did NOT pick in Your Task step 3 (the check/verify/confirm set). Replace every hit with your chosen verb.

Fix what you find, then deliver. For a full audit, run references/checklist.md.

Full Example

Before (real unedited AI output):

Connection timeouts. If sqlpipe hangs or fails with dial tcp: i/o timeout, check that the host running sqlpipe can reach the Postgres port (usually 5432) — this is often a security group or firewall rule blocking the connection. If you're connecting to a managed database (RDS, Cloud SQL, etc.), confirm the instance allows connections from sqlpipe's IP. You can also try increasing source.connect_timeout_seconds in your config, since a slow network path can trip the default timeout even when the connection eventually succeeds.

After (classified procedural, verb = "make sure", conditions first, one instruction per sentence):

Connection timeouts. sqlpipe stops with dial tcp: i/o timeout when it cannot reach the Postgres port (5432 by default).

  1. Make sure that the host that runs sqlpipe can reach the Postgres port. A firewall or security group usually blocks it.
  2. If the database is managed (RDS, Cloud SQL), make sure that the instance accepts connections from the IP of sqlpipe.
  3. If the network is slow, increase source.connect_timeout_seconds in the configuration.

What changed: 40-word sentences split under 20; "you're" expanded; "check/confirm" collapsed to "make sure that"; every condition moved before its command; "etc." removed; code and error strings untouched.

Limits

STE is for technical facts and instructions. Do not apply it to marketing copy, blog voice, or brand writing — it deletes persuasion by design. When a user asks for STE on marketing text, say so and offer it for the docs instead.

This skill is an unofficial aid. It is not affiliated with or endorsed by ASD or STEMG, and no tool can guarantee STE compliance. ASD-STE100 is a registered trademark of ASD. The official standard is a free download at asd-ste100.org.

References

  • references/checklist.md — full verification pass with searchable patterns, for check mode and final audits
  • references/use-cases.md — long-form adaptations: error messages, runbooks, incident reports, commits, UI copy, i18n

Download now (ZIP)

Trending

Rising: 5 new projects took it in the last 4 weeks, 1.3× the 4 weeks before.thin data

Week of Aug 30: 2 new projectsWeek of Sep 6: 0 new projectsWeek of Sep 13: 0 new projectsWeek of Sep 20: 2 new projectsWeek of Sep 27: 4 new projectsWeek of Oct 4: 1 new projectWeek of Oct 11: 0 new projectsWeek of Oct 18: 0 new projects
Aug 2026Sep 2026Oct 2026
New projects taking a version of this file each week, over the 8 weeks our latest run read: only 9 in all, so this is a hint, not a trend.
  • Other versions22 projects use a version of this.

    Word for word · 4

    1. moeru-ai/airi★ 51k100% same
    2. moeru-ai/auv★ 198100% same
    3. moeru-ai/alint★ 123100% same
    4. United-Codes/uc_ai★ 49100% same

    Edited · 16

    1. chromedp/chromedp★ 13k15% same
    2. xo/usql★ 10k15% same
    3. AminBlg/SimpleEnglish★ 3.9k15% same
    4. TanStack/ai★ 3.3k100% same
    5. moeru-ai/xsai★ 66515% same
    6. danielvm-git/bigpowers★ 28625% same
    7. microsoft/oxidizer★ 18315% same
    8. samson-art/transcriptor-mcp★ 2414% same
    9. ivanrvpereira/.agents★ 1914% same
    10. apoapostolov/humanizer★ 919% same

    6 more not listed

    Wrote their own version · 2

    1. vinta/hal-9000★ 142same name
    2. guillevc/skills★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use grilling and grill-me.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • GoogleSkill

      grilling

      Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

      Also in 3 projects that use this

    • GoogleSkill

      grill-me

      A relentless interview to sharpen a plan or design.

      Also in 3 projects that use this

  • In this repository4 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.