Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Lint rules

rqtk lint reports these findings. Codes are stable: a code keeps its meaning and is never reused. rqtk explain <code> prints the same information.

CodeSeverityChecksHow to fix
RQ001errorrequirement ID does not match the ID patternRename the ID (and file) to <prefix>-<CATEGORY>-<NUMBER>, as rqtk add does, or set identification.id_pattern in .rqtk/config.toml to accept it.
RQ002errorunknown categoryUse a key from [categories] in .rqtk/config.toml, or add the category there.
RQ003errorunknown requirement typeUse a value from types.allowed, or add the type there.
RQ004errorinvalid lifecycle stateUse a value from lifecycle.states.
RQ005errorinvalid priorityUse a value from priority.levels.
RQ006errorinvalid criticalityUse a value from criticality.levels, or remove criticality.
RQ007errorrationale is required but missingAdd rationale = "…" explaining why the requirement exists.
RQ008errorverification method is required but missingSet verification.method to a value from verification.methods.
RQ009errorinvalid verification methodUse a value from verification.methods.
RQ010errorstatement is not exactly one sentence with a shall keywordRewrite statement as one sentence using a keyword from validation.shall_keywords; split compound requirements.
RQ011errorstatement uses a forbidden keywordReplace the vague word with a measurable criterion.
RQ012errorcategory requires at least one parentAdd the requirement it decomposes to trace.parents.
RQ013errorTBD is not allowed by project policyResolve the open item and set tbd = false.
RQ014errorTBR is not allowed by project policyResolve the open item and set tbr = false.
RQ015errorunknown parent referenceCorrect the ID in trace.parents or create the parent requirement.
RQ016errorunknown depends_on referenceCorrect the ID in trace.depends_on.
RQ017errorrequirement is part of a traceability cycleRemove one of the parents/depends_on/derived_from/refines links named in the message.
RQ018warningorphan requirement has no path to a root categoryAdd a trace.parents chain that reaches a category with is_root = true.
RQ019errorrepository is missing a required directoryCreate the directory, or remove it from repository.required_dirs.
RQ020errorrepository is missing a required fileCreate the file, or remove it from repository.required_files.
RQ021warningcontent hash is staleRun rqtk rehash.
RQ022errortrace.satisfies references an unknown needCorrect the need ID or create it with rqtk add-need.
RQ023errorreference to an unknown stakeholderCorrect the stakeholder ID or create it with rqtk add-stakeholder.
RQ024errorinvalid verification levelUse a value from verification.levels.
RQ025errorinvalid verification phaseUse a value from verification.phases.
RQ026errorunknown derived_from / refines / conflicts_with / related referenceCorrect the ID in the named trace field.
RQ027errorverification activity ID is defined more than onceGive each [[verification.activities]] entry a unique id.
RQ028errorverifies annotation names an unknown verification activityCorrect the activity ID in the annotation, or add the activity to a requirement.
RQ029warninghand-written status on an activity whose status comes from testsRemove status (and executed_at) from the activity; run tests and rqtk verify instead.
RQ030errorverifies annotation is not followed by a test rqtk recognisesPlace the annotation directly above the test, with only comments and attributes in between. For one case of a table-driven test, tag its row: // rqtk: verifies VA-… case "name". rqtk scan shows what each annotation is attached to.
RQ031warningan activity’s evidence file does not existCorrect the path (relative to the repository root), add the file, or link to it with a URL.
RQ100errorfile could not be read or parsed (syntax error, unknown or missing field)Fix the TOML at the reported line; rqtk schema <kind> lists the allowed fields.
RQ101errorID is defined in more than one fileGive one of the items a new ID and rename its file to match.
RQ102errorfile name does not match the ID it containsRename the file to <ID>.toml.