Claimproof banner
Cshearer210 Cshearer210

Claimproof

Data community

Description

Two tools for one idea: a check nobody has ever made fail is not a check. claimproof stops an AI agent ending its turn on a claim it cannot back. deadcanary breaks a dbt project's data on purpose to find the data tests that cannot fail.

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

claimproof

[![CI](https://github.com/Cshearer210/claimproof/actions/workflows/ci.yml/badge.svg)](https://github.com/Cshearer210/claimproof/actions/workflows/ci.yml) [![PyPI](https://img.shields.io/pypi/v/claimproof.svg)](https://pypi.org/project/claimproof/) [![Python](https://img.shields.io/pypi/pyversions/claimproof.svg)](https://pypi.org/project/claimproof/) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Cshearer210/claimproof/blob/main/LICENSE)

**claimproof stops an AI coding agent from ending its turn saying "done" until it shows proof a machine can check.**

Agents report work as finished when it isn't — not by lying, but because a fluent summary and a correct one feel identical from the inside, and nothing in the loop is checking. This runs at the runtime layer, before the turn can end.

**Two packages live here.** `claimproof` is the library above. [**`deadcanary`**](https://github.com/Cshearer210/claimproof/blob/main/packages/deadcanary) asks the same question of a dbt project's data tests — [*"all 20 tests pass"* is a claim too](#the-same-question-asked-of-your-data--deadcanary), and it reads identically whether the data is healthy or the tests cannot fail. It breaks the data on purpose to find out which. `pip install claimproof[dbt]` gets both.

pip install claimproof
python -m claimproof.demo

![An unbacked claim is refused; the same claim with the test result attached is allowed; honest uncertainty is left alone](https://raw.githubusercontent.com/Cshearer210/claimproof/main/assets/demo.svg)

*The first four acts of `python -m claimproof.demo`, drawn from the demo's real output. `tools/render_demo_svg.py` regenerates this image from a live run and refuses to render if the output drifts — the same standard the library holds everyone else to.*

**Renamed from `agentattest` (2026-08-07).** PyPI refuses names a hyphen away from an existing project, and `agent-attest` — an unrelated agent evaluator