Inferensys

Prompt

News Summarization Freshness Check Prompt

A practical prompt playbook for using the News Summarization Freshness Check Prompt in production news aggregation and summarization workflows.
Operations team reviewing AI workflow automation on laptop, workflow builder visible, casual office setup.
PROMPT PLAYBOOK

When to Use This Prompt

A practical guide for integrating the News Summarization Freshness Check Prompt into a production news aggregation pipeline, including its ideal use cases and critical limitations.

This prompt is a temporal gatekeeper for news aggregation and summarization pipelines. Its core job is to evaluate a set of already-retrieved news articles and determine if they are fresh enough to be used for a breaking-news or daily-briefing summary. The ideal user is a system builder who has already solved the retrieval problem—fetching articles from APIs, RSS feeds, or search indices—but now faces the challenge of temporal quality control. The prompt ingests articles with their publication dates and a target freshness window (e.g., 'last 4 hours'), and it outputs a structured assessment: a binary stale/fresh flag for each article, a confidence score, and a concise reason for any staleness determination. This allows downstream summary generation steps to operate only on temporally valid source material, preventing a breaking-news alert from being generated from yesterday's report.

You should use this prompt when your pipeline aggregates from sources with inconsistent or unreliable publication timelines, such as a mix of fast-moving wires, slower editorial pieces, and social media embeds. It is particularly valuable when the cost of presenting stale information is high—for instance, in financial market briefings, crisis response summaries, or competitive intelligence digests. The prompt is designed to be a deterministic filter in a multi-step RAG architecture. A typical implementation involves a retrieval step, this freshness check step, and then a final grounded summarization step that only sees the articles that passed the check. This separation of concerns makes the system easier to debug and evaluate than a single monolithic prompt that tries to do everything at once.

Do not use this prompt as a general relevance scorer or a full RAG answer generator. It assumes that the articles are already topically relevant to the user's query or briefing topic; its only concern is temporal validity. It is also not a replacement for a robust publication date extraction pipeline. The prompt's accuracy is entirely dependent on the quality of the [PUBLICATION_DATE] field you provide for each article. If your upstream extraction logic fails to parse dates correctly or normalizes them to the wrong timezone, this prompt will confidently make the wrong decision. For high-stakes domains, always route articles flagged as 'stale' to a human review queue instead of silently dropping them, and log the prompt's [STALENESS_REASON] output to monitor for systemic extraction errors.

PRACTICAL GUARDRAILS

Use Case Fit

Where the News Summarization Freshness Check Prompt delivers value and where it introduces risk. Use these cards to decide if this prompt fits your pipeline before integrating it.

01

Good Fit: Time-Sensitive News Aggregation

Use when: Your system generates daily briefings, breaking-news summaries, or time-decaying content where stale articles directly harm user trust. Guardrail: Pair this prompt with a Publication Date Extraction Prompt to ensure every article has a machine-readable timestamp before freshness scoring.

02

Bad Fit: Archival or Historical Research

Avoid when: Users need comprehensive historical context or the full record of an event over years. A freshness check will incorrectly penalize older, authoritative sources. Guardrail: Route queries classified as 'historical' or 'time-agnostic' by a Time-Sensitive Query Classification Prompt to a standard RAG pipeline without recency filtering.

03

Required Inputs: Timestamped Corpus & Temporal Window

What to watch: The prompt fails silently if articles lack reliable published_date metadata or if the required freshness window (e.g., 'last 4 hours') is undefined. Guardrail: Implement a pre-processing validator that rejects any document missing an ISO 8601 timestamp and requires an explicit temporal_window parameter in the prompt template.

04

Operational Risk: False Negatives on Developing Stories

Risk: A strict freshness threshold can drop the first, most authoritative source of a breaking event if a few hours have passed, leaving only lower-quality follow-ups. Guardrail: Combine recency scoring with source authority weighting. Never discard articles solely on age; use a Recency-Boosted Reranking Prompt that blends freshness with trustworthiness.

05

Operational Risk: Temporal Hallucination in Summaries

Risk: The LLM may generate a summary implying an event is 'ongoing' or 'just happened' based on a fresh article, even if the article describes a past event. Guardrail: Add a Temporal Hallucination Detection Prompt as a post-generation guardrail to flag mismatches between the summary's implied recency and the source's actual event date.

06

Pipeline Integration: Pre-Retrieval vs. Post-Retrieval

What to watch: Applying freshness checks only after retrieval wastes compute on articles that will be discarded. Guardrail: Inject temporal constraints directly into the retrieval query using a Freshness-Aware Query Rewriting Prompt. Use this prompt post-retrieval only to audit and explain why specific articles were kept or dropped.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A production-ready prompt for evaluating the temporal freshness of news articles against a breaking-news or daily-briefing use case.

