Skip to content

Receipts

Release status

RightNow Agent is coming soon for Windows, macOS and Linux. Installation commands and workflows in these guides are reference material until the public release is available.

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

text
<RIGHTNOW_HOME>/receipts/<workspace-key>/<UUID>.receipt.json
<RIGHTNOW_HOME>/receipts/<workspace-key>/<UUID>.failure.json

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.

FieldValue
schemarightnow.transaction.v1
record_typereceipt or failure
receipt_id / failure_idGenerated UUIDv7
transaction_id, session_idCopied from the runtime context
started_at, completed_atUTC RFC 3339, millisecond precision
workspace_rootCanonical workspace path, forward slashes
runtimemodel, 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
summaryReceipt only: the verified-effect line
claimReceipt only: one claim, below
attempted, expected, observed, reasonFailure record only: the failed postcondition

Claims

claim.kind selects the evidence fields:

kindFields
file_mutationpath (workspace-relative), operation (created, replaced, wrote, patched), before (exists, bytes, sha256), after (bytes, sha256), change (replacement_count or unified_diff)
command, testcommand, 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:

text
rightnow receipt verify ./record.receipt.json --workspace . --json
  • --workspace <DIR> checks that root instead of the recorded workspace_root.
  • --json prints receipt_id, verified, path, expected, observed, and message instead 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.
ResultText outputExit
MatchPASS: `<path>` still matches receipt <receipt-id>.0
ChangedFAIL: `<path>` drifted: expected <bytes> bytes / <sha256>, observed <bytes> bytes / <sha256>.1
MissingFAIL: `<path>` is missing; receipt <receipt-id> no longer verifies.1
Cannot checkError: <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.

rightnow · verify a receipt

Windows

# After a verified file creation
Created `<file>` (<bytes> bytes).
Receipt: <receipt-path>

PS> rightnow receipt verify "<receipt-path>"
PASS: `<file>` still matches receipt <receipt-id>.