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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions