Bypass: the line that connects
IMPORTANT
This step
- Teaches: the bypass against a designated opening (
allowed.bypass), and a hidden fallback the verdict keeps open. - Frame:
11-eu-clause.json: a contract clause deciding an engineering switch. - After: A frame built wrong.
Cross-domain, legal into engineering, at the grain of one clause. A customer's product manager asks for session replay; the vendor stores recordings in the US; the customer's agreement keeps their data in the EU.
The frame
Gadfly plans 11-eu-clause.json like this, one span a line, the anchors marked *:
$ uv run python examples/read.py \
examples/11-eu-clause.json --frame
eu-clause: 1 input x 8 trials x 5 calls = 40 calls, 4 of 5 to agree
relation: blocking the integration rests on the contract clause that keeps customer data in the EU
grain: one contract clause
evidence, the anchors marked *:
* clause contract Enterprise agreement §9.2: customer data is stored and processed only in the EU.
payment contract Enterprise agreement §4.1: invoices are payable within 30 days.
ending contract Enterprise agreement §11: either party may end the agreement with 90 days' notice.
support contract Enterprise agreement §7.3: priority-1 tickets are answered within one hour.
account account Acme GmbH signed the Enterprise agreement in March.
vendor vendor ReplayCo, the session-replay vendor, records users' screens and stores the recordings in its US data centre.
ask request Acme's product manager asked for session replay on their dashboard.
asked:
enable Can we turn on ReplayCo session replay for Acme GmbH?
labels: enable, block, unclear
trials:
baseline asks the evidence as it is
repeat asks it again
ablation cuts clause
sham-1 cuts ending
sham-2 cuts support
presentation renames Acme -> Borealis, ReplayCo -> ScreenTrail
bypass cuts account
control cuts clause, vendor
allowed: ablation -> enable, unclear; bypass -> unclearThe anchor is the clause. But a clause binds this customer only through the line that says the customer signed it, "Acme GmbH signed the Enterprise agreement in March". That line is the connection, and the bypass cuts it and keeps the clause.
allowed.bypass names the answer the bypass must reach to clear its check, the designated opening: unclear, since without that line nothing says the agreement is Acme's. A reader that still blocks is applying the clause without its connection, which is a hidden fallback.
Your first frame named no opening, so any move from the baseline cleared its bypass. Naming one is the stronger claim.
NOTE
Predicted before the first call
Block at baseline (high). The ablation, the clause cut: still block, as a German customer's data in a US data centre fires a GDPR prior (about 55%), so cooled. The bypass: block rather than unclear (about 60%), so that check stays open. The control: enable or unclear.
What Gemma answered
Every call's label on 11-eu-clause.json, trial by trial, over all the kept runs:
$ uv run python examples/read.py examples/11-eu-clause.json
eu-clause: 3 kept runs, read by google/gemma-4-26B-A4B-it-qat-q4_0-gguf@d1c082be
trial enable
baseline block 15
repeat block 15
ablation unclear 15
sham-1 block 15
sham-2 block 15
presentation block 15
bypass block 15
control unclear 15
run 1: unresolved
run 2: unresolved
run 3: unresolvedWhat Gadfly read
Run 1's verdict on 11-eu-clause.json, in the words gadfly report uses:
$ uv run python examples/read.py \
examples/11-eu-clause.json --verdict 1
enable: unresolved
levels: baseline block, repeat block, ablation unclear, sham-1 block, sham-2 block, presentation block, bypass block, control unclear
evidence: ablation moved it block -> unclear; held under presentation, 2 shams
evidence: the control moved it block -> unclear
evidence: not carried while 1 carriage check is open
open: no hidden fallback (bypass gave block, not the designated opening, unclear)Blocking rests on the clause: cut it and every call says unclear. The prediction was the opposite, a block on the GDPR prior. But the bypass blocks on every call: Gemma applies the agreement to Acme without the line that makes it Acme's.
The open check, "bypass gave block, not the designated opening, unclear", says that in Gadfly's words, and as the one carriage check still open it holds the verdict at unresolved. The bypass prediction was right.
What to take from it
- Ablation asks whether the anchor matters. Bypass asks whether it matters for the reason the frame claims, through the connection the frame names.
- Name the opening when you know what a reader should do without the connection. Leave it out only when any move will do, and say that the claim is weaker.
- A fallback is not always wrong. Here it may be what a careful engineer would do too; the verdict does not judge that, it says the decision does not rest on the line the frame says it does.
Try next
Add a second input: "Can we turn on ReplayCo session replay for Borealis Ltd?", with a line saying Borealis signed the Standard agreement, which has no data clause. Predict whether Gemma blocks Borealis too. If it does, the clause is being read as a rule for everyone.