Version....: 0.4.2
Obsoletes..: 0.4.1
Published..: 2025-12-13
Author.....: Gregory Vincic
Identify requirements within plain-text specifications
Status of This Memo
This document is not an Internet Standards Track specification; it is
published for examination, experimental implementation, and
evaluation.
Abstract
Plain-text specifications are readable and many follow RFC 2119
when phrasing requirements. This specification introduces a syntax
to augment such requirements with identifiers for easy reference.
1 Introduction
Being able to reference a requirement within a large document aids
many stakeholders. Author and reviewer while the specification is
being written and discussed. The developer during implementation and
testing. Customer while accepting the final product.
A test suite could e.g. use the wording of a requirement verbatim if
it fails, by parsing the referenced requirement. Having a way to
easily index all requirements and reference them elsewhere keeps the
requirements at it's source.
1.2 Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119.
2 Requirement Identifier Syntax
Requirement identifiers MUST(R1) be placed directly after keywords as
defined by RFC 2119. Requirement identifiers SHOULD(R2) be written
within parenthesis and start with 'R' followed by a number. This
combination is less likely to conflict with normal wording and use of
parenthesis within a document. Requirement identifiers MUST(R3) be
unique within one specification.
Example;
"... MUST NOT(R1) .." ok
"... SHOULD\nNOT(R1)" ok, keyword split over two lines
the following examples are wrong
"... SHOULD ..." missing identifier
"... MAY (R1) ..." spacing after keyword
"... MAY\n(R1) ..." new line between keyword and identifier
It is RECOMMENDED(R4) that authors do not use identifier series for
grouping, e.g. identifiers within the R100 series are used for
feature X and R200 series for feature Y. It is also RECOMMENDED(R5)
that authors not change identifiers for one requirement once a
specification is published. This is however likely to happen during
authoring and reviewing phase. Assign identifiers late in the
process.