Inferensys

Prompt

Journalism Source Attribution Verification Prompt Template

A practical prompt playbook for using Journalism Source Attribution Verification Prompt Template in production AI workflows.
Developer doing prompt engineering on laptop, prompt variations visible on screen, casual coding session.
PROMPT PLAYBOOK

When to Use This Prompt

Defines the precise job-to-be-done, required inputs, and operational boundaries for the journalism source attribution verification prompt.

This prompt is designed for newsroom fact-checking desks and editorial verification teams that need to evaluate whether claims attributed to sources in a news article match the original source material. The core job-to-be-done is detecting quote distortion, context-stripping, paraphrasing that changes meaning, and gaps in anonymous source credibility. Use this prompt when you have both the published article text and the original source transcript, document, or recording available for comparison. The prompt assumes you have already retrieved or uploaded the relevant source evidence—it does not perform retrieval itself.

The ideal workflow places this prompt after evidence gathering and before publication or correction. Feed it the article text as [ARTICLE_TEXT] and the source material as [SOURCE_MATERIAL], along with any [ATTRIBUTION_RULES] your newsroom enforces (e.g., rules for anonymous sources, paraphrasing thresholds, or acceptable context trimming). The prompt outputs a structured attribution fidelity report with per-claim scores, evidence excerpts, and specific flags for distortion, omission, or credibility gaps. This output can feed directly into an editorial review queue or a CMS verification plugin.

Do not use this prompt for general fact-checking of unsourced claims, real-time breaking news verification where source material is unavailable, or evaluating the truth of claims independent of their source attribution. It is not a substitute for verifying whether a source's statements are factually correct—only whether the article faithfully represents what the source said. If source material is missing, the prompt will correctly flag claims as unverifiable rather than hallucinating an assessment. For high-risk stories involving legal exposure or safety-critical information, always route the prompt's output through human editorial review before publication.

PRACTICAL GUARDRAILS

Use Case Fit

Where this prompt works and where it does not. Understand the operational boundaries before wiring it into a production verification pipeline.

01

Good Fit: Structured Attribution Audits

Use when: you have a claim, the attributed source text, and the original source material available for direct comparison. The prompt excels at detecting quote distortion, context-stripping, and meaning shifts when both texts are provided. Guardrail: Always provide the full original source paragraph, not just the quoted sentence, to enable context comparison.

02

Bad Fit: Anonymous Source Verification

Avoid when: the source is anonymous or the original material is unavailable. The prompt cannot verify attribution fidelity without the original source text to compare against. Guardrail: Route anonymous-source claims to a separate credibility assessment workflow that evaluates internal consistency and corroboration rather than direct text comparison.

03

Required Inputs: Source Triangulation

What you need: the published claim with attribution, the exact original source excerpt, and sufficient surrounding context from the original to detect selective quoting. Missing any of these degrades fidelity scoring. Guardrail: Implement a pre-check that validates all three inputs are present before invoking the prompt; abort with a clear missing-evidence flag if any are absent.

04

Operational Risk: Paraphrase Drift Blind Spots

Risk: the prompt may miss subtle meaning distortion in paraphrased attributions where the words differ but the semantic shift is small. Models can over-prioritize lexical overlap and under-detect framing changes. Guardrail: Add a secondary semantic similarity threshold check using a separate embedding comparison or a second-pass prompt focused exclusively on meaning preservation, not word overlap.

05

Scale Limit: Per-Claim Cost

Risk: running this prompt on every attributed claim in a large article or broadcast transcript becomes expensive and slow. Not every claim requires deep attribution verification. Guardrail: Pre-filter claims with a lightweight triage step that scores attribution risk based on source type, claim controversy, and prior error patterns. Only route high-risk claims to full verification.

06

Domain Boundary: Opinion vs. Fact Attribution

Risk: the prompt may treat attributed opinions or analysis as verifiable factual claims, producing misleading fidelity scores for statements that are inherently interpretive. Guardrail: Prepend a classification step that labels each claim as factual assertion, opinion, analysis, or prediction. Only route factual assertions and direct quotes to attribution verification; flag opinions for separate review.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A production-ready prompt for verifying whether claims attributed to sources match the original material, detecting quote distortion and context-stripping.

