Skip to content

Publish cargo-mutants CI template; adopt in kiln, loom, gale, meld #185

@avrabe

Description

@avrabe

Part of the V&V coverage initiative.

Problem

rivet runs cargo-mutants as a pre-commit hook today — the only project in the estate doing mutation testing. Mutation testing is the strongest test-suite-adequacy metric recognized under IEC 61508 Annex C.5.12 and ISO 26262-6 Table 13, and is arguably the Rust-world answer to the open MC/DC-for-Rust problem.

We should generalize the pattern: publish the template here and drive adoption in kiln, loom, gale, meld — the four highest-safety-stake Rust codebases in pulseengine.

Acceptance

  • Extract rivet's cargo-mutants configuration into a reusable template (workflow YAML + mutants.toml config)
  • Document the pattern in rivet/docs/mutation-testing.md:
    • When to run (pre-commit optional, CI required, nightly deep-scan)
    • How to set mutation-score targets per ASIL/DAL level (e.g. ≥90% for ASIL-D)
    • How to mark unreachable mutants (`# skip = `) with rationale
  • Open follow-up issues on each adopter repo linking back here:
    • kiln: adopt mutation testing
    • loom: adopt mutation testing
    • gale: adopt mutation testing
    • meld: adopt mutation testing
  • Ensure rivet.yaml schema records mutation_score on TEST-* artifacts across repos
  • Dashboard view (in the coverage-matrix issue) surfaces mutation score per repo

Notes

  • cargo-mutants is slow — batch on CI-matrix by crate, not full workspace
  • Mutation score is the best answer to "is our test suite good enough?" and directly addresses the MC/DC gap for Rust
  • This is pulseengine's single most differentiated V&V asset; generalizing it is high leverage

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