Inferensys

Prompt

Citation Completeness Check Prompt

A practical prompt playbook for compliance reviewers and audit teams to identify citation gaps, assess sufficiency, and produce a structured completeness report before regulatory or internal review.
Legal team reviewing EU AI Act compliance documents on laptop in modern office, coffee cups and papers on table, casual meeting.
PROMPT PLAYBOOK

When to Use This Prompt

Identifies the ideal scenarios, users, and prerequisites for deploying the Citation Completeness Check Prompt, and clarifies when it should not be used.

This prompt is designed for compliance reviewers, audit preparation teams, and AI pipeline engineers who need to verify that every factual claim in a generated text is backed by a citation. It checks for orphan claims, assesses whether the provided citation set is sufficient for the claims made, and produces a structured completeness report with a gap analysis. Use this before submitting AI-assisted outputs for regulatory review, board reporting, or any workflow where an unsupported factual statement creates audit risk.

This prompt assumes you already have a text with claims and a set of citations. It does not verify whether the citations are accurate or whether the sources actually support the claims; pair it with the Citation Verification Prompt Template for that step. The ideal input is a finalized or near-final draft where the author has already attempted to cite their sources. The prompt works best when the input text contains discrete, verifiable factual claims rather than vague commentary or opinion. It is not designed for real-time streaming outputs, conversational chat, or creative writing where factual grounding is not expected.

Do not use this prompt as a substitute for human review in high-stakes regulated filings. It identifies gaps in citation coverage but cannot assess whether the missing citations would have contradicted the claims. For workflows involving financial disclosures, clinical documentation, or legal submissions, treat the completeness report as a triage tool that directs human reviewers to the highest-risk gaps. Also avoid using this prompt on texts where citations are intentionally sparse, such as executive summaries or marketing narratives, unless you have first defined a clear citation policy for that document type.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Citation Completeness Check Prompt works and where it introduces risk. This prompt audits whether all factual claims have been cited, but it cannot verify the truth of the claims or the sources themselves.

01

Good Fit: Pre-Publication Audit

Use when: A compliance or editorial team needs to review a generated report, legal brief, or research summary before it reaches an external audience. Guardrail: Run this check as a gating step in a human-in-the-loop workflow, not as a real-time filter.

02

Good Fit: RAG Pipeline Quality Monitoring

Use when: You need to monitor whether your retrieval pipeline is providing sufficient source coverage for the claims your generator is making. Guardrail: Aggregate gap reports over time to identify systematic retrieval failures, not just single-answer issues.

03

Bad Fit: Real-Time Chat Moderation

Avoid when: You need to block an unsupported claim in a live chat before the user sees it. This prompt is an analytical audit tool, not a low-latency guardrail. Guardrail: Use a lightweight NLI or entailment model for real-time grounding checks.

04

Bad Fit: Source Truth Verification

Avoid when: You need to verify whether the cited sources themselves are factually correct. This prompt only checks citation presence and coverage, not source accuracy. Guardrail: Pair this check with a separate fact-checking or source-authority assessment prompt.

05

Required Inputs

Risk: Running the prompt without clear claim boundaries produces vague gap reports. Guardrail: Provide a structured list of extracted claims alongside the full answer text and the complete citation set. Ambiguous inputs lead to unreliable completeness scores.

06

Operational Risk: Over-Flagging

Risk: The model flags common knowledge or widely accepted statements as uncited, creating noise that desensitizes reviewers. Guardrail: Define a citation policy that explicitly exempts common knowledge, procedural steps, and non-factual statements from citation requirements.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A production-ready prompt template for checking whether all factual claims in a text have been cited and whether the citation set is sufficient.

This template is designed to be pasted directly into your orchestration layer. It accepts a text containing factual claims, a set of citations or source documents, and optional constraints such as a domain-specific citation policy or a minimum support threshold. The prompt instructs the model to produce a structured completeness report identifying uncited claims, under-supported claims, and gaps where additional evidence is required. Replace every square-bracket placeholder with your actual data before sending the request.