This template is designed to be pasted directly into your orchestration layer. It evaluates a single claim-attribution pair by comparing the claim as reported against the provided source material excerpt. The prompt instructs the model to act as a strict editorial auditor, focusing on semantic fidelity, quote accuracy, and context preservation. Before each inference call, replace the square-bracket placeholders with live data from your claim extraction pipeline and source retrieval system. The output is a structured JSON object suitable for downstream scoring, routing, and audit logging.

text
You are an editorial attribution auditor. Your task is to compare a reported claim against its original source material and determine whether the attribution is faithful.

## INPUT
Reported Claim: [CLAIM_TEXT]
Attributed Source: [SOURCE_NAME]
Source Material Excerpt: [SOURCE_EXCERPT]
Original Context (if available): [ORIGINAL_CONTEXT]

## CONSTRAINTS
- Compare the semantic meaning, not just exact wording.
- Flag any quote that is altered, truncated, or recombined in a way that changes meaning.
- Detect context-stripping: when a quote is technically accurate but misleading because surrounding context is omitted.
- For anonymous sources, note the absence of verifiable attribution without judging the claim's truth.
- If the source excerpt does not contain enough information to verify the claim, mark it as "insufficient evidence" rather than guessing.

## OUTPUT_SCHEMA
Return a single JSON object with the following fields:
{
  "attribution_fidelity": "faithful" | "distorted" | "context_stripped" | "unverifiable" | "misattributed",
  "confidence": 0.0-1.0,
  "quote_accuracy": "exact" | "minor_variance" | "paraphrased" | "altered" | "fabricated" | "not_applicable",
  "context_preserved": true | false | "partial",
  "evidence_excerpts": ["string of relevant source text"],
  "explanation": "Concise explanation of the fidelity determination with specific reference to the source material.",
  "distortion_type": "quote_alteration" | "context_omission" | "meaning_inversion" | "false_attribution" | "anonymous_unverifiable" | "none" | null,
  "requires_human_review": true | false
}

## EXAMPLES
Example 1:
Reported Claim: "The CEO said profits were 'the highest in company history.'"
Source Excerpt: "Our profits this quarter were strong, though not the highest in company history. We remain optimistic about future growth."
Output: {"attribution_fidelity": "distorted", "confidence": 0.95, "quote_accuracy": "altered", "context_preserved": false, "evidence_excerpts": ["though not the highest in company history"], "explanation": "The source explicitly negates the claim. The quote is fabricated by omitting the negation.", "distortion_type": "meaning_inversion", "requires_human_review": true}

Example 2:
Reported Claim: "An anonymous official confirmed the deal is imminent."
Source Excerpt: [No source excerpt provided for anonymous source]
Output: {"attribution_fidelity": "unverifiable", "confidence": 0.9, "quote_accuracy": "not_applicable", "context_preserved": false, "evidence_excerpts": [], "explanation": "Claim relies on an anonymous source with no verifiable material provided. Cannot assess fidelity.", "distortion_type": "anonymous_unverifiable", "requires_human_review": true}

## RISK_LEVEL
[RISK_LEVEL]

To adapt this template for your newsroom or verification pipeline, start by mapping your internal claim and source data structures to the [CLAIM_TEXT], [SOURCE_NAME], and [SOURCE_EXCERPT] placeholders. The [ORIGINAL_CONTEXT] field is optional but strongly recommended for detecting context-stripping; populate it with the paragraph or section surrounding the quoted material. The [RISK_LEVEL] placeholder should be set to "high" for public-facing editorial content, which will cause the model to lower its threshold for flagging issues and recommending human review. For lower-stakes internal drafts, set it to "standard". Always validate the output JSON against the schema before accepting the result, and route any response with requires_human_review: true or confidence below your operational threshold (typically 0.85) to an editor. Never use this prompt to make automated publication decisions without human oversight on flagged items.

IMPLEMENTATION TABLE

Prompt Variables

Required inputs for the Journalism Source Attribution Verification prompt. Each placeholder must be populated before the prompt is sent. Validation notes describe how to check the input before execution.

