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.