This template is designed to be pasted directly into your orchestration layer. It instructs the model to act as a strict temporal auditor, comparing the publication date and content of each provided article against the current target date and the query's time-sensitivity requirements. The prompt forces a structured output, making it suitable for automated pipelines where a downstream system needs to decide whether to use, flag, or discard a source based on its recency.

code
You are a strict temporal relevance auditor for a news summarization system. Your task is to evaluate a set of retrieved news articles and determine if they are fresh enough for a [QUERY_TYPE] use case, such as 'breaking-news' or 'daily-briefing'.

**Input Data:**
- Target Date and Time: [TARGET_DATETIME]
- Query Type: [QUERY_TYPE]
- Maximum Acceptable Article Age: [MAX_AGE_HOURS] hours
- Articles to Evaluate: [ARTICLES_JSON]
  (Each article object must contain 'id', 'title', 'publication_date' in ISO 8601 format, and 'content'.)

**Evaluation Steps:**
1. For each article, calculate the time difference between [TARGET_DATETIME] and its 'publication_date'.
2. Compare this difference against the [MAX_AGE_HOURS] threshold.
3. Analyze the article's content for any time-sensitive statements (e.g., 'yesterday', 'last week', 'earlier today') that may indicate the information is older than the publication date suggests.
4. Classify each article into one of three categories: 'FRESH', 'STALE', or 'BORDERLINE'.
   - 'FRESH': Publication date is within the threshold, and content appears current.
   - 'STALE': Publication date exceeds the threshold, or content contains clearly outdated temporal references.
   - 'BORDERLINE': Publication date is within the threshold, but content contains ambiguous or potentially outdated temporal references.

**Output Schema:**
You must return a single JSON object with the following structure:
{
  "query_type": "[QUERY_TYPE]",
  "target_datetime": "[TARGET_DATETIME]",
  "max_age_hours": [MAX_AGE_HOURS],
  "articles": [
    {
      "id": "string",
      "freshness_status": "FRESH" | "STALE" | "BORDERLINE",
      "time_difference_hours": number,
      "rationale": "A concise, evidence-based explanation for the classification, citing specific temporal references from the article's content or the publication date."
    }
  ],
  "overall_freshness_summary": "A brief summary of the retrieval set's freshness, noting the proportion of fresh vs. stale articles and any critical risks for the [QUERY_TYPE] use case."
}

**Constraints:**
- Do not summarize the articles. Only evaluate their temporal freshness.
- If an article's 'publication_date' is missing or unparseable, classify it as 'STALE' and state the reason clearly in the rationale.
- If the [QUERY_TYPE] is 'breaking-news', apply a stricter interpretation of 'BORDERLINE', leaning towards 'STALE' when in doubt.

To adapt this template, replace the square-bracket placeholders with live data from your system. The [ARTICLES_JSON] input should be a serialized JSON array of article objects from your retrieval step. The [MAX_AGE_HOURS] parameter should be configured per use case; for a breaking-news system, this might be 4 hours, while a daily briefing could use 24 hours. Before deploying, test the prompt with a golden dataset of articles with known publication dates and intentional staleness to ensure the model's classifications and rationales align with your operational definitions of 'FRESH' and 'STALE'.

For high-stakes applications where a stale article could cause reputational harm, do not rely solely on this prompt. Implement a post-processing validation step in your application code that independently calculates the time difference using the article's metadata and flags any output where the model's time_difference_hours field deviates from your own calculation by more than a small tolerance. This acts as a safety net against model arithmetic errors.

IMPLEMENTATION TABLE

Prompt Variables

Inputs the News Summarization Freshness Check Prompt needs to work reliably. Validate these before each call to prevent stale or misdated summaries.

PlaceholderPurposeExampleValidation Notes

[ARTICLE_LIST]

Array of retrieved news articles with full text and metadata

[{"id": "a1", "title": "...", "body": "...", "published_date": "2025-03-15T10:30:00Z", "source": "Reuters"}]

Must be a non-empty JSON array. Each object requires id, body, and published_date fields. Reject if array is empty or missing required fields.

[QUERY_TIMESTAMP]

Current time when the freshness check is executed

2025-03-16T14:00:00Z

Must be ISO 8601 UTC timestamp. Reject if missing, malformed, or in the future. Compare against system clock with 5-minute tolerance.

[FRESHNESS_WINDOW_HOURS]

Maximum age in hours for an article to be considered fresh

24

