Writing Simplified Technical English
PostHogOfficialPublished by PostHog
- Skill
- Guidelines
- Documents and content
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill implements the ASD-STE100 controlled-language standard to improve the readability and precision of agent-generated text. By enforcing rules such as active voice, simple tenses, and one idea per sentence, it eliminates ambiguity that often leads to misinterpretation. It is designed for technical documentation, instructions, error messages, and reports where clarity is critical for the reader or another agent to perform a task correctly. The skill provides a structured approach to rewriting dense or complex text while preserving essential technical details.
What it does
- Enforces one meaning per word to prevent confusion.
- Mandates active voice and simple tenses for direct communication.
- Limits sentence length and complexity to ensure readability.
- Restricts noun clusters to improve clarity.
- Provides a framework for rewriting technical prose.
- Ensures instructions are actionable and unambiguous.
When to use it
- When writing reports, findings, or status summaries.
- When drafting PR descriptions or commit messages.
- When creating instructions or prompts for other agents.
- When writing error messages, tool descriptions, or log lines.
- When you need to simplify dense or overly complex technical text.
Advantages
- Reduces the risk of misinterpretation by humans or agents.
- Increases the efficiency of reading and acting on technical content.
- Standardizes the style of agent-generated documentation.
- Eliminates ambiguity caused by synonym rotation or complex grammar.
- Maintains precision while improving overall clarity.
Usage examples
- “Simplify this error message: An error may have occurred while processing your request due to a possible mismatch in the expected data format, which could be caused by an outdated client version.”
- The request failed. The data format did not match what the server expected. Check your client version. An outdated client is the most common cause.
- “Rewrite this instruction in STE: Once the upstream job has completed and assuming no errors were raised, the downstream agent should proceed to consume the output artifact.”
- Wait for the upstream job to finish with no errors. Then read the output artifact.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/posthog/writing-simplified-technical-english/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip writing-simplified-technical-english.zip -d .agents/skills
Documentation by PostHog
Writing simplified technical English
ASD-STE100 is a controlled-language standard. The aerospace and defense industry wrote it so that a technician cannot misread a maintenance instruction. It removes the two biggest sources of misreading: words that carry more than one meaning, and sentences that support more than one structure.
The same discipline fixes the usual failure of agent-written prose. Agent output is often correct and unreadable: long sentences, stacked hedges, passive voice, and a synonym rotation that makes one action look like three. The reader has no author to ask, so ambiguity costs them a re-read at best and a wrong action at worst.
Apply the rules below as you write. Do not write a dense draft and clean it up afterward.
When to use this
Use it for text that a person or another agent must act on:
Reports, findings, and summaries.
PR descriptions, commit messages, and code comments.
Instructions passed to another agent, and prompts.
Tool descriptions, error messages, empty states, and log lines.
Do not use it where voice is the point: marketing copy, blog posts, or anything persuasive. STE is deliberately flat. Also leave quoted text alone. If you quote a user, a log, or a document, quote it as it is.
The rules
| Rule | Do | Do not |
|---|---|---|
| One meaning per word | Pick one verb per action and reuse it every time | Rotate "check", "verify", and "confirm" for the same action |
| One part of speech per word | "Apply oil to the valve" | "Oil the valve" |
| Active voice | "The worker deletes the file." | "The file is deleted." |
| Simple tenses | "We received the report." | "We have received the report." |
| One idea per sentence | "Open the file. Read line 3." | "Open the file and read line 3, then check it matches." |
| Sentence length | 20 words or fewer for instructions, 25 or fewer for descriptions | Chains of subordinate clauses |
| Noun clusters | 3 words or fewer ("fuel pump valve") | "high pressure fuel pump inlet valve assembly" |
| No missing words | Keep the subject, the verb, and the article, even if it reads longer | "Files not backed up will be lost", which hides which files |
| One hedge, at most | "The client version is probably out of date." | "An error may have occurred which could be caused by..." |
| Paragraphs | One topic, 6 sentences or fewer | Multi-topic paragraphs |
| Lists | Use a list for 3 or more steps or conditions | A sequence buried in one sentence |
| Jargon | Keep the technical term you need, and define it once | Use an internal name the reader has never seen |
PostHog house style sits on top of these rules and wins where the two disagree. We use American English, sentence case, and the Oxford comma. We do not use the em-dash.
How to rewrite
Read the text once for meaning. Do not start rewriting before you know what it must still say.
Go sentence by sentence. Name the rule each sentence breaks.
Rewrite the sentence to fix that break. Keep every fact, number, condition, and qualifier.
Check the result against the rules again. A rewrite often introduces a new long sentence.
Precision beats brevity. If a shorter sentence would drop a safety condition, a scope qualifier, or a number, keep the longer sentence and say why.
If the text already follows the rules, say so. Do not change compliant text.
Self-check
Before you send the text, read it once and ask:
Does any sentence run past 25 words?
Does any sentence carry two instructions?
Does the same action appear under two different verbs?
Can a passive sentence name its actor?
Would a reader who joins here, with no context, know what to do next?
References
references/writing-rules.md: the detail behind the table, plus sources.references/before-after.md: worked examples of the rewrite, including agent output.
Files
- ATTRIBUTION.mdAdded by AutoGineer891 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md5.4 KiB
- references/before-after.md4.0 KiB
- references/writing-rules.md2.9 KiB
references/before-after.md
Before and after
Every example below is invented to show a rule. None comes from a real report, ticket, or conversation.
Single sentences
| Rule | Before | After |
|---|---|---|
| One meaning per word | "Verify the flag, then confirm the rollout, then check the payload." | "Check the flag, the rollout, and the payload." |
| Precise verb | "Follow the retry policy." | "Obey the retry policy." |
| Simple tense | "We have received 400 exceptions since Tuesday." | "We received 400 exceptions since Tuesday." |
| Active voice | "The stale cache entry is evicted on the next write." | "The next write evicts the stale cache entry." |
| Noun cluster | "the task queue priority handler config" | "the config that sets task-queue priority" |
| No missing words | "Sessions not sampled are dropped." | "The worker drops a session that the sampler did not select." |
Tool description
Before:
This tool will attempt to synchronize state across the various backends that have been configured, and if a conflict is detected it may resolve it automatically depending on the strategy that has been set, or otherwise it will surface the conflict for manual review.
What it breaks: two instructions in one sentence, three hedges, 55 words against a 25-word cap.
After:
The tool syncs state across the configured backends. If it finds a conflict, it reads the current strategy. If the strategy allows automatic resolution, the tool resolves the conflict. If not, the tool reports the conflict for manual review.
Error message
Before:
An error may have occurred while processing your request due to a possible mismatch in the expected data format, which could be caused by an outdated client version.
What it breaks: passive voice with no actor, two hedges stacked, two claims in one sentence.
After:
The request failed. The data format did not match what the server expected. Check your client version. An outdated client is the most common cause.
Instruction to another agent
Before:
Once the upstream job has completed and assuming no errors were raised, the downstream agent should proceed to consume the output artifact, though it is worth noting that partial artifacts are sometimes produced under timeout conditions.
What it breaks: present perfect, three facts in one sentence, 42 words against a 20-word cap.
After:
Wait for the upstream job to finish with no errors. Then read the output artifact. A timeout can produce a partial artifact, so check that the artifact is complete before you use it.
Report finding
Before:
It appears that there may be an issue with the way in which the signup funnel is currently being instrumented, as the property that identifies the plan the user selected has not been being sent on the final step of the funnel since around the middle of last month, which means that any breakdown by plan is likely to be undercounting.
What it breaks: 62 words, three hedges, present perfect progressive, a vague date.
After:
The signup funnel drops the plan property on its final step. The property stopped arriving on 12 May. Every breakdown by plan undercounts from that date.
What not to simplify
Keep the longer sentence when the shorter one loses something:
A condition: "Delete the row only after the export finishes."
A scope qualifier: "This applies to teams on the legacy ingestion path."
A number, a date, or a unit.
Say why you kept it, in one line, rather than dropping it.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- PostHog
- Publisher
- PostHog (Official)
- Source
- PostHog/skills · skills/omnibus/writing-simplified-technical-english · commit a5d30e7
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by PostHog.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download writing-simplified-technical-english.zip