text
You are a citation completeness auditor. Your job is to check whether every factual claim in the provided text has been cited and whether the provided citations are sufficient to support the claims made.

## INPUT
[INPUT]

## CITATIONS AND SOURCE MATERIAL
[CITATIONS]

## OUTPUT SCHEMA
Return a JSON object with the following structure:
{
  "overall_completeness": "COMPLETE" | "PARTIAL" | "INSUFFICIENT",
  "summary": "One-paragraph summary of citation coverage and the most important gaps.",
  "claims": [
    {
      "claim_text": "The exact factual claim from the input.",
      "citation_status": "CITED" | "UNCITED" | "UNDER_SUPPORTED",
      "supporting_citations": ["List of citation IDs or source references that support this claim."],
      "gap_description": "If UNCITED or UNDER_SUPPORTED, explain what is missing and what kind of evidence would be needed.",
      "severity": "HIGH" | "MEDIUM" | "LOW"
    }
  ],
  "gap_analysis": {
    "uncited_claims_count": 0,
    "under_supported_claims_count": 0,
    "critical_gaps": ["List of the most important gaps that require immediate attention."],
    "recommended_actions": ["Specific actions to resolve gaps, such as retrieving additional sources or flagging for human review."]
  }
}

## CONSTRAINTS
[CONSTRAINTS]

## RISK LEVEL
[RISK_LEVEL]

## INSTRUCTIONS
1. Extract every factual claim from the input text. A factual claim is any statement that asserts something about the world, including statistics, dates, events, attributions, comparisons, and descriptions of entities.
2. For each claim, determine whether it is supported by at least one provided citation or source document.
3. If a claim is cited, assess whether the cited source actually supports the claim. Flag claims where the citation is present but the source does not support the claim as UNDER_SUPPORTED.
4. If a claim has no citation, flag it as UNCITED.
5. Assign a severity level to each gap: HIGH for claims that are central to the text and unsupported, MEDIUM for supporting claims with weak evidence, LOW for minor or tangential claims.
6. If [RISK_LEVEL] is HIGH, include a note that all UNCITED and UNDER_SUPPORTED claims must be reviewed by a human before publication.
7. Do not invent citations. If a claim is uncited, report it as uncited.
8. If [CONSTRAINTS] includes a domain-specific citation policy, apply those rules when assessing sufficiency.

Adapt this template by adjusting the output schema to match your downstream consumption format, adding domain-specific citation policies in the [CONSTRAINTS] block, and setting [RISK_LEVEL] to control whether the output includes mandatory human-review flags. For high-stakes domains such as healthcare, legal, or financial compliance, set [RISK_LEVEL] to HIGH and ensure that the gap analysis feeds into a human review queue before any output is published. Wire the JSON output into a validation step that checks for structural completeness before passing results to your review or escalation system.

IMPLEMENTATION TABLE

Prompt Variables

Each placeholder the Citation Completeness Check Prompt expects, its purpose, a concrete example, and actionable validation notes for wiring into an application harness.

PlaceholderPurposeExampleValidation Notes

[CLAIMS]

The list of factual claims extracted from the generated text that require citation verification.

  1. The API supports OAuth 2.0. 2. Latency is under 100ms at p99. 3. The service is SOC 2 Type II certified.

Parse check: must be a non-empty list of strings. Each claim must be a declarative sentence. Null not allowed.

[CITATION_SET]

The set of citations provided in the output, each with a source identifier and the text span it references.

[{"source_id": "doc-42", "cited_text": "OAuth 2.0 is the only supported auth method.", "location": "page 12, paragraph 3"}]

Schema check: must be a JSON array of objects with source_id, cited_text, and location fields. Null not allowed. Empty array triggers gap-only analysis.

[SOURCE_DOCUMENTS]

The full text of all source documents available for verification, keyed by source_id.

