OPEN SOURCE STANDARD FOR TECHNICAL DOCUMENTATION
openste.org
OpenSTE provides transparent reference material and vocabulary insights that help teams align terminology decisions quickly.
Visit openste.orgMSB Writing Studio
MY-STE-BUDDY helps technical teams reduce review cycles, enforce Simplified Technical English standards, and deliver clear documentation at scale. Validate long drafts in seconds with precise, rule-based guidance.
New: each registered user can now upload and manage personal custom STE word lists and alternatives, so compliance checks can match team-specific terminology.
No setup friction · Enterprise-ready security · Fast onboarding support
Trusted by technical writing teams across aerospace, medical equipment, energy, and industrial engineering
POWERED BY INDUSTRY STANDARDS
MSB Writing Studio combines community-backed language resources and official Simplified Technical English guidance to deliver practical, trustworthy compliance workflows.
Community + Standard = Reliable Compliance
OPEN SOURCE STANDARD FOR TECHNICAL DOCUMENTATION
OpenSTE provides transparent reference material and vocabulary insights that help teams align terminology decisions quickly.
Visit openste.orgOFFICIAL STANDARD FOR TECHNICAL DOCUMENTATION
ASD-STE100 guidance anchors writing quality with globally recognized rules for clarity, consistency, and maintainability.
Visit asd-ste100.orgMSB Writing Studio PREVIEW
Review metrics, rule findings, and sentence-by-sentence guidance in one continuous interface. The live preview below auto-scrolls through the analyzer view.
WHY HIGH-PERFORMING TEAMS CHOOSE US
Precision
Evaluate terminology, sentence structure, and writing patterns against ASD-STE100 requirements in one pass.
Security
Protect sensitive documentation with secure processing, strict controls, and a privacy-first architecture for regulated environments.
Visibility
Provide teams and stakeholders with clear compliance scores, issue breakdowns, and measurable progress over time.
MEASURABLE BUSINESS IMPACT
Average reduction in manual compliance review effort
Efficiency Optimization Per document (600 words)
Enterprise-Scale Analysis Capacity
Validation accuracy for rule-driven compliance checks
FROM DRAFT TO RELEASE-READY
Paste procedures, maintenance tasks, or operational instructions without preprocessing.
The STE Compliance Checker checks ASD-STE100 rules and flags non-compliant language with clear rationale.
Resolve issues quickly with actionable suggestions and publish consistent, compliant content.
DEVELOPER API
Integrate STE compliance checks into CMS workflows, CI/CD quality gates, and internal authoring applications through a clean REST API.
Current API URL: https://api.my-ste-buddy.com/api/v1/nlp/analyse
curl -X POST https://api.my-ste-buddy.com/api/v1/nlp/analyse \
-H "Content-Type: application/json" \
-d '{"sentence":"Make sure that the valve is open."}'
Get API Credentials
Base URL: https://api.my-ste-buddy.com/api/v1
Custom STE sets are user-specific. Always send a stable user identity header
(x-user-id recommended) together with your auth headers.
x-user-id: user identifier that owns the custom setx-user-email and x-api-key: required when API auth is enabledContent-Type: application/json for POST requestscurl -X POST https://api.my-ste-buddy.com/api/v1/custom-sets/validate \
-H "Content-Type: application/json" \
-H "x-user-id: user-123" \
-H "x-user-email: you@company.com" \
-H "x-api-key: <api-key>" \
-d '{
"set_name": "Engine Program Terms",
"description": "Program-specific STE terminology",
"words": [
{
"title": "depressurize",
"plural": "",
"wordstatus": "approved",
"spacypos": "VERB",
"appmeaning": "remove pressure from a system"
},
{
"title": "utilize",
"plural": "",
"wordstatus": "unapproved",
"spacypos": "VERB",
"appmeaning": "legacy wording"
}
],
"alternatives": [
{
"title": "utilize",
"plural": "",
"alt_title": "use"
}
]
}'
If valid=true, continue to upload. If not, fix errors and re-validate.
curl -X POST https://api.my-ste-buddy.com/api/v1/custom-sets/upload \
-H "Content-Type: application/json" \
-H "x-user-id: user-123" \
-H "x-user-email: you@company.com" \
-H "x-api-key: <api-key>" \
-d '{
"set_name": "Engine Program Terms",
"description": "Program-specific STE terminology",
"words": [ ... ],
"alternatives": [ ... ],
"activate": true
}'
# List all sets for the user
curl -X GET https://api.my-ste-buddy.com/api/v1/custom-sets \
-H "x-user-id: user-123" \
-H "x-user-email: you@company.com" \
-H "x-api-key: <api-key>"
# Activate a specific set (replace <set_id>)
curl -X POST https://api.my-ste-buddy.com/api/v1/custom-sets/<set_id>/activate \
-H "Content-Type: application/json" \
-H "x-user-id: user-123" \
-H "x-user-email: you@company.com" \
-H "x-api-key: <api-key>" \
-d '{}'
# Switch back to default ASD-STE100 behavior
curl -X POST https://api.my-ste-buddy.com/api/v1/custom-sets/use-default \
-H "Content-Type: application/json" \
-H "x-user-id: user-123" \
-H "x-user-email: you@company.com" \
-H "x-api-key: <api-key>" \
-d '{}'
Call /nlp/analyse with the same user headers. The API automatically applies the
currently active set for that user.
curl -X POST https://api.my-ste-buddy.com/api/v1/nlp/analyse \
-H "Content-Type: application/json" \
-H "x-user-id: user-123" \
-H "x-user-email: you@company.com" \
-H "x-api-key: <api-key>" \
-d '{"sentence":"Do not utilize this tool in operation."}'
Response includes custom_set_active so clients can detect whether custom-list mode was applied.
x-user-id for upload and analyze to get consistent behaviorAPI Response (200 OK)
Content-Type: application/json
{
"sentence": "Hello this is my life I am working on!",
"word_count": 9,
"character_count": 30,
"punctuation_count": 1,
"passive": false,
"parenthetical_sentence_word_counts": [
[]
],
"noun_clusters": [],
"words": [
{
"index": 1,
"word": "Hello",
"lemma": "hello",
"approved": "na",
"alternatives": [],
"pos": "INTJ",
"pos_detailed": "UH",
"pos_explanation": "interjection",
"pos_detailed_explanation": "interjection",
"meaning": "",
"spelling_variant": {
"variant": "not_applicable",
"in_us_dict": false,
"in_gb_dict": false,
"explanation": "'Hello' POS 'INTJ' is excluded from spelling-variant analysis.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
},
{
"index": 2,
"word": "this",
"lemma": "this",
"approved": "true",
"alternatives": [],
"pos": "PRON",
"pos_detailed": "DT",
"pos_explanation": "pronoun",
"pos_detailed_explanation": "determiner",
"meaning": "",
"spelling_variant": {
"variant": "not_applicable",
"in_us_dict": false,
"in_gb_dict": false,
"explanation": "'this' POS 'PRON' is excluded from spelling-variant analysis.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
},
{
"index": 3,
"word": "is",
"lemma": "be",
"approved": "true",
"alternatives": [],
"pos": "AUX",
"pos_detailed": "VBZ",
"pos_explanation": "auxiliary",
"pos_detailed_explanation": "verb, 3rd person singular present",
"meaning": "have the quality of being; (copula, used with an adjective or a predicate noun)",
"spelling_variant": {
"variant": "not_applicable",
"in_us_dict": false,
"in_gb_dict": false,
"explanation": "'is' POS 'AUX' is excluded from spelling-variant analysis.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
},
{
"index": 4,
"word": "my",
"lemma": "my",
"approved": "na",
"alternatives": [],
"pos": "PRON",
"pos_detailed": "PRP$",
"pos_explanation": "pronoun",
"pos_detailed_explanation": "pronoun, possessive",
"meaning": "",
"spelling_variant": {
"variant": "not_applicable",
"in_us_dict": false,
"in_gb_dict": false,
"explanation": "'my' POS 'PRON' is excluded from spelling-variant analysis.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
},
{
"index": 5,
"word": "life",
"lemma": "life",
"approved": "true",
"alternatives": [],
"pos": "NOUN",
"pos_detailed": "NN",
"pos_explanation": "noun",
"pos_detailed_explanation": "noun, singular or mass",
"meaning": "a characteristic state or mode of living",
"spelling_variant": {
"variant": "both",
"in_us_dict": true,
"in_gb_dict": true,
"explanation": "'life' is valid in both US English and GB English.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
},
{
"index": 6,
"word": "I",
"lemma": "I",
"approved": "na",
"alternatives": [],
"pos": "PRON",
"pos_detailed": "PRP",
"pos_explanation": "pronoun",
"pos_detailed_explanation": "pronoun, personal",
"meaning": "",
"spelling_variant": {
"variant": "not_applicable",
"in_us_dict": false,
"in_gb_dict": false,
"explanation": "'I' POS 'PRON' is excluded from spelling-variant analysis.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
},
{
"index": 7,
"word": "am",
"lemma": "be",
"approved": "true",
"alternatives": [],
"pos": "AUX",
"pos_detailed": "VBP",
"pos_explanation": "auxiliary",
"pos_detailed_explanation": "verb, non-3rd person singular present",
"meaning": "have the quality of being; (copula, used with an adjective or a predicate noun)",
"spelling_variant": {
"variant": "not_applicable",
"in_us_dict": false,
"in_gb_dict": false,
"explanation": "'am' POS 'AUX' is excluded from spelling-variant analysis.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
},
{
"index": 8,
"word": "working",
"lemma": "work",
"approved": "true",
"alternatives": [],
"pos": "VERB",
"pos_detailed": "VBG",
"pos_explanation": "verb",
"pos_detailed_explanation": "verb, gerund or present participle",
"meaning": "exert oneself by doing mental or physical work for a purpose or out of necessity",
"spelling_variant": {
"variant": "both",
"in_us_dict": true,
"in_gb_dict": true,
"explanation": "'working' is valid in both US English and GB English.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
},
{
"index": 9,
"word": "on",
"lemma": "on",
"approved": "true",
"alternatives": [],
"pos": "ADP",
"pos_detailed": "IN",
"pos_explanation": "adposition",
"pos_detailed_explanation": "conjunction, subordinating or preposition",
"meaning": "",
"spelling_variant": {
"variant": "not_applicable",
"in_us_dict": false,
"in_gb_dict": false,
"explanation": "'on' POS 'ADP' is excluded from spelling-variant analysis.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
},
{
"index": 10,
"word": "!",
"lemma": "!",
"approved": "na",
"alternatives": [],
"pos": "PUNCT",
"pos_detailed": ".",
"pos_explanation": "punctuation",
"pos_detailed_explanation": "punctuation mark, sentence closer",
"meaning": "",
"spelling_variant": {
"variant": "not_applicable",
"in_us_dict": false,
"in_gb_dict": false,
"explanation": "'!' POS 'PUNCT' is excluded from spelling-variant analysis.",
"us_equivalent": "",
"is_incorrect": false,
"alternative_spellings": []
}
}
],
"asd_ste100": {
"rules": {
"rule_3_2": {
"violated": true,
"violation_count": 1,
"violations": [
{
"word": "working",
"lemma": "work",
"pos": "VERB",
"pos_detailed": "VBG",
"reason": "Gerund/progressive form is not allowed by ASD-STE100 Rule 3.2.",
"suggestion": ""
}
]
},
"rule_3_3": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_3_4": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_3_5": {
"violated": true,
"violation_count": 1,
"violations": [
{
"word": "working",
"lemma": "work",
"pos": "VERB",
"pos_detailed": "VBG",
"reason": "Rule 3.5 violation: non-approved '-ing' verb form used outside allowed technical noun usage.",
"suggestion": "Use an approved simple tense (for example 'work') or rewrite as a technical noun phrase."
}
]
},
"rule_3_7": {
"violated": true,
"violation_count": 1,
"violations": [
{
"word": "working",
"lemma": "work",
"pos": "VERB",
"pos_detailed": "VBG",
"reason": "Rule 3.7 violation: verb is not approved as a verb in STE dictionary.",
"suggestion": "Use an approved verb alternative or rewrite with a clear approved action verb instead of 'working'."
}
]
},
"rule_4_1": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_4_5": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_5_1": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_5_2": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_5_3": {
"violated": true,
"violation_count": 1,
"violations": [
{
"sentence": "Hello this is my life I am working on!",
"reason": "Rule 5.3 violation: instruction is not written in imperative (command) form.",
"suggestion": "Rewrite the instruction with a base-form command verb (for example, 'Continue the test.')."
}
]
},
"rule_5_5": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_6_3": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_7_1": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_8_1": {
"violated": false,
"violation_count": 0,
"violations": []
},
"rule_8_5": {
"violated": false,
"violation_count": 0,
"sentence_counts": [],
"violations": []
}
},
"general_recommendations": {
"gr_1": {
"violated": false,
"violation_count": 0,
"violations": []
},
"gr_2": {
"violated": false,
"violation_count": 0,
"violations": []
}
}
}
}
Minimal Response
{
"sentence": "Hello this is my life I am working on!",
"word_count": 9,
"passive": false,
"asd_ste100": {
"rules": {
"rule_3_2": { "violated": true, "violation_count": 1 },
"rule_3_5": { "violated": true, "violation_count": 1 },
"rule_3_7": { "violated": true, "violation_count": 1 },
"rule_5_3": { "violated": true, "violation_count": 1 }
}
}
}
GET STARTED
Share your current process and our team will help you deploy a practical STE compliance rollout.
SEND US A MESSAGE
ACCOUNT ACCESS
Access your verified account to continue with compliance workflows and STE Compliance Checker tools.