Roles Reference
Every traceability item is a role with an ID prefix, a set of fields, and a state machine. This page is the authoritative reference for authoring items.
Roles and prefixes
| Role | Prefix | Initial status | Purpose |
|---|---|---|---|
|
|
|
The entry point: rationale, outcome, and scope of one change. |
|
|
|
The spec unit: an observable obligation a change addresses. |
|
|
|
A durable record of a domain or specification choice. |
|
|
— |
Verification evidence carrying |
Growth roles (use_case, design_concept, goal, scenario, arc42) are available when declared in traceability.yml.
Requirements
A requirement states what the system must do — never how.
Use EARS patterns:
-
Ubiquitous:
The system SHALL <behaviour>. -
Event-driven:
WHEN <trigger>, the system SHALL <behaviour>. -
State-driven:
WHILE <state>, the system SHALL <behaviour>. -
Unwanted behaviour:
IF <condition>, THEN the system SHALL <behaviour>.
Scenarios stay as prose inside the requirement body.
[#REQ-001, item, role=requirement, status=draft, title="Short title"]
--
The system SHALL <observable behaviour>.
WHEN <condition>, the system SHALL <behaviour>.
tracer:links[]
--
Changes
A change is the entry point.
Its body carries Rationale::, Outcome::, and Out-of-scope:: labeled-list fields, then typed relation macros.
[#CHG-001, item, role=change, status=proposed, title="Change title"]
--
Rationale:: Why this change is needed.
Outcome:: What the change produces.
Out-of-scope:: What the change excludes.
addresses:REQ-NNN[]
records:DEC-NNN[]
tracer:links[]
--
Decisions
A decision preserves a domain or specification choice.
[#DEC-001, item, role=decision, status=proposed, title="Decision title"]
--
Context:: Why is this decision needed?
Decision:: What was decided?
Consequences:: What follows?
tracer:links[]
--
Decisions may additionally carry Options:: (per-option pros and cons) and Rationale:: fields, following the MADR shape documented in the decision guidance.
Relation macros
A relation macro <relation>:<ID>[] is written in the source item.
The reverse name is derived for queries.
Source → Target |
Macro |
Reverse |
Used in |
change → requirement |
|
|
change |
change → decision |
|
|
change |
requirement → requirement |
|
|
requirement |
test → requirement |
|
|
test |
Workflow states
Use the status attribute to mark progression.
Role |
States |
|---|---|
requirement |
draft → reviewed → approved → superseded · withdrawn |
change |
proposed → refined → accepted → implemented → verified → closed · rejected |
decision |
proposed → accepted → rejected · superseded |
The accepted gate is enforced by validation: an accepted change must address at least one requirement.
Other transitions are declarative and reviewed via Git.