Merge pull request 'fix: [bug] IR 覆盖率回归:Layer B 从 92.6% 降至 63% + Layer A 新 schema 错误 - 来自 #18 - Closes #57' (#63) from dev/issue-57-round2-ir-normalize-on-load into main
CI / test (push) Successful in 11s
CI / test (push) Successful in 11s
This commit was merged in pull request #63.
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user