STE-Code is a documentation standard adapted from ASD-STE100 Issue 9 for code documentation. It gives you 51 writing rules, 4 grammar recommendations, a controlled vocabulary, and system prompt templates at five levels. The standard removes ambiguity, jargon, and hedging from README files, API documentation, docstrings, commit messages, and error messages.
Choose the level that fits your token budget:
| Level | File | Tokens | Best For |
|---|---|---|---|
| 1 | |||
level1/system-prompt.txt |
2level2/system-prompt.txt
3level3/system-prompt.txt
4level4/system-prompt.txt
Level 5 (the full specification) has 51 rule summaries at ste-code/artifacts/level5/.
Copy a system prompt into your LLM. The model writes clear, unambiguous documentation.
You: Copy level1/system-prompt.txt into the system prompt field.
LLM: You are an STE-Code technical writer. Apply these rules...
You: Check this docstring.
/** This function basically handles user stuff. */
LLM: /** Creates a user or updates the data of a user. */
The LLM applies the controlled vocabulary, the synonym table, and the sentence-length limits. It replaces jargon with approved words. It uses active voice and imperative mood.
The 51 rules cover nine sections:
| Section | Rules | Covers |
|---|---|---|
| 1 β Words | 14 | Approved vocabulary, parts of speech, technical nouns and verbs |
| 2 β Noun Phrases | 2 | Article use, noun clusters |
| 3 β Verbs | 7 | Tense, voice, mood, verb forms |
| 4 β Sentences | 5 | Length, clarity, contractions, completeness |
| 5 β Procedures | 5 | Instructional writing, step structure |
| 6 β Descriptions | 5 | Descriptive writing, comparisons |
| 7 β Warnings | 3 | BREAKING, DEPRECATED, NOTE formatting |
| 8 β Punctuation | 6 | Commas, hyphens, parentheses, lists |
| 9 β Document Structure | 4 | Headings, lists, tables, organization |
Each rule has a code-domain adaptation with paradigm-specific guidance for object-oriented, functional, procedural, declarative, and systems programming. The full rules are in ste-code/adapted/.
STE-Code against a plain assistant on 59 documentation tests across 14 categories:
| STE-Code | Plain Assistant | Improvement | |
|---|---|---|---|
| Pass rate | 96.6% | 11.9% | +84.7% |
| Average score | 0.919 | 0.471 | +0.448 |
Top categories: comments, error messages, and config files.
STE-Code/
βββ README.md
βββ ste-code/
β βββ artifacts/
β β βββ level1/system-prompt.txt β
~1.2K tokens
β β βββ level2/system-prompt.txt β
~4.5K tokens
β β βββ level3/system-prompt.txt β
~8K tokens
β β βββ level4/system-prompt.txt β
~45K tokens
β β βββ level5/ β
51 rule summaries
β βββ adapted/ The standard (57 adapted files)
β βββ data/ Structured JSON (vocabulary, synonyms)
β βββ templates/ Additional system prompts
β βββ merged/ master.md (full spec consolidation)
β βββ refined/ Stage 2 β formatted extraction
β βββ extracted/ Stage 1 β raw extraction
βββ spec/ ASD-STE100 Issue 9 source (434 pages)
βββ translations/ Translation scaffolding (9 locales)
βββ .agents/ Pipeline orchestration (agents, skills, config)
βββ config/agents.yaml Agent backend configuration
βββ tools/ Assembly scripts (agent-agnostic)
All assembly scripts use the agent runner at .agents/tools/agent-runner.py
. The default backend is Hermes. Add other agents in .agents/config/agents.yaml
.
python3 .agents/tools/assemble-level3.py
python3 .agents/tools/assemble-level2.py
python3 .agents/tools/assemble-level1.py
python3 .agents/tools/assemble-level1.py --agent claude
python3 .agents/tools/agent-runner.py --list
For full documentation, see .agents/AGENTS.md.
The standard was built from ASD-STE100 Issue 9 through a five-stage automated pipeline:
Extract β Refine β Merge β Adapt β Artifacts
(434pp) (109f) (1f) (57f) (5 levels)
Nine specialized agents orchestrated 109 parallel workers. The adaptation replaced aerospace terms with code-domain equivalents.
MIT. See LICENSE.
@misc{ste-code-2025,
title = {{STE-Code}: Simplified Technical English for Code Documentation},
author = {{Nikola Hristov}},
year = {2025},
howpublished = {\url{https://github.com/NikolaRHristov/STE-Code}},
note = {Adapted from ASD-STE100 Issue 9 (January 2025)}
}
STE-Code stands on decades of controlled-language research, documentation theory, and verification tooling.
ASD-STE100 Simplified Technical English, Issue 9 (January 2025)β the foundational standard STE-Code adapts to the code domain. Owned by** ASD β Aerospace, Security and Defence Industries Association of Europe**, Brussels; maintained by the** Simplified Technical English Maintenance Group (STEMG). Copyright and trademark of ASD.https://www.asd-ste100.org/ - AECMA / AIA Simplified English lineageβ STE's origin: developed in the late 1970sβ1980s by the European Association of Aerospace Industries (AECMA, now ASD)with the Aerospace Industries Association of America (AIA), at the request of the Association of European Airlines (AEA)**. Working group founded 30 June 1983, Amsterdam; first Guide release 1986; became ASD-STE100 specification in 2005 and an international standard in 2025. Historical basis for STE-Code's core principle: enforceability determines survival (Caterpillar Fundamental English, unenforced, died 1982).
Tobias KuhnβA Survey and Classification of Controlled Natural Languages(Computational Linguistics, 2014; 636+ citations). Source of the PENS classification (Precision, Expressiveness, Naturalness, Simplicity) used to profile STE-Code rules.https://aclanthology.org/J14-1005.pdf - Norbert E. Fuchs & Rolf Schwitter(University of Zurich) βAttempto Controlled English (ACE)(1996). Precedent for machine-processable controlled English and explicit quoting conventions for the useβmention distinction.https://attempto.ifi.uzh.ch/ - Rimay CNL researchβOn systematically building a controlled natural language for functional requirements(PubMed). Source of the coverage methodology (88% of 460 real statements expressible).https://pubmed.ncbi.nlm.nih.gov/34776756/
John M. CarrollβMinimalismtradition in technical documentation (ACM SIGDOC). Learning-theoretic basis for register stratification: users act first and read at the moment of need.https://dl.acm.org/doi/10.1145/296336.296362
asciidoctest(PyPI) βVerifiable, stateful, and interactive documentation with AsciiDoc. Reference implementation for code-block verification.https://libraries.io/pypi/asciidoctest
Google Style Guidesβ precedent for public, per-language style standards.https://google.github.io/styleguide/Kristories/awesome-guidelinesβ community catalogue of coding standards.https://github.com/Kristories/awesome-guidelinesgithub/codeql-coding-standardsβ precedent for machine-enforceable standards as executable queries.https://github.com/github/codeql-coding-standards
ASD-STE100 is a copyright and trademark of ASD, Brussels. STE-Code adapts its principles and rule categories to the software domain; it does not reproduce the standard's dictionary or rule text. Users requiring the authoritative aerospace standard should obtain Issue 9 directly from ASD (free of charge via the official form): https://www.asd-ste100.org/.