Must be a positive integer. Default to 24 for daily briefings, 6 for breaking news. Reject if negative, zero, or non-numeric. Validate against use case requirements.

[DOMAIN]

Subject domain for adjusting freshness expectations

breaking-news

Must be one of: breaking-news, daily-briefing, financial-markets, technology, politics, sports. Reject unrecognized values. Controls decay curve steepness.

[SOURCE_AUTHORITY_MAP]

Optional mapping of source names to authority scores for weighting

{"Reuters": 0.95, "Twitter": 0.3, "Unknown Blog": 0.1}

If provided, must be valid JSON object with string keys and float values between 0 and 1. Null allowed. Missing sources default to 0.5 authority.

[OUTPUT_SCHEMA]

Expected JSON structure for freshness assessment output

{"fresh_articles": [], "stale_articles": [], "recency_summary": "", "confidence": 0.0}

Must be a valid JSON Schema or example structure. Validate that schema includes fresh_articles, stale_articles, recency_summary, and confidence fields. Reject if schema is malformed.

[STALENESS_THRESHOLD]

Confidence score below which an article is flagged as potentially stale

0.7

Must be a float between 0.0 and 1.0. Default 0.7. Lower values increase false negatives, higher values increase false positives. Validate range before execution.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the News Summarization Freshness Check Prompt into a production news aggregation pipeline with validation, retries, and human review gates.

The News Summarization Freshness Check Prompt is designed to operate as a pre-generation gate in a news summarization pipeline. Before any summary is produced, retrieved articles pass through this freshness evaluation step. The prompt expects a batch of articles with their publication dates and a query specifying the temporal requirements (e.g., 'breaking news, last 4 hours' or 'daily briefing, last 24 hours'). The output is a structured freshness assessment that downstream components can act on: fresh articles proceed to summarization, stale articles are flagged for replacement or exclusion, and borderline cases can be routed for human review. This separation of freshness checking from summary generation prevents the summarizer from synthesizing outdated information into what appears to be a current briefing.

Integration pattern: Wire this prompt as a synchronous validation step between retrieval and summarization. The retrieval layer fetches candidate articles with their metadata (publication timestamps, source identifiers). Before passing articles to the summarization prompt, call the freshness check prompt with the full candidate set and the temporal requirements. Parse the structured output—which should include a freshness_status per article, an overall recency_score, and a stale_article_flags list—and use it to filter the article set. Only articles marked fresh or acceptable proceed to summarization. Validation layer: Implement a post-processing validator that checks: (1) every article in the input received a freshness classification, (2) no article with a publication date outside the required window was marked fresh, and (3) the overall recency score is above your configured threshold (e.g., 0.7). If validation fails, log the mismatch and either retry with adjusted temporal parameters or escalate to a human editor. For retry logic, if the model returns an unparseable freshness assessment, retry once with the same input plus an explicit instruction to return valid JSON matching the expected schema. If the second attempt fails, route the entire batch to a human review queue rather than proceeding with unvalidated articles.

Model choice and latency considerations: For breaking-news use cases where latency matters, use a fast model (e.g., GPT-4o-mini, Claude Haiku) for the freshness check and reserve a more capable model for the final summarization of verified-fresh articles. The freshness check is a classification and flagging task that does not require deep reasoning—smaller models perform well here when the schema is clear. Logging and observability: Log every freshness check invocation with: the query's temporal requirements, the number of articles evaluated, the count of articles flagged stale, the overall recency score, and whether the batch passed the freshness gate. This creates an audit trail for debugging stale-content incidents. When a stale article reaches users despite the gate, you can trace whether the freshness check misclassified it, whether the publication date was extracted incorrectly upstream, or whether the temporal requirements were too permissive. Human review integration: For high-stakes briefings (financial summaries, crisis updates), configure the harness to route any batch where more than 20% of articles are flagged stale or where the overall recency score falls below 0.8 to a human editor. The editor receives the flagged articles, the freshness justifications, and can override classifications or trigger re-retrieval before summarization proceeds.

PRACTICAL GUARDRAILS

Common Failure Modes

What breaks first when checking news freshness and how to guard against it in production.

01

Missing Publication Dates

What to watch: Retrieved articles lack parseable publication or last-updated timestamps, causing the freshness check to default to 'unknown' or incorrectly flag current content as stale. Guardrail: Implement a pre-check that requires at least one valid date field before passing an article to the freshness prompt. If extraction fails, route the article to a date-extraction repair prompt or flag it for human review.

02

Relative Date Misinterpretation

