Inferensys

Prompt

Intelligence Briefing Fact-Interpretation Extraction Prompt

A practical prompt playbook for using the Intelligence Briefing Fact-Interpretation Extraction Prompt in production AI workflows. Separates direct factual observations with source provenance from analyst judgments, confidence assessments, and inferred implications in threat reports and situational briefings.
Wide-angle shot of a modern WeWork open floor plan with creative walls covered in AI system architecture diagrams, product team collaborating in standing desk area with industrial lighting.
PROMPT PLAYBOOK

When to Use This Prompt

Define the job-to-be-done, the ideal user, required inputs, and the operational constraints for the Intelligence Briefing Fact-Interpretation Extraction Prompt.

This prompt is designed for intelligence analysts and verification pipeline engineers who need to process threat reports, situational briefings, and strategic assessments. The core job-to-be-done is separating verifiable factual observations with explicit source provenance from analyst judgments, confidence assessments, inferred implications, and rhetorical framing. This is not a general-purpose text classifier; it is a precision extraction tool for high-stakes content where downstream decisions depend on knowing exactly what is known versus what is assessed. Use this prompt when you must produce a structured, auditable decomposition of an intelligence product before it enters a verification pipeline, a knowledge base, or a decision support system.

The ideal user is operating inside a structured intelligence workflow. They have access to the original source material and can provide it as the [SOURCE_TEXT] input. They need the output to distinguish between direct reporting (e.g., 'The convoy was observed at grid coordinates X at 1400Z') and analytical synthesis (e.g., 'The convoy's movement pattern suggests a resupply operation'). The prompt requires a pre-defined [CLASSIFICATION_TAXONOMY] to map each extracted statement to a specific type, such as 'Direct Observation,' 'Analyst Assessment,' 'Confidence Judgment,' or 'Inferred Implication.' It also requires an [OUTPUT_SCHEMA] to enforce a strict JSON structure with fields for the original text span, the extracted statement, its classification, and a source citation. Do not use this prompt on raw, unprocessed intercepts or social media feeds without first scoping the content to a specific report or briefing document. It is not designed for real-time streaming data or for making the final verification judgment itself—it only performs the separation step.

Avoid using this prompt when the source material is purely factual with no interpretive content, such as a raw sensor log or a simple list of events. In those cases, a simpler extraction prompt will be more cost-effective and faster. Conversely, do not use it when the content is almost entirely speculative or rhetorical, as the model will struggle to find factual anchors and may hallucinate distinctions. The prompt is also not a substitute for human analytic tradecraft; it is a force-multiplier that requires a human reviewer to validate boundary decisions in ambiguous cases. Before deploying, ensure you have a validation harness that checks the output against the [OUTPUT_SCHEMA] and an evaluation rubric that measures boundary precision against human-labeled examples. The next step is to review the prompt template and implementation harness to understand how to wire this into a production verification pipeline.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Intelligence Briefing Fact-Interpretation Extraction Prompt works, where it fails, and the operational prerequisites for production use.

01

Good Fit: Structured Analytical Reports

Use when: Processing formal intelligence briefings, threat assessments, or situational reports with clear section boundaries. These documents typically separate raw reporting from analytical commentary, making the extraction task well-scoped. Guardrail: Validate that the input document has identifiable reporting sections before applying the prompt; unstructured narrative may require pre-processing.

02

Bad Fit: Real-Time Chat or Social Media

Avoid when: Processing informal, fragmented, or highly contextual communication where facts and interpretation are deliberately blended for rhetorical effect. Social media posts, chat logs, and informal briefings often lack the structural signals this prompt relies on. Guardrail: Route such content to a lighter-weight claim extraction prompt first, then apply fact-interpretation separation only to extracted claims.

03

Required Inputs: Source Provenance Metadata

Risk: Without source attribution fields, the model cannot distinguish between direct reporting from a named source and analytical synthesis by the briefing author. This undermines the core value of the extraction. Guardrail: Always include source provenance metadata (reporting source, date, classification) as part of the input context. If provenance is missing, flag the output as 'provenance-limited' and reduce confidence scores.

04

Operational Risk: Classification Drift on Hedged Language

Risk: Intelligence briefings frequently use hedging language ('likely', 'assessed with moderate confidence', 'possibly') that blurs the line between fact and interpretation. The model may classify hedged assessments as facts or miss factual statements couched in cautious language. Guardrail: Implement a secondary validation pass that flags any extracted 'fact' containing hedge words for human review. Track hedge-word density per document as a leading indicator of separation quality.

05

Operational Risk: Over-Extraction of Atomic Facts

Risk: The prompt may atomize complex factual statements into fragments that lose their original meaning when separated from surrounding context. A sentence like 'Forces were observed moving south at 1400 hours, consistent with the assessed intent to reinforce Position Alpha' contains both fact and interpretation that must stay linked. Guardrail: Preserve original sentence spans alongside extracted facts and require that any fact fragment retains a pointer to its full source sentence for human review.

06

Not a Replacement for Analyst Judgment

Risk: Teams may treat the prompt's output as ground truth, bypassing analyst review for high-stakes intelligence products. The model cannot assess source reliability, detect deception, or apply domain-specific tradecraft. Guardrail: All extracted fact-interpretation pairs must route through a human review queue when the document classification is above a defined sensitivity threshold. The prompt output is a triage aid, not a final product.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt for extracting and separating factual observations from analytical judgments in intelligence briefings.

This prompt template is designed for intelligence analysts and verification pipeline builders who need to decompose threat reports, situational briefings, and assessments into two distinct streams: verifiable factual observations with source provenance, and analytical judgments with confidence assessments. The template uses square-bracket placeholders that you must replace with your specific content, classification taxonomy, and output schema before use. The core instruction forces the model to treat every sentence as either a reportable fact or an interpretation, never blending the two without explicit labeling.

text
You are an intelligence briefing analyst. Your task is to process the provided [BRIEFING_CONTENT] and separate every statement into one of two categories: FACTUAL OBSERVATION or ANALYTICAL JUDGMENT.

### CLASSIFICATION RULES
- FACTUAL OBSERVATION: A statement that reports what was seen, heard, measured, or directly observed. It must be verifiable against source data, sensor logs, human reporting, or documentary evidence. Include the specific source, date, and reporting chain if available. Do not include inferences, assessments, or predictions.
- ANALYTICAL JUDGMENT: A statement that interprets, assesses, predicts, or draws conclusions from observations. This includes confidence assessments, threat evaluations, implications, forecasts, and statements about what a fact "means." Always include the analyst's stated confidence level if present in the source.

### BOUNDARY RULES
- If a sentence contains both a fact and an interpretation, split it. Extract the factual core into FACTUAL OBSERVATION and the interpretive layer into ANALYTICAL JUDGMENT. Link them with a shared `source_span` reference.
- If a statement appears factual but lacks any source attribution, flag it as ANALYTICAL JUDGMENT with a note: "Unattributed assertion; cannot verify provenance."
- Direct quotes from named sources are FACTUAL OBSERVATION (the fact that someone said something). The content of the quote may be ANALYTICAL JUDGMENT if the speaker is interpreting events.
- Numerical data, timestamps, locations, and named entities are FACTUAL OBSERVATION when directly reported. Trends, percentages derived from analysis, and comparative assessments are ANALYTICAL JUDGMENT.

### INPUT
[BRIEFING_CONTENT]

### OUTPUT SCHEMA
Return a JSON object with this exact structure:
{
  "briefing_id": "[BRIEFING_ID]",
  "processed_at": "[TIMESTAMP]",
  "factual_observations": [
    {
      "id": "fact-001",
      "statement": "The exact factual claim",
      "source_span": "Paragraph 3, sentences 1-2",
      "source_attribution": "SIGINT intercept dated 2024-03-15 / Field report from Station Alpha",
      "verifiability": "directly_verifiable | partially_verifiable | requires_corroboration",
      "linked_judgment_ids": ["judgment-003"]
    }
  ],
  "analytical_judgments": [
    {
      "id": "judgment-001",
      "statement": "The interpretive or predictive claim",
      "source_span": "Paragraph 5, sentence 3",
      "judgment_type": "threat_assessment | prediction | implication | confidence_statement | inference | unattributed_assertion",
      "stated_confidence": "high | medium | low | not_specified",
      "basis_fact_ids": ["fact-004", "fact-007"],
      "analyst_note": "Preserve any caveat or uncertainty language from the original"
    }
  ],
  "processing_notes": ["Any boundary cases or splitting decisions that require explanation"]
}

### CONSTRAINTS
- Do not omit any sentence from the source. Every sentence must appear in either factual_observations or analytical_judgments.
- Preserve original wording in the `statement` field. Do not paraphrase.
- If source attribution is missing, do not invent it. Mark as "unattributed" and flag in processing_notes.
- For [RISK_LEVEL] briefings at HIGH or CRITICAL, add a `human_review_required` boolean to any judgment where stated_confidence is "low" or "not_specified."

To adapt this template, replace the bracketed placeholders with your operational values. [BRIEFING_CONTENT] accepts the full text of the briefing document. [BRIEFING_ID] should be your internal document identifier for traceability. [TIMESTAMP] can be generated at runtime. [RISK_LEVEL] controls whether low-confidence judgments are automatically flagged for human review—set this based on your organization's escalation policy. The output schema is designed for direct ingestion into a verification pipeline where factual observations proceed to evidence matching and analytical judgments are routed for analyst review or confidence calibration. Before deploying, test against your organization's classification guide to ensure the judgment_type enum aligns with your analytical tradecraft standards.

IMPLEMENTATION TABLE

Prompt Variables

Required and optional inputs for the Intelligence Briefing Fact-Interpretation Extraction Prompt. Each placeholder must be populated before the prompt is sent to the model. Validation notes describe how to check input quality before execution.

PlaceholderPurposeExampleValidation Notes

[BRIEFING_TEXT]

The full intelligence briefing document to be processed. Contains the raw text that mixes facts, assessments, and implications.

SITREP-2025-03-15: Border activity increased 40% in Q1. Analysts assess this reflects seasonal migration patterns rather than organized movement. If trends continue, resource strain is likely by May.

Required. Must be non-empty string. Check minimum 50 characters to ensure sufficient context. Reject if only contains headers or metadata without substantive content.

[CLASSIFICATION_TAXONOMY]

Defines the categories for separating content. Specifies which labels to apply and their definitions.

["Factual Observation", "Analyst Assessment", "Confidence Judgment", "Inferred Implication", "Rhetorical Framing", "Source Attribution"]

Required. Must be a valid JSON array of strings with 3-8 categories. Each category must have a distinct definition. Validate no duplicate labels. Reject if taxonomy includes categories that overlap semantically without clear boundary rules.

[SOURCE_PROVENANCE_MODE]

Controls whether the prompt expects source citations inline, at paragraph level, or as document-level attribution.

paragraph-level

Required. Must be one of: "inline", "paragraph-level", "document-level", "none". If "inline", validate that [BRIEFING_TEXT] contains citation markers. If "none", downstream verification may be limited.

[CONFIDENCE_SCALE]

Defines the scale for analyst confidence levels when extracting assessments and judgments.

{"low": "Single source, limited corroboration", "medium": "Multiple sources, some corroboration", "high": "Multiple independent sources, strong corroboration"}

Required. Must be a valid JSON object with 2-5 confidence levels. Each level must have a non-empty description string. Validate that scale labels are ordered from lowest to highest confidence.

[OUTPUT_FORMAT]

Specifies the structure of the expected output: inline annotations, structured JSON, or side-by-side table.

structured-json

Required. Must be one of: "inline-annotations", "structured-json", "side-by-side-table". If "structured-json", validate that downstream parser expects the schema defined in [OUTPUT_SCHEMA]. If "inline-annotations", ensure annotation markers don't conflict with [BRIEFING_TEXT] content.

[OUTPUT_SCHEMA]

The exact JSON schema or field specification for structured output. Defines required fields, types, and constraints.

{"passages": [{"text": "string", "start_char": "integer", "end_char": "integer", "classification": "string", "confidence": "string", "evidence_basis": "string|null", "source_reference": "string|null"}]}

Required when [OUTPUT_FORMAT] is "structured-json". Must be a valid JSON Schema or field specification. Validate that schema includes fields for text span, classification, and confidence. Check that classification field values are constrained to [CLASSIFICATION_TAXONOMY] entries.

[DOMAIN_CONTEXT]

Optional domain-specific context that helps the model interpret terminology, acronyms, and domain conventions.

Military intelligence, OSINT fusion center, INDOPACOM AOR, standard NATO reporting conventions

Optional. If provided, must be non-empty string. Validate that domain context doesn't contradict [CLASSIFICATION_TAXONOMY] definitions. If omitted, model relies on general intelligence briefing conventions. Consider providing for specialized domains like SIGINT, HUMINT, or technical threat analysis.

[AMBIGUITY_THRESHOLD]

Sets the confidence threshold below which passages are flagged for human review instead of automatic classification.

0.7

Optional. Must be a float between 0.0 and 1.0 if provided. Default is 0.5 if omitted. Validate that threshold aligns with operational risk tolerance. Lower values increase automation but risk misclassification. Higher values increase human review load but improve accuracy.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Intelligence Briefing Fact-Interpretation Extraction Prompt into a production verification pipeline with validation, retries, and human review routing.

This prompt is designed as a pre-processing step in a larger verification pipeline, not a standalone chat interaction. The primary integration point is immediately after document ingestion and before evidence matching. Raw intelligence briefings arrive via API, file upload, or streaming ingest. The application layer should extract the full text, preserve source metadata (document ID, classification, origin, timestamp), and pass both into the prompt's [INPUT_TEXT] and [SOURCE_METADATA] placeholders. The output is a structured JSON payload containing two parallel arrays: factual_observations (verifiable statements with source provenance) and analyst_interpretations (judgments, assessments, inferences, and confidence qualifiers). Downstream, the factual_observations array routes to evidence matching and claim verification subsystems, while analyst_interpretations routes to a separate review queue or synthesis module. This separation prevents the verification engine from treating analytical judgments as checkable facts, which is the primary failure mode this prompt prevents.

Validation and Schema Enforcement: The application harness must validate the model's output against a strict JSON schema before allowing downstream consumption. Required fields per factual observation include claim_text, source_span_reference (exact quote or paragraph pointer), source_document_id, and observation_type (enum: direct_reporting, sensor_data, witness_account, documentary_evidence). Required fields per interpretation include interpretation_text, basis_facts (array of IDs linking to factual observations), confidence_level (enum: high, moderate, low, unknown), and interpretation_type (enum: analyst_judgment, inferred_implication, forecast, alternative_hypothesis, uncertainty_caveat). If validation fails, the harness should retry with the same input and an appended repair instruction, not silently drop malformed records. After two failed retries, route the entire document to human review with the raw model output and validation errors attached. Model choice: Use a model with strong structured output capabilities (GPT-4o, Claude 3.5 Sonnet, or equivalent) and enable strict JSON mode or tool-calling with a defined schema. Avoid models under 70B parameters for this task; boundary precision degrades significantly on smaller models, especially on embedded factual assertions within analytical sentences.

Logging, Audit Trail, and Human Review Routing: Every extraction run must produce an audit record containing the input document hash, prompt version, model identifier, output schema version, validation status, and any retry attempts. This is critical for intelligence workflows where downstream decisions depend on traceable evidence handling. Store the full prompt request and response in an append-only log for at least the retention period required by the organization's compliance policy. When the model assigns low or unknown confidence to an interpretation, or when a factual observation lacks a source_span_reference, flag those records for human review automatically. The review interface should display the original passage, the model's classification, and a simple accept/reject/edit control. Track reviewer corrections as labeled data for future fine-tuning or few-shot example refinement. What to avoid: Do not use this prompt in streaming or real-time chat contexts where partial outputs might be consumed before validation completes. Do not skip the schema validation step; even minor format drift in observation_type enums will break downstream routing logic. Do not treat the model's confidence levels as calibrated without running your own eval against domain experts on a representative sample of your actual intelligence briefings.

PRACTICAL GUARDRAILS

Common Failure Modes

Fact-interpretation separation prompts fail in predictable ways. These are the most common production failure modes and how to guard against them before they reach downstream verification systems.

01

Interpretation Disguised as Fact

What to watch: The model classifies analyst judgments, assessments, or inferred implications as factual observations, especially when the source text uses confident or declarative language. This is the most common failure mode and directly undermines downstream verification accuracy. Guardrail: Add explicit negative examples in few-shot prompts showing confident interpretive language that must be classified as analysis. Include a secondary check instruction: 'If the statement cannot be verified against a primary source document without inference, classify it as interpretation.'

02

Boundary Collapse in Compound Sentences

What to watch: When a single sentence contains both a verifiable fact and an interpretive clause, the model often classifies the entire sentence as one type, losing the embedded fact or over-crediting the interpretation. This is especially common in intelligence briefings where facts and assessments are deliberately interwoven. Guardrail: Require clause-level decomposition before classification. Add a pre-processing step that splits compound sentences on subordinating conjunctions and transitional phrases. Test boundary precision with sentences like 'The convoy was observed at 1400 hours, suggesting a shift in supply routes.'

03

Confidence Miscalibration on Ambiguous Passages

What to watch: The model assigns high confidence to fact-interpretation classifications on passages that are genuinely ambiguous, even to human analysts. This creates a false sense of reliability that propagates through verification pipelines. Guardrail: Implement a confidence threshold that routes low-confidence classifications to human review. Add an explicit instruction: 'If the boundary between fact and interpretation is unclear, mark the passage as AMBIGUOUS and set confidence below 0.7.' Test against deliberately ambiguous content from adversarial blurring test sets.

04

Source Provenance Drift

What to watch: When extracting factual claims, the model drops or misattributes source provenance, making downstream evidence matching impossible. This is critical in intelligence workflows where source reliability is part of the assessment. Guardrail: Require source attribution as a required output field, not optional metadata. Add a validation check that rejects any factual claim without a source span reference. Include an instruction: 'Every factual observation must include the exact source passage it was extracted from. If no source can be cited, classify as interpretation.'

05

Temporal Context Stripping

What to watch: The model extracts factual claims but strips temporal qualifiers like 'as of,' 'previously,' or 'currently,' converting time-bound observations into timeless assertions that fail verification against time-windowed evidence. Guardrail: Add a temporal preservation rule: 'Preserve all temporal qualifiers, dates, and time references in extracted factual claims. If a fact is time-bound, include the temporal scope.' Test with claims containing relative time references and verify temporal context survives extraction.

06

Domain Taxonomy Mismatch

What to watch: A general-purpose fact-interpretation prompt misclassifies domain-specific statement types. For example, intelligence confidence assessments ('high confidence,' 'likely,' 'almost certainly') are classified as facts rather than analytical judgments with defined uncertainty scales. Guardrail: Adapt the classification taxonomy to domain-specific categories before deployment. For intelligence briefings, explicitly map intelligence community confidence levels to the interpretation category. Include domain-specific examples showing how 'assessed with high confidence' is an analytical judgment, not a fact.

IMPLEMENTATION TABLE

Evaluation Rubric

Criteria for testing whether the prompt reliably separates factual observations from analyst interpretation, confidence assessments, and inferred implications in intelligence briefings.

CriterionPass StandardFailure SignalTest Method

Factual Observation Extraction

All verifiable factual statements with source provenance are extracted into the [FACTS] array

Factual statements appear in [INTERPRETATIONS] or are missing from output entirely

Run against 10 annotated briefing excerpts; require recall ≥ 0.95 on human-labeled factual claims

Interpretation Classification

Analyst judgments, assessments, and inferences are classified as [INTERPRETATION] with confidence level attached

Interpretive statements misclassified as [FACT] without confidence qualifier

Spot-check 20 mixed passages; require precision ≥ 0.90 against expert labels

Source Provenance Attachment

Each [FACT] entry includes source document reference and paragraph span in [SOURCE_REF] field

Fact entries missing [SOURCE_REF] or citing wrong paragraph

Validate [SOURCE_REF] fields against ground-truth annotation spans; require exact match on 90% of entries

Confidence Assessment Separation

Analyst confidence statements (e.g., 'high confidence', 'likely', 'possible') are extracted into [CONFIDENCE] field, not merged into fact text

Confidence language embedded inside [FACT] text without separate extraction

Parse [CONFIDENCE] field presence for all interpretations; require non-null confidence on 100% of [INTERPRETATION] entries

Inferred Implication Flagging

Statements that derive new conclusions beyond direct reporting are flagged in [INFERRED] boolean field

Inferred implications marked as direct observations or missing [INFERRED] flag

Check [INFERRED] = true for 5 known inference examples; require 100% recall on inference detection

Boundary Precision for Mixed Sentences

Sentences containing both fact and interpretation are split with each portion assigned to correct category

Entire mixed sentence assigned to single category or split at wrong boundary

Test 15 mixed sentences; require boundary accuracy within ±5 words of human-annotated split point on 85% of cases

Empty Input Handling

Prompt returns empty [FACTS] and [INTERPRETATIONS] arrays with appropriate null reason when no extractable content exists

Model hallucinates facts or interpretations for empty or irrelevant input

Submit 5 empty or off-topic briefings; require empty arrays with non-null [NULL_REASON] on all runs

Adversarial Blurring Detection

Prompt flags passages where fact-interpretation boundary is intentionally obscured and assigns low confidence

Model confidently classifies deliberately ambiguous content as pure fact or pure interpretation

Test against 8 known adversarial blurring examples; require [CONFIDENCE] ≤ 0.5 or [FLAGGED_AMBIGUOUS] = true on all

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a frontier model (GPT-4o, Claude 3.5 Sonnet) and a single intelligence briefing document. Remove strict output schema requirements initially; accept a simple JSON array of objects with fact and interpretation fields. Focus on getting the separation logic right before adding confidence scores, source spans, or provenance chains.

Watch for

  • The model treating analyst assessments as facts when they use declarative language (e.g., 'The group will likely relocate' classified as fact rather than prediction)
  • Missing boundary cases where a single sentence contains both a verifiable observation and an interpretive clause
  • Overly broad classification that labels entire paragraphs instead of sentence-level or clause-level units
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.