Write and review technical documentation — docs, READMEs, PR descriptions, error messages, runbooks, release notes, changelogs. English is inspired by ASD-STE100 Issue 9. Use when the architect writes or edits technical prose, API docs, or any document where clarity and brevity matter — even if they don't explicitly mention a style guide or simplification. Never use for marketing copy, essays, creative writing, or anything that needs a distinctive voice. These specs intentionally strip voice.
Install
npx skillscat add toxicwind/estate/airspeak Install via the SkillsCat registry.
airspeak
Agentic clarity: mechanical, machine-checkable prose rules for technical documentation. One language: English, inspired by ASD-STE100 Issue 9. STE is the named source for the mechanical rules below; the product goal is unambiguous, low-jargon English — not STE certification.
Agentic clarity rule set (10 families, all lintable)
The full STE spec is 434 pages; the ten families below are the mechanical subset that matters for agent-written prose. Each family names the STE anchor it descends from, so the lineage stays honest. Where STE and agentic clarity diverge (the em-dash cap, the marketing list), agentic clarity wins.
| Family (label) | Rationale | Before → After |
|---|---|---|
sentence-length [STE 6.3] / [STE 5.1] |
One idea per sentence; keeps agent output reviewable (4.1 "write short and clear sentences"; 5.1 max 20 words in procedures; 6.3 max 25 in descriptions) | "Start the server, then wait for it to bind port 8080, and finally run the health check." → "Start the server. Wait for it to bind port 8080. Run the health check." |
semicolon [STE 8.1] |
Semicolons are misused by agents more than humans; a period split reads cleaner | "The build failed; the log shows a type error." → "The build failed. The log shows a type error." |
nominalization [STE 3.7] |
Verbs describe actions more clearly than nouns | "The ohmmeter gives an indication of 450 ohms." → "The ohmmeter shows 450 ohms." ("Do a check" → "Check") |
phrasal-verb [STE 9.3] |
Vague verbs are the #1 source of agent ambiguity | "Spin up the server." → "Start the server." |
banned-vocab [anti-slop] |
Marketing adjectives carry no information | "A robust, seamless, powerful solution." → "A solution." |
em-dash [style] |
Cap, not ban — STE 8.1 explicitly allows the em-dash; keep at most one per paragraph | "The parser — a recursive descent one — is fast — but hard to debug." → "The parser — a recursive descent one — is fast but hard to debug." |
contraction [STE 4.2] |
Contracted negatives trap non-native readers and agents | "Don't touch the wires." → "Do not touch the wires." |
missing-that [GR-1] |
"Make sure the valve is open" is ambiguous; "Make sure that the valve is open" is not | "Make sure the valve is open." → "Make sure that the valve is open." |
latin-abbrev [GR-6] |
e.g./i.e./etc. confuse non-native readers; agents overuse them | "e.g." → "for example" |
gendered-pronoun [GR-7] |
Neutral language is both a standard requirement and agent best practice | "When the architect starts the job, he must wait." → "When the architect starts the job, they must wait." |
Quick application checklist
Before returning any technical English prose:
- Any sentence over 20 words (procedures) or 25 (descriptions)? Split it.
- Any semicolon? Replace with a period, or rewrite as two sentences.
- Any nominalization (
perform an analysis of,do a check,make a determination of,provide assistance with)? Use the verb (analyze,check,determine,help). - Any phrasal verb (
spin up,reach out,dive into,delve into,circle back,deep dive,hop on a call,ping,leverage,utilize)? Use one precise verb (start,contact,open/read,read,return,analysis,call,message,use). - Any marketing adjectives? Cut:
seamless,robust,powerful,cutting-edge,effortless,world-class,next-generation,revolutionary,facilitate,empower,holistic,seamlessly,meticulously,crucial,pivotal,paramount,game-changing,tapestry,delve,navigate the landscape of. - More than one em-dash in a paragraph? Keep the one that earns the pause.
- Any contraction (
don't,isn't,it's,we're,you're,can't)? Write the full form (do not,is not,it is,we are,you are,cannot). make sure/ensure/check/verify/confirmfollowed by a clause withoutthat? Addthat.- Any Latin abbreviation (
e.g.,i.e.,etc.,vs.,et al.)? Write it out (for example,that is,and so on,versus,and others). - Any gendered pronoun (
he,she,him,his,her,hers)? Usetheyor rephrase.
Hard NO
- Do not paste the full STE Issue 9 dictionary (875 approved + ~1200 forbidden entries) into the prompt. It's copyrighted (ASD owns it; STEMG grants free use only to the listed categories of organizations) and burns ~8k tokens. The skill body covers the mechanical subset; the model knows STE-shaped prose from training.
- Do not apply STE to voice work. Marketing copy, essays, blog posts, narrative — running STE on these produces sterile text.
Modes
The lint extension has two modes; the model always reads this skill regardless of mode.
warn(default) — appends a violation list to the tool result so the model self-corrects on the next turn.block— rejects violating writes before they execute.
Companion artifacts (for the full setup)
- Linter:
~/.omp/agent/extensions/airspeak.tsruns the mechanical rules above on everywrite/editto**/*.md*. Default mode iswarn(injects a list of violations into the tool result so the model self-corrects on the next turn); flip toblockby editing the file or viadisabledExtensions: ["airspeak"]to disable entirely. - Pointer:
~/.omp/agent/APPEND_SYSTEM.mdcontains a one-line reminder to consult this skill.
Kill switches
This skill is off by default — the model only reads it when it judges a doc-related task. To disable entirely:
- Delete
~/.agent/skills/airspeak/SKILL.md - Add to
~/.omp/agent/config.yml:disabledExtensions: ["skill:airspeak"] - Add to
ignoredSkills: ["airspeak"]in config - Set
enableAgentsUser: falseto turn off the whole agents provider - Tighten the
globslist so it never matches your files