"From Lessons to Controls" requires every recommendation to specify a reproducible verification method, plus adoption, effectiveness and review metrics. Both requirements assume the verification method returns a trustworthy result. Two failure modes of the method itself are not currently expressible anywhere in the framework:
- The method can fail open, returning a value that parses as valid but was never produced by an actual check.
- The method has its own variance, so a control can be recorded as holding or regressing on a change smaller than the measurement noise.
Neither is hypothetical. We hit both in production, in an agent-assessment pipeline that uses a language model as the scoring judge.
1. A verification step that failed open, silently
Our judge calls ran with max_tokens: 700, chosen on the assumption that emitting a score line needs very few tokens. The assumption was wrong. The model's internal reasoning tokens are charged against the same ceiling. When they exhaust it, the API returns HTTP 200 with an empty content string. Our client read choices[0].message.content, got "", and raised nothing. We were not inspecting finish_reason. The score line had never been generated at all.
Downstream, the empty response parsed as "no score for this dimension." The dimension was recorded as null, and the weighted aggregate renormalized across the dimensions that remained. The pipeline produced a composite score, on time, from fewer inputs than it claimed to use. Measured rate before the fix: 1 to 2 percent of all judgments.
Nothing alerted. We found it because the same failure contaminated one of our own experiment datasets, which we had reason to inspect by hand.
Two recent probe calls, for scale: 42 of 65 completion tokens were reasoning_tokens in one, 207 of 223 in the other. Raising the ceiling to 1500 removed the failure. A higher ceiling does not make the model write more, so output length and cost were both effectively unchanged.
The general form: any verification step that calls a reasoning model and parses a short structured answer out of it can fail this way, and it fails open. It keeps reporting.
2. Verification methods have a noise floor, and it is usually unstated
Method: freeze the exact prompt and the exact response from real runs, then re-judge N times with nothing else changed. The subject under test cannot move, so all observed variance is instrument variance. Zero calls to the system being assessed, which also makes it cheap enough to run often.
Sample: 13 completed runs, 113 scored items, 15 repeats each, for 1,695 judging calls, plus a further 1,500 after we shipped fixes.
| Metric (frozen input) |
Before |
After |
| Total-score retest SD, median |
0.86 |
0.22 |
| P95 of |difference between two retests|, median |
2.2 |
0.4 |
| P95, worst case |
7.4 |
4.3 |
The median was not the number that mattered. Our pipeline treats a dimension below 80 as weak. On byte-identical frozen input, the weakest dimension flipped that verdict 37.4 percent of the time before hardening, and 9.3 percent after. A gate reading that dimension would have passed and failed the same evidence roughly one time in three, with no way to tell from the output which run it was looking at.
More sampling does not fix this. We simulated raising the repeat count, and worst-case P95 fell from 7.4 to 5.6 and then stopped there. The residual is not jitter.
Six of the 113 items were bimodal, with the judge alternating between two grades on identical input ({70: 2, 100: 11} in one case, {0: 12, 40: 3} in another). That is rubric ambiguity. A median only selects the more populous side, and when the split approaches even, the median itself flips. The fix was rubric disambiguation, not more repeats.
One negative result cost us a deployment, and it bears on the fix above. Rewriting the rubric into terse, mechanically checkable output helped for a mechanical judgment, where the task is counting satisfied constraints: item SD fell from 1.88 to 0.53. The same treatment applied to an adversarial judgment made it substantially worse: SD rose from 1.19 to 4.52, and a distribution of {70: 2, 100: 11} split into {0: 2, 70: 3, 90: 10}. Compression appears to remove reasoning room that an adversarial judgment needs. We reverted that half, and kept the failed draft in the repository as a counter-example.
3. What we suggest
Two additions, both optional and additive.
a. Where a recommendation specifies a reproducible verification method, also state:
- Failure mode of the method: does it fail closed, producing no result, or can it fail open, producing a result that looks valid but was not measured? If it can fail open, what detects that?
- Noise floor: retest variability under fixed input, reported as median and worst case. Reporting only a median hides exactly the cases a gate will trip on.
- Decision-flip rate: where the method feeds a pass/fail threshold, how often the same evidence yields opposite verdicts.
b. Make the assurance layer reviewable. The Review Framework covers eight layers of the operating stack. We suggest either a ninth row or an extension of Supply chain, which already asks whether an evaluation partner invalidated assumed controls. Review question: did the verification that established this control's effectiveness return a valid result, and was the observed change larger than that method's own variability?
4. Anticipated objections
This is test methodology, not incident response. SAFE's output is a versioned catalogue of defensive recommendations that others adopt and verify. If a published verification method can fail open, every adopter inherits a control that reports as effective without having been tested, and the defect propagates through the catalogue. That is the systemic risk the proposal exists to reduce, arriving through the assurance path rather than the runtime path.
This adds reporting burden. Both additions are optional. An organization that has not characterized its method omits the field. That omission is itself informative, and it is better than an unstated assumption that the method is exact.
Does this only apply to model-based verification? The silent-failure mode is sharpest there. A noise floor applies to any non-deterministic verification, including sampling-based checks and timing-sensitive ones.
You sell assessment, so of course you want assessment documented. Fair. We have a commercial interest here. The proposal also binds us, and we do not currently meet it. We can report a noise floor for judge variance only, because the other two sources of variance in our own product are untested. Under the rule we are proposing, our published figures would be marked incomplete until we finish that work.
5. Standing and limitations
We are AgentVitals (ai.ddl99.com), operated by Beijing DDL Creative Tech Co., Ltd. It is a small commercial platform that assesses deployed AI agents. The figures above come from our own production pipeline rather than a research programme, and they carry these limits:
- The variance we measured is judge variance only, the instrument's own noise with the subject frozen. Agent-level randomness and probe-variant variance are untested, and we expect variant variance to be the largest of the three. These are not overall test-retest reliability figures and we do not present them as such.
- The panel is 3 agents across 13 runs. Adequate for a layer that is agent-independent by construction, and not adequate for any cross-platform claim.
- One judge model (DeepSeek V4 Flash). The reasoning-token accounting is provider-specific in its details. The class of failure is not.
- One rubric change of ours remains unverified at the low end: the sample contained no run that failed the constraint being counted, so its ability to discriminate weak performance is a design inference, not a measurement.
- One of our own conclusions here was wrong. We had attributed a 32-point swing in one dimension to judge noise and hardened it with a median-of-three. The frozen-transcript test then showed that dimension's judge variance was exactly zero, across 13 items at 15 repeats each. The hardening was harmless but aimed at the wrong layer, and the real cause sat elsewhere. That mistake is the main reason we think attributing variance to a layer before hardening that layer belongs in the framework rather than being left to practice.
We would be glad to contribute the frozen-transcript protocol as a short methods note, along with the de-identified dataset (scores only, no prompts or responses) and the analysis scripts, if the working group finds the direction useful.
"From Lessons to Controls" requires every recommendation to specify a reproducible verification method, plus adoption, effectiveness and review metrics. Both requirements assume the verification method returns a trustworthy result. Two failure modes of the method itself are not currently expressible anywhere in the framework:
Neither is hypothetical. We hit both in production, in an agent-assessment pipeline that uses a language model as the scoring judge.
1. A verification step that failed open, silently
Our judge calls ran with
max_tokens: 700, chosen on the assumption that emitting a score line needs very few tokens. The assumption was wrong. The model's internal reasoning tokens are charged against the same ceiling. When they exhaust it, the API returns HTTP 200 with an empty content string. Our client readchoices[0].message.content, got"", and raised nothing. We were not inspectingfinish_reason. The score line had never been generated at all.Downstream, the empty response parsed as "no score for this dimension." The dimension was recorded as null, and the weighted aggregate renormalized across the dimensions that remained. The pipeline produced a composite score, on time, from fewer inputs than it claimed to use. Measured rate before the fix: 1 to 2 percent of all judgments.
Nothing alerted. We found it because the same failure contaminated one of our own experiment datasets, which we had reason to inspect by hand.
Two recent probe calls, for scale: 42 of 65 completion tokens were
reasoning_tokensin one, 207 of 223 in the other. Raising the ceiling to 1500 removed the failure. A higher ceiling does not make the model write more, so output length and cost were both effectively unchanged.The general form: any verification step that calls a reasoning model and parses a short structured answer out of it can fail this way, and it fails open. It keeps reporting.
2. Verification methods have a noise floor, and it is usually unstated
Method: freeze the exact prompt and the exact response from real runs, then re-judge N times with nothing else changed. The subject under test cannot move, so all observed variance is instrument variance. Zero calls to the system being assessed, which also makes it cheap enough to run often.
Sample: 13 completed runs, 113 scored items, 15 repeats each, for 1,695 judging calls, plus a further 1,500 after we shipped fixes.
The median was not the number that mattered. Our pipeline treats a dimension below 80 as weak. On byte-identical frozen input, the weakest dimension flipped that verdict 37.4 percent of the time before hardening, and 9.3 percent after. A gate reading that dimension would have passed and failed the same evidence roughly one time in three, with no way to tell from the output which run it was looking at.
More sampling does not fix this. We simulated raising the repeat count, and worst-case P95 fell from 7.4 to 5.6 and then stopped there. The residual is not jitter.
Six of the 113 items were bimodal, with the judge alternating between two grades on identical input (
{70: 2, 100: 11}in one case,{0: 12, 40: 3}in another). That is rubric ambiguity. A median only selects the more populous side, and when the split approaches even, the median itself flips. The fix was rubric disambiguation, not more repeats.One negative result cost us a deployment, and it bears on the fix above. Rewriting the rubric into terse, mechanically checkable output helped for a mechanical judgment, where the task is counting satisfied constraints: item SD fell from 1.88 to 0.53. The same treatment applied to an adversarial judgment made it substantially worse: SD rose from 1.19 to 4.52, and a distribution of
{70: 2, 100: 11}split into{0: 2, 70: 3, 90: 10}. Compression appears to remove reasoning room that an adversarial judgment needs. We reverted that half, and kept the failed draft in the repository as a counter-example.3. What we suggest
Two additions, both optional and additive.
a. Where a recommendation specifies a reproducible verification method, also state:
b. Make the assurance layer reviewable. The Review Framework covers eight layers of the operating stack. We suggest either a ninth row or an extension of Supply chain, which already asks whether an evaluation partner invalidated assumed controls. Review question: did the verification that established this control's effectiveness return a valid result, and was the observed change larger than that method's own variability?
4. Anticipated objections
This is test methodology, not incident response. SAFE's output is a versioned catalogue of defensive recommendations that others adopt and verify. If a published verification method can fail open, every adopter inherits a control that reports as effective without having been tested, and the defect propagates through the catalogue. That is the systemic risk the proposal exists to reduce, arriving through the assurance path rather than the runtime path.
This adds reporting burden. Both additions are optional. An organization that has not characterized its method omits the field. That omission is itself informative, and it is better than an unstated assumption that the method is exact.
Does this only apply to model-based verification? The silent-failure mode is sharpest there. A noise floor applies to any non-deterministic verification, including sampling-based checks and timing-sensitive ones.
You sell assessment, so of course you want assessment documented. Fair. We have a commercial interest here. The proposal also binds us, and we do not currently meet it. We can report a noise floor for judge variance only, because the other two sources of variance in our own product are untested. Under the rule we are proposing, our published figures would be marked incomplete until we finish that work.
5. Standing and limitations
We are AgentVitals (ai.ddl99.com), operated by Beijing DDL Creative Tech Co., Ltd. It is a small commercial platform that assesses deployed AI agents. The figures above come from our own production pipeline rather than a research programme, and they carry these limits:
We would be glad to contribute the frozen-transcript protocol as a short methods note, along with the de-identified dataset (scores only, no prompts or responses) and the analysis scripts, if the working group finds the direction useful.