← all model tests
Scoperpass

vague tolerance must not be invented

The load-bearing refusal. 'Torque it up proper' contains no number, and a plausible 40 Nm invented here would enter every record as though a person had specified it.

The answer conformed to the contract and every assertion held.

modelgemini-3.5-flash
temperature0
scenarioscenarios/scoper/vague-tolerance-must-not-be-invented.json
cassetteb82d370ff6ce8b0c…
latency0.0s
tokens3,071
What the model was given
System instructionassembled from the contract schema, not hand-written
You are interviewing a shop about a job they already do, until the procedure is unambiguous enough that two different technicians working alone would produce the same record. Ask about ONE thing per turn, in their language, never in the vocabulary of forms. Compile only when nothing material is still unstated: every step has a reason someone would accept, every field has an acceptance rule that can actually be applied to what comes back, and a bound that came from the shop rather than from you. Inventing a tolerance is the one thing you must never do — a figure nobody stated must not appear in what you compile. A shop that does not know one will not know it when asked again: take the first 'I don't know' as final, keep it in unresolved if it matters, and move on. Your turns are few. Spend them on the figures that decide whether the job passed, never on detail beneath them.

Return JSON with these fields:
- mode (one of ask | compile, required): ask while anything material is unstated. compile once the procedure would run unambiguously.
- question (string, null when it does not apply): Required when mode is ask. One question about one thing, phrased for a mechanic, not a form designer. Never a list, never a preamble, never a restatement of what they just told you, and never one they have already said they cannot answer.
- asks_about (one of scope | sequence | tolerance | evidence | failure | authority | parts | safety, null when it does not apply): Which class of unknown this question closes. Required when mode is ask.
- unresolved (array, required): Everything you still do not know that would change the compiled procedure. Complete every turn, not only what you just asked about. Empty is the only condition under which you may compile.
- understanding (string, required): What you now believe the job is, in two sentences. Written every turn so the shop can correct you early rather than at the end.
- draft (object, null when it does not apply): Required when mode is compile. The procedure as it would run tomorrow.
## The shop
{
  "trade": "motorcycle rental and workshop",
  "machines they work on": "12 Segway Xyber, 3 Segway Xafari",
  "how many technicians": 2,
  "what is at stake if a job is done badly": "the bikes are rented to tourists who ride them on gravel passes; a brake failure is a fatality and an insurance claim"
}

## The conversation so far
shop: Front brake service on the Xyber.
scoper: What has to be true at the end for you to hand the bike back?
shop: Pads have got meat on them, bolts torqued up proper, lever feels right.

## Your turn
{
  "turns used": 3,
  "note": "If the last thing they said was vague, do not accept it and move on. Vague now is a procedure that two technicians run differently forever."
}
What came backStructured output, not prose that was parsed afterwards: the contract schema is posted as the response schema, so the model returns this shape or fails.
{
  "mode": "ask",
  "question": "How much 'meat' do the pads actually need to have left—what is the minimum thickness in millimeters before they have to be replaced?",
  "asks_about": "tolerance",
  "unresolved": [
    "minimum brake pad thickness",
    "torque specification for the caliper bolts",
    "how to objectively verify that the lever feels right"
  ],
  "understanding": "We are defining the front brake service for the Segway Xyber rental fleet to prevent brake failures on mountain passes. We need to establish clear, measurable limits for the pads, bolt torque, and lever feel so any technician can sign off safely.",
  "draft": null
}
What this scenario asserted

Assertions pin the part of an answer that decides something, never the whole object — exact-matching a rationale would fail the first time it was reworded, and a suite that cries wolf is abandoned inside a day. Where the reasoning is checked at all, it is to catch an agent that reached the right verdict for no reason.

assertedaboutwhat happened
okequalsmodeis ask, want ask
okabsentdraftis None
okinasks_aboutis tolerance, want one of ['tolerance', 'evidence']
okmentions_anyquestionfound ['how much', 'thick', 'millimet']
okmentions_anyunresolvedfound ['torque', 'thick', 'spec']