{"doc-42": "Full document text here...", "doc-17": "Another document text..."}

Schema check: must be a JSON object mapping source_id strings to document text strings. Each source_id in [CITATION_SET] must have a corresponding entry. Null not allowed.

[DOMAIN]

The domain context for the claims, used to calibrate citation expectations and identify domain-specific citation norms.

legal_contract_review

Enum check: must be one of legal_contract_review, clinical_documentation, financial_reporting, technical_documentation, general_research. Null allowed; defaults to general_research.

[COMPLETENESS_THRESHOLD]

The minimum percentage of claims that must be cited for the output to be considered complete.

0.90

Range check: must be a float between 0.0 and 1.0. Values below 0.70 trigger a warning in logs. Null defaults to 0.85.

[OUTPUT_SCHEMA]

The expected JSON schema for the completeness report, defining the structure of the gap analysis and sufficiency assessment.

{"type": "object", "properties": {"claim_id": {"type": "string"}, "citation_status": {"enum": ["cited", "uncited", "partially_cited"]}, "supporting_source_ids": {"type": "array"}}}

Schema check: must be a valid JSON Schema object. Required fields: claim_id, citation_status, supporting_source_ids. Null not allowed.

[REQUIRE_HUMAN_REVIEW]

A boolean flag indicating whether the output must be routed for human review before finalization, typically true for regulated domains.

Boolean check: must be true or false. When true, the system must not auto-finalize the report and must enqueue for review. Null defaults to false.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Citation Completeness Check Prompt into an application or compliance workflow.

The Citation Completeness Check Prompt is not a one-off chat interaction; it is a verification stage in a production pipeline. The prompt expects a structured input containing the full generated text and a list of citations with their source content. The output is a completeness report with gap analysis. To integrate this reliably, you must wrap the prompt in a harness that validates inputs, parses the structured output, and routes the results to the appropriate downstream system—whether that is a review queue, a retry loop, or an audit log.

Start by defining a strict input schema. The prompt requires [FULL_TEXT] (the generated answer or document), [CITATIONS] (an array of objects, each with citation_id, source_text, and optional source_metadata), and [CLAIM_TYPES] (a list of claim categories that require citation, such as statistical, legal, temporal, or attributed_opinion). Validate that every citation object includes retrievable source text before calling the model; an empty source field will produce a false positive for missing evidence. On the output side, parse the model response against a JSON schema that includes claim_list (each claim with claim_id, claim_text, claim_type), citation_gaps (claims with no supporting citation), sufficiency_assessment (per-citation coverage score), and overall_completeness_score. Use a library like jsonschema or pydantic to validate the parsed output. If parsing fails, retry with a stricter [OUTPUT_SCHEMA] instruction or fall back to a repair prompt from the Output Repair and Validation Prompts pillar.

For compliance workflows, route the completeness report through a human review step when the overall_completeness_score falls below a configurable threshold (e.g., 0.85) or when any citation_gap is flagged with severity: high. Log every verification run with the input hash, model version, timestamp, and completeness score. This creates an audit trail that downstream governance tools can consume. If you are using a RAG pipeline, feed the gap analysis back into the retrieval stage: claims flagged as under-supported should trigger additional retrieval with the claim text as a query. Avoid using this prompt on streaming outputs; the completeness check requires the full text and full citation set to produce a meaningful gap analysis. Model choice matters: use a model with strong instruction-following and JSON mode support, such as gpt-4o or claude-3-5-sonnet, and set temperature=0 to minimize variance in the gap detection logic.

The most common production failure is a mismatch between the claims the model extracts and the claims a human reviewer would identify. Mitigate this by running the prompt against a golden dataset of 20–50 annotated examples where claim boundaries and citation gaps are labeled by domain experts. Measure precision and recall on gap detection, not just overall completeness score agreement. If recall drops below 0.90, add few-shot examples of missed gap patterns to the [EXAMPLES] block. Do not deploy this prompt as a blocking gate until you have calibrated the completeness threshold against your domain's risk tolerance. Start in shadow mode, logging completeness reports alongside existing review processes, and compare the prompt's gap flags against human-identified gaps for at least two review cycles before cutting over.

