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.
Prompt
Intelligence Briefing Fact-Interpretation Extraction Prompt

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.
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.
Use Case Fit
Where the Intelligence Briefing Fact-Interpretation Extraction Prompt works, where it fails, and the operational prerequisites for production use.
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.
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.
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.
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.
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.
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.
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.
textYou 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.
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.
| Placeholder | Purpose | Example | Validation 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. |
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.
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.
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.'
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.'
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.
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.'
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.
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.
Evaluation Rubric
Criteria for testing whether the prompt reliably separates factual observations from analyst interpretation, confidence assessments, and inferred implications in intelligence briefings.
| Criterion | Pass Standard | Failure Signal | Test 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 |
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
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

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