Receipts
Updated
RightNow Agent, the terminal coding agent, is paused. Its guides stay online as reference.
A receipt records the verified result of a bounded RightNow Agent transaction, checked against a tool result or the filesystem, never against assistant narration. A failed postcondition writes a failure record instead. Records come from one-call transactions ([rightnow] one_call_transactions, shipped on) and, with act_first (shipped off), from project builds.
Storage
Pretty-printed JSON, written atomically; on macOS and Linux the directory is 0700 and each file 0600.
Record format
Hashes are lowercase hexadecimal with a sha256: prefix.
| Field | Value |
|---|---|
| schema | rightnow.transaction.v1 |
| record_type | receipt or failure |
| receipt_id / failure_id | Generated UUIDv7 |
| transaction_id, session_id | Copied from the runtime context |
| started_at, completed_at | UTC RFC 3339, millisecond precision |
| workspace_root | Canonical workspace path, forward slashes |
| runtime | model, config_sha256 (hash of the full effective sampling config), and config: api_backend, base_url, max_completion_tokens, temperature, top_p, context_window, reasoning_effort, stream_tool_calls, plus header and query names without their values |
| summary | Receipt only: the verified-effect line |
| claim | Receipt only: one claim, below |
| attempted, expected, observed, reason | Failure record only: the failed postcondition |
Claims
claim.kind selects the evidence fields:
| kind | Fields |
|---|---|
| file_mutation | path (workspace-relative), operation (created, replaced, wrote, patched), before (exists, bytes, sha256), after (bytes, sha256), change (replacement_count or unified_diff) |
| command, test | command, exit_code, stdout and stderr (bytes, sha256 each) |
Verify a file receipt
From the workspace root, with a saved record.receipt.json, on Windows, macOS, or Linux:
--workspace <DIR>checks that root instead of the recordedworkspace_root.--jsonprintsreceipt_id,verified,path,expected,observed, andmessageinstead of a PASS or FAIL line.- Only a file-mutation receipt verifies: its target must still match the recorded byte count and SHA-256. Command and test receipts are historical execution evidence with no current file state.
| Result | Text output | Exit |
|---|---|---|
| Match | PASS: `<path>` still matches receipt <receipt-id>. | 0 |
| Changed | FAIL: `<path>` drifted: expected <bytes> bytes / <sha256>, observed <bytes> bytes / <sha256>. | 1 |
| Missing | FAIL: `<path>` is missing; receipt <receipt-id> no longer verifies. | 1 |
| Cannot check | Error: <reason> | 1 |
Receipt loading, schema, workspace, and path errors return before any result is printed: an unreadable file, invalid JSON, a failure record, another schema, a command or test receipt, or a target outside the workspace. A failed check, in either output mode, ends with Error: receipt verification failed on stderr.