falsify
Teams ship AI accuracy claims that evaporate under scrutiny not from malice, but because the claim was never structured to be falsifiable.
Core trick
Seals metric, threshold, and dataset with SHA-256 before the run, then exits 3 in CI when a later edit breaks the hash.
Description
Teams ship AI accuracy claims that evaporate under scrutiny not from malice, but because the claim was never structured to be falsifiable. A "94% accuracy" number becomes 71% in production and nobody can tell whether the model drifted, the metric got relaxed, or the threshold moved after seeing the data.
Falsify is a CLI that forces pre registration: you cryptographically seal the metric, threshold, and dataset with SHA-256 before the experiment runs. Post hoc edits break the hash. CI exits 3. The audit trail writes itself.
Deterministic exit codes are the API — 0 pass / 10 fail / 3 tampered. CI gates on the code, humans read the trail. The claim either survives contact with the data, or it didn't happen.
Built entirely with Claude Opus 4.7: 5 skills, 2 subagents, 3 slash commands, 1 MCP server. 514 tests passing.
README excerpt
<a href="https://falsify.dev"><img src="brand/hero.png" alt="falsify: fix the pass bar before the test runs. Anyone can check it later." width="100%"></a> [](https://github.com/studio-11-co/falsify/actions/workflows/falsify.yml) [](https://github.com/studio-11-co/falsify/actions/workflows/multi-lang-conformance.yml) [](https://github.com/studio-11-co/falsify/actions/workflows/falsify.yml) [](spec/test-vectors/) [](https://www.bestpractices.dev/projects/13539) [](claims/self/) <br> [](https://pypi.org/project/falsify/) [![npm](https://img.shields.io/npm/v/falsify-js?label=n