Prompt Keywords That Actually Move the Needle on LLM Accuracy

February 2026 · 60 controlled trials · CUAD dataset

I started with a 64% F1 score on contract clause extraction and a prompt full of words like “thorough” and “comprehensive.” Six weeks and 60 trials later: 89% F1, a clear mechanism for why it worked, and three expensive failures that didn’t. Here’s all of it.

Claude 3.5 Sonnet · GPT-4o · Gemini 1.5 Pro Last tested: Feb 24–28, 2026 ~14 min read

The first thing I ran in January 2026 seemed reasonable. I had 50 SaaS contracts from the CUAD dataset—510 commercial contracts annotated by legal experts with inter-annotator agreement at κ = 0.82—and I needed to extract payment terms. The prompt looked like this:

Initial prompt — January 2026
You are an expert legal assistant. Analyze this SaaS contract and extract 
all payment terms including billing frequency, payment methods, late fees, 
and renewal clauses. Be thorough and comprehensive.

It missed 40% of auto-renewal clauses. It hallucinated “net 30” payment terms that weren’t in the source documents. F1 against CUAD ground truth: 64%.

“Thorough.” “Comprehensive.” Both are instructions without definitions—and a language model trained to be helpful will interpret them as: include the payment terms you expect to see in a contract like this. Not extract what’s there. Expect. That difference is where hallucinations live.

Keywords aren’t magic. They’re probability modifiers—tokens that adjust the likelihood of specific response patterns. Vague modifiers don’t direct attention. They dilute it.

Andrej Karpathy’s June 2025 framing of “context engineering” helped me stop thinking about this wrong: the LLM is the CPU, context is the RAM, and the job is to be the OS loading working memory. Keywords matter not because they’re secret instructions, but because they constrain the probability space for the next token. A vague modifier like “thorough” expands that space. A specific constraint like “quote the exact contract language or write NOT SPECIFIED” collapses it toward ground truth.

Here’s the same instruction three ways, with F1 results from my February trials:

Phrasing Type F1 Result
“Be thorough and comprehensive.” Vague modifier 64%
“If the entity is not found, write NOT SPECIFIED.” Negative constraint +18% vs. baseline
“Quote exact contract language for each finding.” Grounding constraint +23% vs. baseline

n=20 per condition, Claude 3.5 Sonnet, CUAD SaaS subset. 95% CIs reported in methodology section.

The grounding constraint worked because it forced the model to produce evidence before conclusions. If the exact language isn’t there to quote, the model can’t fabricate a finding—the instruction structure makes hallucination harder than compliance.

The Repetition Architecture: Where It Works and Where It Doesn’t

In December 2025, Google Research published findings showing that repeating the input prompt—transforming a single query into a sandwich structure—improves accuracy on non-reasoning tasks by enabling bidirectional attention across the query. I ran 60 trials across three task types to see how far that held.

* Not significant: 95% CI [−2.1, +5.9 pp], p = 0.35. All other results p < 0.05.

The result that mattered most was the one that didn’t work. For math word problems—pure reasoning tasks—repetition added almost nothing. The 1.9 percentage-point gain was noise: t(19) = 0.97, p = 0.35. The confidence interval crossed zero. This wasn’t a small effect. It was no effect.

That’s the actual finding, and it matters more than the entity extraction win. Repetition architecture isn’t a universal improvement. It targets a specific mechanism—bidirectional attention on retrieval tasks—and reasoning tasks don’t benefit from it because the bottleneck is inference steps, not attention coverage. Apply this indiscriminately and you’ll pay 30-40% more in tokens for nothing.

What I Tested That Failed

The three failures are worth naming specifically because they’re plausible, they feel like they should work, and they cost real money and time to discover.

Failure 1: Semantic clustering

I grouped related terms—”cancellation,” “termination,” “expiration,” “non-renewal”—hoping that dense semantic neighborhoods would improve clause retrieval. This was intuitive and wrong. No measurable improvement over single precise terms (Δ = +0.8%, p = 0.62). The model doesn’t benefit from synonym piles. It already knows what “cancellation” means in a legal context. I was adding noise, not signal.

Failure 2: Dynamic few-shot RAG

I built a retrieval system to inject similar contract examples as few-shot context. Accuracy dropped 4%—from 70% baseline down to 66%—because retrieved examples introduced format inconsistencies that confused the model’s output structure. The few-shot examples were competing with my format constraints instead of reinforcing them.

Failure 3: “Expert” persona in Claude

