verification-oracle
Skill4 starsChanged 4 months agoMITView on GitHub
Use when re-running a task_gates entry (or a proposed contract verification block) whose verification_type is `command` or `code`, to deterministically re-execute the declared check and compare the actual result against the gate's expected value -- not for `semantic` or `self_review` gates, which need judgment rather than re-execution.
In this repository42 other files it gives its agents.
- agent-contract-handoffSkill
- agent-creationSkill
- agent-protocolSkill
- agent-responseSkill
- blog-writingSkill
- brief-specSkill
- cli-loginSkill
- code-reviewSkill
- code-standardsSkill
- command-executionSkill
- deck-builderSkill
- dispatchSkill
- executionSkill
- fast-queriesSkill
- gaia-auditSkill
- gaia-checkSkill
- gaia-patternsSkill
- gaia-plannerSkill
- gaia-releaseSkill
- gaia-researchSkill
- gaia-verifySkill
- ghostwritingSkill
- git-conventionsSkill
- gmail-policySkill
- gmail-triageSkill
- gws-setupSkill
- human-registerSkill
- investigationSkill
- memorySkill
- orchestrator-present-approvalSkill
- pending-approvalsSkill
- remindersSkill
- security-tiersSkill
- session-channelsSkill
- session-reflectionSkill
- skill-creationSkill
- subagent-request-approvalSkill
- technical-explanationSkill
- technical-writingSkill
- ticket-writingSkill
- verification-rubricSkill
- visual-verifySkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 30
Confirm the type: Only command and code apply.
- Very specific: line 39
Re-execute; do not re-read: Run the exact string directly as one command, never through a shell (command-execution): the Bash tool reports …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Verification Oracle
Deterministic re-execution of a command or code gate: run the declared check
again, observe whether it passes now, and return a verdict carrying the
evidence that produced it. command and code are one mechanism with two
labels -- both carry a runnable string, evidence_shape on a persisted gate or
command on a contract's evidence_report.verification -- so the label changes
what a reader expects (a suite versus a linter), not how the oracle runs it.
For semantic and self_review gates, use verification-rubric.
Position in the flow
Upstream, the planner authored the gate: its claim in evidence_type, its
check in evidence_shape. Upstream of that, the executor ran the check red
before its change and green after, recording both as evidence tied to the gate.
The oracle never relaxes the gate: it runs the declared check as written and
reports whether it holds. Probes against the claim belong to the verifier
(gaia-verifier), which runs them after this check. Downstream, its
verdict decides whether the task derives as done and, through the evidence it
leaves, whether an AC can close -- so a false pass here counts unfinished work
as done one layer up.
Process
- Confirm the type. Only
commandandcodeapply. Re-running asemanticrubric or aself_reviewstatement as a shell command is a category error: there is nothing to execute. - Extract the check. Take
evidence_shape(gate) orcommand(envelope). A blank check on a deterministic type is a failure of the gate itself, never an assumed pass. - Treat a stale verdict as pending. A gate whose
stale_atis set keeps its old verdict for the record, but something it depended on changed since. Re-run it exactly as if no verdict existed. - Re-execute; do not re-read. Run the exact string directly as one
command, never through a shell (
command-execution): the Bash tool reports the exit code itself, so do not wrap the command inbash -cor appendecho $?to capture it. Keep stdout, stderr and that reported exit code. Exit 0 is pass. Re-observing is the whole point: an oracle that accepts a prior claim is aself_reviewwith extra steps. - Check that the gate could fail. For a gate on a change, look for its red
run (
gaia evidence list, negative evidence tied to this gate). A check that was never shown failing, or that passes whether or not the change is there, cannot distinguish done from not done. Then check that the selection was not narrowed since that red run. The shape lives in the gate row: its currentevidence_shapecarries no-k,-mor--deselectabsent from the command recorded with the red-run evidence, and astale_reasonnames any gate edit since. The test files live in git:git log -pover them from the red run'screated_atshows no new skip or xfail. Added tests are growth; a narrowed selection isbroken_test. - Return the full verdict and record it. Pass, or fail with the cause that
says what has to move:
product(the change does not do it),environment(the runner, a dependency, the network),broken_test(the check is wrong or cannot fail),requirement_changed(the claim no longer matches the brief). Keep the command, exit code, stdout and stderr forverbatim_outputsand as the gate's evidence. A timeout or a missing binary is a failure with its own error, never a silent pass.
Reference implementation
gaia.state.gate_oracle.run_oracle_check(gate, timeout=60.0) runs step 4: it
accepts either the gate or the envelope shape and returns an OracleVerdict
with ok, the resolved command, the exit code, stdout, stderr and errors.
Given red_selection=gate_selection(command) captured at the red run, it also
fails on step 5's narrowing (selection_narrowing); no CLI persists that
snapshot yet, so the git log -p read stands in. Step 3 and the failure cause
are the verifier's judgment on top of it.
Anti-patterns
- A second execution path for
code-- both types resolve to the same runnable string; anexec()of a snippet diverges from whatgaia.state.gate_validationsettled and doubles what must be maintained. - Passing a gate that never went red -- a check that cannot fail proves
nothing about the change; that is
broken_test, notpass. - Trusting a stale pass -- the verdict predates the change that marked it; only a fresh run clears it.
- Widening the run -- the oracle re-runs only the declared gate and probes, never a wider run (
code-standardsRule 9). - Skipping re-execution because the producer said it passed -- that is what
self_reviewis for; acommand/codegate exists so someone re-runs it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

