SECTION · SUBSTRATE · 08 / 20

The judge says continue, stop, or ask.

Naive autoloops either run forever burning money or stop the second one test flickers — the judgment loop is the difference between a fleet that finishes and a fleet that needs a babysitter.

COMPASS JUDGE
HOOK

RHOBEAR does not just keep working blindly. It decides when to continue, stop, ask you, or escalate.

TECH

A structured decision engine that evaluates goal state into continue / done / blocked / needs_owner / escalate verdicts.

A · THE FIVE VERDICTS

Five exits. No infinite loops.

  • continue — the lane is progressing, the gate is satisfied, fire the next iteration.
  • done — the goal hit its outcome condition; the loop drops to clean stop and writes the summary.
  • blocked — a real obstacle (failing build, missing dependency, unrecoverable error); loop pauses, evidence captured.
  • needs_owner — a decision only you can make; loop waits, Telegram buzzes, nothing irreversible happens.
  • escalate — the assigned role can't solve this; reroute to a different role or surface to the orchestrator.
B · WHAT THE JUDGE READS

It looks at four things before it speaks.

  • The goal state — outcome target, iteration counter, budget remaining, owner-action flags.
  • The worker report envelope — status, evidence, diff, test results, risks the worker flagged.
  • The session transcript — what was actually attempted vs what was claimed.
  • The safety registry — is the next action even allowed under the current gate?
C · WHEN IT SAYS NEEDS_OWNER

Some decisions are yours, full stop.

  • Scope creep — work is drifting beyond what /goal asked for; you decide whether to widen the gate.
  • Irreversible action — a force-push to main, a prod deploy, a paid-tier upgrade; never auto-approved.
  • New dependency — a package the safety registry hasn't seen before; you sign off or deny.
  • Ambiguous outcome — two valid paths forward; the judge surfaces both and waits for your call.
D · WHEN IT SAYS ESCALATE

Wrong worker, right work — re-route.

  • The lane needs a capability the assigned role doesn't have.
  • The work crossed a domain boundary mid-iteration (build lane hit a security concern; hand to Guardian).
  • The same lane has failed three times under the same role — try a different model behind the same role.
  • A cross-lane conflict surfaced (two workers touching the same file); orchestrator re-sequences.
ONE VERDICT PER REPORT

Worker speaks. Judge decides. Loop acts.

foreman > report ready · PR #88 · status=open · tests=pass · diff=+142/-8 judge > reading goal-204 · iter=1/8 · budget=$2.40/$12 judge > reading transcript · 14 tool calls · no scope drift judge > reading safety · gate=strict · writes-allowed · no shell-escape judge > verdict: continue → dispatch lane b --- next iteration fires --- foreman > report ready · PR #90 · status=blocked · tests=fail judge > reading transcript · "stripe key string in docs example" judge > reading safety · gate violation: secret-pattern detected judge > verdict: needs_owner → pause loop, surface to owner openclaw > telegram fired · "goal-204 · review needed · 1 question" --- loop paused · owner-pending --- you > approve redact-and-continue judge > verdict: continue → foreman re-runs lane c with redaction --- loop resumes --- foreman > report ready · PR #90b · status=open · tests=pass judge > reading goal-204 · all lanes terminal · outcome satisfied judge > verdict: done → write summary, fire telegram, drop loop pops > goal-204 shipped. 3 PRs merged. you slept through it.
← Previous Goal autoloop Next → Substrate