RAC (Requirements as Code) — the status vocabulary
Normative reference: SPEC.md §7. The enums below are closed:
a present value outside its type's set is the blocking finding
invalid-<type>-status. A missing ## Status section is always legal —
status is optional, validated-if-present. The value is the first non-empty
line of the ## Status section body, matched case-insensitively.
Values
| Type | Value | Meaning | Live / retired |
|---|---|---|---|
| requirement, decision, design | Proposed |
drafted, not yet ratified | live |
| requirement, decision, design | Accepted |
ratified; current knowledge | live |
| requirement, decision, design | Superseded |
replaced by a newer artifact | retired |
| requirement, decision, design | Deprecated |
withdrawn without a replacement | retired |
| roadmap | Planned |
intent the team still holds | live |
| roadmap | Achieved |
intent realized; a valid historical record (live terminal state) | live |
| roadmap | Superseded |
intent replaced by another roadmap | retired |
| roadmap | Abandoned |
intent dropped | retired |
| prompt | Active |
in use | live |
| prompt | Deprecated |
withdrawn | retired |
Status records knowledge currency (whether the artifact still reflects what the team believes), never work or delivery state. Per-milestone progress, ticket state, and sprint tracking are out of scope.
Legal transitions
The validator enforces no transition graph: any enum value may be written at any time, and history lives in version control (a transition is a reviewed diff). What is enforced is the consequence of the live/retired partition:
- A live artifact referencing a retired artifact through any edge except
supersedesisrelationship-target-superseded(blocking by default). - References from retired artifacts are exempt (historical chains stay intact).
- A conformant consumer must refuse to present a retired artifact as current (SPEC.md §9.6).
The conventional lifecycles, for orientation (not enforced):
requirement / decision / design: Proposed → Accepted → Superseded | Deprecated
roadmap: Planned → Achieved | Superseded | Abandoned
prompt: Active → Deprecated
Adjacent constrained enums
Two further closed enums ride the same mechanism (SPEC.md §7.1):
| Type | Section | Values | Unknown-value finding |
|---|---|---|---|
| decision | ## Category |
Architecture, Product, Process, Technical, Other | invalid-decision-category |
| roadmap | ## Horizon |
now, next, later, or Q[1-4] YYYY |
invalid-roadmap-horizon |
Adding a value to any enum on this page is a minor spec version; removing or changing the meaning of one is a major version (SPEC.md §10.2).