The builder
Limits and pass/fail
A limit is an acceptance band attached to one measurement. It is what turns a table of numbers into a test with a verdict.
Without limits, a run gives you data and leaves the judgement to you. With limits, every reading is evaluated at the moment it is recorded, by the machine that took it, and the run ends with a verdict.
Where a limit lives
On the step, attached to the specific measurement it governs. Not on the report, and not in a document. That placement is the whole design: a limit on the step survives edits, reaches the generated code, and is evaluated by the runtime rather than by a human reading a spreadsheet afterwards.
Two ways to express one
A nominal value plus a band, as a percentage or as an absolute offset. This is how datasheets state most parameters.
- Nominal
- The value the reading should sit at, for example 3.3
- Tolerance
- Half-width of the band, for example 2
- Kind
- Percent or absolute
- Unit
- For display, for example V. Never used in the arithmetic.
3.3 V ±2% accepts 3.234 to 3.366. 3.3 V ±50 mV accepts 3.25 to 3.35.
A limit that tracks a set-point
The requirement that forced this feature: “the current must be within 5% of what the load is set to”.
A nominal can be a reference to a loop variable rather than a constant. Write it as ${iload} and the band is recomputed against that iteration's set-point at record time. A fixed number cannot express that requirement, so a limit that only accepted literals would be useless for exactly the sweeps people care most about.
Sweep the load 0 to 2 A in 250 mA steps and check the measured current is within 5% of the set-point at each step.
What a verdict can be
| Verdict | Meaning | Effect on the run |
|---|---|---|
| PASS | The reading is inside the band. | Recorded and carries on. |
| FAIL | The reading is outside the band. | Recorded and flagged. The run’s overall outcome cannot be a pass. |
| none | No usable limit was attached, or the limit could not be evaluated. | Recorded with no verdict. Not a pass. An unevaluable limit is an absent verdict, never a silent success. |
Limits and the Report
The Report can also carry limits, because a limit is intent and the agent is allowed to author intent. What it can never author is a measured value. There is no field in the report structure capable of holding one, which is why the agent cannot tell you a reading was 2.03 A when it was not.