Files
troupe-standup/wizard-work/spark/verify_scratch_analysis.py
T
ledger a3e5ce4db4 volt: Q63 class repair -- eight assert-only verifiers gain a failure path -O cannot strip
The Q63 stripped-assert population read 0 of the tree from 2026-10-24 until
cycle 6; at 1518f2b it reads 8, measured with the lane's own scanner
(q63_verify_scan.py --repo . --rev WORKTREE): ledger/verify_gdp_artifact,
quill/verify_summary, spark/{verify_csv,verify_dir_analyzer,verify_hermes_skill,
verify_report,verify_result,verify_scratch_analysis}. Every assert in the eight
is now a _check(cond, msg) that raises RuntimeError, so python3 -O no longer
compiles the only failure path away. Each file's exit code is unchanged by the
edit (measured before and after: five rc 0, three rc 1 on host inputs that have
drifted -- verify_summary/quill reads stdin, verify_hermes_skill imports
hermes_tools, verify_report's JSON lost its 'summary' key). No assertion
weakened, no input repointed.

Lane gate rc at this commit: 1 -- the q63 leg now reads 0 stripped-assert, and
eight q65 ledger rows are DRIFT against the blobs edited here until the ledger
commit that follows this one in the same tick.
2026-11-02 14:33:56 +00:00

31 lines
1.0 KiB
Python

#!/usr/bin/env python3
"""Verify the scratch_analysis.json file is valid and contains expected data."""
import json
import sys
def _check(cond, msg):
"""A failure path `-O` cannot compile away (Q63: assert-only files exit 0 under -O)."""
if not cond:
raise RuntimeError(msg)
with open("/root/.hermes/wizard-outputs/spark/scratch_analysis.json") as f:
data = json.load(f)
# Verify required fields
_check("total_files" in data, "Missing total_files")
_check("total_bytes" in data, "Missing total_bytes")
_check("file_types" in data, "Missing file_types")
_check("files" in data, "Missing files array")
# Verify counts match
_check(data["total_files"] == len(data["files"]), "File count mismatch")
_check(data["total_files"] == 165, f"Expected 165 files, got {data['total_files']}")
_check(230000 <= data["total_bytes"] <= 250000, f"Total bytes out of range: {data['total_bytes']}")
print("VERIFICATION PASSED")
print(f"Total files: {data['total_files']}")
print(f"Total bytes: {data['total_bytes']}")
print(f"File types: {data['file_types']}")