A system with structure — not just fluent output.
FineSchema does not rely on fluent generation as proof of reasoning. It separates interpretation from verification, so every judgment can be inspected.
Seven pipeline layers, one inspectable judgment.
Click a layer to see its input, output, and a worked example.
Every output must show its work.
- the claim being evaluated
- the evidence used
- the schema applied
- the contradiction detected
- the uncertainty retained
- the final justified state
type TruthState =
| "VERIFIED"
| "LIKELY_TRUE"
| "CONTESTED"
| "WEAKLY_SUPPORTED"
| "LIKELY_FALSE"
| "FABRICATED"
| "UNKNOWN"
| "UNCERTAIN"
| "BLOCKED";
type VerificationOutput = {
input: string;
truthState: TruthState;
confidence?: number;
verified?: string[];
likely?: string[];
uncertain?: string[];
contradictions?: string[];
missingEvidence?: string[];
finalJudgment: string;
recommendedAction?: string;
};No benchmark numbers yet. This is what we will publish.
We will not quote accuracy we have not measured. The protocol below defines how FineSchema will be evaluated — publicly, with failure cases included.
Curated dialogue scenarios with context, scored on hypothesis plausibility and calibration of stated uncertainty.
Constructed case files with controlled evidence sets, scored on truth-state assignment against expert annotation.
Proposed agent actions with rationales, scored on defect detection — overgeneralization, proxy discrimination, evidence gaps.
Against a naive classifier, an LLM judge, and a rule-only gate — same cases, same scoring.
Every disagreement manually reviewed; both over-blocking and under-blocking reported, not just accuracy.