extends: conditional
message: "Spell out '%s',it was not previously defined in the form 'my special term (MST)'."
level: warning
ignorecase: true
# Ensures that the existence of 'first' implies the existence of 'second'.
first: '\b([A-Z]{3,5})\b'
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
# - standardization bodies are generally allowed (IEEE, IETF, DIN, RFC, ... )
# - things that if googled are understandable to a nontechnical person are OK too
# - generally expect rather a developer audience
# - be careful with eCommerce slang (SKU etc), many developers have no domain experience
# ... with the exception of these:
exceptions:
  - API
  - ASCII # will only get worse when spelled out
  - AWS
  - CDN # "content delivery network" does not make it more understandable
  - CHF
  - CLI
  - CORS
  - CPU
  - CSS
  - CSV
  - DEBUG
  - DHL
  - DOM
  - EUR
  - FAQ
  - GBP
  - GET
  - GIF
  - GDPR
  - HEAD
  - HTML
  - HTTP
  - HTTPS
  - ICU
  - IDE
  - IETF
  - IEEE
  - IMPEX
  - JAR
  - JPEG # Do not use JPG, use JPEG
  - JPY
  - JSON
  - JSX
  - JVM
  - MDX
  - MIME
  - MIT
  - NET # otherwise ".NET" is complaining but it's generally known among developers
  - NPM
  - PATCH
  - PATH
  - PDF
  - PHP
  - PNG
  - POST
  - PSR # PHP Specification Request, used in PHP content and in that context known.
  - PUT
  - RAM
  - RAML
  - REST
  - RFC # "Request For Comment" would confuse readers even more.
  - RSA
  - SDK
  - SDL # We refer to the "GraphQL SDL" in our Release notes and in the GraphQL context that's ok.
  - SHA
  - SKU # generally we try to explain domain terminology but this one is so prevalent across the documentation that we allow it
  - SNS # AWS SNS, appears in many pages in a single place and amazon uses the short name themselves, too
  - SQS # see above
  - SQL
  - SSH
  - SSL
  - SSO
  - TLS # does not make sense to allow SSL but not TLS
  - TSV
  - SVG
  - TCP
  - UPS
  - URI
  - URL
  - USA
  - USB
  - USD
  - UTC
  - UTF
  - UUID
  - VAT
  - VIP
  - XML
  - XSS
  - YAML # Do not use YML
  - ZIP
  - ISO
  - RSS
  # MC UI Text (Cart discount rule editor)
  - NOT
  - AND
  - OR
  # Specials and Brands
  - YYYY # to be able to describe date formats like YYYY-MM-DD
  # the following exceptions are allowed because they are caught as errors by the ToDo rule.
  - XXX
  - FIXME
  - TODO
  - TBD
  - NOTE