What to watch: The model misinterprets relative timestamps like 'yesterday,' 'last quarter,' or '2 hours ago' without anchoring them to the current date, producing incorrect freshness windows. Guardrail: Always inject the current ISO 8601 timestamp into the prompt context and instruct the model to resolve all relative dates against this anchor before scoring freshness.

03

Domain-Decay Mismatch

What to watch: The prompt applies a generic freshness window (e.g., 24 hours) to domains with different decay rates—financial data may be stale in minutes, while policy analysis may be valid for months. Guardrail: Parameterize the freshness threshold by domain. Pass a [FRESHNESS_WINDOW_HOURS] variable into the prompt based on the query classification, and validate that the model's output respects this boundary.

04

Stale-But-Recently-Republished Confusion

What to watch: An old article with a recent republish or syndication date passes the freshness check, but the underlying information is outdated. Guardrail: Instruct the model to distinguish between publication_date and last_updated_date when both are present. If only a single date exists, flag the article with a lower confidence score and note the risk of republished stale content.

05

Over-Flagging Breaking News

What to watch: During fast-moving events, the model flags articles older than a few hours as stale, even when they contain essential context that newer articles lack. Guardrail: Add a [QUERY_TEMPORAL_SENSITIVITY] parameter. For 'breaking' queries, use a short window but instruct the model to retain high-relevance articles just outside the window as 'context' rather than 'current facts.'

06

Confidence Inflation on Ambiguous Dates

What to watch: The model assigns high confidence to freshness assessments even when the source date is ambiguous, incomplete, or inferred from surrounding metadata. Guardrail: Require the model to output a date_confidence score alongside the freshness assessment. If date_confidence falls below a threshold (e.g., 0.8), suppress the freshness verdict and escalate for human review or re-extraction.

IMPLEMENTATION TABLE

Evaluation Rubric

Run these checks against a golden dataset of articles with known publication dates and freshness ground truth. Each criterion validates a specific failure mode observed in production news summarization systems.

CriterionPass StandardFailure SignalTest Method

Stale Article Flagging Accuracy

95% of articles older than [FRESHNESS_WINDOW_HOURS] are flagged as stale

Stale articles pass through unflagged; current articles incorrectly flagged

Compare flag output against golden dataset with known publication timestamps and window boundary ground truth

Recency-Grounded Summary Compliance

100% of generated summaries reference only articles within [FRESHNESS_WINDOW_HOURS]

Summary includes facts from articles outside the freshness window without temporal qualification

Parse summary for source article references; cross-check each referenced article's publication date against the window

Temporal Qualification Language Presence

Summaries covering events older than [STALE_THRESHOLD_HOURS] include explicit temporal qualifiers such as 'As of [DATE]' or 'Reported on [DATE]'

Older information presented as if current without date anchoring

Regex scan for temporal qualifier patterns; verify qualifier presence when source article age exceeds threshold

Publication Date Extraction Accuracy

ISO 8601 dates extracted with 98% accuracy across all golden dataset articles

Missing dates, incorrectly parsed formats, or relative timestamps left unresolved

Compare extracted [PUBLICATION_DATE] field against known ground-truth publication dates in golden dataset

Freshness Assessment Confidence Calibration

Confidence scores below 0.7 correlate with actual extraction or boundary-edge cases in at least 90% of instances

High confidence assigned to clearly wrong freshness assessments; low confidence on straightforward current articles

Bin confidence scores; measure error rate per bin; expect error rate to decrease as confidence increases

Boundary-Edge Article Handling

Articles published within 15 minutes of [FRESHNESS_WINDOW_HOURS] boundary receive explicit boundary-note in output

Boundary-edge articles silently included or excluded without indication of proximity to cutoff

Identify articles within 15-minute boundary zone in golden dataset; verify boundary-note presence in output

Multi-Source Temporal Consistency

When multiple articles cover same event with different publication times, summary uses most recent article as primary source

Summary treats older article as primary when newer article on same event exists in retrieval set

Group golden dataset articles by event; verify primary source selection picks newest article per event group

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a single model call and minimal post-processing. Focus on getting the freshness classification and stale-article flags correct before adding schema enforcement. Start with a small, hand-labeled set of 20–30 articles with known publication dates to calibrate the prompt.

Simplify the output schema to a flat JSON object with freshness_assessment, stale_articles, and summary_guidance fields. Skip confidence scoring and temporal-window justification during early iteration.

Watch for

  • The model ignoring the [CURRENT_DATE] placeholder and using its training cutoff instead
  • Overly broad staleness thresholds that flag everything older than 24 hours as stale
  • Missing or hallucinated publication dates when articles lack explicit timestamps
  • The summary guidance becoming generic rather than recency-grounded
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.