Skip to content

Proof task contract

Proof contracts describe operator-controlled assertions against a recorded run. A contract uses schema version 1 and names:

  • the contract;
  • the target run;
  • one or more assertions.

Supported assertion families cover files, bounded HTTP checks, fixed Git working-tree checks, and exact-allowlisted commands.

Terminal window
odinn experimental proof contract validate ./contract.json

Run it:

Terminal window
odinn experimental proof run \
<run-id> \
--contract ./contract.json

File paths and command working directories are confined to the run workspace. Command execution is denied unless the complete argument vector exactly matches an operator-owned allowlist entry.

Approved commands run without a shell and receive a minimal environment. Output is bounded. Timed-out or flooding process trees are terminated.

Advanced: version 1 example
{
"schemaVersion": 1,
"id": "release-check",
"runId": "target-run",
"assertions": [
{
"id": "tests",
"type": "command",
"command": ["/absolute/path/to/pnpm", "test"],
"expect": { "exitCode": 0 }
},
{
"id": "marker",
"type": "file",
"path": "dist/ready.txt",
"expect": { "exists": true }
}
]
}

Regular-expression matching is bounded and permits only documented flags. Model output cannot set a run to verified.

Read Run Checks before enabling Proof.