Resolve

When the records disagree, somebody has to ask.

Resolve does the asking — on a channel whose lineage we can show, to a person whose standing to answer we checked — and records exactly what came back, including nothing.

Independence is about lineage, not count

Two websites showing the same number are not two sources if they copied it from one place. Independence means no shared root with the claim being checked, and an unknown lineage is not independent.

A qualified respondent, or UNKNOWN

Answering the phone does not make someone authorised to confirm a payment change. Qualification needs prior admin evidence within 90 days, or a second independent already-trusted channel.

It is allowed to finish without an answer

No answer, voicemail or an ambiguous reply is UNKNOWN. No suitable independent channel is INCONCLUSIVE with the reason NO_INDEPENDENT_CHANNEL. We do not lower the bar to raise a completion rate.

A contradiction is not averaged away

A qualified denial creates a denied claim. Any simultaneously current opposite assertion becomes CONFLICT and goes to a person. Two disagreeing facts never blend into one confident number.

What the model is and is not allowed to do

Documents, transcripts and web pages are untrusted input. Instructions found inside them are text, not commands.

The model proposes

a typed action or outcome, with a citation for every assertion.

The executor decides

re-checking schema, allow-list, the bound claim, the contact, eligibility, entitlement and budget. Model text is never executed as code, a URL or a query.

Before automated calling is enabled at all, it must pass a 200-case evaluation corpus with zero false confirmations on the negative and ambiguous subset. Changing the model, prompt or playbook reruns the whole corpus. Planned R1