Skip to content

docs(traceability): render requirement→test matrix (#303/SR-44 visibility half)#308

Merged
avrabe merged 1 commit into
mainfrom
docs/verification-matrix
Jun 23, 2026
Merged

docs(traceability): render requirement→test matrix (#303/SR-44 visibility half)#308
avrabe merged 1 commit into
mainfrom
docs/verification-matrix

Conversation

@avrabe

@avrabe avrabe commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Surfaces the requirement→test/proof mapping that was previously invisible.

Why: the SR→test mapping lives in traceability.yaml's verification-status: block, which rivet does not ingest into its trace graph (those fields are outside the requirement schema). So rivet matrix/trace can't show it — answering the standing "I see requirements but not the test mapping" concern (#303).

What:

  • scripts/gen-verification-matrix.py — renders the block to markdown (re-runnable).
  • docs/verification-matrix.md (generated) — per-requirement: tests (verifies), proofs, status. 41 reqs: 10 verified · 6 implemented · 24 partial · 1 not-verified. The 24 partial are loud on purpose.

Scope: the visibility half of #303/SR-44. The enforcement half — typed verifies links in the rivet graph — still needs the v0.36 traceability-model decision (ASPICE migration vs custom test type vs stay-generic) and is not in this PR. Docs/tooling only; no Tier-5, no safety-trace structural change.

Refs #303, SR-44.

…lity half)

The SR→test/proof mapping lives in traceability.yaml's `verification-status:`
block, which rivet does NOT ingest into its trace graph (those fields are
outside the requirement schema), so `rivet matrix`/`trace` cannot show it.
This script renders it: per requirement, the tests/proofs that verify it and
the (self-asserted) status — surfacing the mapping that was invisible (the
original "I see requirements but not the test mapping" concern).

docs/verification-matrix.md (generated): 41 requirements — 10 verified,
6 implemented, 24 partial, 1 not-verified. The 24 `partial` are loud on
purpose (a test exists but doesn't fully discharge the requirement).

VISIBILITY half of #303/SR-44. The ENFORCEMENT half (typed `verifies` links
in the rivet graph) still needs the v0.36 traceability-model decision.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

LS-N verification gate

57/57 approved LS entries verified

count
Passed (≥1 test, all green) 57
Failed (≥1 test failure) 0
Missing (no ls_*_NN_* test found) 0

Approved loss-scenarios.yaml entries are expected to have a
regression test named ls_<letter>_<num>_* (e.g. LS-A-11
ls_a_11_*). The gate runs each prefix via cargo test --lib --no-fail-fast and aggregates pass/fail/missing.

Failed LS entries

(none)

Missing regression tests

(none)

Updated automatically by tools/post_verification_comment.py.
Source of truth: safety/stpa/loss-scenarios.yaml.

@avrabe avrabe merged commit 9f36ca2 into main Jun 23, 2026
17 of 22 checks passed
@avrabe avrabe deleted the docs/verification-matrix branch June 23, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant