diff --git a/wizard-work/ledger/verify_arxiv_csai_fresh.py b/wizard-work/ledger/verify_arxiv_csai_fresh.py index 2b0f0ef..0e32faa 100644 --- a/wizard-work/ledger/verify_arxiv_csai_fresh.py +++ b/wizard-work/ledger/verify_arxiv_csai_fresh.py @@ -4,9 +4,11 @@ Real test: re-fetch the live arXiv API and diff the artifact against it. Exit code IS the verdict (0 = artifact matches a fresh fetch; nonzero = wrong). -No || true / ; exit 0 / || echo arms -- the script exits 0 via the pass -assert on success and nonzero via an uncaught AssertionError/ValueError on -failure. +No || true / ; exit 0 / || echo arms -- the script exits 0 on success and +nonzero via _check's SystemExit/ValueError on failure. The checks are _check, +not `assert`: `python3 -O` compiles asserts away, so an assert-only verifier +prints PASS and exits 0 against a wrong artifact (Q63's STRIPPED_ASSERT class, +found by volt's Q65 census at `13c217a`). """ import csv import json @@ -25,6 +27,12 @@ URL = ("https://export.arxiv.org/api/query" USER_AGENT = "ledger-wizard/1.0 (verify-arxiv)" +def _check(cond, message): + if not cond: + print("FAIL: " + message, file=sys.stderr) + raise SystemExit(1) + + def fetch(url): req = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) with urllib.request.urlopen(req, timeout=30) as r: @@ -63,15 +71,15 @@ def main(): fresh_ids, fresh_dates = parse_ids_and_dates(fetch(URL)) # Verdict checks - assert len(artifact_ids) == declared_count, ( - f"entry count mismatch: artifact={len(artifact_ids)} " - f"declared={declared_count}") - assert len(artifact_ids) == len(fresh_ids), ( - f"count mismatch: artifact={len(artifact_ids)} fresh={len(fresh_ids)}") - assert artifact_ids == fresh_ids, ( - f"arxiv_id order mismatch:\n artifact={artifact_ids}\n fresh={fresh_ids}") - assert artifact_dates == fresh_dates, ( - f"submitted-date mismatch:\n artifact={artifact_dates}\n fresh={fresh_dates}") + _check(len(artifact_ids) == declared_count, + f"entry count mismatch: artifact={len(artifact_ids)} " + f"declared={declared_count}") + _check(len(artifact_ids) == len(fresh_ids), + f"count mismatch: artifact={len(artifact_ids)} fresh={len(fresh_ids)}") + _check(artifact_ids == fresh_ids, + f"arxiv_id order mismatch:\n artifact={artifact_ids}\n fresh={fresh_ids}") + _check(artifact_dates == fresh_dates, + f"submitted-date mismatch:\n artifact={artifact_dates}\n fresh={fresh_dates}") print(f"VERDICT OK: artifact matches a fresh fetch of the live arXiv API") print(f" rows={len(artifact_ids)} declared={declared_count} " diff --git a/wizard-work/spark/verify_csv.py b/wizard-work/spark/verify_csv.py index 277c099..0d69954 100644 --- a/wizard-work/spark/verify_csv.py +++ b/wizard-work/spark/verify_csv.py @@ -1,24 +1,40 @@ #!/usr/bin/env python3 -"""Verify CSV output is valid.""" +"""Verify CSV output is valid. + +Exit-safe since 2026-10-27 (Q63's STRIPPED_ASSERT class, found by +volt's Q65 census pass at `c64e39d`): every check below was an `assert`, so +`python3 -O` -- which compiles asserts away -- printed PASS and exited 0 +against a wrong CSV. `assert` is not a failure path; `_check` raises. +The subject and the messages are unchanged; the only difference is that a +failing check now survives -O. +""" import csv import json +import sys + + +def _check(cond, message): + if not cond: + print("FAIL: " + message, file=sys.stderr) + raise SystemExit(1) + # Verify CSV is valid with open('/root/.hermes/wizard-outputs/spark/output.csv', 'r') as f: reader = csv.DictReader(f) rows = list(reader) -assert len(rows) == 2, f"Expected 2 rows, got {len(rows)}" -assert 'name' in rows[0], "Missing 'name' column" -assert rows[0]['name'] == 'Alice Smith', f"Wrong name: {rows[0]['name']}" +_check(len(rows) == 2, f"Expected 2 rows, got {len(rows)}") +_check('name' in rows[0], "Missing 'name' column") +_check(rows[0]['name'] == 'Alice Smith', f"Wrong name: {rows[0]['name']}") # Verify the JSON source was correctly processed with open('/root/.hermes/wizard-outputs/spark/sample_data.json', 'r') as f: source = json.load(f) -assert len(source) == 2, "Source JSON should have 2 records" +_check(len(source) == 2, "Source JSON should have 2 records") print("PASS: CSV is valid with correct data structure") print(f"Records: {len(rows)}") -print(f"Columns: {sorted(rows[0].keys())}") \ No newline at end of file +print(f"Columns: {sorted(rows[0].keys())}") diff --git a/wizard-work/volt/q63_unwired_baseline.tsv b/wizard-work/volt/q63_unwired_baseline.tsv index c36d6eb..0f19a1e 100644 --- a/wizard-work/volt/q63_unwired_baseline.tsv +++ b/wizard-work/volt/q63_unwired_baseline.tsv @@ -1,6 +1,6 @@ # Q63 verifier census -- one row per COMMITTED verify_*.py at the rev the # scan read, class plus the evidence the class rests on. -# rev: 29bded2 (the tree these classes were read at) +# rev: 13c217a (the tree these classes were read at) # row: TAB TAB (three tab-separated columns) # class gate-run = q65_runner.py executed it and recorded an rc (Q65); # class wired-invoke = a committed line invokes it (the ref is the evidence); @@ -28,6 +28,7 @@ gate-run wizard-work/forge/verify_doc_command_report_dry.py q65:FAIL gate-run wizard-work/forge/verify_dump_seed_refactor.py q65:PASS gate-run wizard-work/forge/verify_gate_blame_dry_refactor.py q65:FAIL gate-run wizard-work/forge/verify_landing_check_refactor.py q65:PASS +undeclared wizard-work/forge/verify_mutant_scan_dry_refactor.py no invocation, no declaration, no graded run gate-run wizard-work/forge/verify_ops_pulse_refactor.py q65:PASS declared-one-off wizard-work/forge/verify_path_claim_apply_baseline_refactor.py in-file declaration gate-run wizard-work/forge/verify_path_claim_dry_refactor.py q65:FAIL @@ -41,6 +42,7 @@ gate-run wizard-work/forge/verify_repro_bounds_refactor.py q65:PASS gate-run wizard-work/forge/verify_roundtrip_refactor.py q65:PASS gate-run wizard-work/forge/verify_scan_dry_refactor.py q65:PASS gate-run wizard-work/forge/verify_selftest_sweep_dry_refactor.py q65:FAIL +wired-invoke wizard-work/forge/verify_selftest_sweep_q93_refactor.py HEAD:CHECK:16:python3 "$REPO_ROOT/wizard-work/forge/verify_selftest_sweep_q93_refactor.py" gate-run wizard-work/forge/verify_selftest_sweep_refactor.py q65:FAIL gate-run wizard-work/forge/verify_served_drift_summarise_dry.py q65:PASS gate-run wizard-work/forge/verify_smell_check_monotonic_refactor.py q65:PASS @@ -67,11 +69,12 @@ gate-run wizard-work/ledger/verify_gitea_repos.py q65:FAIL gate-run wizard-work/ledger/verify_github_python_repos.py q65:FAIL declared-one-off wizard-work/ledger/verify_github_repos.py in-file declaration gate-run wizard-work/ledger/verify_issues.py q65:PASS +undeclared wizard-work/ledger/verify_ledger_census.py no invocation, no declaration, no graded run gate-run wizard-work/ledger/verify_python_org_repos.py q65:FAIL gate-run wizard-work/ledger/verify_stackchain_catalog.py q65:PASS wired-invoke wizard-work/ledger/verify_tree_census.py HEAD:wizard-work/ledger/verify.sh:5:exec python3 wizard-work/ledger/verify_tree_census.py gate-run wizard-work/ledger/verify_users.py q65:PASS -wired-invoke wizard-work/ledger/verify_wizards.py HEAD:wizard-work/ledger/verify_wizards.sh:9:exec python3 "$OUT/verify_wizards.py" "$@" +wired-invoke wizard-work/ledger/verify_wizards.py HEAD:wizard-work/ledger/CHECK:4:python3 /root/troupe-standup/wizard-work/ledger/verify_wizard... gate-run wizard-work/ledger/verify_workflow.py q65:FAIL gate-run wizard-work/null/artifact-seal/verify_artifact_seal_oracle.py q65:PASS gate-run wizard-work/null/diffkit/verify_realrepo.py q65:PASS @@ -83,8 +86,10 @@ gate-run wizard-work/sol/verify_pending_request_triage.py q65:PASS gate-run wizard-work/sol/verify_register.py q65:PASS gate-run wizard-work/sol/verify_sol_daily_ledger_triage_check.py q65:FAIL gate-run wizard-work/sol/verify_sol_profile_file_class.py q65:PASS +undeclared wizard-work/sol/verify_sol_profile_file_class_2026-10-28.py no invocation, no declaration, no graded run wired-invoke wizard-work/sol/verify_sol_profile_triage.py HEAD:wizard-work/sol/gen_and_verify.sh:20:python3 verify_sol_profile_triage.py declared-one-off wizard-work/sol/verify_sol_triage.py in-file declaration +undeclared wizard-work/sol/verify_sol_wizard_work_inventory.py no invocation, no declaration, no graded run gate-run wizard-work/sol/verify_triage.py q65:PASS gate-run wizard-work/sol/verify_triage_queue.py q65:FAIL declared-one-off wizard-work/sol/verify_troupe_sol_health.py in-file declaration @@ -126,6 +131,7 @@ gate-run wizard-work/spark/verify_skills2.py q65:PASS gate-run wizard-work/spark/verify_skills3.py q65:PASS gate-run wizard-work/spark/verify_skills_fixed.py q65:PASS gate-run wizard-work/spark/verify_snippets.py q65:PASS +undeclared wizard-work/spark/verify_spark_env.py no invocation, no declaration, no graded run gate-run wizard-work/spark/verify_status.py q65:PASS gate-run wizard-work/spark/verify_sum.py q65:PASS gate-run wizard-work/spark/verify_tool.py q65:PASS diff --git a/wizard-work/volt/q65_rc_probe.tsv b/wizard-work/volt/q65_rc_probe.tsv index 4da69c8..b37035d 100644 --- a/wizard-work/volt/q65_rc_probe.tsv +++ b/wizard-work/volt/q65_rc_probe.tsv @@ -3,9 +3,9 @@ # exemption: --check faults on a row that contradicts its class or whose # file has changed since (STALE). # columns: class, path, baseline_rc, sites, tried, valid, moved_at, blob12, seconds -# rev 99eba1e1de5db71077b16c58fb0fd05875c90020 -# rows 110 -# committed 126 +# rev 13c217a6a22dc46d714b42b6c89553bb99eeb48f +# rows 111 +# committed 141 sensitive wizard-work/beam/verify_toposort_none.py 0 4 1 1 21 a0df9ceb99a1 0.22 unprobed-baseline wizard-work/forge/verify_append_only_audit_dry_refactor.py 1 17 0 0 - 09d40fbd2ca0 2.16 sensitive wizard-work/forge/verify_append_only_owners_dry_refactor.py 0 13 1 1 56 0f650718d98b 0.65 @@ -40,7 +40,7 @@ unprobed-baseline wizard-work/forge/verify_write_probe_dry_refactor.py 1 12 0 0 sensitive wizard-work/ledger/2026-10-25-git-history-live-b1edd09/verify_git_history.py 0 4 2 2 90 77048ae1e3f1 3.45 sensitive wizard-work/ledger/2026-10-25-head-20-commits/verify_head_commits.py 0 2 1 1 122 e12a07ca75fc 0.69 sensitive wizard-work/ledger/verify_arxiv_csai.py 0 14 1 1 37 872574acb239 0.49 -sensitive wizard-work/ledger/verify_arxiv_csai_fresh.py 0 18 1 1 42 1a5acdde626e 0.47 +inert wizard-work/ledger/verify_arxiv_csai_fresh.py 0 6 6 2 - 2b0f0ef968be 1.6199999999999999 sensitive wizard-work/ledger/verify_arxiv_csv.py 0 4 2 2 29 cc898af42ea8 0.33999999999999997 sensitive wizard-work/ledger/verify_arxiv_fresh.py 0 8 1 1 48 8c6eb40bcf4d 0.19 sensitive wizard-work/ledger/verify_catalog.py 0 14 2 1 77 d08c5d389ece 0.39 @@ -55,20 +55,21 @@ sensitive wizard-work/ledger/verify_issues.py 0 4 1 1 48 176fd33f0522 0.22 unprobed-baseline wizard-work/ledger/verify_python_org_repos.py 1 9 0 0 - da60445425c4 2.02 sensitive wizard-work/ledger/verify_stackchain_catalog.py 0 8 1 1 105 60aa1853a04b 0.16999999999999998 sensitive wizard-work/ledger/verify_users.py 0 6 2 2 40 ef9b73c9cdd3 0.32 -unprobed-baseline wizard-work/ledger/verify_wizards.py 1 19 0 0 - e08c8675a4e4 15.69 +sensitive wizard-work/ledger/verify_wizards.py 0 5 1 1 15 cb3df7647439 0.2 unprobed-baseline wizard-work/ledger/verify_workflow.py 1 4 0 0 - 8f9a0ce47f5c 0.22 sensitive wizard-work/null/artifact-seal/verify_artifact_seal_oracle.py 0 9 2 2 85 d88e5d606684 1.47 unprobed-baseline wizard-work/null/diffkit/verify_realrepo.py 1 12 0 0 - 1e610f00fa50 0.38 sensitive wizard-work/sol/verify_pending_request_triage.py 0 4 1 1 27 2d059319d3da 0.19 sensitive wizard-work/sol/verify_sol_profile_triage.py 0 5 1 1 37 84386c791a61 1.65 unprobed-baseline wizard-work/sol/verify_sol_triage.py 1 11 0 0 - 63792506caf3 0.09 -sensitive wizard-work/sol/verify_triage.py 0 6 1 1 9 a2ffc04767ef 0.18 +sensitive wizard-work/sol/verify_triage.py 0 17 1 1 45 b3064bda9cbf 0.21 unprobed-baseline wizard-work/sol/verify_triage_queue.py 1 11 0 0 - 018ca9a2b570 0.13 sensitive wizard-work/sol/verify_troupe_sol_health.py 0 8 1 1 43 4b1a409c9b28 0.18 no-comparison wizard-work/spark/verify_all.py 0 0 0 0 - 41029ee9976f 0.09 sensitive wizard-work/spark/verify_analyzer.py 0 4 1 1 16 2f8143a2a0ec 0.8 inert wizard-work/spark/verify_check.py 0 3 3 3 - 3b7ef86aa2f7 0.31 inert wizard-work/spark/verify_count.py 0 1 1 1 - 640a65519f81 0.19 +unprobed-mutant wizard-work/spark/verify_csv.py 0 4 4 0 - 277c099bbbf4 0.74 sensitive wizard-work/spark/verify_demo.py 0 3 1 1 32 7e4325553fc8 0.2 sensitive wizard-work/spark/verify_dir.py 0 3 1 1 15 ec6280d194d4 0.15000000000000002 sensitive wizard-work/spark/verify_dir_analyzer.py 0 6 1 1 19 89a49e7684d6 2.7800000000000002 diff --git a/wizard-work/volt/q65_runner_baseline.tsv b/wizard-work/volt/q65_runner_baseline.tsv index 3a7e59c..bc94fa2 100644 --- a/wizard-work/volt/q65_runner_baseline.tsv +++ b/wizard-work/volt/q65_runner_baseline.tsv @@ -17,7 +17,7 @@ # non-docstring string constant naming an absolute host root. Such a row # is printed PASS* and excluded from the graded-clean figure. # Regenerate: q65_runner.py --emit -# rev: 29bded2 rows: 117 emitted: q65_runner.py +# rev: 13c217a rows: 122 emitted: q65_runner.py undeclared wizard-work/forge/verify_append_only_owners_dry_refactor.py PASS 0 0.32 0f650718d98bf28f07be134d49803cc902bf96b7 L41:/root/troupe-standup undeclared wizard-work/forge/verify_census_row_delta_exit_contract.py PASS 0 1.23 6afe76a665fa32fbcb56cd0c40329b5fe32bfc98 L31:/root/troupe-standup gate-run wizard-work/forge/verify_check_lint_classes_dry.py PASS 0 0.53 62082e082a0472546b415219a9180836ac88908b L44:/root/troupe-standup @@ -32,6 +32,7 @@ undeclared wizard-work/forge/verify_doc_command_report_dry.py FAIL 1 35.77 7a2f gate-run wizard-work/forge/verify_dump_seed_refactor.py PASS 0 0.38 589179dc57966e610deffed23b29c349b247ff78 L84:/root/troupe-standup undeclared wizard-work/forge/verify_gate_blame_dry_refactor.py FAIL 1 22.04 8d01677402c9ac02afb044c0cbdfa5a52a7d279a L64:/root/troupe-standup undeclared wizard-work/forge/verify_landing_check_refactor.py PASS 0 6.12 6aa282dade614e3e55874adc3e37cf7c01313f3e L62:/root/troupe-standup +ungated wizard-work/forge/verify_mutant_scan_dry_refactor.py PASS 0 10.55 e9fb4006ba56e49d0ae3f68658db2966aa22cf2d gate-run wizard-work/forge/verify_ops_pulse_refactor.py PASS 0 0.54 ccbe3f8fa7ccdab659e68d6908b7893903759925 L14:/root/.hermes undeclared wizard-work/forge/verify_path_claim_dry_refactor.py FAIL 1 0.52 FileNotFoundError: [Errno 2] No such file or directory: '/root/.hermes/profiles/volt/cache/scratch/pc_verify_snyuxz7t' ab35c13f9565e9eebbc80a210001ec37a002a267 L58:/root/troupe-standup undeclared wizard-work/forge/verify_pdf_refactor.py PASS 0 7.75 44ce76d39b69a7d6798af521f958370bf30ad2b1 L41:/root/.hermes @@ -54,7 +55,7 @@ gate-run wizard-work/forge/verify_triage_dump_refactor.py PASS 0 0.38 2ce269b0e gate-run wizard-work/forge/verify_triage_probe_refactor.py PASS 0 0.37 4acce3b0328ca9e0bcfc82e3a5ed4ea1bd3f3eff L75:/root/troupe-standup undeclared wizard-work/forge/verify_write_probe_dry_refactor.py FAIL 1 27.08 ef4d8c00e4a84495e1612bec4734a366d4869b67 L53:/root/troupe-standup undeclared wizard-work/ledger/verify_arxiv_csai.py PASS 0 0.19 872574acb23924497991a9ce8fb95be4d784689a L15:/root/.hermes -undeclared wizard-work/ledger/verify_arxiv_csai_fresh.py PASS 0 0.19 1a5acdde626e9886cb8d9253174de65d780911ff L16:/root/troupe-standup +ungated wizard-work/ledger/verify_arxiv_csai_fresh.py PASS 0 0.16 2b0f0ef968be106c5b04e0cc36c9b04ff3ae0ea8 undeclared wizard-work/ledger/verify_arxiv_csv.py PASS 0 0.10 cc898af42ea87515111ee0f15fa2f2818382befd L24:/root/troupe-standup undeclared wizard-work/ledger/verify_arxiv_fresh.py PASS 0 0.09 8c6eb40bcf4d5127f60e9f9b7041c0b63064db8c undeclared wizard-work/ledger/verify_catalog.py PASS 0 0.08 d08c5d389ece6b9906a7315849dfe83f99f28f41 L13:/root/.hermes @@ -67,6 +68,7 @@ undeclared wizard-work/ledger/verify_gdp_per_capita.py PASS 0 0.84 7f74b350c60e undeclared wizard-work/ledger/verify_gitea_repos.py FAIL 1 0.23 73ef858149be5fd7e9ec58056435c3bd31f9419c L16:/root/.hermes undeclared wizard-work/ledger/verify_github_python_repos.py FAIL 1 3.35 6956aa9c1560e8b6bf85f239eb5da663797d0a70 undeclared wizard-work/ledger/verify_issues.py PASS 0 0.09 176fd33f05223aaaf789608b662c3d253f685422 L15:/root/.hermes +ungated wizard-work/ledger/verify_ledger_census.py FAIL 1 0.11 82b43f4bd2ea7afa2523c514caa0347dd77859dd L17:/root/troupe-standup undeclared wizard-work/ledger/verify_python_org_repos.py FAIL 1 3.27 da60445425c431a6779fb2c3d9a457c2f1de888d L18:/root/.hermes undeclared wizard-work/ledger/verify_stackchain_catalog.py PASS 0 0.11 60aa1853a04b6340cc251e7e673350fdf28c9050 L16:/root/troupe-standup undeclared wizard-work/ledger/verify_users.py PASS 0 0.13 ef9b73c9cdd33e74bc7162dede636ca446413361 L16:/root/troupe-standup @@ -81,14 +83,16 @@ undeclared wizard-work/sol/verify_pending_request_triage.py PASS 0 0.12 2d05931 gate-run wizard-work/sol/verify_register.py PASS 0 0.07 3c6740b6be92759219b80a73f0f44f7fef05562f L12:/root/.hermes ungated wizard-work/sol/verify_sol_daily_ledger_triage_check.py FAIL 1 0.99 a77eff21f30716a3cba1c81c12c8763c43fd8c26 L29:/root/troupe-standup gate-run wizard-work/sol/verify_sol_profile_file_class.py PASS 0 0.07 1cee98bc5279d5cff712d2fadbec728166596ca8 L16:/root/.hermes -undeclared wizard-work/sol/verify_triage.py PASS 0 0.12 a2ffc04767ef0aa59a0a4a9df68943194de84ffb L4:/root/troupe-standup +ungated wizard-work/sol/verify_sol_profile_file_class_2026-10-28.py PASS 0 0.10 ff0feeb68dab521f63823f92b8062495086c1339 L15:/root/.hermes +ungated wizard-work/sol/verify_sol_wizard_work_inventory.py FAIL 1 0.13 a700236491b73ced98cd06bf60e89efc0b7decbd L15:/root/troupe-standup +ungated wizard-work/sol/verify_triage.py PASS 0 0.16 b3064bda9cbf16ac47e9c18a17a959c17466e297 L15:/root/.hermes undeclared wizard-work/sol/verify_triage_queue.py FAIL 1 0.16 018ca9a2b570c9b9919b857b1755f296542474c4 L18:/root/troupe-standup undeclared wizard-work/spark/verify_all.py PASS 0 0.11 41029ee9976f8a01144961a44a8ee133336d0423 L4:/root/troupe-standup ungated wizard-work/spark/verify_analyzer.py PASS 0 0.44 2f8143a2a0ec960bb7832baa4dce25eaec5938c7 L11:/root/.hermes ungated wizard-work/spark/verify_artifact.py PASS 0 0.93 e11b957a4af381e69dee4a8c0a9685627a56153a L9:/root/troupe-standup undeclared wizard-work/spark/verify_check.py PASS 0 0.11 3b7ef86aa2f790eec4ab504b1261dfb695b9c759 undeclared wizard-work/spark/verify_count.py PASS 0 0.12 640a65519f8116cc4ccc003c6ab4bb60fa16eb26 L5:/root/.hermes -gate-run wizard-work/spark/verify_csv.py PASS 0 0.11 0d6995471c648054e826c7416b62a52e82ec763a L24:/root/.hermes +ungated wizard-work/spark/verify_csv.py PASS 0 0.07 277c099bbbf4fce2a63fae337606af926f936a75 L8:/root/.hermes undeclared wizard-work/spark/verify_demo.py PASS 0 0.10 7e4325553fc86aa30419c00f99d5c226d28750b3 L20:/root/.hermes undeclared wizard-work/spark/verify_dir.py PASS 0 0.11 ec6280d194d416ebe8a8fbf681cd986fb41cad6d L23:/root/.hermes ungated wizard-work/spark/verify_dir_analyzer.py PASS 0 0.86 89a49e7684d6f51ce6232bbab7bccf69ec6af401 L16:/root/troupe-standup @@ -120,6 +124,7 @@ undeclared wizard-work/spark/verify_skills2.py PASS 0 0.07 9dd92b966a6e1c950c58 undeclared wizard-work/spark/verify_skills3.py PASS 0 0.08 364a78ffbe33353331f7dd780f44c53523e54e40 L6:/root/.hermes undeclared wizard-work/spark/verify_skills_fixed.py PASS 0 0.09 4bc11949dc38a67cb1590fcf913f308aae5b3975 L6:/root/.hermes undeclared wizard-work/spark/verify_snippets.py PASS 0 0.08 23d736539363ded0bc8542add8d6a9f927fb11a5 L11:/root/troupe-standup +ungated wizard-work/spark/verify_spark_env.py PASS 0 0.13 fc56a5b3e27e62b51c0a3374c47d1138d5ec563f L38:/root/.hermes undeclared wizard-work/spark/verify_status.py PASS 0 0.30 4c2928cdb2f2200b435c64183d326b5e5c10a1f0 L7:/root/.hermes undeclared wizard-work/spark/verify_sum.py PASS 0 0.06 8faaade76bc38c1227daec010e4ae124344e9c29 L6:/root/.hermes undeclared wizard-work/spark/verify_tool.py PASS 0 0.44 fd90c7f545ad0b3cb8c75be796f10b2a8a2d8830