Excluded from comparison: JSON keys: created_at, finished, generated_at, runtime_seconds, scan_id, started, timestamp; JSON keys ending in: _seconds, _ms; run directory names / run ids (<timestamp>-<8 hex>, benchmark.py create_benchmark_run, run.py create_scan_run) -> <RUN_ID>; trace/events.jsonl as a whole (timings); never copied; the export's absolute root path -> <ROOT>; the children's TMPDIR -> <TMP>; suite: only the outcome per test id is kept (junit durations dropped); env.json is a provenance record (commit, freeze hash, instrument checks), not compared

scan/report.sarif was removed from git on 2026-10-02. It had been committed in ca5caf7 despite .gitignore excluding *.sarif, and the candidate side (../2026-09-30-harnessx-removal-equality/candidate/scan) has none, so the committed pair was asymmetric. What a reader can recheck from git is the remaining scan files: findings.json, verification.json, fusion.json, harness.json, manifest.json and stdout.txt.
