falsify
A Claude Code plugin that takes a ticket to a pull request and refuses to skip the proof at any step.
What it refuses to skip
- 1 · evidence
No branch until evidence shows the defect exists.
A root cause written in the ticket is a hypothesis to disprove. A verdict of configuration, as designed, or not built ends the run with an explanation.
- 2 · probe
No fix until one test fails with the value the reporter saw.
The probe lives in the spec that owns the code. Its actual value has to equal the reported one. That equality is the proof.
- 3 · score
No pull request until the computed score reads high.
The score is printed from the gates' JSON results; the model cannot edit it. Medium opens a draft and waits for CI.
The gates
Each gate detects one class of defect, has a source showing the class is real, and cannot pass while the property is false.
| Gate | Catches |
|---|---|
| size | Review blindness on large diffs |
| types | Type errors, including in files the diff did not touch |
| fan-out | The file you forgot |
| behaviors | The fix does not do what the ticket says |
| tamper | Tests weakened to pass |
| regression | Broken existing behavior |
| complexity | Code the next reader cannot hold |
| mutation | Tests that run the code and assert nothing |
| real-world | It works in the test and fails in the app |
Install
Add the plugin, then run setup once per repository. Setup asks where tickets live, what the test command is and which branch is the base, and runs each answer before accepting it.
/plugin marketplace add maxymlyskov/falsify
/plugin install falsify@falsify
/falsify:setup Every contribution went through it
Every open-source contribution on this site was found, proven and sent with falsify.