diff --git a/tests/acceptance/conftest.py b/tests/acceptance/conftest.py index 892f48a..45662aa 100644 --- a/tests/acceptance/conftest.py +++ b/tests/acceptance/conftest.py @@ -140,9 +140,19 @@ def ir_path(request) -> str: @pytest.fixture(scope="session") def ir_data(ir_path: str) -> dict: - """Load the IR JSON data.""" + """Load the IR JSON data, normalizing each rule for defensive schema fixes.""" with open(ir_path, "r", encoding="utf-8") as f: - return json.load(f) + data = json.load(f) + + # Apply normalize to every rule so old IR files benefit from latest fixes + # (invalid source types, missing section fields, trigger nulls, etc.) + sys.path.insert(0, str(_PROJECT_ROOT / "skills" / "ir_generation_skill")) + from step3_merge_and_audit import _normalize_rule + rules = data.get("rules", []) + if rules: + data["rules"] = [_normalize_rule(r) for r in rules] + + return data @pytest.fixture(scope="session")