The ASD-STE100 (Simplified Technical English) Issue 9 rules.
Project description
biz.dfch.AsdSte100Rules
Introduction
This is a Python library, that implements the ASD-STE100 Issue 9 rules, recommendations, and section-introduction blocks (rule sections 1-11 and the General Recommendations), as a queryable ruleset. A Rule has these properties:
type_, is this entry aRULE, aRECOMMENDATION, or anINFORMATION(section-intro) block?id_, the rule id, e.g.R1.5orGR-3ref, the page reference in the ASD-STE100 Issue 9 documentsection, the section name, e.g. "Words"category, the category within the section, e.g. "Technical nouns"name, the rule's short titlesummary, the rule's summary textcontents, alistof content blocks that make up the rule's body
Each ContentItem in contents has a type_ (text, heading, note, comment, example, ste_example, nonste_example, not_recommended, technical_nouns, or technical_verbs) and its data.
The Rules class is the query container over a list of Rule entries — loaded from the packaged built-in ASD-STE100 Issue 9 ruleset, from your own JSON file(s), or both — and offers find, by_section, by_category, match, search, filter, examples, overview, and toc.
biz.dfch.AsdSte100Mcp uses this library to expose the ruleset over MCP.
Data model
The built-in ASD-STE100 Issue 9 ruleset ships as a single packaged JSON file, data/asdste100_issue9_rules.json — a pretty-printed JSON array of 66 entries (rules, recommendations, and section-introduction blocks), one object per Rule:
{
"type_": "rule",
"id_": "R1.1",
"ref": "Issue 9 page 1-1-2",
"section": "Words",
"category": "Which words can you use?",
"name": "Use words that are: ...",
"summary": "Simplified Technical English (STE) has a controlled dictionary ...",
"contents": [
{ "type_": "text", "data": "A technical noun is a noun term ..." },
{ "type_": "example", "data": "- The word **use** is an approved verb ..." },
{ "type_": "note", "data": "In the context of ISO 1087:2019 ..." }
]
}
Loading is resilient: a malformed entry is skipped with a printed [ERROR] entry #N: ... message instead of raising, so one bad entry cannot break the whole ruleset.
You can point Rules (or any rules CLI command, via --file) at your own JSON file(s) in the same shape to extend or replace the built-in ruleset, e.g. to add company-specific rules or recommendations alongside the ASD-STE100 Issue 9 baseline.
Installation
biz-dfch-asdste100rules is on PyPI. Create a virtual environment and install the library with pip:
pip install biz-dfch-asdste100rules
Or install with uv:
uv add biz-dfch-asdste100rules
Command line usage
Installing the package also installs the rules console script:
uv run rules --help
Usage: rules [OPTIONS] COMMAND [ARGS]...
Commands:
find Find a rule or recommendation by exact id.
match Find rules matching a regular expression pattern.
section Find rules by exact section name.
category Find rules by exact category name.
examples Find example content items across rules.
overview Give a lightweight overview of the rules in the ruleset.
search Find rules whose text matches a regular expression pattern.
toc List the distinct section/category pairs in the ruleset.
Examples
Look up a single rule by id:
uv run rules find R1.5
List the document structure (section/category pairs and the ids they contain):
uv run rules toc
Full-text search across every rule's section, category, name, summary, and content (notes, examples, technical noun/verb lists, ...), optionally narrowed to one content type:
uv run rules search "technical noun" --content-type note
Get a lightweight overview (id, type, section, category, name, and content stats) without pulling in the rule bodies:
uv run rules overview --section Words
Collect only the STE examples for a section:
uv run rules examples --section Words --kind ste_example
Every command accepts --file (repeatable) to merge in your own JSON rules file(s) alongside, or instead of (--no-builtin), the built-in ASD-STE100 Issue 9 ruleset.
Make a Release
1. Make sure that all tests are satisfactory
Before you make the release, make sure the CI pipeline is green on the dev branch:
uv run --frozen ruff format --check
uv run --frozen ruff check
uv run --frozen pylint $(git ls-files '*.py') || true
uv run --frozen python -m unittest discover -v -s tests -t . -p "test_*.py"
2. Increase the version
Update the version in pyproject.toml:
version = "x.y.z"
3. Commit and push to dev
git add pyproject.toml
git commit -m "chore: bump version to vx.y.z"
git push origin dev
4. Merge dev into main
git checkout main
git merge dev
git push origin main
5. Create and push a version tag
This will create a binary artifact of the application and add it to the release.
export VERSION=x.y.z
git tag v${VERSION}
git push origin v${VERSION}
Then, select the dev branch to continue your work.
git checkout dev
Pushing the tag automatically triggers the publish.yml workflow, which will:
- build the
sdistandwheelwithuv build(this step creates the artifact) - create a GitHub Release with auto-generated release notes
- upload the files as a release artifact (this step adds the artifact to the release)
License
This library is licensed under the GNU Affero General Public License. See LICENSE for more information.
ASD-STE100 Simplified Technical English (Standard for Technical Documentation), Issue 9
Copyright 2025 Aerospace, Security and Defence Industries Association of Europe (ASD), https://www.asd-europe.org.
This library or the maintainer is not affiliated with ASD. ASD does not endorse this library or the maintainer.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file biz_dfch_asdste100rules-0.1.1.tar.gz.
File metadata
- Download URL: biz_dfch_asdste100rules-0.1.1.tar.gz
- Upload date:
- Size: 81.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2626b5d0eb83cbb189a25c5759ecabe841547a055eb69730a5d94b2270f82a29
|
|
| MD5 |
f85380f282ca53aebfb3e78f5cee69a9
|
|
| BLAKE2b-256 |
5a612835408d2089f73436a9cc9d8c6314a3881a8fcf89e8d23b901c53e5238c
|
Provenance
The following attestation bundles were made for biz_dfch_asdste100rules-0.1.1.tar.gz:
Publisher:
publish.yml on dfch/biz.dfch.AsdSte100Rules
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
biz_dfch_asdste100rules-0.1.1.tar.gz -
Subject digest:
2626b5d0eb83cbb189a25c5759ecabe841547a055eb69730a5d94b2270f82a29 - Sigstore transparency entry: 2312741825
- Sigstore integration time:
-
Permalink:
dfch/biz.dfch.AsdSte100Rules@1d090567fa5a65675409c73381dbf2120a070b97 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/dfch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d090567fa5a65675409c73381dbf2120a070b97 -
Trigger Event:
push
-
Statement type:
File details
Details for the file biz_dfch_asdste100rules-0.1.1-py3-none-any.whl.
File metadata
- Download URL: biz_dfch_asdste100rules-0.1.1-py3-none-any.whl
- Upload date:
- Size: 95.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56ac0f1cb0e7852bfbf2d4ac23c99f4c4813b1a3d5a1d509e26e5b72c077f4f2
|
|
| MD5 |
cbb6d78ba517cec63ed8eca514196c73
|
|
| BLAKE2b-256 |
c43451b5296a6c29ed1f41d732ffaaf6befa3a044f5045723554528fba4248f7
|
Provenance
The following attestation bundles were made for biz_dfch_asdste100rules-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on dfch/biz.dfch.AsdSte100Rules
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
biz_dfch_asdste100rules-0.1.1-py3-none-any.whl -
Subject digest:
56ac0f1cb0e7852bfbf2d4ac23c99f4c4813b1a3d5a1d509e26e5b72c077f4f2 - Sigstore transparency entry: 2312741900
- Sigstore integration time:
-
Permalink:
dfch/biz.dfch.AsdSte100Rules@1d090567fa5a65675409c73381dbf2120a070b97 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/dfch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d090567fa5a65675409c73381dbf2120a070b97 -
Trigger Event:
push
-
Statement type: