How Verification Settles Work
Completion is asserted, never self-settled. A non-author lane post-processes the agent's trajectory against the task intent, then settles or reopens the work.
An agent saying “done” is a claim, not a fact. Models are getting too good at being wrong and confident — so the Oathe runtime never lets an assertion of completion settle work on its own.
The claim loop
claim → statements (+ automatic trace linkage) → done → verification task → verify → settle or reopen
Every step is enforced in the substrate, where no caller can route around it. Refusals are features: a second claimant is refused, a statement against no claim is refused, self-verification is refused, settlement without a verdict is refused.
Trajectory vs. task intent
Verification is not an agent reading logs. The verifier — an engine that didn’t write any of the code — post-processes the agent’s recorded session traces against the task intent: what was the definition of done, what did the agent actually do, and does the evidence support the completion statement? It can rerun the deciding test. It can be a different harness than the one that did the work.
If the evidence doesn’t hold, the work reopens. Rejected work stays open — nothing quietly becomes true.
Effect receipts
Consequential actions — deploys, payments, messages — carry durable identities and receipts. On retry, an effect that already happened is refused rather than repeated. The definition of done is recorded before work starts, so it can’t drift to match whatever the agent ended up doing.
Where Scan fits
Oathe Scan applies the same behavioral philosophy before a skill enters the runtime: run it in a sandbox, watch what it does, judge the behavior. Verification applies it during the work. Together: nothing enters unaudited, and nothing settles unverified.