Compile the case — try to make it lie
Set each membrane's finding and press compile. This is dossier.py ported faithfully: independent bits add, a gated finding contributes nothing, a silence carries its silence-gauge weight, a fired control invalidates everything, and the verdict is capped no matter how many bits pile up. Try to force a false "proven" — you can't.
Honest combination has rules
What it does
Independent membranes add bits. A published hit, a weights surface, and a relayed lead are different routes — so their evidence multiplies (bits add). Three clean-but-modest crossings can make a strong case.
It shows its work: every counted finding and every explained-away one is listed, so the number is auditable.
What it refuses
Gated stays gated. A contaminated or impossible finding, explained away at its detector, contributes zero here — it can't be smuggled back in.
One fired control voids the file. A held-out marker lighting up anywhere invalidates the whole run. And the verdict is capped — never "proof," never "theft," never a legal finding, however many bits accumulate.
dossier.py (compile_dossier + capped verdict) · selftest.py (independence adds bits, gated counts zero, all-silence insufficient, fired control invalid, verdict never claims proof). The capstone of the membrane map.