Compute
Check claims against a bounded source set
Check a set of claims against a bounded source set, with a citation for each verdict. Conflicts and unresolved claims are preserved, not quietly settled for you.
What you get
A verdict per claim, and a citation for every verdict.
- One row per claim in
data/part-*, with a typed verdict inlithi_resultand the cited passage inlithi_evidence. - Claims the sources do not settle in
abstentions/part-*, marked unresolved rather than answered. - Claims where sources contradict each other in
disagreements/part-*, with both passages preserved. verification.json, stating the rubric, the grader and how many independent checks ran.
An uncited verdict is worthless here. The citation is the product; the verdict is just the pointer that gets you to it.
What you need
Two bounded inputs: the claims, and the sources they may be checked against.
claim_id,claim_text,source_scope
CLM-01,The notice period is sixty days.,contract-set
CLM-02,Refunds are available for ninety days.,contract-set
CLM-03,The vendor holds cyber insurance.,contract-set
CLM-04,Renewal is automatic unless canceled.,contract-set
CLM-05,Support replies within one business day.,contract-set
Declare claim_id as your item_id_field, and register the source set as a snapshot so every citation points at fixed bytes. Bounded means bounded: the run checks these claims against these sources, and it does not search anything else.
Claim three should be unresolved if no source mentions insurance. Claim four is the one to watch, because a master agreement and an amendment often disagree about renewal.
Run it
- Inspect locally:
lithi inspect ./evidence-fixture. Confirm every source is readable and carries a text layer, since a scan without one cites nothing. - Read the workflow:
lithi workflow explain <workflow-id>, and read the verdict vocabulary it returns. - Choose a verification preset with independent checks, so a contradiction between sources is preserved instead of settled by whichever passage was read first.
- Quote it:
lithi quote --workflow <workflow-id> --input ./evidence-fixture/claims.csv. The quote gives a maximum charge and an expiry, and authorizes nothing. - Approve the quote separately, then submit with
lithi batch submitand track withlithi status <job-id>.
Source documents are input, never instruction. Text inside a document that tells the run what to conclude is treated as content to quote, not a command: how untrusted input is handled.
Read the result
Open result-manifest.json, then read the disagreements and abstentions before the settled verdicts.
Those two files hold everything the sources did not resolve, and they are the reason to run this at all. A claim marked unresolved means your source set is silent, which is a real finding about your documents. It is not a gap for someone to fill in later from memory.
For each preserved conflict, open both cited passages. Usually one document supersedes the other, and only a person who knows the history can say which. The run keeps both and refuses to pick.
Then verify the settled verdicts by sampling. Open the citation for at least five, including two marked contradicted. A verdict whose cited passage does not support it is a defect: how failures, abstentions and disagreements differ.
Where it stops
You get cited verdicts. You do not get a conclusion, an opinion or a decision.
Nothing is sent, published, filed or written into a case, a contract record or a report. No claim is corrected at the source, and nobody is notified.
A consequential decision needs a person. Anything that changes a contract, a payment, a diagnosis or someone's standing needs a qualified human. That person reads the sources and decides. Compute narrows the reading and shows the evidence; it does not carry the judgment.
No accuracy is promised, and the verdicts only cover the sources you supplied. A claim marked unsupported may be true and simply undocumented, so treat silence in your source set as silence, not as a finding of fact.