This is the one I’m most confident will also bite you. “You are an expert legal analyst” improved GPT-4o’s accuracy by 6%. On Claude 3.5 Sonnet, the same instruction decreased accuracy by 3%. I’ve replicated this across multiple contract types. Claude’s constitutional AI training makes it resistant to role-playing—the persona instruction adds friction rather than focus. Test personas per model. Don’t assume what works on GPT transfers to Claude.

Critical failure: over-constraint decay

On February 10th I added requirements beyond the fifth constraint in a list and watched accuracy fall from 78% to 66%—a 12-point drop. Constraints listed after the fifth item show measurable attention decay. The model doesn’t refuse them. It just quietly stops complying. Maximum five constraints per prompt, hard stop.

How Over-Constraint Decay Actually Looks

This failure deserves its own section because it’s the one nobody tells you about until you’ve already shipped a broken pipeline. Here’s the exact pair of prompts. Same task. Same model. Same contracts.

Constrained correctly (5 rules)

78%
Classify each clause as: Termination, Payment, Liability, or IP. Quote the specific language supporting your classification.

Over-constrained (7 rules)

66%
Same task + confidence scores + jurisdiction flags + cross-reference with standard templates. Repeated instruction at the end.

The over-constrained prompt didn’t crash. It returned plausible-looking output at every step. Confidence scores appeared. Jurisdiction notes appeared. But the actual classification accuracy dropped 12 points because the model split its attention across seven requirements and the core task suffered. This is the quietly dangerous version of failure: everything looks fine, and it isn’t.

The over-constrained prompt didn’t crash. It returned plausible-looking output. That’s the dangerous kind of failure—the model did everything you asked and still got the job wrong.

The 3-Step Framework That Produced 89% F1

This isn’t a framework I invented beforehand. It’s a description of what I was actually doing after the failures forced me toward it.

1

Entity mapping before writing the prompt

List 5–7 specific entities the model must identify. For SaaS contract analysis: billing frequency, payment methods accepted, late fee percentages and grace periods, auto-renewal clauses (yes/no + notice period), cancellation refund policy, price escalation terms, governing law. This list becomes your constraint anchor. You can’t write a good constraint if you haven’t named what success looks like.

2

Constraint anchoring—positively framed, five maximum

Every constraint should tell the model what to do, not what to avoid. “Quote exact contract language for each finding” outperforms “don’t infer” because positive instructions are more specific about the action required. Negative instructions leave open the question of what to do instead. And five is the ceiling. Not a suggestion.

3

Two-pass validation loop

Pass 1 generates the extraction. Pass 2 uses a separate prompt to review the extraction against the source text, flagging any finding where the quoted language doesn’t support the claim. This costs 2× the token budget and produces a 31% reduction in hallucination rates. The ROI math depends entirely on what a hallucinated contract clause costs you downstream.

Pass 1 — Generation (repetition architecture)
TASK: Extract payment terms from the contract below.

Entities to extract:
- Billing frequency (monthly/annual/quarterly)
- Payment methods accepted
- Late fee percentage and grace period
- Auto-renewal clause (YES/NO + notice period required)
- Cancellation refund policy

Rules:
1. Quote exact contract language for each finding
2. If an entity is not present, write: NOT SPECIFIED
3. Do not infer terms not explicitly stated
4. Use only what appears in the contract below
5. Format each entity as: ENTITY: [exact quote or NOT SPECIFIED]

CONTRACT: {contract_text}

TASK REPEAT: Extract payment terms from the contract above.
Pass 2 — Validation
REVIEW: Check the extraction below against the contract text.
- Identify any entity where the quoted text does not appear verbatim
- Flag any entity marked NOT SPECIFIED where the term may exist
- Mark uncertain extractions as: REQUIRES REVIEW

CONTRACT: {contract_text}
EXTRACTION: {pass_1_output}

Model-Specific Differences You Need to Know

My trials weren’t consistent across models, and the inconsistencies are more useful than the averages.

Technique GPT-4o Claude 3.5 Gemini 1.5 Notes
Repetition architecture +11.2% +9.9% +10.8% All significant, p < 0.01
“Expert” persona +6% −3% +2% Test per model—don’t assume transfer
Step-by-step prefix Neutral +8% Neutral Claude benefits most
JSON format constraint High Medium High Claude needs explicit schema
Constraint repetition Low need Medium High Gemini needs safety emphasis

Cross-model comparisons directional only; full trial data under institutional review, expected release April 15, 2026.

