Turn an end-to-end success statement into independently decidable claims. Reconstruct what happened from available records, grade each claim against the strongest witness, and keep missing evidence distinct from failure.
This is a read-only audit. Do not rerun tools, approve actions, resume workers, deploy artifacts, or modify evidence unless the user separately authorizes those actions.
Do not use this skill to design instrumentation for a future run or to perform the missing actions. It evaluates evidence that already exists.
Record these inputs before judging the run:
Do not silently strengthen the original success criteria. Do not weaken them to match the evidence that happens to exist.
Split the overall claim into atomic predicates. Give every row a stable claim ID.
| Field | Required content |
|---|---|
claim_id |
Stable identifier |
predicate |
One falsifiable statement |
required_witness |
Source that can independently prove it |
evidence_refs |
Exact event, log, artifact, or record IDs |
counterevidence_refs |
Conflicting records |
coverage |
Required instances versus observed instances |
verdict |
proven, partially_proven, contradicted, or not_proven |
gap |
Missing field, actor, interval, or verification |
Typical predicates include:
Preserve original records and create a normalized event view with:
{
"run_id": "run-123",
"event_id": "evt-42",
"sequence": 42,
"observed_at": "RFC3339 timestamp",
"actor": {"type": "worker", "id": "worker-2"},
"operation": "mcp.search",
"state_before": "researching",
"state_after": "researching",
"attempt": 2,
"request_id": "req-9",
"idempotency_key": "task-7:search:2",
"input_digest": "sha256:...",
"output_digest": "sha256:...",
"checkpoint_seq": 3,
"parent_event_id": "evt-41",
"status": "succeeded",
"evidence_ref": "tool-log:991"
}
Use null or unknown for absent values. Never synthesize IDs, timestamps, digests, costs, approvals, or outcomes.
Verify bundle hashes or signatures when supplied. Check duplicate IDs, broken parent links, non-monotonic per-source sequences, impossible state transitions, unaccounted clock skew, and unexplained trace gaps. Treat an integrity failure as counterevidence for claims that depend on the affected records.
Prefer the witness closest to the effect:
| Claim | Strong witness | Insufficient alone |
|---|---|---|
| Code changed | Commit/tree and diff | Agent narration |
| Test passed | Complete test result bound to revision | Command invocation |
| MCP effect occurred | Server or provider audit record | Client request |
| Checkpoint resumed | Durable checkpoint plus verified load event | Checkpoint file exists |
| Human approved | Authorization-system decision bound to artifact and target | Approval requested |
| Deployment succeeded | Platform record plus required health checks | Deployment started |
| Memory grounded a decision | Versioned memory read and citation | Final answer resembles memory |
An orchestrator and its child worker are not independent witnesses when they repeat the same unverified result. A cryptographic digest proves byte identity, not semantic correctness.
all_required, quorum, first_success, or other join rule.Do not infer successful completion from a final state label when required intermediate predicates are missing.
proven: authentic evidence covers every instance of the predicate and no reliable counterevidence remains.partially_proven: some required instances or fields are proven and the uncovered portion is named.contradicted: reliable evidence conflicts with the predicate.not_proven: evidence is absent, circular, unverifiable, or only self-reported.Use not_proven, not contradicted, for missing logs. Use contradicted when the trace shows a failed health check, duplicate effect, unauthorized approver, corrupt checkpoint, skipped required branch, or exhausted budget.
The end-to-end verdict cannot be stronger than its weakest required predicate. Optional diagnostics may remain unproven without failing the run if they were never part of the declared contract.
Return sections in this order:
Example conclusion:
partially_proven: repository steps C1-C18 and checkpoint recovery C22 are proven, but deployment success is not proven because C31 has only a client-side start event and no platform health result.