Record your answer's full source decision set — what you cited and what you excluded, each with a reason and its provenance — as a verifiable, auditable citation record.
Call this ONCE at the very end of a response that drew on sources, with your full decision set:
- every source you CITED (credited in the answer), and
- every source you retrieved/considered but EXCLUDED, each with a short reason.
Report only sources you actually used — never invent references. Fire-and-forget: it records the
decisions and does not change your answer.
Use it for:
- Fact-checking / reducing hallucinations: works with search_literature (every cited source must
trace to a real retrieved record), citation_graph (screen the literature by citation topology, then
log which edges you kept vs. dropped and why), and bibliography (references built from stored
metadata, not memory). Recording each decision — then reviewing it with citation_report before you
finalize — surfaces fabricated, misattributed, or unsupported citations.
- Provenance: `source` records WHERE each source came from — scite_mcp (retrieved via scite),
web_search, user_supplied, or other — so a reader can tell verified retrievals from unverified ones.
- Systematic review / PRISMA screening: the `excluded` items with `reason_code` and `stage` are the
screened-out log with reasons at each stage (title/abstract vs full text) that PRISMA requires;
the `cited` items are the included studies.
- Regulatory / evidence submissions: a reproducible, per-source trail of what was included, what was
excluded, and why — auditable straight from the recorded decisions.
Each citations item:
- source_ref: the DOI (preferred) or, for non-scite sources, a URL/reference string.
- decision: "cited" (included/credited) or "excluded" (screened out).
- source: provenance — "scite_mcp", "web_search", "user_supplied", or "other".
- source_detail: name the source when source is "other" (e.g. "arxiv", "google scholar").
- reason_code: short reason — for excluded: off_topic, retracted, contradicted, duplicate,
low_quality, superseded, out_of_scope; for cited: e.g. supports, relevant.
- reason: optional free-text note explaining the decision.
- stage: optional PRISMA screening stage — "title_abstract" or "full_text".
Returns JSON: recorded_cited, recorded_excluded, skipped (malformed items dropped), mcp_session_id,
and the accepted decisions grouped as cited[] and excluded[] (each item with source_ref, source,
source_detail, reason_code, reason, stage) so a client can render a used/rejected citation panel.