Problem
Verbosity control is a core eval need: one-word answers slip through contains, rambling breaks UX budgets. No scorer covers length.
Pattern
Add src/scorers/word-count.ts (sibling: latency.ts budget + linear-falloff pattern); register + test as above. Takes minWords/maxWords (and/or chars); full credit inside, linear falloff outside, mirroring latency's curve.
Acceptance
New type word-count. ctx("Paris") with minWords: 5 scores <1/fails; a 50-word answer with minWords: 5, maxWords: 100 passes with 1.
Problem
Verbosity control is a core eval need: one-word answers slip through
contains, rambling breaks UX budgets. No scorer covers length.Pattern
Add
src/scorers/word-count.ts(sibling:latency.tsbudget + linear-falloff pattern); register + test as above. TakesminWords/maxWords(and/or chars); full credit inside, linear falloff outside, mirroring latency's curve.Acceptance
New type
word-count.ctx("Paris")withminWords: 5scores <1/fails; a 50-word answer withminWords: 5, maxWords: 100passes with 1.