Check Result
Steps
- Read
step.expected_effect— what observable thing should be true now? - Probe for it independently: re-read the file, GET the API endpoint, query the DB. Don't trust the call's return value alone.
- If observed matches expected →
ok=true+ cite the evidence. - If not →
ok=falsewith the specific mismatch. Decide: retry this step, roll back, or escalate to the user.
Output shape
{
"ok": true,
"evidence": "GET /things/42 returned 200 with name='new-thing'"
}
// or
{
"ok": false,
"mismatch": "expected file out.json present; got ENOENT",
"action": "retry-step"
}
Failure modes
- Trusting the tool's own success signal — many APIs return 200 + body saying "queued" while the side effect never lands.
- Re-checking via the same code path that just wrote — use an independent probe.
- Treating "looks ok" as "is ok"; the verdict is binary.