You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the requirement that underwrites the traceability argument itself, and it is the fourth instance this month of a gate that exists and cannot fail.
The claim
SWV-44:
Verifies SR-44 by static analysis: rivet validatemechanically enforces that every sw-req carries a typed sw-verification backlink (the ASPICE SWE tier, ADR-5). The passing gate is itself the verification measure.
release-readiness.yml runs rivet release status, a different command. compliance.yml is a post-publish report generator, not a gate. There is no passing gate to be the verification measure.
2. It would not fail if it did run. The auditor performed a negative control — copied the project to a scratch dir, deleted the SWV-32 block, re-ran:
WARN: [SR-32] Every SW requirement should be verified by at least one verification measure …
exit 0 Result: PASS
The missing backlink is a warning. --fail-on warning exists and is used nowhere.
3. SR-44's own acceptance criterion is unmet. It reads: "Done when rivet validate is error-free and rivet coverage reports requirement-coverage > 0% with every SR linked by verifies to a test artifact." Current: 5 of 89 (5.6%) — only SR-64, SR-68, SR-72, SR-73, SR-74 carry in-code markers.
Why I take this one personally
I have filed three variants of this in three weeks: the #304 INVARIANT comment that asserted a guard nothing enforced (#390), the MANDATORY release-readiness query no machine ran (#395), and MC/DC pointed at the wrong artifact (#397). Each time the fix was to make the check mechanical.
This is the one that says it already is mechanical — and that claim is doing the work of the enforcement it describes.
Suggested fix
Run it. A rivet validate --fail-on warning step in CI. Cheap, and it is what SWV-44 already claims exists.
Fix the claim either way. If --fail-on warning is too strict to adopt today, SWV-44 must stop saying "mechanically enforces" and say what is actually true: that the backlinks are maintained by convention and checked by hand.
Related record hygiene, mechanically detectable
12 SWVs contradict themselves. SWV-54 through SWV-65 each say "status closed implemented -> verified" in prose while status: implemented. (grep -c → 12.)
traceability.yaml claims to be "the authoritative record of traceability" and covers SR-1..SR-41 only; SR-42..SR-74 are absent — 33 requirements, 32 of them verified, spanning v0.37.0 to v0.55.0. Last updated 2026-06-11.
Six verified, released SRs (SR-58, 60, 61, 62, 63, 64) still open their verification-description with PROPOSED. in future tense. The evidence does exist — in the paired SWV — so this is stale text, not missing work. One residual: SR-58's future-tense fail-loud guard is implemented (fact.rs:6925-6938) but no test pins it.
SR-40 is verified on a Kani run performed locally on one date by one person, with no gate reproducing it. Self-disclosed in the text, invisible in the status field.
No sw-verification carries a release: field (0 vs 31 on SRs), so rivet release status — the gate that is required — never scopes a verification measure into its check.
Each of these is a grep. That is the point: a validator that ran would find them.
This is the requirement that underwrites the traceability argument itself, and it is the fourth instance this month of a gate that exists and cannot fail.
The claim
SWV-44:
Three ways it does not hold
1. No workflow runs
rivet validate.release-readiness.ymlrunsrivet release status, a different command.compliance.ymlis a post-publish report generator, not a gate. There is no passing gate to be the verification measure.2. It would not fail if it did run. The auditor performed a negative control — copied the project to a scratch dir, deleted the
SWV-32block, re-ran:The missing backlink is a warning.
--fail-on warningexists and is used nowhere.3. SR-44's own acceptance criterion is unmet. It reads: "Done when
rivet validateis error-free andrivet coveragereports requirement-coverage > 0% with every SR linked byverifiesto a test artifact." Current: 5 of 89 (5.6%) — only SR-64, SR-68, SR-72, SR-73, SR-74 carry in-code markers.Why I take this one personally
I have filed three variants of this in three weeks: the
#304 INVARIANTcomment that asserted a guard nothing enforced (#390), the MANDATORY release-readiness query no machine ran (#395), and MC/DC pointed at the wrong artifact (#397). Each time the fix was to make the check mechanical.This is the one that says it already is mechanical — and that claim is doing the work of the enforcement it describes.
Suggested fix
rivet validate --fail-on warningstep in CI. Cheap, and it is what SWV-44 already claims exists.--fail-on warningis too strict to adopt today, SWV-44 must stop saying "mechanically enforces" and say what is actually true: that the backlinks are maintained by convention and checked by hand.Related record hygiene, mechanically detectable
status: implemented. (grep -c→ 12.)traceability.yamlclaims to be "the authoritative record of traceability" and covers SR-1..SR-41 only; SR-42..SR-74 are absent — 33 requirements, 32 of themverified, spanning v0.37.0 to v0.55.0. Last updated 2026-06-11.verified, released SRs (SR-58, 60, 61, 62, 63, 64) still open their verification-description withPROPOSED.in future tense. The evidence does exist — in the paired SWV — so this is stale text, not missing work. One residual: SR-58's future-tense fail-loud guard is implemented (fact.rs:6925-6938) but no test pins it.verifiedon a Kani run performed locally on one date by one person, with no gate reproducing it. Self-disclosed in the text, invisible in the status field.release:field (0 vs 31 on SRs), sorivet release status— the gate that is required — never scopes a verification measure into its check.Each of these is a grep. That is the point: a validator that ran would find them.