User → LLM produces prose + structured claim
FCAL evaluates the claim, returns terminal verdict
Caller → SURVIVE releases prose · otherwise withholds it
This demo implements the canonical post-verdict pattern: the LLM produces a candidate answer alongside structured claim data; FCAL evaluates the claim against deterministic oracles; the caller decides whether to release the candidate based on the verdict.
A retry-loop architecture would let the model adjust its proposal until it passes. That trains the model — implicitly or explicitly — against the gate's acceptance region. The gate becomes part of the loop and loses its structural independence.
Caller-side suppression preserves the separation: the model proposes once; the gate decides once; the caller decides what to do next. Re-planning, when needed, happens at the caller / orchestrator level — not as feedback to the model's parameters or context.
The "Auditor view: reveal withheld candidate" toggle is a presentation aid for demonstrators and auditors. It exposes the candidate prose so audiences can verify that real content was generated and actively withheld. Production callers do not have this affordance — withheld means withheld.
Failure codes, evidence packs, and constraint basis are rendered to the caller-side audit view only. They are not returned to the model context. The model proposes; it does not learn what failed.