PlaceholderPurposeExampleValidation Notes

[SOURCE_DOCUMENT]

The original source material containing the quoted or referenced statement

Full transcript of the mayor's press conference on 2025-03-15

Must be non-empty string. Check character length > 50. Reject if only a URL without content.

[PUBLISHED_ARTICLE]

The article or content containing the attributed claims to verify

News article text with 'according to the mayor...' statements

Must be non-empty string. Parse for at least one attribution phrase (e.g., 'said', 'according to', 'stated'). Flag if no attributions detected.

[ATTRIBUTION_PAIRS]

Pre-extracted pairs of attributed claim and source reference from the article

Claim: 'The mayor promised tax cuts.' Source: 'Mayor's press conference'

Array of objects with 'claim' and 'source_ref' fields. Validate each pair has both fields populated. Minimum 1 pair required.

[VERIFICATION_DEPTH]

Level of scrutiny to apply: strict, standard, or lenient

strict

Must be one of: 'strict', 'standard', 'lenient'. Default to 'standard' if not provided. Strict mode requires exact quote matching.

[ANONYMOUS_SOURCE_POLICY]

How to handle claims attributed to unnamed or anonymous sources

flag_with_credibility_warning

Must be one of: 'flag_with_credibility_warning', 'skip_verification', 'treat_as_named'. Default to 'flag_with_credibility_warning'.

[OUTPUT_SCHEMA]

Expected structure for the verification output

JSON schema with fields: attribution_id, fidelity_score, evidence_excerpt, distortion_type, confidence

Validate as valid JSON Schema. Must include required fields: attribution_id, fidelity_score, evidence_excerpt. Reject if schema is malformed.

[CONTEXT_WINDOW_TOKENS]

Number of tokens of surrounding context to include with each evidence excerpt

150

Must be integer between 50 and 500. Default to 150. Reject if outside range or non-numeric.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Journalism Source Attribution Verification prompt into a production application with validation, retries, and human review gates.

This prompt is designed to be a single step inside a larger verification pipeline, not a standalone chat interaction. The application layer should handle source retrieval, text extraction, and evidence segmentation before the prompt is called. The model receives a single claim, the original article context, and the source material excerpt, and returns a structured attribution fidelity assessment. The application is responsible for iterating over claims, calling this prompt for each one, and aggregating results into a verification report. Do not send an entire article and all sources in one call—batch at the claim level to keep context focused and reduce hallucination risk.

Input assembly: Before calling the prompt, extract the exact claim text and the surrounding paragraph from the article. Retrieve the cited source material—ideally the specific passage, timestamp, or document section the article references. If the source is a person, include the full quote or transcript segment. If the source is anonymous, include whatever attribution context exists (e.g., 'senior administration official'). The [CLAIM] placeholder receives the verbatim claim. [ARTICLE_CONTEXT] receives the paragraph containing the claim plus one paragraph before and after. [SOURCE_MATERIAL] receives the original source excerpt. [SOURCE_TYPE] is one of: named_document, named_person, anonymous_person, press_release, transcript, dataset, or other. [ATTRIBUTION_TEXT] is the exact attribution phrase from the article (e.g., 'according to the report,' 'said in an interview').

Validation and retries: Parse the model's JSON output and validate that attribution_fidelity_score is a float between 0.0 and 1.0, distortion_type is one of the allowed enum values, and evidence_excerpts is a non-empty array with character offsets that fall within the provided source material length. If validation fails, retry once with the same prompt plus the validation error message appended as a [PREVIOUS_ERROR] field. If the second attempt also fails, flag the claim for human review and log the raw output. For attribution_fidelity_score below 0.7, route to a human reviewer with the full prompt context and model output pre-filled. For scores between 0.7 and 0.9, surface in a review queue but allow the pipeline to continue. Scores above 0.9 can auto-pass unless the claim involves an anonymous source—anonymous source claims should always route to human review regardless of score.

