Freeze independently reviewed relevance calibration corpus
This commit is contained in:
1 parent
b6dd973a88
commit
4e60038c2f
36 files changed
+6565
No files matched your search
@@ -0,0 +1,78 @@
|
||||
"""Verify frozen-source integrity and bilingual split isolation; no inference."""
|
||||
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def require(condition, message):
|
||||
if not condition:
|
||||
raise ValueError(message)
|
||||
|
||||
|
||||
def verify(root):
|
||||
root = root.resolve()
|
||||
inventory = json.loads((root / "inventory.json").read_text(encoding="utf-8"))
|
||||
blind = json.loads((root / "blind-review-input.json").read_text(encoding="utf-8"))
|
||||
require(blind["assets"] == inventory["assets"], "Fixture integrity invariant failed")
|
||||
ids, groups, pairs = set(), {}, {}
|
||||
for asset in inventory["assets"]:
|
||||
require(asset["id"] not in ids, "Fixture integrity invariant failed")
|
||||
ids.add(asset["id"])
|
||||
path = (root / asset["path"]).resolve()
|
||||
require(path.is_relative_to(root), "Fixture integrity invariant failed")
|
||||
data = path.read_bytes()
|
||||
require(len(data) == asset["bytes"], "Fixture integrity invariant failed")
|
||||
require(hashlib.sha256(data).hexdigest() == asset["sha256"], "Fixture integrity invariant failed")
|
||||
group = asset.get("repository", asset.get("topic_family"))
|
||||
require(groups.setdefault(group, asset["split"]) == asset["split"], "Fixture integrity invariant failed")
|
||||
for license_file in asset.get("license_files", []):
|
||||
license_path = (root / license_file["path"]).resolve()
|
||||
require(license_path.is_relative_to(root), "Fixture integrity invariant failed")
|
||||
require(hashlib.sha256(license_path.read_bytes()).hexdigest() == license_file["sha256"], "Fixture integrity invariant failed")
|
||||
query_ids = set()
|
||||
for query in blind["queries"]:
|
||||
require(query["id"] not in query_ids, "Fixture integrity invariant failed")
|
||||
query_ids.add(query["id"])
|
||||
require(query["required_artifact"], "Fixture integrity invariant failed")
|
||||
if query["language"] == "de":
|
||||
require(not any(marker in query["query"] for marker in ("\u00c3", "\u00c2", "\ufffd")), "Fixture integrity invariant failed")
|
||||
pairs.setdefault(query["pair_id"], []).append(query)
|
||||
for pair in pairs.values():
|
||||
require({q["language"] for q in pair} == {"en", "de"}, "Fixture integrity invariant failed")
|
||||
require(len(pair) == 2, "Fixture integrity invariant failed")
|
||||
require(len({q["split"] for q in pair}) == 1, "Fixture integrity invariant failed")
|
||||
labels = json.loads((root / "author-labels.json").read_text(encoding="utf-8"))
|
||||
require(len(labels["labels"]) == len(query_ids), "Fixture integrity invariant failed")
|
||||
require({label["query_id"] for label in labels["labels"]} == query_ids, "Fixture integrity invariant failed")
|
||||
for label in labels["labels"]:
|
||||
require(set(label["expected_ids"]) <= ids, "Fixture integrity invariant failed")
|
||||
fixture = json.loads((root / "fixture.json").read_text(encoding="utf-8"))
|
||||
lock = json.loads((root / "fixture.lock.json").read_text(encoding="utf-8"))
|
||||
require(fixture["assets"] == inventory["assets"], "Frozen inventory differs")
|
||||
combined = [{**query, **next(label for label in labels["labels"] if label["query_id"] == query["id"])} for query in blind["queries"]]
|
||||
require(fixture["queries"] == combined, "Frozen queries differ")
|
||||
require(lock["frozen_at_utc"] == fixture["frozen_at_utc"], "Freeze timestamps differ")
|
||||
for name, expected in lock["sha256"].items():
|
||||
path = (root / name).resolve()
|
||||
require(path.is_relative_to(root), "Lock path escapes fixture")
|
||||
require(hashlib.sha256(path.read_bytes()).hexdigest() == expected, "Frozen hash differs: " + name)
|
||||
review = json.loads((root / "blind-review.json").read_text(encoding="utf-8"))
|
||||
require(review["inputSHA256"] == hashlib.sha256((root / "blind-review-input.json").read_bytes()).hexdigest(), "Blind input hash differs")
|
||||
reviewed = {row["id"]: set(row["expectedIDs"]) for row in review["queries"]}
|
||||
require(len(review["queries"]) == len(query_ids) and set(reviewed) == query_ids, "Blind review coverage differs")
|
||||
for query in fixture["queries"]:
|
||||
require(reviewed[query["id"]] == set(query["expected_ids"]), "Blind disagreement unresolved")
|
||||
for expected_id in query["expected_ids"]:
|
||||
asset = next(asset for asset in fixture["assets"] if asset["id"] == expected_id)
|
||||
require(asset["split"] == query["split"], "Expected artifact leaks between splits")
|
||||
return len(ids), len(pairs)
|
||||
|
||||
|
||||
def main():
|
||||
files, pairs = verify(Path(__file__).resolve().parent)
|
||||
print(f"Verified {files} files and {pairs} bilingual pairs; no inference performed.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in new issue
Block a user