Requirements

Tool Requirements

Requirements Rendering

UseCases.Render_All_TRLC_Records
Description:

The trlc_rst renderer shall produce an RST output that contains

every requirement record present in the input TRLC source files.

UseCases.Resolve_Derived_From_References
Description:

The rendered RST output shall contain working cross-references

for all derived_from fields, linking child requirements to their parent requirements.

Requirement Validation

UseCases.Validate_Traceability_Completeness
Description:

The build shall fail when a component requirement does not have

a derived_from reference to at least one feature requirement, unless the requirement is explicitly marked as component-internal.

UseCases.Emit_Correct_Provider_Info
Description:

The score_requirements_rule shall emit a TrlcProviderInfo

provider containing all own TRLC source files, the specification RSL files, and all transitive dependency TRLC files.

UseCases.Emit_Sphinx_Sources
Description:

The score_requirements_rule shall emit a SphinxSourcesInfo

provider containing the rendered RST file and all transitive Sphinx source dependencies.

Safety Analysis Rendering

UseCases.Render_All_Failure_Modes
Description:

The safety_analysis rule shall render every FailureMode record of

its failure_modes into the documentation output.

Architecture Parsing

UseCases.Reject_Invalid_PlantUML
Description:

The PlantUML parser shall exit with a non-zero return code when

the input diagram contains syntactical errors, preventing silent production of incorrect output.

Lobster Traceability

UseCases.Extract_Lobster_From_Requirements
Description:

The requirements rule shall extract a lobster traceability file

from all TRLC requirement records using the configured lobster extraction schema.

RST Requirements

UseCases.Reject_Incomplete_RST_AoU
Description:

The RST requirements converter shall exit with a non-zero

return code, name the offending assumption of use, and write no output when an assumption of use directive has no root_causes field or a root cause that is not of the form <fta_package>.<RootCause>.

AoU Forwarding

UseCases.Forward_Own_AoUs_To_Dependees
Description:

The dependable_element rule shall automatically include lobster

traceability entries for all assumptions of use defined by its direct dependencies in the dependee’s traceability report as a “Received AoUs” tier.

UseCases.Chain_Forward_Received_AoUs
Description:

The dependable_element rule shall support an aou_forwarding

attribute pointing to a YAML file that selects which received AoUs are forwarded further to elements that depend on this element. Each entry in the YAML shall require a mandatory justification field and the version of the AoU it forwards, so that a justification is reviewed again when the AoU changes.

UseCases.Reject_Unknown_AoU_In_Forwarding_YAML
Description:

The AoU forwarding tool shall exit with a non-zero return code

when the forwarding YAML references an AoU identifier, or an AoU version, that does not exist in the set of received AoUs, or lists an AoU identifier more than once, preventing silent misconfiguration.

UseCases.Derive_Own_AoUs_From_Safety_Analysis
Description:

The dependable_element rule shall derive the assumptions of

use it exposes to its dependees from the assumptions_of_use targets that the safety_analysis targets of its dependability_analysis consume as safety_measures, and shall provide no other source of own assumptions of use. An assumption of use shall be exposed once, however many safety analyses consume it.

UseCases.Receive_Duplicate_AoU_Once
Description:

The dependable_element rule shall list an assumption of use in

its “Received AoUs” tier once, when it reaches the element along several paths with identical content, such as through a direct dependency and through a dependency that forwards it.

UseCases.Reject_Conflicting_AoU_Definitions
Description:

The dependable_element rule shall fail the build when an

assumption of use reaches the element along several paths with different content, such as in different versions, and the error message shall name the assumption of use and the differing fields.

UseCases.Cover_Received_AoU_Via_Component_Requirement
Description:

The CompReq requirement type’s derived_from field

(CompReqSourceId) shall accept versioned, typed cross-module TRLC references to AoU records alongside its usual FeatReq/ AssumedSystemReq references. Resolving an AoU reference shall require the defining assumptions_of_use target to be listed directly in the CompReq target’s deps. The dependable_element rule shall convert such references to lobster trace references resolved against the “Received AoUs” tier, so a component requirement can cover a received AoU it handles locally without requiring that AoU to be chain-forwarded.

UseCases.Include_Forwarded_AoUs_In_Traceability
Description:

The lobster traceability report of a dependable element shall

require every item in its “Received AoUs” tier to be covered by at least one of: a component requirement (via derived_from) or a chain-forwarding entry (via aou_forwarding), so that the existing lobster-ci-report test fails when a received AoU is neither handled nor forwarded.

Test Case Coverage

UseCases.Lock_File_As_Spec_And_Approval
Description:

The tool shall use one YAML lock file as both the declaration of

which requirements are claimed to be completely covered and as the committed approval artifact.

UseCases.Requirement_IDs_From_TRLC
Description:

The tool shall extract requirement identifiers automatically from

the TrlcProviderInfo provider of the requirements target attribute.

UseCases.Parse_GWT_Annotations
Description:

The tool shall parse GTest XML result files, extracting

RecordProperty values for the keys lobster-tracing, given, when, and then on a per-TEST, per-TEST_F, and per-TEST_P basis. A test case without a given, when, or then property shall be included with an empty string for each missing field.

UseCases.Multi_Requirement_Linking
Description:

A test case that carries lobster-tracing values matching more than

one requirement identifier shall appear in the lock file entry of every matched requirement.

UseCases.Lock_File_Content
Description:

The lock file shall contain, per requirement: the requirement

identifier and an ordered list of linked test cases. Each test case entry shall contain: a uid in the format “//bazel_package/SuiteName:TestName” (package-scoped gtest tag) and the individual given, when, and then strings as separate fields.

UseCases.Lock_File_Ordering
Description:

Test cases within a requirement entry shall be ordered

lexicographically by uid to produce a deterministic, diff-friendly lock file.

UseCases.Update_Command
Description:

The .update Bazel run target shall extract requirement identifiers

from the TrlcProviderInfo target, parse GTest XML result files for lobster-tracing-linked test cases, build the spec from given/when/then, and overwrite the committed lock file.

UseCases.Test_Command_Verification
Description:

The Bazel test target shall parse GTest XML result files, rebuild

the spec for each linked test, and compare uid and spec against the committed lock file, failing if they differ. On failure it shall print a human-readable diff showing which test cases changed and the exact bazel run command needed to refresh the lock file.

UseCases.LOBSTER_Covered_Attribute
Description:

The test target shall emit a lobster-act-trace JSON artifact that

marks each linked test case as “ok” when its uid exists in the committed lock file and its spec matches, and “fail” otherwise.