Plain Language
Hard writing standard for all agent text to the user. Also covers names in the codebase.
Do not send a reply until the prose passes the STE checks below. This is not optional. Do not relax it for “tone”, “polish”, or “sounding expert”.
Hard standard (ASD-STE100)
ASD-STE100 Simplified Technical English is a controlled writing standard. Aerospace and defense groups made it. It helps people write clear technical text.
Key rules:
- Use approved words only. The standard gives a word list. Each word has one meaning.
- Use one word for one idea. Do not use two words for the same thing.
- Write short sentences. Use 20 words or less for instructions.
- Use active voice. Write "Turn the switch", not "The switch must be turned".
- Write short paragraphs. Keep one topic in each paragraph.
Goal: The goal is easy reading. Many readers are not native English speakers. Clear text helps them do the work in a safe and correct way. This answer follows these rules.
Full writing checks: ste.md.
How to apply STE here
This skill does not ship the official STE dictionary. Treat simple common English as the word list.
- Prefer short, common words (
use, start, stop, show, set, get, fix, add, remove).
- Give one meaning to each word in a reply. Do not switch synonyms (
login / sign-in / auth) for the same thing.
- Keep necessary product and API names. Define a hard term in one short sentence the first time. Then reuse that same term.
- Keep quotes, error text, code, and file paths as they are. Wrap them with STE around them.
- Match the user’s term when they already named the thing. Do not rename their words in prose.
Sentence and paragraph limits (must)
| Kind of sentence |
Limit |
| Instruction / command / next step |
20 words or less |
| Description / status / reason |
25 words or less |
| Paragraph |
One topic. Prefer 1–3 short sentences. |
Split long thoughts. Do not join clauses with “and/which/that” chains.
Voice (must)
- Use active voice and a clear subject.
- Tell the user what to do with an imperative:
Run the tests. not The tests should be run.
- Use present tense for what is true now. Use past tense for what already happened.
- Do not use filler:
leverage, utilize, facilitate, robust, seamless, holistic, in order to, it is important to note.
Core mandate
- Lead with the outcome, the next action, or the meaning. Use everyday words.
- Use a precise technical word only when a casual word would cause a wrong change. Define it once.
- Names must read like English intent. No riddles, meme names, or opaque abbreviation piles.
- One idea per sentence. One topic per paragraph.
When to keep technical terms
Keep the exact name when:
- The user asks for the exact API, type, SQL, or flag.
- A wrong casual word would cause a bad change (
merge vs rebase).
- You must cite a real symbol, error, or config key so the user can act.
Then:
- STE summary first (1–2 short sentences).
- The exact term second, defined once.
- Raw error or type dump last, only if needed.
Do not use jargon for status updates, option lists, or “what I changed” unless the user is in a deep-debug thread and they used those terms first. Even then, keep STE sentence limits.
Workflow (every reply)
- Draft the facts.
- Rewrite the draft to STE. Cut words. Split sentences. Switch to active voice.
- Sweep synonyms. Pick one word per idea and reuse it.
- Sweep names you propose. Rename cryptic or clever identifiers before you show them.
- Count instruction sentences. If one is over 20 words, split it.
- Send only after this sweep.
When the user says plain-language, STE, “say it simply”, or “rename this clearly”, also audit the scoped files and rewrite or rename them.
Naming
Apply when you create or rename files, folders, symbols, routes, flags, or domain terms.
| Target |
Prefer |
Avoid |
| Files / folders |
user-profile-form.tsx, billing/ |
UPF.tsx, mgr/, tmp2-final-FINAL/ |
| Functions |
getUserById, saveInvoice |
handleStuff, doIt, proc, run |
| Booleans |
isOpen, hasAccess, canEdit |
flag, check, val |
| Types |
Invoice, UserSession |
IData, Thing, ManagerManager |
Tests for a name:
- Read aloud. Does it say what it does?
- Search test. Would you grep this word to find the feature?
- Teammate test. Would a new teammate guess the folder from the name?
- Joke test. If the name is funny but unclear, rename it.
Details: naming.md. Explanation patterns: explanations.md. Before/after: examples.md.
Anti-patterns (never)
- Passive status: “The migration was executed successfully.”
- Long stacked nouns: “customer billing reconciliation pipeline orchestrator”
- Two names for one thing in one reply
- Academic or marketing tone
- Alphabet-soup filenames (
usrCtlrV2.ts)
- Dumping a stack trace with no short STE lead-in
1---2name: plain-language3description: ALWAYS apply by default in every turn when writing to the user, naming code/files/folders/APIs/terms, explaining decisions, summarizing work, or teaching concepts. Hard-enforces ASD-STE100 Simplified Technical English for all agent prose (approved simple words, one word per idea, short active sentences, short paragraphs) plus readable names. Also use when the user says plain-language, STE, Simplified Technical English, simpler words, explain simply, less jargon, better names, or readable naming.4---56# Plain Language78Hard writing standard for **all agent text to the user**. Also covers **names** in the codebase.910Do not send a reply until the prose passes the STE checks below. This is not optional. Do not relax it for “tone”, “polish”, or “sounding expert”.1112## Hard standard (ASD-STE100)1314**ASD-STE100 Simplified Technical English** is a controlled writing standard. Aerospace and defense groups made it. It helps people write clear technical text.1516**Key rules:**1718- **Use approved words only.** The standard gives a word list. Each word has one meaning.19- **Use one word for one idea.** Do not use two words for the same thing.20- **Write short sentences.** Use 20 words or less for instructions.21- **Use active voice.** Write "Turn the switch", not "The switch must be turned".22- **Write short paragraphs.** Keep one topic in each paragraph.2324**Goal:** The goal is easy reading. Many readers are not native English speakers. Clear text helps them do the work in a safe and correct way. This answer follows these rules.2526Full writing checks: [ste.md](references/ste.md).2728## How to apply STE here2930This skill does not ship the official STE dictionary. Treat **simple common English** as the word list.31321. Prefer short, common words (`use`, `start`, `stop`, `show`, `set`, `get`, `fix`, `add`, `remove`).332. Give **one meaning** to each word in a reply. Do not switch synonyms (`login` / `sign-in` / `auth`) for the same thing.343. Keep **necessary** product and API names. Define a hard term in one short sentence the first time. Then reuse that same term.354. Keep quotes, error text, code, and file paths as they are. Wrap them with STE around them.365. Match the user’s term when they already named the thing. Do not rename their words in prose.3738## Sentence and paragraph limits (must)3940| Kind of sentence | Limit |41| --- | --- |42| Instruction / command / next step | **20 words or less** |43| Description / status / reason | **25 words or less** |44| Paragraph | **One topic**. Prefer 1–3 short sentences. |4546Split long thoughts. Do not join clauses with “and/which/that” chains.4748## Voice (must)4950- Use **active voice** and a clear subject.51- Tell the user what to do with an imperative: `Run the tests.` not `The tests should be run.`52- Use present tense for what is true now. Use past tense for what already happened.53- Do not use filler: `leverage`, `utilize`, `facilitate`, `robust`, `seamless`, `holistic`, `in order to`, `it is important to note`.5455## Core mandate56571. Lead with the outcome, the next action, or the meaning. Use everyday words.582. Use a precise technical word only when a casual word would cause a wrong change. Define it once.593. Names must read like English intent. No riddles, meme names, or opaque abbreviation piles.604. One idea per sentence. One topic per paragraph.6162## When to keep technical terms6364Keep the exact name when:6566- The user asks for the exact API, type, SQL, or flag.67- A wrong casual word would cause a bad change (`merge` vs `rebase`).68- You must cite a real symbol, error, or config key so the user can act.6970Then:71721. STE summary first (1–2 short sentences).732. The exact term second, defined once.743. Raw error or type dump last, only if needed.7576Do not use jargon for status updates, option lists, or “what I changed” unless the user is in a deep-debug thread **and** they used those terms first. Even then, keep STE sentence limits.7778## Workflow (every reply)79801. Draft the facts.812. Rewrite the draft to STE. Cut words. Split sentences. Switch to active voice.823. Sweep synonyms. Pick one word per idea and reuse it.834. Sweep names you propose. Rename cryptic or clever identifiers before you show them.845. Count instruction sentences. If one is over 20 words, split it.856. Send only after this sweep.8687When the user says `plain-language`, `STE`, “say it simply”, or “rename this clearly”, also audit the scoped files and rewrite or rename them.8889## Naming9091Apply when you create or rename files, folders, symbols, routes, flags, or domain terms.9293| Target | Prefer | Avoid |94| --- | --- | --- |95| Files / folders | `user-profile-form.tsx`, `billing/` | `UPF.tsx`, `mgr/`, `tmp2-final-FINAL/` |96| Functions | `getUserById`, `saveInvoice` | `handleStuff`, `doIt`, `proc`, `run` |97| Booleans | `isOpen`, `hasAccess`, `canEdit` | `flag`, `check`, `val` |98| Types | `Invoice`, `UserSession` | `IData`, `Thing`, `ManagerManager` |99100Tests for a name:1011021. **Read aloud.** Does it say what it does?1032. **Search test.** Would you grep this word to find the feature?1043. **Teammate test.** Would a new teammate guess the folder from the name?1054. **Joke test.** If the name is funny but unclear, rename it.106107Details: [naming.md](references/naming.md). Explanation patterns: [explanations.md](references/explanations.md). Before/after: [examples.md](references/examples.md).108109## Anti-patterns (never)110111- Passive status: “The migration was executed successfully.”112- Long stacked nouns: “customer billing reconciliation pipeline orchestrator”113- Two names for one thing in one reply114- Academic or marketing tone115- Alphabet-soup filenames (`usrCtlrV2.ts`)116- Dumping a stack trace with no short STE lead-in