Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (altimate-receipts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
๐งพ receipts
Agent-work verification โ not code review.
A deterministic, cross-agent Report Card of what your coding agent actually did โ read straight from the agent's own transcript, on your machine.
# 30-second start โ no install, no account:
npx altimate-receipts # Report Card for your most recent agent sessionAdding it to a repo's PRs?
receipts initscaffolds the CI check, or seedocs/onboarding-internal.mdโ install, the pre-push hook, and the one-block PR check.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐งพ RECEIPTS โ Agent Report Card proof, not vibes โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Session Add rate limiting to the billing service
Agent claude-code ยท claude-opus-4-8
Scope 1h 4m ยท 412 msgs ยท 318 tools ยท 6M tok ยท $24.18
โโ VERDICT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ F โ DO NOT MERGE WITHOUT REVIEW โ
โ 2 critical ยท 3 high ยท 1 medium โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
CRITICAL
โ Destructive op: rm -rf ./dist ./build ร2
data-loss risk
โ Modified the grader/harness: score.py
gamed the eval ยท score.py
HIGH
โ ๏ธ Force-pushed over remote history
history overwrite
โ ๏ธ Weakened the checker config: tsconfig.json
checker defanged ยท tsconfig.json
โ ๏ธ Stuck loop wasted $3.10 / 7m
$3.10 ยท 7m
MEDIUM
๐ 6 turns drove 57% of the $24.18 spend
$13.78
EVIDENCE
58 files changed ยท 146 edits ยท 92 commands ยท tests ran โ ยท 4 destructive ops ยท cache 0%
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
Verified by Receipts ยท deterministic ยท 0 model calls ยท evidence, not judgement
what it did โ not whether it's correct. your tests are the oracle for success.Illustrative output. Run
receiptson your own Claude Code sessions to see the real card.
The problem
Agents now write most of the code. It is no longer humanly possible to read every line of the agent's output โ the diff โ and a long session hides far more than a diff shows: commands run, files touched then reverted, tests that "passed," destructive ops, quietly weakened checkers.
So review the agent's work, not its output. Instead of re-reading every line, you read a faithful, deterministic account of what the agent actually did โ and spend your attention where the account flags something.
This is a new category: agent-work verification. It is not code review and never grades code quality. Your tests remain the oracle for correctness; Receipts is the oracle for what happened.
What a Receipt is
receipts reads the agent's own local transcript and prints a deterministic,
file:line-cited account of what the agent did:
- What changed โ files, edits, the actual bodies.
- What ran โ commands, and whether the tests actually ran.
- What it touched that it shouldn't have โ destructive ops, history rewrites, test/eval tampering, and other research-backed reward-hacking patterns.
- Claims vs. evidence โ what the agent said it did, checked against the transcript.
Every finding is file:line-cited or it doesn't ship. Nothing leaves your machine.
โ What problems Receipts solves โ the before/after for each capability, shipped and planned.
Why you can trust it
The whole pitch collapses if the account itself is wrong, so trust is engineered in:
- Deterministic โ zero model calls. Findings come from regex/heuristic rules over the transcript. Same input โ same output. There is no LLM in the product path to hallucinate.
- Near-zero false positives, now measured. A single false alarm and you go back to
reading diffs, so this is treated as existential and tested, not asserted: precision
100% on a 70-session labeled corpus, and a 1% flag rate over 1,200 real local
sessions in the out-of-sample field scan โ every flag manually adjudicated as a true
positive on genuine work, zero confirmed false positives. See
docs/eval.md. - Evidence, not judgement. Receipts reports what an agent did, never whether the code is good.
- Local-first. The CLI runs entirely on your machine โ no account, no upload, no telemetry. (The optional CI Action can emit anonymous, aggregate counts only; off by default in releases. See telemetry.)
How it works
the agent's own local transcript (raw JSONL / SQLite)
โ adapter (per agent) normalize to one session model, tool calls passed raw
โ spans derive edits / commands / reads / cost / destructive ops
โ findings deterministic detectors โ file:line-cited findings
โ Report Card human-readable, severity-grouped (default output)
โ Receipt (--json) portable, schema-validated object; optionally signedReceipts reads the transcript your agent already writes to disk โ it doesn't sit between you and the model, doesn't need an API key, and doesn't phone home. One Report Card spans Claude Code, Codex, Cursor, and OpenClaw; detectors are agent-agnostic.
Invariants
These are binding constraints, not aspirations (full set in
SPEC-0000):
- Deterministic โ zero model calls in the product path. (R1)
- Evidence, not judgement โ never grades code quality. (R2)
- Near-zero false positives, measured โ see
docs/eval.md. (R3) - Local-first โ no upload; the opt-in CI Action emits only anonymous aggregate telemetry. (R4)
Usage
receipts # Report Card for your most recent session (any agent)
receipts --list # list recent sessions across all agents
receipts --agent codex # limit to one agent: claude-code | codex | cursor | openclaw
receipts 3 # the 3rd session from --list
receipts "billing" # first session whose title contains "billing"
receipts --json # emit the Receipt object (in-toto Statement)
receipts --json --compact # canonical (sorted, minified) JSON
receipts --share # redacted, paste-ready Markdown summary
receipts guardrails --last 5 # prevention rules for AGENTS.md from recent sessions
receipts trends # cross-session digest: grades, recurring findings, cost
receipts trends --last 20 # span a wider window (default 10)
receipts pr # write THIS branch's receipt (branch-scoped) to .receipts/
receipts verify <bundle> --transcript <t> # prove the receipt is faithful (L1)
receipts diff <a> <b> # what changed between two receipts (deltas; --json)
receipts log # list the committed receipts in .receipts/ (--last N)
receipts stats # dogfooding scoreboard: how often it ran + what it caught
receipts eval # flag-rate of the detectors over your real local sessions
receipts badge [receipt] # shields.io endpoint JSON for a README/PR badge
receipts sarif [receipt] # SARIF 2.1.0 for GitHub code-scanning (inline + Security tab)
receipts init # scaffold the PR-check workflow into this repo (1-command adopt)
receipts rederive <t> # reproduce the canonical receipt from a transcript
receipts mcp # start the MCP server (stdio) for IDEs/agents
receipts --no-color # plain text (also honors NO_COLOR)Most people only ever need the Report Card. The Receipt (receipts --json) is
there when you want a portable, vendor-neutral record to feed tooling โ an
in-toto Statement carrying the same deterministic evidence +
findings (schema).
Status
๐ง Early. Working today across Claude Code, Codex, Cursor, and OpenClaw:
- the deterministic Report Card (
receipts) โ the core, - prevention rules you can paste into
AGENTS.md(receipts guardrails), - a cross-session trends digest โ what your agent does wrong over time (
receipts trends), - a portable Receipt (
receipts --json) + a redacted--sharesummary, - an MCP server (
receipts mcp) for IDEs/agents (docs).
The findings engine is measured for fidelity โ precision 100% on a 70-session
labeled corpus, 1% flag rate over 1,200 real local sessions (every flag adjudicated as
a true positive; zero confirmed false positives) (docs/eval.md).
See the roadmap in specs/.
For teams (optional)
Need to attach the Receipt to a PR or prove it in CI? A Receipt can be
Sigstore-signed and posted as a "Verified-by: Receipts" check
(docs), and re-derived from its transcript to prove it
wasn't hand-edited (receipts verify --transcript, trust model).
This is opt-in โ the value is the Report Card; signing is there for when your
org's compliance or settlement needs make it concrete.
Configure it locally (one prompt)
Your repo already has the Verified by Receipts check, but Receipts is local-first โ the receipt is generated from your agent's transcript and committed to the branch; CI can't make it. So each contributor configures it once. Paste this prompt into your coding agent (Claude Code) from inside the repo, and it will set up local generation and verify the whole flow end to end โ including that the receipt actually posts on the PR:
Set up and verify altimate-receipts in this repo, end to end.
1. Make the `receipts` CLI available. Try `receipts --version`. If missing, try
`npx --yes altimate-receipts --version`. If that also fails (private / not on npm),
clone + build it and use it via node:
git clone --depth 1 https://github.com/AltimateAI/altimate-receipts /tmp/altimate-receipts
(cd /tmp/altimate-receipts && npm ci && npm run build)
Then treat `receipts` as `node /tmp/altimate-receipts/dist/cli.js` everywhere below.
2. Configure it locally so every future push auto-attaches my receipt: create a
`.githooks/pre-push` hook that runs `receipts pr`, and if it changes `.receipts/`,
`git add .receipts/` + commit, then asks me to push again. Make it executable and run
`git config core.hooksPath .githooks`. (Never let the hook fail the push.)
3. Generate THIS branch's receipt now from my local Claude Code transcript:
`receipts pr --base <this repo's default branch>` โ writes `.receipts/<branch>.json`.
4. Verify it is authentic and re-derivable: `receipts verify .receipts/<branch>.json` must pass.
5. Commit it: `git add .receipts/<branch>.json && git commit -m "chore: attach agent receipt"`.
6. Confirm uploading works end to end: push the branch and open/refresh the PR, then check that
the "Verified by Receipts" CI check runs AND a Receipts comment appears
(`gh pr checks` and `gh pr view --comments`). Report back whether the receipt is showing on
the PR, and paste the comment's headline line.If step 6 shows the check + comment, uploading works. If the comment is missing, the agent
will report why (no receipt committed, workflow not present, or a permissions issue) โ the same
classification the fleet check (script/dogfood-health.mjs) uses.
Dogfooding
Receipts audits its own development: open this repo in your coding agent and
receipts pr attaches a branch-scoped Receipt to each PR (a pre-push hook and
AGENTS.md automate it).
How we build: spec-driven
Every change starts from a spec in specs/ (use
specs/TEMPLATE.md). The product vision is
SPEC-0000. See CONTRIBUTING.md.
License
Apache-2.0 ยฉ altimate.ai