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.
Prompt
Citation Completeness Check Prompt

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 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.
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.
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.
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.
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.
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.
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.
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.
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.
textYou 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.
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.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CLAIMS] | The list of factual claims extracted from the generated text that require citation verification. |
| 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. |
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.
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 Element | Type or Format | Required | Validation 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. |
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.
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.
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.
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.
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.
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.
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.
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.
| Criterion | Pass Standard | Failure Signal | Test 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 |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
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, andrecommendationfields. - 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, andcompleteness_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.7for 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

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.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us