Handeware.Prove

Proof eod_batch · 6 days · v0.1.0

Replay-conformance proof

EOD Batch

PROOF DIVERGED

6 days of recorded scheduler run history replayed through the Handeware Engine — same jobs, same dependency order, same failure containment, same human gates, or the day diverges.

Source tests/fixtures/eod_batch_controlm.xml · Window 2026-01-05 – 2026-01-10

Days replayed
6
Pass days
5
Diverged days
1
Gates observed
10

Per-day results

DateExpectedExecutedGatesVerdict
2026-01-05882PASS
2026-01-06882PASS
2026-01-07882PASS
2026-01-08320DIVERGED
2026-01-09882PASS
2026-01-10882PASS

Divergences

2026-01-08

expected 3 · executed 2 · gates 0

DIVERGED

Containment break — history shows these ran downstream of a same-day failure the model holds

  • GL_EXTRACT

Methodology

Every day in the supplied history window was replayed through the Handeware Engine against the graph converted from the scheduler export. Each job with a history row that day became a deterministic handler returning its recorded outcome — a recorded failure raises. Jobs without a row were marked NO_HISTORY. The Engine's own event log (one events.jsonl per day, beside this document) is the sole input to the comparison.

max_attempts=1 — a historical failure is a fact, not a flake. The Engine never retries the past; one recorded failure produces one STEP_FAILED event.

Human gates auto-approve and are recorded: every gate completes as a HUMAN_TASK_COMPLETED event with actor "auto", so the proof counts each sign-off an operator would have given.

Failure containment is boundary routing: every job node carries an error boundary routed to a held node, so a failed job parks its token and nothing downstream runs. History showing downstream jobs running anyway is reported as a containment break.

A day passes only when missing, unexpected, status mismatches, containment breaks and order findings are all empty and every history row matched a modeled job. The proof passes only when every replayed day passes.