What an Agent Receipt Actually Proves | Reelier
Evidence state: reproduced against released reelier@0.32.0 on 2026-08-11.
A Reelier 0.32.0 run receipt records outcomes for one execution. When present, skillContentSha256 identifies caller-hashed retained skill bytes, while absence establishes no binding. It does not establish authorship, intent, approval, signature, safety, correctness, or completeness; push may later add a current-file fallback hash.
Evidence note
A released-package reproduction and retained receipt support the bounded fields described here; fields outside that record remain unproved.
Receipt anatomy
A receipt identifies the recorded skill and, when present, skillContentSha256 identifies caller-hashed retained skill bytes. Its absence establishes no binding; when present, the hash identifies content only. The receipt retains ordered step number, title, outcome, totals, and any failure text. It does not reproduce the full skill source, action tool or args, an explicit intent field, or every successful assertion expression.
Evidence states
Treat fields as present only when the receipt records them. A passing local verification can detect a failed present claim, while an absent or unchecked field remains outside the proof rather than becoming a pass.
Non-claims
This does not prove that an action was safe or semantically correct.
This does not prove that every write was observed or receipted.
Retained proof context
The immutable proof bundle retains the released-package reproduction, its observed facts, and the byte-retained receipt used for this bounded claim.
Reproduction
The local proof creates and verifies one unsigned receipt at a pinned source revision. It demonstrates the recorded run fields it prints; it does not establish safety, semantic correctness, complete observation, authorship, intent, trusted execution time, active policy, or a write-state delta.
$expectedPackageIntegrity = "sha512-XFrsLKdPuw7R0+gNcvduUIHDj2RE4m9j6eLgmRPKLOKS+Z1SiQEj0sLEmIkxaUujoM8NUfyzeUgIOXL1kAihrQ=="
$actualPackageIntegrity = (npm view reelier@0.32.0 dist.integrity).Trim()
if ($LASTEXITCODE -ne 0) { throw "npm view failed: $LASTEXITCODE" }
if ($actualPackageIntegrity -ne $expectedPackageIntegrity) { throw "Unexpected package integrity: $actualPackageIntegrity" }
npx --yes reelier@0.32.0 --version
if ($LASTEXITCODE -ne 0) { throw "npx version failed: $LASTEXITCODE" }
$proofDir = Join-Path $env:TEMP ("reelier-receipt-proof-" + [guid]::NewGuid().ToString("N"))
New-Item -ItemType Directory -Path $proofDir | Out-Null
Push-Location $proofDir
try {
$skill = Join-Path $proofDir "httpbin-echo-check.skill.md"
Invoke-WebRequest -ErrorAction Stop -Uri "https://raw.githubusercontent.com/seldonframe/reelier/bd44bf81bbd41915543fb647f433ddb386cc6a1d/examples/registry-seeds/httpbin-echo-check.skill.md" -OutFile $skill
$expectedSkillSha256 = "04748fc814f8a983f941ea2f97e66a6f38ba472e62bab0fe2cbd774a8dfc49df"
$actualSkillSha256 = (Get-FileHash -Algorithm SHA256 $skill).Hash.ToLowerInvariant()
if ($actualSkillSha256 -ne $expectedSkillSha256) { throw "Unexpected skill SHA-256: $actualSkillSha256" }
npx --yes reelier@0.32.0 run $skill
if ($LASTEXITCODE -ne 0) { throw "reelier run failed: $LASTEXITCODE" }
$receipt = Join-Path $proofDir ".reelier\runs\httpbin-echo-check.jsonl"
npx --yes reelier@0.32.0 verify $receipt
if ($LASTEXITCODE -ne 0) { throw "reelier verify failed: $LASTEXITCODE" }
} finally {
Pop-Location
}Falsifier
A present hash that does not identify the retained skill bytes, or a receipt with no recorded outcome, would falsify this claim.
Citation-friendly definition
A Reelier receipt records outcomes for one execution and, when present, skillContentSha256 identifies caller-hashed retained skill bytes. Its absence establishes no binding; when present, the hash identifies content only.