Traceability Matrix
The matrix is the canonical UI for traceability. One row per requirement, one column per test, one cell per link. The colour of each row tells you the coverage state at a glance; clicking a cell drills into the test run that produced the result.Layout
Heatmap colour key
The legend at the top of the matrix is clickable — click
gap to filter the view to only gap-state rows.
Filters
Filters compose. Stacking several narrows the view down to exactly what you need.
Each filter renders as a chip at the top of the matrix. Click the X on a chip to remove it.
Saved views
Once you’ve composed a useful filter set, Save view persists it under a name (e.g. “ASIL-D regressions”). Saved views:- Are scoped to the project but visible to all members.
- Get a direct URL you can paste in a Slack thread or PR comment.
- Show in the sidebar of every team member’s matrix view.
Sorts
Default sort is by requirementid. You can sort by:
id(lexicographic).priority(criticalfirst).asil_pl(ASIL-Dfirst).coverage_state(gap, thenregression, thenpartial, thenunconfirmed, thenconfirmed).last_changed(recency of any field edit).last_verified(recency of last test run touching the requirement).
Drill-in
Click any cell to open the Run detail drawer:- The test source code at the SHA, with the
@confirmsline highlighted. - The JUnit row — assertion message, duration, retries.
- Attached artifacts — MCAP bag, logs, screenshots.
- The runner metadata — image tag, hardware, wall-clock.
- The requirement detail with full text on the right.
Tree vs flat mode
Switch with the toggle in the toolbar.
Both modes show identical data; the choice is purely visual.
Graph view
For visual reviewers, the Graph view renders the requirement → test graph as a force-directed diagram. Nodes are coloured by coverage state; edges are coloured by source (@confirms, manual, LLM-inferred).
Graph view is best for:
- Spotting clusters of
gap-state requirements. - Reviewing the decomposition tree pre-audit.
- Showing the matrix to non-engineering stakeholders.
Exports
Three formats, all from Matrix → Export:
CSV is the most common — most regulated teams ingest it into their internal reporting before submission. ReqIF is for round-tripping back into the upstream requirements tool.
Multi-repo behaviour
For a project linked to multiple repos, the matrix gains a Repository column showing which repo a test lives in. Aggregation rules:- A requirement can be confirmed by tests in any repo in the project.
- The Repository column is a filter target — drill the matrix to one repo for repo-scoped review.
Snapshot mode
The toolbar has a snapshot picker. Default is Live (current state of the default branch). Switching to a snapshot — e.g.v1.2.0 — shows the matrix as it existed at the moment the snapshot was cut. Cells are read-only in snapshot mode. This is the view auditors see.
Performance
The matrix is virtualised — rendering 10,000 requirements × 20,000 tests is a few hundred milliseconds. Saved views and filters apply server-side for projects above 1,000 requirements to keep the wire small. For projects above 100,000 requirements (large standards-derivation projects), open a ticket — we have an indexed query mode that needs to be flipped on per project.Next
Coverage
The state machine in detail.
Gaps
Filter to gap-only and close them.
Change-impact
How the PR Check Run highlights affected requirements.
Multi-repo
Rollup across many repos in one project.