Model choice and latency: Use a model with strong instruction-following and JSON output reliability, such as Claude 3.5 Sonnet or GPT-4o, with response_format set to json_object and the JSON schema provided in the system instructions. Expect 2–5 seconds per claim. For high-throughput newsroom pipelines processing hundreds of claims per article, consider batching claims into groups of 5–10 per call with an array output schema, but only if you validate that batch quality doesn't degrade versus single-claim calls. Log every call with the claim ID, model version, prompt template version, latency, and validation outcome for audit trails.

What to avoid: Do not use this prompt for real-time breaking news verification without human-in-the-loop review. Do not treat the model's output as a final editorial decision—it is a triage and evidence-surfacing tool. Do not skip source retrieval and expect the model to verify claims from its training data; the prompt requires explicit source material in the [SOURCE_MATERIAL] field. If source material is unavailable, route the claim to a 'source needed' queue rather than calling the prompt with an empty field. Finally, never expose raw model outputs to readers without editorial review—the output is an internal verification artifact, not publishable content.

IMPLEMENTATION TABLE

Expected Output Contract

Define the exact structure of the attribution fidelity report. Use this contract to build a parser, validator, and downstream routing logic. Every field must be checked before the output is accepted into a production verification pipeline.

Field or ElementType or FormatRequiredValidation Rule

verification_id

string (UUID v4)

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

claim_summary

string (<= 280 chars)

Length must be between 10 and 280 characters. Must not be identical to [ORIGINAL_CLAIM].

attribution_fidelity_score

number (0.0 - 1.0)

Must be a float between 0.0 and 1.0 inclusive. Reject if out of range or non-numeric.

fidelity_category

enum: 'exact_match', 'substantial_match', 'context_stripped', 'distorted', 'fabricated', 'unverifiable'

Must be one of the listed enum values exactly. Case-sensitive check required.

source_excerpt

string or null

If fidelity_category is 'unverifiable', this must be null. Otherwise, must be a non-empty string.

excerpt_offset

object { start: int, end: int } or null

If source_excerpt is not null, this must be a valid object with integer start and end. Start must be less than end.

discrepancy_notes

string or null

If fidelity_category is 'exact_match', this must be null. Otherwise, must be a non-empty string explaining the gap.

anonymous_source_flag

boolean

Must be true if the source is anonymous, false otherwise. Triggers human review if true and fidelity_category is not 'exact_match'.

PRACTICAL GUARDRAILS

Common Failure Modes

What breaks first when verifying journalism source attribution and how to guard against it in production.

01

Quote Distortion Drift

What to watch: The model accepts paraphrased or 'cleaned up' quotes as equivalent to verbatim source statements, missing subtle meaning shifts introduced by punctuation changes, omitted qualifiers, or reordered clauses. Guardrail: Require the prompt to output a side-by-side diff view of the original quote and the attributed version, with character-level differences highlighted. Add a specific instruction to flag any deviation from verbatim reproduction as a fidelity reduction.

02

Context-Stripping Blindness

What to watch: A quote that is technically accurate word-for-word is rated as high fidelity even when the surrounding context from the source material reverses or heavily qualifies its meaning. The model fails to detect that the selective excerpt creates a misleading impression. Guardrail: Expand the evidence input to include the full paragraph or section surrounding the quoted material. Add an explicit evaluation criterion: 'Does the attributed quote preserve the original intent when read in its original context? If no, reduce the fidelity score by one full tier.'

03

Anonymous Source Credibility Override

What to watch: The model treats all sources as equally credible and fails to apply stricter scrutiny to claims attributed to anonymous, unnamed, or vaguely described sources (e.g., 'sources familiar with the matter'). Guardrail: Add a source-type classifier step before attribution verification. For anonymous sources, require the output to include a 'Credibility Gap' flag and a structured note explaining what independent corroboration would be needed to elevate the claim's reliability.

04

False Positive Attribution Matches

What to watch: The model incorrectly matches a claim to a source excerpt that uses similar keywords but describes a different event, person, or timeframe. Semantic similarity overrides factual alignment. Guardrail: Add a strict entity-matching check in the prompt: 'Before confirming a match, verify that the named entities (people, organizations, locations, dates) in the claim and the source excerpt refer to the same real-world entities. If they do not, the match is invalid regardless of topical similarity.'

05

Temporal Attribution Collapse

