Verifying tool results
Coding agents frequently claim a task is complete when a test actually failed, when a check was skipped, or when the diff only fixed a symptom. Before ending an agent loop or opening a pull request, evaluate the agent's claim against the actual command output and diff summary in a single POST /v1/systemone call.
Pattern: atomic verification + composite scoring
Section titled “Pattern: atomic verification + composite scoring”Break completion verification into independent, falsifiable dimensions:
logs_support_claim(noul): Doestest_logsupport the agent'sclaim?games_verification(noul): Does the diff weaken, delete, or skip existing assertions to make tests pass?addresses_objective(score, 3 levels): How completely does the diff address the user'sobjective?scope_discipline(score, 3 levels): Did the diff stay focused onobjectivewithout unrelated churn?
Request
Section titled “Request”{ "model": "mouse-1", "state": { "objective": "Reject expired API keys with HTTP 401 in PgKeyStore._lookup.", "agent_claim": "Implemented expiry check and all unit tests pass.", "diff_summary": "Modified mouse_api/auth.py (+4 -0) and tests/test_api.py (+12 -0).", "test_log": "15 passed, 1 failed in 0.84s\nFAILED tests/test_api.py::test_expired_key_is_401 - AssertionError: 200 != 401" }, "questions": { "logs_support_claim": { "type": "noul", "instructions": "Does `test_log` support `agent_claim`?" }, "games_verification": { "type": "noul", "instructions": "Does `diff_summary` weaken, skip, or delete tests to force a passing result?" }, "addresses_objective": { "type": "score", "instructions": "How well does the work satisfy `objective` given `diff_summary` and `test_log`?", "criteria": [ "Does not address the objective or failing tests contradict the fix", "Partially addresses the objective or lacks verification", "Directly satisfies the objective and all relevant checks pass" ] }, "scope_discipline": { "type": "score", "instructions": "How focused is `diff_summary` relative to `objective`?", "criteria": [ "Contains unrelated file edits or unrequested refactoring", "Mostly focused with minor collateral changes", "Touches only the files and lines required by the objective" ] } }}Response
Section titled “Response”{ "id": "dec_6c18f204a93d110e", "object": "systemone.response", "model": "mouse-preview-2026-10-13", "answers": { "logs_support_claim": { "type": "noul", "noul": 0.01, "mouse": { "calibrated": false, "p_top": 0.99, "abstain": null } }, "games_verification": { "type": "noul", "noul": 0.02, "mouse": { "calibrated": false, "p_top": 0.98, "abstain": null } }, "addresses_objective": { "type": "score", "score": 0.14, "confidence": 0.79, "legend": { "0": "Does not address the objective or failing tests contradict the fix", "1": "Partially addresses the objective or lacks verification", "2": "Directly satisfies the objective and all relevant checks pass" }, "probabilities": { "0": 0.86, "1": 0.14, "2": 0.0 }, "mouse": { "calibrated": false, "p_top": 0.86, "abstain": null } }, "scope_discipline": { "type": "score", "score": 1.94, "confidence": 0.91, "legend": { "0": "Contains unrelated file edits or unrequested refactoring", "1": "Mostly focused with minor collateral changes", "2": "Touches only the files and lines required by the objective" }, "probabilities": { "0": 0.0, "1": 0.06, "2": 0.94 }, "mouse": { "calibrated": false, "p_top": 0.94, "abstain": null } } }, "usage": { "input_tokens": 212, "state_tokens": 58, "question_tokens": 116, "framing_tokens": 38, "image_tokens": 0, "cached_tokens": 0, "output_tokens": 0, "cost_usd": 0.0000212 }, "latency_ms": 44.0}Normalizing and combining composite scores in code
Section titled “Normalizing and combining composite scores in code”When combining multiple score questions, divide each score by len(criteria) - 1 so every dimension sits on 0.0 .. 1.0, and keep hard verification gates (logs_support_claim, games_verification) as non-compensatory vetoes:
def verify_completion(answers: dict) -> dict: # 1. Hard vetoes: never average away a contradicted log or a gamed test if answers["logs_support_claim"]["noul"] < 0.7: return { "done": False, "reason": "test_log contradicts agent_claim; fix the failing check before finishing.", } if answers["games_verification"]["noul"] >= 0.3: return { "done": False, "reason": "Diff appears to weaken or skip verification checks.", }
# 2. Normalize each 3-level score (0..2) to 0.0..1.0 and compute weighted composite obj_norm = answers["addresses_objective"]["score"] / 2.0 scope_norm = answers["scope_discipline"]["score"] / 2.0 composite = 0.75 * obj_norm + 0.25 * scope_norm
return { "done": composite >= 0.80, "composite_score": round(composite, 3), }