Repository navigation
docs-as-code: Fix inverted QM architecture fulfilment validation #1005
Description
Description
What
Correct the architecture-to-requirement safety validation so QM architecture
elements may fulfil QM requirements but cannot fulfil ASIL_B requirements.
Observed behavior
The rule tool_req__docs_arch_link_qm_to_safety_req selects QM architecture
elements, but its original target predicate requires linked requirements to be
non-QM:
needs:
include: feat_arc_sta, logic_arc_int, logic_arc_int_op, comp_arc_sta, real_arc_int, real_arc_int_op
condition: safety == QM
check_all:
fulfils: safety != QMneeds.condition filters source architecture elements. The
check_all.fulfils predicate is evaluated against every linked target
requirement.
This reverses the intended validation:
| Link | Actual behavior before correction | Expected behavior |
|---|---|---|
| QM architecture -> QM requirement | Warning | No warning |
| QM architecture -> ASIL_B requirement | No warning from this rule | Warning identifying the ASIL_B target |
Impact: valid QM allocations produce false-positive warnings, while
prohibited QM-to-ASIL_B allocations escape this rule's validation. This is a
validation defect; it does not itself change safety classifications or
demonstrate a runtime safety failure.
Problem notifications
No response
Analysis results
No response
Solution
pply the one-line correction in
src/extensions/score_metamodel/metamodel.yaml:
check_all:
- fulfils: safety != QM
+ fulfils: safety == QMError Occurrence Rate
None
How to reproduce
- Create a valid QM logical interface linked through
fulfilsto a QM feature
requirement. - Run graph validation: the rule incorrectly warns that the QM target fails
safety != QM. - Replace the target with an ASIL_B feature requirement: this rule incorrectly
accepts it.
The new regression fixture,
src/extensions/score_metamodel/tests/rst/graph/test_arch_qm_fulfils.rst,
provides complete, valid setup and explicit warning expectations.
With that fixture added to the affected baseline and the original predicate
unchanged, run:
bazel test --lockfile_mode=error --test_output=errors \
//src/extensions/score_metamodel:file_based_tests_graph \
--test_arg=-k --test_arg=test_arch_qm_fulfilsThe regression fails because the valid QM-to-QM case receives this warning:
Parent need `feat_req__qm_fulfils__qm_one` does not fulfill condition `safety != QM`. Explanation: An QM architecture element cannot implement ASIL requirements.
Supporting Information
No response
Classification
Minor
First Affected Release
not released (main)
Last Affected Release
not released (main)
Expected Fixed Release
before release (main)
Category
- Safety Relevant
- Security Relevant
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
lavrovvalera commentedon Oct 28, 2026
The bug is fixed with #1001