LOCAL EVIDENCE / REFERENCED OBSERVATIONS
Outcome check
Checks supplied evidence, not authenticated execution.
1confirmed
1contradicted
1unobserved
Results by requirement
| Requirement | Action receipt | Outcome | Status | Reason | Expected | Observed | Freshness |
|---|---|---|---|---|---|---|---|
| enabled | confirmed | confirmed | confirmed | expected value observed | enabled = true | true (observation fresh) | age 60 s / max 120 s (observed at 2026-10-04T11:59:00Z) |
| time | confirmed | contradicted | contradicted | different value observed | time = "07:00" | "07:30" (observation fresh) | age 60 s / max 120 s (observed at 2026-10-04T11:59:00Z) |
| volume | not_required | unobserved | unobserved | stale observation | volume = 5 | 5 (observation old) | age 900 s / max 120 s (observed at 2026-10-04T11:45:00Z) |
How to read this report
- Action receipt keeps what the agent reported: confirmed means the named action succeeded, contradicted means it failed, unobserved means it is unknown or missing, and not_required means no action was needed.
- Outcome keeps what the supplied observation shows: confirmed means the expected value was observed fresh, contradicted means a different value was observed, and unobserved means the evidence is missing, stale, future, wrong-subject, or off-path.
- Status merges the two: contradicted if either side contradicts, confirmed only when the outcome confirms and the action confirms or is not required, otherwise unobserved.
- Expected echoes the requirement path and value; Observed echoes the value at that path in the named observation; Freshness echoes observed age versus max_age_seconds. Large values are truncated with an explicit marker.
Inspectable report
{
"counts": {
"confirmed": 1,
"contradicted": 1,
"unobserved": 1
},
"exit_code": 1,
"input_sha256": "58bccd7c2177aab6869b7d26a86e0bfc1fe377694ffc4e544d844243cc1832bd",
"results": [
{
"action": "confirmed",
"action_id": "set-alarm",
"id": "enabled",
"observation_id": "fresh",
"outcome": "confirmed",
"reason": "expected value observed",
"status": "confirmed"
},
{
"action": "confirmed",
"action_id": "set-alarm",
"id": "time",
"observation_id": "fresh",
"outcome": "contradicted",
"reason": "different value observed",
"status": "contradicted"
},
{
"action": "not_required",
"action_id": null,
"id": "volume",
"observation_id": "old",
"outcome": "unobserved",
"reason": "stale observation",
"status": "unobserved"
}
],
"schema_version": 1
}
Hashes bind bytes, not authenticity. This is a static executed example.