What I was trying to do
Record test-suite verification measures in a dev-schema project (spar: 883
artifacts, requirement / feature / design-decision + stpa), and give each
one a type that says "this is a verification measure."
The friction
The dev schema has no verification-measure type. The only ones rivet ships are
ASPICE's, and their required link fields point back into the ASPICE process
model:
$ rivet schema show unit-verification
Link fields:
verifies verifies -> [sw-detail-design, sw-req] required one-or-many
Traceability rules:
swe4-verifies-swe3 (error): Every unit verification measure must verify a
detailed design element
$ rivet schema show verification-verdict
Link fields:
measure result-of -> [unit-verification, sw-integration-verification,
sw-verification, sys-integration-verification,
sys-verification] required exactly-one
execution part-of-execution -> [verification-execution] required exactly-one
So a dev-schema project cannot adopt unit-verification for a unit test
without also adopting sw-detail-design (and transitively sw-req,
sw-arch-component, …). There is no "I use the dev schema and I have tests"
path — it's all-of-ASPICE or nothing.
The workaround it forced
spar hand-rolled a verification-measure type on top of feature, using undeclared
fields:
227 artifacts of type: feature, of which
208 carry fields.method 142 carry fields.steps
64 carry fields.test-name 64 carry fields.test-location
feature declares only phase, acceptance-criteria, baseline — so all four
are undeclared-field warnings, and feature's satisfies predicate puts test
suites on the implementation side of the V rather than the verification side.
That in turn inflates implementation coverage: 194 of spar's 311 requirements have
feature-stage coverage, but 172 of those are covered only by an artifact whose
fields.test-name names a cargo test.
This is a workaround, and it is load-bearing enough that unwinding it is now
blocked on this gap (pulseengine/spar#371).
What would remove it
Either of:
- A
dev-schema verification type — e.g. verification-measure with
verifies -> [any] and the method / test-location / test-name / steps
fields declared, so a non-ASPICE project can put tests on the right side of the
V without importing SWE.3.
- Relax the ASPICE types' link targets so
unit-verification.verifies accepts
[sw-detail-design, sw-req, requirement, design-decision] and
swe4-verifies-swe3 only fires for projects that actually declare ASPICE
artifacts. (Riskier — it weakens the ASPICE rule for ASPICE users.)
(1) seems cleaner: the two schemas stay honest about their own process models, and
the dev schema gains the one artifact kind it's currently missing to close a V.
Environment
rivet 0.28.0 (8abbb62 main 2026-07-16), schemas common@0.3.0 (embedded),
dev@0.2.0 (embedded), aspice@0.2.0 (embedded).
What I was trying to do
Record test-suite verification measures in a
dev-schema project (spar: 883artifacts,
requirement/feature/design-decision+stpa), and give eachone a type that says "this is a verification measure."
The friction
The
devschema has no verification-measure type. The only ones rivet ships areASPICE's, and their required link fields point back into the ASPICE process
model:
So a
dev-schema project cannot adoptunit-verificationfor a unit testwithout also adopting
sw-detail-design(and transitivelysw-req,sw-arch-component, …). There is no "I use the dev schema and I have tests"path — it's all-of-ASPICE or nothing.
The workaround it forced
spar hand-rolled a verification-measure type on top of
feature, using undeclaredfields:
featuredeclares onlyphase,acceptance-criteria,baseline— so all fourare undeclared-field warnings, and
feature'ssatisfiespredicate puts testsuites on the implementation side of the V rather than the verification side.
That in turn inflates implementation coverage: 194 of spar's 311 requirements have
feature-stage coverage, but 172 of those are covered only by an artifact whose
fields.test-namenames acargo test.This is a workaround, and it is load-bearing enough that unwinding it is now
blocked on this gap (pulseengine/spar#371).
What would remove it
Either of:
dev-schema verification type — e.g.verification-measurewithverifies -> [any]and themethod/test-location/test-name/stepsfields declared, so a non-ASPICE project can put tests on the right side of the
V without importing SWE.3.
unit-verification.verifiesaccepts[sw-detail-design, sw-req, requirement, design-decision]andswe4-verifies-swe3only fires for projects that actually declare ASPICEartifacts. (Riskier — it weakens the ASPICE rule for ASPICE users.)
(1) seems cleaner: the two schemas stay honest about their own process models, and
the
devschema gains the one artifact kind it's currently missing to close a V.Environment
rivet 0.28.0 (8abbb62 main 2026-07-16), schemas
common@0.3.0 (embedded),dev@0.2.0 (embedded),aspice@0.2.0 (embedded).