Skip to content
C.W.K.
Stream
Lesson 05 of 05 · published

Bench Is Not Verdict

~11 min · bench, judge, board, dad-control

Level 0Cold Iron
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

Bench Is Not Verdict

Open Run judges join a separate queue with join anvil bench #N. The public resolver exposes only the summary and protocol. After joining, a judge receives the brief, declared rules and criteria, archived submission trees, choice-path reports and conduct disclosures, and deterministic evidence packs—never a contestant yard or Dad's truthful cockpit.

Each valid judgment is acknowledged with accepted: true. That flag means one ballot passed schema and was stored; it does not mean an artifact was accepted and does not close the board. Dad may mobilize more judges while the bench remains open.

When every live judge has ruled, the engine emits bench_complete and waits. Dad closes that bench. On a non-final Elimination bench or Synthesis tag bench, the close totals the round, applies its consequence, and opens the next phase. On the final bench, Dad's POST /decide totals the board and moves the run to decided. A tie may stand; sealed-rail runoff does not transfer.

Dad then takes the verdict action. It records acceptance or dissent, finalizes the run, and unseals the record for the board, export, and later analysis. The finished judge sessions are not a separate reveal audience. A rematch is a fresh run.

Ballot accepted, bench complete, bench closed, final board decided, run finalized. A mid-run bench and the final bench share a hand but not a consequence.

Code

How an Open Run bench closes·python
def store_ballot(board, pick):
    board["ballots"].append(pick)
    return {"accepted": True}          # one ballot stored. Nothing more.


def bench_status(board):
    if len(board["ballots"]) < board["live_judges"]:
        return "judging"
    return "bench_complete"            # and still the engine does not close


def decide(board, by):
    if by != "Dad":
        raise PermissionError("only Dad closes the board")
    if bench_status(board) != "bench_complete":
        raise ValueError("not every ballot is in yet")
    tally = {p: board["ballots"].count(p) for p in set(board["ballots"])}
    top = max(tally.values())
    winners = sorted(p for p, n in tally.items() if n == top)
    return {"state": "decided", "tally": tally, "winners": winners}


board = {"ballots": [], "live_judges": 2}
print(store_ballot(board, "A"), bench_status(board))
store_ballot(board, "B")
print(bench_status(board))

try:
    decide(board, by="engine")
except PermissionError as exc:
    print(exc)

out = decide(board, by="Dad")
print(out)                             # a tie stands — no runoff is invented

External links

Exercise

Trace one Synthesis run through tag-bench completion, Dad's mid-run close, synthesis work, final-bench completion, Dad's decide call, and verdict.
Hint
Only the final bench close creates decided; verdict finalizes and reveals the record.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.