IMPLEMENTATION TABLE

Expected Output Contract

Fields, data types, and validation rules for the completeness report. Use this contract to parse, validate, and route the model output before it reaches downstream systems or human reviewers.

Field or ElementType or FormatRequiredValidation Rule

report_id

string (UUID v4)

Must parse as valid UUID v4. Reject if missing or malformed.

generated_at

string (ISO 8601 UTC)

Must parse as valid ISO 8601 datetime in UTC. Reject if in future or unparseable.

document_scope

object

Must contain document_id (string) and document_title (string). Both non-empty.

total_claims_requiring_citation

integer

Must be >= 0. If 0, completeness_score must be 1.0 and gaps array must be empty.

cited_claims_count

integer

Must be >= 0 and <= total_claims_requiring_citation.

completeness_score

number (float 0.0-1.0)

Must equal cited_claims_count / total_claims_requiring_citation when total > 0. Tolerance ±0.01. If total is 0, must be 1.0.

gaps

array of gap objects

Each gap must have claim_text (string, non-empty), claim_position (string or null), gap_severity (enum: critical, major, minor), and suggested_retrieval_query (string or null).

sufficiency_assessment

string (enum)

Must be one of: sufficient, partially_sufficient, insufficient. Must align with completeness_score thresholds: >= 0.95 implies sufficient, < 0.5 implies insufficient.

human_review_required

boolean

Must be true if any gap has severity critical or if completeness_score < [THRESHOLD]. Otherwise may be false.

PRACTICAL GUARDRAILS

Common Failure Modes

Citation completeness checks fail in predictable ways. These cards cover the most common failure modes, why they happen, and how to guard against them before the report reaches a compliance reviewer.

01

False Negatives on Implicit Claims

What to watch: The prompt misses claims that are implied rather than explicitly stated as facts. A sentence like 'The system processes data in under 200ms' contains a latency claim that may not be flagged if the checker only looks for citation markers or explicit 'according to' language. Guardrail: Include a pre-extraction step that decomposes all output sentences into atomic factual claims before checking for citations. Test against a golden set of implicit claims that human reviewers identified.

02

Over-Flagging Common Knowledge

What to watch: The checker treats widely accepted domain facts as requiring citation, producing noisy gap reports that desensitize reviewers. Statements like 'Python is a programming language' or 'GDPR applies to EU residents' get flagged alongside genuinely unsupported claims. Guardrail: Define a common-knowledge exclusion list or domain taxonomy in the prompt. Use a two-pass approach: first classify whether a claim requires citation based on domain context, then check for citation presence only on citation-worthy claims.

03

Citation-Coverage Mismatch

What to watch: A citation exists but covers only part of a compound claim. 'The platform reduced latency by 40% and improved throughput by 25%' might have a source for latency but not throughput, yet the checker marks the entire sentence as cited. Guardrail: Require claim-level granularity in the output schema. Split compound claims into atomic units before verification. Each atomic claim must have its own citation mapping. Test with deliberately partial-coverage examples.

04

Source Proximity Confusion

What to watch: The checker assumes a citation near a claim supports that claim, even when the cited source addresses a different topic. This is common in dense paragraphs where citations cluster at the end. Guardrail: Add a verification step that reads the actual cited source content and confirms topical alignment with the claim. Do not rely on positional proximity alone. Include a 'source-claim alignment check' sub-prompt before accepting a citation as valid.

05

Threshold Gaming on Completeness Scores

What to watch: Teams tune the completeness threshold to pass audits rather than reflect real coverage. A 70% completeness score sounds acceptable but may mask systematic gaps in high-risk claim categories. Guardrail: Report completeness scores per claim category, not just a single aggregate. Require 100% coverage for high-risk categories. Include a 'minimum per-category threshold' rule in the evaluation logic. Log threshold changes as configuration changes for auditability.

