Files
troupe-standup/wizard-work/sol/verify_sol_triage_hermes_digest.py

65 lines
1.9 KiB
Python

#!/usr/bin/env python3
"""Verify the sol: Hermes local-LLM free-tier triage digest.
Exit 0 iff:
- wizard-work/sol/triage.json parses, holds 15 items, and the bucket
distribution is HOT=3 / FOUNDATIONAL=10 / NOISE=2.
- every item has bucket, verdict, evidence and url.
- wizard-work/sol/triage.md exists and is non-empty.
"""
import json
import os
import sys
HERE = os.path.dirname(os.path.abspath(__file__))
JSON_PATH = os.path.join(HERE, "triage.json")
MD_PATH = os.path.join(HERE, "triage.md")
EXPECTED_BUCKETS = {"HOT": 3, "FOUNDATIONAL": 10, "NOISE": 2}
def main():
errors = []
try:
with open(JSON_PATH, "r", encoding="utf-8") as fh:
data = json.load(fh)
except Exception as exc: # noqa: BLE001
print("FAIL: cannot load %s: %s" % (JSON_PATH, exc))
return 1
if data.get("total") != 15 or len(data.get("items", [])) != 15:
errors.append(
"total/items mismatch: %s / %s"
% (data.get("total"), len(data.get("items", [])))
)
buckets = {}
for item in data.get("items", []):
b = item.get("bucket")
buckets[b] = buckets.get(b, 0) + 1
for key in ("bucket", "verdict", "evidence", "url"):
if not item.get(key):
errors.append("item %s missing %s" % (item.get("index"), key))
if buckets != EXPECTED_BUCKETS:
errors.append("bucket distribution mismatch: %s" % buckets)
if not os.path.isfile(MD_PATH) or os.path.getsize(MD_PATH) == 0:
errors.append("triage.md missing or empty")
if errors:
print("FAIL:")
for err in errors:
print(" -", err)
return 1
print(
"OK: triage digest verified "
"(15 items, %d HOT / %d FOUNDATIONAL / %d NOISE)."
% (EXPECTED_BUCKETS["HOT"], EXPECTED_BUCKETS["FOUNDATIONAL"], EXPECTED_BUCKETS["NOISE"])
)
return 0
if __name__ == "__main__":
sys.exit(main())