Skip to content

Tracking: pulseengine-wide V&V coverage initiative #184

@avrabe

Description

@avrabe

Goal

Coordinate adoption of V&V techniques across all pulseengine production repositories so that every safety-critical project has the same baseline coverage and the certification story is consistent end-to-end.

Operating principle: overdo on testing rather than undercommit. Child issues are deliberately granular so per-repo agents can work them independently.

The four-gate pipeline (reference architecture)

Every production push should pass four gates before hardware:

  1. Pre-commit hooks — fast shift-left checks (rivet's 21-hook template is the reference)
  2. Bazel test //... — hermetic test + proof gate
  3. GitHub Actions CI — Miri, sanitizers, proptest, fuzz smoke, differential, mutation, integration
  4. cargo-kiln verify-matrix — ASIL profile gate before release

Coverage matrix (current state)

Technique Coverage today
Verus SMT kiln, rivet, sigil (partial)
Kani bounded MC kiln, rivet, z/gale, relay, meld, sigil, wohl (7 repos, 2000+ proofs)
Rocq theorem proving meld (28 files), synth (24), relay (5), z/gale (partial), loom (partial)
Lean 4 + Mathlib z/gale (2k lines), spar (592), relay (459), sigil (203)
Aeneas (Rust→Lean) Scaffolded in rules_lean; blocked on hermetic Charon (see pulseengine/rules_lean#1)
Loom Z3 translation validation pulseengine/loom (WASM optimizer, bespoke)
proptest 17 repos
tokio-rs/loom concurrency thrum only (archived)
Miri rivet (in CI), kiln (tool-versioned)
Sanitizers (ASAN/TSAN/LSAN) z/gale (wired in .cargo/config.toml)
cargo-fuzz 9 repos, 80+ targets
Differential testing loom, relay, rivet
Mutation testing (cargo-mutants) rivet (pre-commit)
criterion benchmarks 9 repos
Rivet traceability 13 repos with rivet.yaml

Phases and child issues

Phase 1 — Stop bleeding (visibility / CI hygiene)

Phase 2 — Formal methods adoption

Phase 3a — tokio-rs/loom concurrency

Phase 3b — criterion benchmarks (regression gate)

Phase 3c — cargo-fuzz targets

Phase 3d — mutation testing generalization

Phase 4 — Cross-cutting (on rivet)

Phase 5 — Abstract interpretation (the third DO-333 technique class)

Three parallel MIRAI prototypes on different code styles (crypto, kernel, data-structure) to understand which property classes abstract interpretation catches on our actual code, followed by a strategic Charon-based value-analysis pass integrated into the hermetic toolchain.

Related (pre-existing)

Skipped (repos archived)

  • pulseengine/automator — GitHub CI + Verus adoption cannot be filed (archived, read-only)
  • pulseengine/thrum — cargo-fuzz cannot be filed (archived). Note: thrum is currently the only repo using tokio-rs/loom; worth considering whether to unarchive if loom-permutation-checking is part of the V&V strategy long-term.

Success metric

Every production repo (kiln, loom, meld, relay, rivet, sigil, spar, synth, gale, wohl) passes all four gates with:

  • pre-commit hook parity with rivet's 21-hook config
  • Bazel test //... green
  • GitHub Actions CI green
  • Rivet traceability validated

References

Analysis thread (internal): full V&V inventory across 30 workspaces, DO-332 / DO-333 applicability, cross-domain standards mapping (ISO 26262, IEC 61508, EN 50128, IEC 62304, ECSS-Q-ST-80C, IEC 60880).

Roster summary

Created: 29 issues (1 hub + 28 children) across 10 repos.
Skipped (archived): 3 issues (automator×2, thrum×1).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions