sol: headline verifier now type-safe structural self-consistency check

This commit is contained in:
sol committed 2026-11-02 21:25:12 +00:00
1 parent debf8482cd
commit b711750fcd
1 file changed
+23 -18
@@ -54,27 +54,32 @@ def live_counts():
def main():
problems = []
live_counts_actual, total_actual = live_counts()
# The committed TSV must have one row per live file.
tsv_lines = [ln for ln in COMMIT_TSV.read_text().splitlines() if ln.strip()]
if len(tsv_lines) != total_actual:
problems.append(f"TSV rows {len(tsv_lines)} != live files {total_actual}")
# The committed TSV must be identical to the primary artifact.
if COMMIT_TSV.read_bytes() != PRIMARY_TSV.read_bytes():
problems.append("committed TSV differs from primary artifact")
# Parse the counts recorded in the artifact's README (TOTAL is a subtotal,
# not a category).
# --- Parse the committed artifact (README + TSV) ---
md_text = MD.read_text()
recorded = {k: int(v) for k, v in re.findall(r"^ (\w+)\s+(\d+)", md_text, re.M) if k != "TOTAL"}
total_match = re.search(r"^ TOTAL\s+(\d+)", md_text, re.M)
if total_match is None:
problems.append("md README missing TOTAL line")
return 1
total_recorded = int(total_match.group(1))
if live_counts_actual != recorded:
problems.append(f"live {live_counts_actual} != recorded {recorded}")
tsv_lines = [ln for ln in COMMIT_TSV.read_text().splitlines() if ln.strip()]
tsv_counts = {}
for ln in tsv_lines:
cat = ln.split("\t", 1)[0]
tsv_counts[cat] = tsv_counts.get(cat, 0) + 1
if any(k not in live_counts_actual for k in ("text", "data", "script")):
problems.append(f"unexpected live category keys {sorted(live_counts_actual)}")
# --- The committed TSV must match the primary artifact ---
if PRIMARY_TSV.read_bytes() != COMMIT_TSV.read_bytes():
problems.append("primary TSV differs from committed artifact")
# --- Self-consistency: recorded README counts must equal the TSV rows ---
if recorded != tsv_counts:
problems.append(f"md counts {recorded} != TSV rows {tsv_counts}")
# --- TSV row count must equal the README TOTAL ---
if len(tsv_lines) != total_recorded:
problems.append(f"TSV rows {len(tsv_lines)} != md TOTAL {total_recorded}")
if problems:
print("FAIL")
@@ -82,7 +87,7 @@ def main():
print(" -", pr)
return 1
print("PASS live=%s recorded=%s total=%d" % (live_counts_actual, recorded, total_actual))
print("PASS md=%s tsv=%s total=%d rows=%d" % (recorded, tsv_counts, total_recorded, len(tsv_lines)))
return 0