diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f007ca..f172d88 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -427,7 +427,7 @@ jobs: cp mutants/mutmut-cicd-stats.json quality-evidence/mutation-stats.json cp mutants/mutmut-stats.json quality-evidence/mutation-test-selection.json "$QUALITY_ENV/bin/python" scripts/check_mutation_score.py \ - quality-evidence/mutation-stats.json --minimum 70 + quality-evidence/mutation-stats.json --minimum 75 - name: Write normalized quality trend evidence if: always() diff --git a/ci/test-quality-policy.json b/ci/test-quality-policy.json index 16190ea..9d6b3d9 100644 --- a/ci/test-quality-policy.json +++ b/ci/test-quality-policy.json @@ -6,7 +6,7 @@ "changed_line": 90.0, "mature_cpu_statement": 80.0, "mature_cpu_branch": 75.0, - "mutation_score": 70.0, + "mutation_score": 75.0, "warning_budget": 0 }, "critical_cpu_paths": [ diff --git a/pyproject.toml b/pyproject.toml index 595128c..48cd2ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -117,6 +117,7 @@ markers = [ source_paths = ["obliteratus/", "scripts/"] only_mutate = [ "obliteratus/config.py", + "obliteratus/analysis/numerical_contracts.py", "scripts/check_coverage_thresholds.py", ] pytest_add_cli_args = ["--no-cov", "-q"] @@ -124,6 +125,7 @@ pytest_add_cli_args_test_selection = [ "tests/test_config.py", "tests/test_config_properties.py", "tests/test_coverage_thresholds.py", + "tests/test_numerical_contracts.py", ] mutate_only_covered_lines = true on_dependency_change = "rerun" diff --git a/scripts/check_quality_policy.py b/scripts/check_quality_policy.py index 041bb8c..60edd32 100644 --- a/scripts/check_quality_policy.py +++ b/scripts/check_quality_policy.py @@ -18,7 +18,7 @@ BASELINE_FLOORS = { "changed_line": 90.0, "mature_cpu_statement": 80.0, "mature_cpu_branch": 75.0, - "mutation_score": 70.0, + "mutation_score": 75.0, "warning_budget": 0.0, } diff --git a/tests/test_quality_policy.py b/tests/test_quality_policy.py index 3b2d170..8e98fca 100644 --- a/tests/test_quality_policy.py +++ b/tests/test_quality_policy.py @@ -66,13 +66,13 @@ def test_policy_and_exact_mature_floors_pass(): def test_floor_regression_requires_structured_reviewed_exception(): policy = _policy() - policy["minimums"]["mutation_score"] = 69 + policy["minimums"]["mutation_score"] = 74 assert quality.validate_policy(policy) == [ - "quality minimum mutation_score cannot move below 70 without an explicit reviewed exception", + "quality minimum mutation_score cannot move below 75 without an explicit reviewed exception", ] policy["threshold_exceptions"] = [{ "threshold": "mutation_score", - "new_value": 69, + "new_value": 74, "reason": "Temporary tool regression", "approved_issue": "https://github.com/elder-plinius/OBLITERATUS/issues/999", "expires": "2026-09-01",