Skip to content

Commit 9be9113

Browse files
TMHSDigitalclaude
andcommitted
docs: introduce falsifiers in the README
The falsifier is this repository's central convention — it is what makes a green example run evidence rather than decoration — and it appeared only in CLAUDE.md, CONTRIBUTING.md, and the PR template. A reader evaluating the project from the README never met the word, so the examples read as scripts that happen to print OK. Add a short section above Showcase: what a falsifier is, that it changes input so a real assertion fails rather than skipping the check, that all 59 examples carry one, and the concrete bmesh-gear case (`--no-extrude` breaks the closed-form topology match and exits 3). Names the three flags that are commonly mistaken for falsifiers and links to CONTRIBUTING.md for the exit-code model. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
1 parent 112586b commit 9be9113

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

‎README.md‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,34 @@ blender --background --python examples/bmesh-gear/bmesh_gear.py --
7373
| Blender 5.1 | Prior stable (weekly cron; PR via `needs-5.1` or manual dispatch) |
7474
| Blender 4.5 LTS | Fallback supported (skills show both code paths where 4.x and 5.x APIs diverge) |
7575

76+
## Falsifiers
77+
78+
Every one of the 59 examples carries a **falsifier**: a flag that changes the
79+
input so a real assertion fails. It never disables the assertion, skips the
80+
check, or short-circuits to an error — it feeds the script something the
81+
contract says must not pass, and the same check that guards the happy path
82+
catches it.
83+
84+
```bash
85+
# The contract holds: exit 0
86+
blender --background --python examples/bmesh-gear/bmesh_gear.py --
87+
88+
# The falsifier: skip the extrude, so the topology no longer matches the
89+
# closed form. The topology check fires and the script exits 3.
90+
blender --background --python examples/bmesh-gear/bmesh_gear.py -- --no-extrude
91+
```
92+
93+
This is what makes a green run mean something. An assertion that has only
94+
ever passed witnesses nothing — it could be comparing a constant to itself.
95+
Proving each one fails once, on demand, is the difference between a test
96+
suite and a set of scripts that print "OK". Shipping an example requires
97+
demonstrating the falsifier's non-zero exit and reporting the measured error.
98+
99+
`--api`, `--check-pixels`, and `--output` are not falsifiers; they select a
100+
code path rather than break a contract. Full conventions, including the
101+
per-script exit-code model, are in
102+
[`CONTRIBUTING.md`](CONTRIBUTING.md#exit-codes).
103+
76104
## Showcase
77105

78106
Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](showcase/README.md).

0 commit comments

Comments
 (0)