The PulseEngine feature loop runs eight steps. For varve, three have been marked N/A every single feature since the project started:
- Step 1 — spar/AADL architecture model. varve has no
.aadl model.
- Step 2 — WIT generated from spar. varve exposes no WIT interface.
- Step 5 — witness MC/DC on the Wasm artifact. varve emits no wasm; it is a native Rust CLI.
Each waiver is individually correct. The skill is explicit that the pattern is not:
Recurring N/A is a backlog item, not an exemption. … If you mark either one N/A for the same reason three features running, file it — that pattern is exactly how a real-flight MC/DC gap and a missing attestation chain stayed hidden across ~20 features.
We are well past three. Filing it so the waiver is a recorded decision rather than an unexamined habit.
The question to actually answer
Is varve out of scope for the model-driven half of the methodology, permanently — or is it missing an architecture model it should have?
Arguments that it is genuinely out of scope:
- varve is a supply-chain tool, not embedded software. There is no scheduling, no partitioning, no ASIL decomposition, no timing.
- Its trust properties are about signatures and identity, not about control flow on a target. MC/DC on a decision table is not the oracle that matters;
cargo mutants on the trust-critical modules is, and that gate exists and is green.
- It ships a native binary by design. Compiling it to wasm to obtain a witness truth table would be building an artifact nobody runs.
Arguments that something is missing anyway:
What closing this looks like
Either:
- Record the exemption — a decision artifact in rivet stating that steps 1, 2 and 5 do not apply to varve and why, with the compensating oracles named (mutation testing, fuzzing, Kani, the self-hosting system gate). Then the loop's N/A is traceable instead of tacit.
- Build the model — a minimal spar model of the realm/store/composition boundaries, and see whether its analysis passes say anything the tests do not.
Option 1 is the honest default and is cheap. Option 2 is the interesting experiment, and would be evidence for or against the "MBSE is mandatory infrastructure" claim on a project that is not embedded — which is arguably a better test of the claim than another avionics example.
Related: REQ-SYSTEST-001 clause 4 has the same shape — a policy with no mechanical enforcement.
The PulseEngine feature loop runs eight steps. For varve, three have been marked N/A every single feature since the project started:
.aadlmodel.Each waiver is individually correct. The skill is explicit that the pattern is not:
We are well past three. Filing it so the waiver is a recorded decision rather than an unexamined habit.
The question to actually answer
Is varve out of scope for the model-driven half of the methodology, permanently — or is it missing an architecture model it should have?
Arguments that it is genuinely out of scope:
cargo mutantson the trust-critical modules is, and that gate exists and is green.Arguments that something is missing anyway:
verify --allcrossing a partition it should not have (verify --all checks only the pinned realm's partition, contradicting its --help #84). A model might have made those boundaries explicit enough to check.wasm-componentis already a declared payload kind.What closing this looks like
Either:
Option 1 is the honest default and is cheap. Option 2 is the interesting experiment, and would be evidence for or against the "MBSE is mandatory infrastructure" claim on a project that is not embedded — which is arguably a better test of the claim than another avionics example.
Related: REQ-SYSTEST-001 clause 4 has the same shape — a policy with no mechanical enforcement.