This prompt is designed for legal review teams and litigation support engineers who need to programmatically separate asserted facts from legal argument, characterization, and rhetorical framing within briefs and filings. The core job-to-be-done is transforming a dense, persuasive legal document into a structured artifact where every sentence is classified as a 'Fact' (a verifiable statement with a record citation), an 'Argument' (a legal conclusion, characterization, or persuasive framing), or 'Mixed' (a sentence containing both). The ideal user is a technical operator building a verification or case-preparation pipeline, not a lawyer performing a one-off manual review. Required context includes the full text of the legal brief and, critically, the associated record citations or an instruction to flag facts that lack them.
Prompt
Legal Brief Fact vs Argument Extraction Prompt

When to Use This Prompt
Define the job, the ideal user, and the operational constraints for deploying a legal fact vs. argument extraction prompt.
Do not use this prompt when the goal is to summarize a brief, predict a judicial outcome, or provide legal advice. It is strictly an extraction and classification tool. It is also inappropriate for documents where the record is not yet established, such as initial complaints drafted entirely on information and belief, because the distinction between a 'fact' and an 'allegation' becomes a matter of procedural posture rather than textual structure. For high-stakes filings, the output of this prompt must be treated as a first-pass draft for human review, not a final work product. A legal professional must validate the classification of every 'Mixed' sentence and confirm that no argumentative characterizations were mislabeled as facts.
Before integrating this prompt into a production system, define your tolerance for two specific failure modes: false positives (argument labeled as fact) and false negatives (fact labeled as argument). In legal workflows, a false positive is often more dangerous, as it can lead to an argument being mistakenly treated as an established fact in downstream analysis. Your evaluation harness should weigh recall on fact extraction against precision on argument exclusion, and you should implement a human-in-the-loop review step for all 'Mixed' classifications and any fact statement that lacks an explicit record citation. Proceed to the prompt template section to copy the base instruction and adapt the placeholders to your document type and output schema.
Use Case Fit
Where the Legal Brief Fact vs Argument Extraction Prompt works, where it fails, and what you must provide before using it in a production legal review pipeline.
Good Fit: Structured Legal Filings
Use when: processing briefs, motions, and filings with explicit record citations and defined legal standards. The prompt excels at separating asserted facts from legal characterization when documents follow predictable rhetorical structures. Guardrail: Validate output against the original filing's table of authorities and statement of facts sections to confirm citation accuracy.
Bad Fit: Oral Arguments and Depositions
Avoid when: processing transcripts where speakers blend factual assertions with argument in real time without clear structural markers. The prompt's sentence-level classification logic degrades on conversational legal discourse. Guardrail: Route deposition and hearing transcripts through a separate discourse-aware extraction prompt before applying fact-argument separation.
Required Input: Record Citations
Risk: Without explicit record citations in the source text, the prompt cannot reliably anchor extracted facts to the evidentiary record. Facts become unverifiable assertions. Guardrail: Only apply this prompt to filings that cite to the record. For filings without citations, flag all extracted facts as 'citation needed' and route for manual record mapping.
Required Input: Jurisdictional Context
Risk: The prompt does not know which legal standard applies. Facts relevant under one standard may be argument under another. Guardrail: Provide the applicable legal standard and jurisdiction as a [CONTEXT] variable. For multi-standard filings, run separate extractions per claim type and reconcile overlaps.
Operational Risk: Embedded Facts in Argument
Risk: The highest failure mode is missing factual assertions embedded within argumentative sentences. The prompt may classify the entire sentence as argument and drop the embedded fact. Guardrail: Add a secondary extraction pass that scans argument-classified sentences for embedded factual claims. Route split-sentence cases to human review until precision exceeds threshold.
Operational Risk: Characterization Drift
Risk: Legal writers characterize facts through word choice. The prompt may accept characterized facts as neutral assertions, importing the brief's framing into your fact set. Guardrail: Run a characterization-detection pass on extracted facts. Flag adjectives, adverbs, and nominalizations that carry legal weight. Compare against the record citation directly when available.
Copy-Ready Prompt Template
A reusable prompt template for extracting factual assertions and legal arguments from briefs, with placeholders for input text, output schema, and constraints.
This template is designed to be copied directly into your prompt library or orchestration layer. It instructs the model to separate asserted facts from legal argument, characterization, and rhetorical framing within a provided legal brief. The prompt uses square-bracket placeholders for all variable components—input text, output schema, constraints, and examples—so you can wire it into a production pipeline without manual rewriting. The core instruction forces the model to output only fact statements with record citations and argument passages flagged separately, never blending the two.
textYou are an expert legal analyst. Your task is to process the provided legal brief and separate every sentence into one of two categories: (1) Asserted Fact, or (2) Legal Argument, Characterization, or Rhetorical Framing. For each sentence in the brief, apply these rules: - An Asserted Fact is a statement that can be verified against a court record, document, witness statement, or physical evidence. It must be capable of being true or false independent of legal interpretation. - Legal Argument, Characterization, or Rhetorical Framing includes any statement that applies law to facts, characterizes evidence, draws inferences, uses persuasive language, or frames facts to support a legal conclusion. - If a single sentence contains both a factual assertion and argumentative language, extract the factual core as an Asserted Fact and flag the remainder as Argument. Do not discard embedded facts. - For every Asserted Fact, provide the most specific record citation available in the text. If no citation is present, note "No citation provided." [INPUT] [CONSTRAINTS] [EXAMPLES] [OUTPUT_SCHEMA]
To adapt this template for your workflow, replace each placeholder with concrete values. [INPUT] should contain the full text of the legal brief. [CONSTRAINTS] can specify jurisdiction-specific rules, page limits, or additional classification categories like 'Procedural Statement' or 'Mixed.' [EXAMPLES] should include 2–3 few-shot demonstrations showing correctly classified sentences, especially edge cases where facts are embedded in argumentative sentences. [OUTPUT_SCHEMA] must define the exact JSON structure you expect—typically an array of objects with fields for sentence_text, classification, extracted_fact (if applicable), citation, and rationale. In high-stakes legal workflows, always route outputs with low-confidence classifications or missing citations to a human reviewer before the extracted facts enter any downstream verification or filing system.
Prompt Variables
Required inputs for the Legal Brief Fact vs Argument 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 |
|---|---|---|---|
[LEGAL_BRIEF_TEXT] | The full text of the legal brief, filing, or motion to be analyzed | Plaintiff respectfully submits that the record evidence establishes three undisputed facts. First, the contract was executed on March 14, 2022. Second, Defendant received the shipment on March 17, 2022. Third, no payment was remitted within the 30-day window required by Section 4.2. Defendant's characterization of the delay as 'administrative oversight' is not supported by the correspondence record. | Must be non-empty string. Minimum 200 characters recommended for meaningful extraction. Check for truncated text or missing exhibit references before processing. |
[CASE_CITATION_FORMAT] | The legal citation style required for record references in extracted facts | Bluebook, ALWD, or court-specific format as specified in local rules | Must match one of the supported citation formats: Bluebook, ALWD, California Style Manual, or custom template. Validate against court requirements before extraction. Mismatch causes downstream citation rejection. |
[RECORD_SOURCE_MAP] | Mapping of shorthand record references to full source descriptions for citation generation | {"R. 42": "Record at 42 (Deposition of J. Smith, Jan 15, 2024)", "Ex. A": "Exhibit A (Contract for Services, executed March 14, 2022)", "Tr. 89:12-15": "Trial Transcript at 89, lines 12-15"} | Must be valid JSON object with string keys and string values. Each key must appear in the brief text. Missing mappings cause citation failures. Validate completeness by scanning brief for all record references and confirming map coverage. |
[JURISDICTION] | The court or tribunal jurisdiction for applying correct evidentiary standards and terminology | U.S. District Court for the District of Delaware, International Court of Arbitration, or USPTO Patent Trial and Appeal Board | Must be a recognized jurisdiction identifier. Controls terminology for 'fact' vs 'finding' and evidentiary standard language. Null allowed if jurisdiction-agnostic extraction is intended, but reduces precision on procedural fact classification. |
[OUTPUT_SCHEMA] | The expected structure for extracted facts and argument passages | {"facts": [{"statement": string, "record_citation": string, "confidence": float}], "arguments": [{"passage": string, "argument_type": string, "characterization_flag": boolean}], "mixed_passages": [{"text": string, "fact_portion": string, "argument_portion": string, "boundary_rationale": string}]} | Must be valid JSON Schema or example structure. Validate that schema includes fields for facts, arguments, and mixed passages. Missing mixed_passages field causes silent failure on embedded fact detection. |
[ARGUMENT_CLASSIFICATION_TAXONOMY] | Taxonomy of argument types for consistent classification of non-factual passages | ["legal_characterization", "rhetorical_framing", "inference_from_evidence", "policy_argument", "procedural_objection", "credibility_challenge"] | Must be a non-empty array of strings. Each type must be mutually exclusive in practice. Validate against brief type: appellate briefs may need additional categories like 'standard_of_review_argument'. Custom taxonomies require eval retesting. |
[CONFIDENCE_THRESHOLD] | Minimum confidence score for auto-classifying a statement as fact vs argument without human review routing | 0.85 | Must be float between 0.0 and 1.0. Statements below threshold route to human review queue. Validate against historical inter-annotator agreement rates. Setting below 0.75 increases false classification risk. Setting above 0.95 increases unnecessary human review volume. |
Implementation Harness Notes
How to wire the Legal Brief Fact vs Argument Extraction Prompt into a reliable application workflow.
This prompt is designed to be a single step within a larger legal document processing pipeline. It should not operate in isolation. The application layer must manage document ingestion, chunking, and output aggregation. Because legal briefs often exceed typical context windows, you must implement a pre-processing step that splits the brief into manageable sections (by heading, argument section, or page range) while preserving citation anchors. Each chunk is then processed independently through the prompt, and the results are merged in a post-processing step that deduplicates fact statements and aligns argument passages with their original document positions.
The implementation harness must enforce strict output validation before any extracted content is accepted. Validate that every fact statement includes a non-empty record_citation field and that the fact_text is a self-contained, atomic assertion. Argument passages must include both argument_text and argument_type classifications. Implement a retry loop with a maximum of two attempts: if the model returns malformed JSON or fails to separate facts from arguments, re-inject the raw output and the original chunk into the prompt with a specific error directive (e.g., 'The previous output failed schema validation. Ensure every fact has a citation and every argument has a type.'). After two failures, flag the chunk for human review rather than silently dropping it. Log every extraction attempt, including the model version, chunk identifier, validation errors, and retry count, to support audit trails and prompt debugging.
Model choice matters for this workflow. Use a model with strong legal reasoning and structured output capabilities, such as Claude 3.5 Sonnet or GPT-4o, and set the temperature to 0 or a very low value (0.1) to maximize extraction consistency. Do not use this prompt with small or general-purpose models that lack the capacity to distinguish legal argument from factual assertion. For high-stakes filings, route all outputs to a human review queue where a legal professional can confirm fact-argument boundaries before the extracted data is used in downstream analysis or case strategy. Avoid treating the model's classification as ground truth; it is a first-pass triage tool that accelerates human review, not a replacement for legal judgment.
Common Failure Modes
Legal briefs are adversarial by nature. The model will struggle most where the drafter intentionally blurs facts and argument. These are the most common production failure modes and how to guard against them.
Argument Disguised as Fact
What to watch: The model accepts a sentence structured as a factual declaration ('The defendant failed to exercise reasonable care') when it is actually a legal conclusion requiring judgment. Guardrail: Add a constraint that any statement whose truth depends on a legal standard, reasonableness test, or statutory interpretation must be classified as argument, regardless of its grammatical form.
Citation Contamination
What to watch: The model classifies a statement as fact solely because it is followed by a record citation, even when the cited source does not actually support the asserted fact. Guardrail: Implement a two-pass check: first classify the statement type ignoring citations, then verify that any citation attached to a 'fact' label actually supports the specific assertion rather than a related point.
Characterization Leakage
What to watch: Adverbs and adjectives ('clearly', 'obviously', 'egregious', 'systematic') leak argumentative characterization into otherwise factual sentences, and the model misses them. Guardrail: Add a pre-processing step that flags sentences containing subjective intensifiers or legal-characterization adjectives and routes them to a higher-scrutiny classification path with explicit rationale required.
Embedded Fact Blindness
What to watch: A verifiable factual assertion is embedded inside a larger argumentative sentence, and the model classifies the entire sentence as argument, losing the extractable fact. Guardrail: Require the model to decompose compound sentences and extract atomic claims before classification. Test with sentences like 'Because the witness was in the room at 3:00 PM, her testimony is unreliable.'
Procedural History Confusion
What to watch: The model treats procedural history statements ('The court granted summary judgment') as argument about the merits rather than as verifiable procedural facts. Guardrail: Include a specific classification category for procedural facts with examples drawn from docket entries, and test against briefs that use procedural history to frame substantive arguments.
Quotation Context Stripping
What to watch: The model classifies a quoted passage as fact because the original source was factual, ignoring that the brief selectively quotes or re-contextualizes the passage to serve an argument. Guardrail: When a sentence contains a quotation, require the model to assess whether the quoting sentence itself adds interpretive framing, and flag any quotation where the surrounding text changes its import.
Evaluation Rubric
Criteria for testing the quality of extracted facts and arguments before integrating this prompt into a production verification pipeline.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Fact Atomicity | Each extracted fact is a single, self-contained verifiable statement with one subject-predicate-object core | Output contains compound sentences with multiple claims joined by 'and' or 'but' | Parse output into sentences; flag any fact entry containing more than one independent clause |
Argument Boundary Precision | Argument passages exclude purely factual statements and vice versa; no overlap in extracted spans | Same sentence or clause appears in both fact and argument output lists | Diff the fact and argument text spans; assert intersection is empty |
Record Citation Presence | Every extracted fact includes a non-empty [RECORD_CITATION] field referencing a specific document, page, or paragraph | Fact entry has null, empty string, or generic reference like 'the record' without location data | Schema validation check: [RECORD_CITATION] field is required, non-null, and matches a citation pattern |
Embedded Fact Detection | Factual assertions embedded within argumentative sentences are extracted as separate fact entries with their own citations | A sentence classified entirely as argument contains a verifiable factual claim that does not appear in the fact list | Human review of 20 borderline sentences; measure recall of embedded facts against expert annotations |
Characterization Flagging | All argument passages containing legal characterization language are tagged with [CHARACTERIZATION_FLAG] = true | Argument passage uses characterizing terms like 'frivolous', 'bad faith', or 'clearly established' but flag is false or missing | Keyword trigger list scan on argument output; assert [CHARACTERIZATION_FLAG] matches for any passage containing characterization terms |
Rhetorical Framing Separation | Rhetorical questions, hyperbole, and persuasive framing are classified as argument, not fact | Rhetorical question or obvious hyperbole appears in the fact output list | Spot-check fact list for sentences ending in question marks or containing superlative absolutes; flag any matches |
Null Handling for Ambiguous Passages | Sentences where fact-argument boundary is genuinely ambiguous are placed in a separate [AMBIGUOUS] list with a confidence score below threshold | Ambiguous sentence is forced into either fact or argument list with high confidence | Check that [AMBIGUOUS] list is populated when model confidence < 0.7; verify no low-confidence items appear in primary lists |
Output Schema Compliance | Output is valid JSON matching the [OUTPUT_SCHEMA] exactly with all required fields present and correctly typed | JSON parse fails, required fields are missing, or field types are wrong | Automated schema validation against the defined JSON Schema; assert no validation errors |
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 single model call and lighter validation. Remove strict output schema requirements initially. Focus on getting the fact-vs-argument boundary right before adding citation formatting.
codeExtract all factual assertions from [LEGAL_BRIEF_TEXT]. For each fact, include the sentence it appears in. Separately list all legal arguments, characterizations, and rhetorical statements.
Watch for
- Facts embedded within argumentative sentences being missed
- Legal conclusions misclassified as facts (e.g., 'the defendant acted negligently')
- Record citations being treated as facts rather than references
- Inconsistent boundary drawing between factual recitation and legal characterization

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