Citation Grounding and Attribution
Every factual claim in a copilot answer links to a retrieved source or a twin run; unsourced assertions are flagged as defects.
No claim without a source
The grounding contract is simple and strict: every factual claim a copilot makes must attach to a source — a retrieved document chunk, a structured L2 record, or a specific twin/simulation run recorded in the reasoning trace. Claims that cannot be attributed are either dropped or explicitly labeled as unverified inference. This is enforced at compose time and audited by the evaluation harness.
Attribution mechanics
Retrieved items and simulation outputs carry provenance ids through the whole planning loop. When the copilot composes an answer, each sentence with a factual assertion is linked to the provenance id(s) that support it. A post-composition check verifies that every such sentence is covered; sentences that assert unsupported facts are rewritten, sourced, or removed.
compose_with_citations(trace):
answer = draft(trace)
for claim in factual_claims(answer):
src = match(claim, trace.provenance)
if src: annotate(claim, src)
elif is_inference(claim): label(claim, 'inference (unverified)')
else: drop_or_rewrite(claim)
assert coverage(answer) == 1.0 # no bare factual claim
return answer
Grounded vs inferred
| Has source | Is inference | Handling |
|---|---|---|
| 1 | 0 | state with citation |
| 1 | 1 | state, cite basis, mark inference |
| 0 | 1 | allow only if labeled 'unverified' |
| 0 | 0 | drop or rewrite |
The distinction between a grounded fact and a reasoned inference is made visible to the operator rather than blurred. A copilot may reason beyond its sources — that is useful — but it must say so, so the operator can weight it accordingly. Canonical numbers (Q_sci 3.076, 85.0 MW, 26.49 T plug) are always cited to the frozen design canon, never recalled from parametric memory, so they cannot drift.
Grounding is measured continuously: the grounding evaluation samples answers and checks that citations actually support their claims, catching both missing citations and citations that do not entail the claim. See audit and provenance for how citations persist for later review.