Commit Graph

2 Commits

Author SHA1 Message Date
claude 530c3ff395 claim tests: band order, coverage, the Rome case (V-565)
TestCoverageBeatsBand is the V-558 failure as an ordering assertion. The
weather claim explains the whole utterance and the pending reminder explains
one token of it, so coverage settles it before the band is consulted.

TestBandOrder asserts the order rather than trusting the iota, and pins
BandUnknown at the bottom: a builder that forgot to set a band is a bug and
must not outrank a measured claim.
2026-08-06 00:54:43 +04:00
claude e031f8f5f5 a claim carries evidence, not a verdict (V-565)
internal/claim holds the common unit: who wants the turn, the intent, the
slots it would fill, the tokens it explains, the tokens it declines, and why
it should not win. Specificity reads Consumed against Unexplained and
negative constraint reads Veto, so neither needs a float.

Four ordinal bands where a number is unavoidable, argued from measurement in
docs/plans/19-dialogue-arbitration.md. Anchored, structural, nearest,
vetoed. Nearest is one band and not a scale because the classifier's cosine
measured flat against correctness.

MoreSpecificThan puts coverage first and the band second. That is the fix
for the failure V-558 opened with: a pending reminder ate the Rome weather
question while explaining none of it.

The package imports nothing from the rest of Maven. internal/dialogue must
not import internal/router, so Intent is a plain string.
2026-08-06 00:54:34 +04:00