What to watch: A claim about a current event is matched to a source describing a past event, or vice versa. The model ignores timestamps and publication dates, treating all evidence as equally current. Guardrail: Require the prompt to extract and compare the publication date of the source material against the event date in the claim. Add a rule: 'If the source predates the claimed event, it cannot serve as direct evidence for that event. Flag as a temporal mismatch.'

06

Over-Confidence on Partial Evidence

What to watch: The model assigns a high attribution fidelity score when only a fragment of a multi-part claim is supported, ignoring unsupported sub-claims. Guardrail: Decompose the attributed claim into atomic sub-claims before verification. Require the fidelity score to be calculated as the proportion of sub-claims with direct source support. A claim with 1 of 3 parts verified should not receive a 'High Fidelity' rating.

IMPLEMENTATION TABLE

Evaluation Rubric

Criteria for testing the Journalism Source Attribution Verification prompt before production deployment. Each row defines a pass standard, a failure signal, and a concrete test method.

CriterionPass StandardFailure SignalTest Method

Quote Fidelity

Extracted quote matches original source text exactly, including punctuation and capitalization.

Output contains a paraphrased version of the quote or introduces a single-character difference.

Run a golden set of 20 known quote pairs through the prompt. Assert string equality between the output quote and the ground-truth source quote.

Context Preservation

The surrounding context excerpt includes at least 2 sentences before and after the quoted material.

The excerpt is truncated mid-sentence or omits a qualifying clause that changes the meaning.

For 10 test cases with known context-stripping risks, verify that the output excerpt contains the full qualifying language from the source.

Attribution Fidelity Score Calibration

Score is >= 0.9 for verbatim quotes with full context; <= 0.4 for fabricated quotes.

A fabricated quote receives a score above 0.6, or a verbatim quote receives a score below 0.7.

Run 10 verbatim and 10 fabricated quote pairs. Check that scores fall within the defined ranges. Flag any overlap.

Anonymous Source Credibility Flag

When [SOURCE_DOCUMENT] lacks named attribution, output includes a credibility_gap flag set to true.

The credibility_gap flag is false or missing for an anonymous source claim.

Provide 5 source documents with only anonymous attribution. Assert that credibility_gap is true in every output record.

Distortion Type Classification

For a quote with a material word substitution, the distortion_type field is 'substitution' and not 'omission'.

The distortion_type is 'none' or misclassified as 'context_stripping'.

Use 5 hand-crafted distortion examples (substitution, omission, reordering, fabrication, splicing). Assert exact match on distortion_type.

Evidence Excerpt Completeness

The evidence_excerpt field contains the full sentence from the source that supports or contradicts the claim.

The excerpt is a partial sentence fragment or a hallucinated sentence not present in the source.

For 15 test claims, verify that every evidence_excerpt string is a substring of the provided [SOURCE_DOCUMENT] using an automated substring check.

Empty Source Handling

When [SOURCE_DOCUMENT] is empty or null, the output returns an error object with status 'insufficient_source'.

The prompt hallucinates a source or returns a confidence score above 0.1.

Pass an empty string and a null value for [SOURCE_DOCUMENT] in 2 separate tests. Assert that the status field equals 'insufficient_source'.

Multiple Claim Batch Consistency

When [CLAIMS] contains 5 claims, the output contains exactly 5 verification records in the same order.

The output contains 4 or 6 records, or the records are reordered relative to the input.

Run a batch of 5 claims 3 times. Assert that the output array length is 5 and that the claim_id values match the input order each time.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Start with the base prompt and a single source-article pair. Strip structured output requirements to a simple JSON with claim, attribution_fidelity, and evidence_excerpt. Use a frontier model with default temperature.

code
Evaluate whether each attributed claim in [ARTICLE_TEXT] matches the original source material in [SOURCE_TEXT]. Return JSON with fields: claim, attribution_fidelity (EXACT, PARAPHRASED, DISTORTED, FABRICATED), evidence_excerpt.

Watch for

  • Model hallucinating source excerpts that don't exist in the provided text
  • Overly generous PARAPHRASED ratings when meaning has shifted
  • Missing handling for claims attributed to unnamed or anonymous sources
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.