File formats
Every file under .rqtk/ is TOML and is checked against these fields; unknown fields are errors. Dates may be native TOML dates (2026-03-14) or strings. rqtk schema <kind> prints the JSON Schema of each.
Requirement
One requirement file. Scalars sit at the top level; related groups are tables.
| Field | Type | Required | Description |
|---|---|---|---|
allocation | Allocation (optional) | ||
approval | Approval (optional) | ||
assumptions | list of string | ||
category | string | yes | |
content_hash | string (optional) | Fingerprint of the semantic fields, see [Requirement::compute_content_hash]. Maintained by rqtk rehash; checked by lint rule RQ021. | |
criticality | string (optional) | ||
custom | object | ||
id | RequirementId | yes | |
keywords | list of string | ||
maturity | string (optional) | ||
notes | string (optional) | ||
parameters | list of Parameter | ||
priority | string | yes | |
rationale | string (optional) | ||
risk | Risk (optional) | ||
state | string | yes | |
statement | string | yes | The normative statement, e.g. “The system shall …”. |
tbd | boolean | ||
tbr | boolean | ||
title | string | yes | |
trace | Traceability | ||
type | string | yes | |
validation | ValidationSpec (optional) | ||
verification | Verification | yes |
Allocation
| Field | Type | Required | Description |
|---|---|---|---|
components | list of string | ||
software_modules | list of string | ||
source_files | list of string | ||
subsystems | list of string |
Approval
| Field | Type | Required | Description |
|---|---|---|---|
approved_by | list of string | ||
baselined_at | string (optional) | ||
baselined_by | string (optional) | ||
ecr_ids | list of string |
Parameter
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | |
operator | string | yes | |
tolerance | number (optional) | ||
unit | string (optional) | ||
value | any | yes |
RequirementId
Identifier of a requirement, e.g. FOBC-SYS-0001.
Type: string
Risk
| Field | Type | Required | Description |
|---|---|---|---|
fmea_ref | string (optional) | ||
hazards | list of string | ||
mitigations | list of string | ||
safety_critical | boolean | ||
security_sensitive | boolean |
Traceability
| Field | Type | Required | Description |
|---|---|---|---|
conflicts_with | list of RequirementId | ||
depends_on | list of RequirementId | ||
derived_from | list of RequirementId | ||
external | list of ExternalTrace | ||
parents | list of RequirementId | ||
refines | list of RequirementId | ||
related | list of RequirementId | ||
satisfies | list of NeedId |
ValidationSpec
| Field | Type | Required | Description |
|---|---|---|---|
acceptance_criteria | string (optional) | ||
method | string (optional) | ||
stakeholder | StakeholderId (optional) | ||
status | string (optional) |
Verification
| Field | Type | Required | Description |
|---|---|---|---|
activities | list of VerificationActivity | ||
level | string | yes | |
method | string | yes | |
owner | string (optional) | ||
phase | string | yes | |
success_criteria | string (optional) |
ExternalTrace
| Field | Type | Required | Description |
|---|---|---|---|
ref | string | yes | |
type | string | yes |
NeedId
Identifier of a stakeholder need, e.g. NEED-0001.
Type: string
StakeholderId
Identifier of a stakeholder, e.g. STK-001.
Type: string
VerificationActivity
| Field | Type | Required | Description |
|---|---|---|---|
evidence | list of string | ||
executed_at | string (optional) | ||
expected_result | string (optional) | ||
id | string | yes | |
name | string | yes | |
procedure | string (optional) | ||
status | string (optional) |
Need
| Field | Type | Required | Description |
|---|---|---|---|
acceptance | Acceptance (optional) | ||
content_hash | string (optional) | ||
id | NeedId | yes | |
keywords | list of string | ||
priority | string (optional) | ||
rationale | string (optional) | ||
stakeholders | list of StakeholderId | ||
state | string | yes | |
statement | string | yes | |
title | string | yes |
Acceptance
| Field | Type | Required | Description |
|---|---|---|---|
criteria | string (optional) | ||
validated_at | string (optional) | ||
validated_by | string (optional) |
NeedId
Identifier of a stakeholder need, e.g. NEED-0001.
Type: string
StakeholderId
Identifier of a stakeholder, e.g. STK-001.
Type: string
Stakeholder
| Field | Type | Required | Description |
|---|---|---|---|
authority | StakeholderAuthority | ||
concerns | StakeholderConcerns | ||
id | StakeholderId | yes | |
name | string | yes | |
organization | string (optional) | ||
role | string (optional) |
StakeholderAuthority
| Field | Type | Required | Description |
|---|---|---|---|
approval_scope | string (optional) | ||
sign_off_required | boolean |
StakeholderConcerns
| Field | Type | Required | Description |
|---|---|---|---|
primary | list of string | ||
secondary | list of string |
StakeholderId
Identifier of a stakeholder, e.g. STK-001.
Type: string
Evidence (.rqtk/evidence.toml)
| Field | Type | Required | Description |
|---|---|---|---|
activity | list of ActivityEvidence | ||
review | list of Review | ||
schema_version | integer | yes | |
written_by | string (optional) | Version of rqtk that last wrote the file. |
ActivityEvidence
The latest recorded result for one verification activity. Unknown fields are ignored so that files written by a later rqtk still load.
| Field | Type | Required | Description |
|---|---|---|---|
commit | string (optional) | Commit checked out when the evidence was recorded. | |
id | string | yes | Verification activity ID. |
outcome | Outcome | yes | |
requirement | RequirementId | yes | Requirement that owned the activity when the evidence was recorded. |
requirement_hash | string | yes | The requirement’s content hash when the evidence was recorded. If the requirement’s current hash differs, the evidence is stale and the activity is Suspect. |
tests | list of string | yes | Test cases that produced the outcome, as path::name: the linked test’s source file and the name the runner gave the case. |
tests_hash | string (optional) | Hash of the linked tests’ source when they last ran. | |
unchanged_tests | boolean | The requirement was re-verified after it changed, by the same tests that passed for its earlier wording. It stays Suspect until someone runs rqtk review. | |
upstream | table of string | Content hashes of the requirement’s ancestors and of the needs they satisfy, when this version of the requirement was first verified. A later change to any of them makes the requirement Suspect until it is reviewed. |
Review
A person’s or agent’s confirmation that a requirement still holds after something it depends on changed, recorded with rqtk review.
| Field | Type | Required | Description |
|---|---|---|---|
commit | string (optional) | Commit checked out when the review was recorded. | |
date | string | yes | Date of the review, YYYY-MM-DD. |
note | string (optional) | ||
requirement | RequirementId | yes | |
requirement_hash | string | yes | The requirement’s content hash when it was reviewed; a later change voids the review. |
upstream | table of string | Content hashes of its ancestors and their needs when it was reviewed. |
Outcome
Type: passed | failed
RequirementId
Identifier of a requirement, e.g. FOBC-SYS-0001.
Type: string