Claude Code Receipts banner
monikagadage monikagadage

Claude Code Receipts

Testing community

Description

Claude Code plugin that checks the agent's end-of-turn claims against what it actually did this session — flags "tests pass" with no test run, "I edited X" with nothing touched, invented agreements. Warn-only, deterministic, stdlib only.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

receipts

[![ci](https://github.com/monikagadage/claude-code-receipts/actions/workflows/test.yml/badge.svg)](https://github.com/monikagadage/claude-code-receipts/actions/workflows/test.yml) [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) ![python: 3.9+](https://img.shields.io/badge/python-3.9%2B-blue)

**Claude Code says "Done ✅". This checks whether it actually did the thing.**

`receipts` is a Claude Code plugin that runs when Claude finishes a turn and compares what it *claimed* against what the session transcript *shows*:

  • "all tests pass" — but no test command ran this session
  • "I updated src/auth.py" — but nothing touched that file
  • "as we agreed, switching to GraphQL" — but you never said that

It's a `Stop` hook. Deterministic — no network calls, no model, no API cost. It reads the transcript Claude Code already writes to disk. **Warn-only by default**: it surfaces the unbacked claims and lets you decide.

⚠️  receipts — 2 claims not backed by this session:
  • "All tests pass."          → no test command ran this session
  • "I refactored auth.py."    → nothing modified `auth.py`  (files edited: routes.py, config.py)

Why

"Claude claimed the work was done and it wasn't" is one of the most common Claude Code complaints of 2026. The usual advice is a habit ("always ask for receipts") or a Stop hook that runs a *fixed* command like `npm test`. `receipts` is different: it reads the **specific claims** in Claude's final message and checks each one, with zero configuration.

Install

/plugin marketplace add monikagadage/claude-code-receipts
/plugin install receipts@monikagadage

Requires `python3` on your `PATH` (3.9+). No pip packages.

To try it without installing:

git clone https://github.com/monikagadage/claude-code-receipts
claude --plugin-dir ./claude-code-receipts

What it checks (v1)

Claim in Claude's final message Backed by Flagged when
"tests