A guard that can raise a score is not really a guard. It is a second scorer wearing a disguise.
In proseprobe, our open-source project, we have a non-native English guard. Its job is narrow: it reports how far the score should be trusted, not whether the text is good. We enforce that distinction in the wiring, not in a comment.
The guard splits the text into words and sentences, then walks a fixed tuple of signal rows. Every row carries a threshold, a saturation point, a weight, and minimum word and sentence counts.
That minimum is the part most teams skip. A signal whose text is too short does not get measured and scored as zero: it gets deferred by name, with a note saying the text is shorter than the signal needs. An unmeasurable signal should leave a trace instead of a number.
The signals that do run become readings, and their strength is a clamped ramp from threshold to saturation. Quotes attach as evidence only when strength sits above zero, so you never see a highlighted phrase that contributed nothing. The weighted sum over total weight lands on a caution band: none, slight, substantial, severe.
Then calibration consumes that one number in exactly one direction. Damping is one minus the guard's strength. It multiplies the mean evidence, scales every contribution's logit shift, and widens the interval. The point value gets pulled toward the 0.5 prior and the interval grows. Nothing in that path can push a score up.
The default matters too. Score a set of features without a guard and it falls back to an explicit unexamined value: strength zero, with a note stating the guard did not run. Absent and clean are not the same thing.
The general rule we keep returning to is that confidence modifiers should probably be monotonic. If a trust input can both tighten and loosen a verdict, you can no longer say which component produced the answer.
We are still working out where the line sits between a signal that scores and a signal that only moderates.