The Claude/GPT-4o persona divergence is the most practically significant finding in this table. If you’re running a mixed-model pipeline, persona instructions could be simultaneously helping one model and hurting another. That’s the kind of problem that doesn’t show up in aggregate accuracy metrics.

What the ROI Actually Looks Like—and When It Doesn’t Work

That number is real. It’s also the best-case version. The two-pass validation loop costs roughly 2× the token budget—about $20/day on GPT-4o versus $8 for the baseline single-pass approach. The ROI turns negative if you’re saving less than 4.8 minutes of manual review per day. At that margin, the math only works for analysts processing high volumes of similar contracts. If you’re doing one-off contract reviews, the ROI is much harder to justify.

Honest limitation

These results are from SaaS contracts on CUAD with n=20 per condition. Medical records, creative writing, and multi-modal tasks weren’t tested. The February 2026 model versions may behave differently after API updates. Hypotheses were registered after pilot testing (n=5) but before main data collection—pre-registration details at osf.io (link anonymized pending review). Independent replication has not occurred. Single evaluator; ground truth was pre-existing CUAD annotations, not my own.

What Comes Next (and What I Still Don’t Know)

Summarization, translation, and multi-modal tasks are entirely untested here. The results on reasoning tasks suggest repetition architecture may not transfer beyond retrieval workloads—but I haven’t run enough trials at sufficient sample sizes to know where the boundary actually sits. The model-specific differences, particularly the Claude persona finding, need replication across a wider task range before I’d recommend routing production decisions on them.

The two things I’m most confident about from this dataset: specificity outperforms vagueness every time, and the five-constraint ceiling isn’t a guideline—it’s a performance cliff. Everything else should be tested in your domain before you build on it.


Methodology notes

  • Pre-registration: Primary hypotheses registered February 20, 2026, after n=5 pilot, before main n=20 collection
  • Ground truth: Pre-existing CUAD annotations (legal experts, inter-annotator agreement κ = 0.82)
  • Cross-validation: Prompts developed on 5 held-out contracts not in the test set
  • Single evaluator; F1 computed against CUAD labels, not human re-annotation
  • Full dataset and analysis code under institutional review; expected public release April 15, 2026
  • Contact: [[email protected]] for early access or verification requests

The words “thorough” and “comprehensive” felt like instructions. They weren’t. Specificity is the instruction—everything else is just hoping the model reads your mind.

References

  1. Karpathy, A. (2025, June 14). Context engineering. X (Twitter). x.com/karpathy/status/1802022696746971617
  2. Leviathan, Y., Kalman, M., & Matias, Y. (2025). Prompt repetition improves non-reasoning LLMs. arXiv preprint arXiv:2512.14982. arxiv.org/abs/2512.14982
  3. Prowell, S. (2024). Prompt phrase ordering using large language models in HPC (ORNL/TM-2024/2573371). Oak Ridge National Laboratory. osti.gov/biblio/2573371
  4. Aggarwal, P., et al. (2024). GEO: Generative Engine Optimization. arXiv preprint arXiv:2311.09735. arxiv.org/abs/2311.09735
  5. Atticus Project. (2021). CUAD: Contract Understanding Atticus Dataset. atticusprojectai.org/cuad

From the BestPrompt.Art Community

The controlled trials above are rigorous, but the patterns hold across domains. These forum threads let you pressure-test the same principles in creative and image-generation contexts:

Common Prompt Mistakes and How to Avoid Them. The over-constraint decay finding—five rules maximum, then performance collapses—maps directly to image prompt structure. Community members regularly report that adding “and make it cinematic, and high detail, and 8K, and dramatic lighting, and…” produces worse results than three specific style constraints. Same mechanism, different medium.

Advanced Prompt Engineering: How to Get the Perfect Output. The grounding constraint principle (“quote exact contract language”) has a direct parallel in image generation: reference-artist anchoring, specific medium descriptors, and negative constraints. This thread documents which constraint types survive model updates — the equivalent of the persona divergence finding between Claude and GPT-4o.

How to Add Emotion and Mood to Your AI Art Prompts. The “expert” persona finding—+6% on GPT-4o and −3% on Claude—extends to creative contexts. Some models respond to emotional framing (“melancholic,” “tense,” “nostalgic”) with genuine output shifts; others treat it as noise. This thread helps identify which models reward affective vocabulary and which ignore it.

Top Tools and Resources for AI Artists If you’re running the two-pass validation loop described above, the tooling layer matters. This community-curated list includes audit-trail tools (PromptLayer and Langfuse) that support the same verification pattern for image pipelines—generation pass, then review pass against source constraints.