Module: Rigor::CLI::CoverageMutation
- Included in:
- CoverageCommand
- Defined in:
- lib/rigor/cli/coverage_mutation.rb
Overview
ADR-63 Tier 2 + ADR-70 — the mutation-effectiveness and fused static∪dynamic protection paths, factored out of
CoverageCommand to keep that command focused on dispatch. Mixed in, so each method runs in the command instance
(using @out / @err / @argv / collect_paths / determine_protection_exit and the Protection +
LanguageServer collaborators the command requires).
Constant Summary collapse
- DISCOVERY_SEEDED_MUTATION_SITES =
ADR-50 § WD2 — the bleeding-edge feature id gating the Tier-2 discovery seed (#253). Named here rather than inlined at the call site: Rigor::Configuration#bleeding_edge_active? raises on an id absent from the registry, so the constant is the single place a rename has to reach.
"discovery-seeded-mutation-sites"- DEPENDENT_CLOSURE_KILL_ORACLE =
ADR-50 § WD2 — the bleeding-edge feature id gating the Tier-2 dependent-closure kill oracle (#254). Same reason as above for naming it here rather than inlining the string.
"dependent-closure-kill-oracle"- HARNESS_ERROR_WARN_FLOOR =
#264 — the "loud" threshold for a rescued-harness-failure count. Below it, a rescued mutant reads as the occasional transient this issue's
harness_errorsbucket exists to make VISIBLE, not to eliminate (see Protection::MutationScanner#classify); at or above it, the pattern looks less like noise and more like a harness defect worth stopping to investigate before trusting the ratio. Deliberately NOT thedetermine_protection_exitgate: a--thresholdbuild is pinned to the killed/survived ratio today, and turning a harness-side symptom into a new way for that same command to exit non-zero would silently change semantics CI already depends on. A loud stderr warning (plus the unconditional JSON field) is the visibility this issue asks for without redefining what "the build is red" means. 3- MUTATION_BEHAVIOUR_FEATURES =
Issue #134 slice 2 — the bleeding-edge ids whose adoption changes what a Tier-2 measurement REPORTS, and which therefore enter the identity of anything cached about it (#255: a behaviour feature's id is part of the cache identity of everything it changes). Both are named above; this is the ordered set the cache key reads, so a feature added to Tier 2 later has exactly one place to register.
[DISCOVERY_SEEDED_MUTATION_SITES, DEPENDENT_CLOSURE_KILL_ORACLE].freeze