// Compact verifier flow for the 2-pager appendix.
// External-facing labels — no internal vocabulary.
// Render: dot -Tsvg pager-verifier-flow.dot -o pager-verifier-flow.svg

digraph verifier_flow {
    rankdir=LR
    ranksep=0.35
    nodesep=0.25
    node [shape=box, style="rounded,filled", fontname="Helvetica", fontsize=12]
    edge [fontname="Helvetica", fontsize=11]
    bgcolor="white"

    question  [label="Question", fillcolor="#fff7e6", shape=note]
    retrieval [label="Retrieve\ncandidate source chunks", fillcolor="#e9f3ff"]
    pointers  [label="Labelled chunks\nE1 → text\nE2 → text\n…", fillcolor="#dff5e7", shape=note]
    model     [label="Language model\nsees: question + labelled chunks\nemits: prose tagged [E1] [E2]\n(never types the quote text)", fillcolor="#f0e6ff"]
    verifier  [label="Verifier\nfour mechanical strategies,\nno model in the loop", fillcolor="#fff3d6"]

    label_grounded    [label="grounded\nevery claim verifies", fillcolor="#28a745", fontcolor="white"]
    label_partial     [label="partly grounded\nsome verify, some don't", fillcolor="#ffc107"]
    label_ungrounded  [label="ungrounded\nnone verify", fillcolor="#dc3545", fontcolor="white"]

    audit [label="Audit chain\n+ answer cache\n(reproducible, replayable)", fillcolor="#fde7e9", shape=note]

    question -> retrieval -> pointers
    pointers -> model
    model -> verifier [label="answer with [E1] [E2] tags"]
    verifier -> label_grounded
    verifier -> label_partial
    verifier -> label_ungrounded
    label_grounded   -> audit [style=dashed, color="#888888"]
    label_partial    -> audit [style=dashed, color="#888888"]
    label_ungrounded -> audit [style=dashed, color="#888888"]

    {rank=same; label_grounded; label_partial; label_ungrounded}
}