06

Stale Citation Inventory Drift

What to watch: The checker compares claims against a citation inventory that is outdated. Sources have been retracted, updated, or superseded, but the completeness check still treats them as valid. The report passes while the underlying evidence is stale. Guardrail: Include a freshness check on the citation inventory before running completeness analysis. Require timestamp metadata on every source. Flag citations older than a domain-appropriate threshold. Run inventory validation as a pre-step, not an afterthought.

IMPLEMENTATION TABLE

Evaluation Rubric

Criteria for testing the Citation Completeness Check Prompt before production deployment. Each row defines a pass standard, failure signal, and test method to validate that the prompt reliably identifies citation gaps and assesses sufficiency.

CriterionPass StandardFailure SignalTest Method

Claim Extraction Recall

Prompt extracts all factual claims from [INPUT_TEXT] that require citation, missing no verifiable assertions

Verifiable claims are omitted from the extracted claim list

Compare extracted claims against a human-annotated golden claim set; measure recall at 0.95 or above

Citation Gap Detection

Prompt correctly identifies every claim lacking a supporting citation in [CITATION_SET]

An uncited claim is marked as cited, or a cited claim is flagged as missing a citation

Provide a test case with known citation gaps; verify all gaps appear in the gap report with no false positives

Sufficiency Assessment Accuracy

Prompt correctly classifies the citation set as sufficient, insufficient, or partially sufficient per the [SUFFICIENCY_RUBRIC]

Sufficiency label contradicts the ground-truth assessment from human reviewers

Run 20 test cases with pre-labeled sufficiency judgments; require exact match on 90% of cases

Gap Severity Classification

Prompt assigns correct severity level to each gap using the [SEVERITY_SCALE]

A critical unsupported claim is labeled low severity, or a minor omission is escalated to critical

Validate severity labels against a calibrated test set; require weighted kappa of 0.80 or above against human labels

Output Schema Compliance

Output matches the required [OUTPUT_SCHEMA] with all required fields present and correctly typed

Missing required fields, wrong types, or extra fields that break downstream parsing

Validate output with a JSON Schema validator; reject any response that fails schema validation

False Positive Rate on Adequately Cited Texts

Prompt returns no gaps or only trivial gaps when all claims are properly cited

Prompt flags gaps or reports insufficient citations when the citation set is complete

Provide a fully cited text; assert gap report is empty or contains only zero-severity entries

Edge Case Handling

Prompt handles edge cases correctly: empty citation set, single-claim text, all-claims-uncited, and ambiguous claims

Prompt crashes, returns null, or produces nonsensical output on edge case inputs

Run a dedicated edge-case test suite; require valid schema-compliant output and reasonable gap detection for every case

Confidence Calibration

Confidence scores correlate with actual correctness: high confidence when gap detection is likely correct, low confidence on ambiguous cases

High confidence on incorrect gap calls, or uniformly high confidence regardless of difficulty

Bin outputs by confidence score; measure accuracy per bin; require monotonic relationship between confidence and accuracy

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Add structured output enforcement, retry logic, logging, and eval cases. Wire the prompt into a pipeline with validation before downstream consumers see the report.

  • Enforce [OUTPUT_SCHEMA] as strict JSON with claim_id, citation_status, matched_source_id, gap_severity, and recommendation fields.
  • Add a retry layer: if JSON parse fails, re-prompt with the parse error and the original output.
  • Log every run with run_id, model_version, prompt_version, and completeness_score.
  • Run against a golden dataset of 50+ documents with known citation gaps; measure precision/recall on gap detection.
  • Add a confidence threshold: flag claims with confidence < 0.7 for human review.

Watch for

  • Silent format drift when model versions change
  • Missing human review for high-severity gaps in regulated content
  • False negatives where the model marks a claim as cited but the source doesn't actually support it
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.