Specification Keywords

Keywords for Use in Specifications

Version 1.0.0
Date: 29 September 2019
Status: Current
Type: Meta Specification
ID: 1M based on rfc2119

The following keywords shall carry special meaning when used within a specification:

  1. SHALL: This word, and the words “REQUIRED” and “MUST”, mean that the definition is an absolute requirement of the specification. Implementations that fail to comply with one of these directives are always out of spec
  2. SHALL NOT: This phrase and the phrase “MUST NOT” mean an absolute prohibition of the specification.
  3. SHOULD: This word, or the word “RECOMMENDED”, mean that the definition is a strong recommendation of the specification that should be followed in the absence of a valid reason to diverge. Team members should seek advice from the subsystem lead before disregarding these directives. Divergences with documented justifications are within spec.
  4. SHOULD NOT: This phrase means a strong discouragement of the specification.
  5. MAY: This word means that the definition is completely optional recommendation of the specification and may be disregarded at will. Divergences are always within spec.
  6. MAY NOT: This words means that the directive is a completely optional prohibition of the specification.
Last modified February 20, 2020: README: Update with dev instructions (c97f37d)