TL;DR
SAVER is a technique that intercepts a model’s reasoning before it turns into an answer and checks it for six specific kinds of logical violations. First the model generates several versions of its reasoning from different structural angles, then an opposing auditor checks each version against a concrete checklist of violations, and only reasoning that passes inspection makes it into the final answer.
The key finding: agreement among several answers does not mean the reasoning is correct. Ask a model for three versions of an answer and all three may contain the same logical flaw: the same hidden assumptions, the same circular arguments. Consensus isn’t verification — it’s confirmation of a shared blind spot. And the final answer can be right while the reasoning behind it is wrong. That goes unnoticed on easy tasks and becomes dangerous on hard ones, where the reasoning gets reused downstream.
The method tackles this with an audit by specific violation types — not a vague “check yourself,” but a precise list: circular logic, hidden assumptions, unjustified inferences, contradictions and more. Once a violation is found, the fix is minimal: only the broken step gets repaired, not the whole chain of reasoning.
Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.
Method Blueprint
STEP 1: GENERATION — one prompt
The model reasons from 3-4 different structural angles:
"assumption → conclusion", "fact → hypothesis", "skeptic", "analyst"
→ 3-4 reasoning variants
STEP 2: SELECTION — inside the same prompt / a separate request
We do NOT pick "the ones that agree with each other"
We pick "the ones that differ most in structure"
→ 2 different candidates
STEP 3: AUDIT — a separate request per candidate
Check against 6 violation types (list below)
→ a list of specific violations, each tied to a step
STEP 4: REPAIR — minimal edits to the broken steps
Only the damaged steps → don't regenerate everything
→ repaired reasoning
STEP 5: CHOICE — pick the candidate with no violations or the fewest
→ final answer with verified reasoning
All the steps can be packed into one long prompt — the model will run the cycle on its own.
Example in Action
Task: Daniel Brooks, a media manager with stints at Axios and Morning Brew, is considering launching a paid Substack newsletter. He wants to know whether his argument for monetizing his audience actually holds up or is full of holes.
Prompt:
I want to check the logic behind my decision: launching a paid subscription
to my newsletter at $5/month. My argument:
“I have 12,000 subscribers, and 5% of them will definitely pay — that's 600 people
and $3,000 a month. My subscribers are active, so they're loyal,
so they'll pay. Similar newsletters pull in about the same.”
Do the following:
**STEP 1. Three versions of the analysis:**
Analyze my logic from three angles:
— Angle A: "assumption-centric" — look for hidden assumptions
I've taken as a given
— Angle B: "evidence-centric" — look for where the conclusion doesn't follow
from the facts given
— Angle C: "skeptical" — look for where I generalize without grounds
**STEP 2. Audit by violation type:**
For each version, check against this checklist:
□ Circular_Reasoning — the conclusion is already contained in the premise
□ Missing_Assumption — I used an assumption without stating it
□ Unjustified_Inference — the conclusion doesn't follow from the data given
□ Invalid_Precondition — a condition is wrong or doesn't apply here
□ Contradiction — two statements contradict each other
□ Overgeneralization — a specific case extended to everything
For each violation give: TYPE — STEPS — WHY IT'S A VIOLATION
**STEP 3. Minimal repair:**
For each violation found, propose a minimal fix
to that step only. Don't rewrite the whole logic — just what's broken.
**STEP 4. Bottom line:**
A repaired version of the argument with no violations.
Result:
The model will show three parallel analyses from different angles. Each has a list of violations with type, step and explanation. It will most likely find Circular_Reasoning in the “active → loyal → will pay” chain and a Missing_Assumption in the 5% figure. The repair block contains targeted fixes to just those steps. At the end you get the same argument, but without logical holes — or with an explicit list of which assumptions need checking before you decide.
Why It Works
LLMs are bad at checking themselves “in general.” A “check your reasoning” request works poorly — the model confirms what it already said. It’s like asking someone “are you sure?” — they’ll most likely say “yes.” No specific criterion → no specific check.
But LLMs are good at hunting for a specific pattern. Give it a precise list — “find circular logic, find an unjustified inference, find a hidden assumption” — and it becomes a pattern-matching task. The model generates text following a search pattern rather than a confirmation pattern.
The minimal-repair principle guards against a different error: when you regenerate reasoning from scratch, you strip out not only the violations but also the parts that were correct. Fixing only what’s broken means keeping what worked.
Control knobs:
- Number of personas (3-4) → fewer for quick checks, more when the stakes are high
- Violation list → can be trimmed to the 2-3 most relevant for your task
- “Minimal repair” → swap for “rewrite the whole step” if you need a cleaner result
- Iteration → add “repeat the audit after the repair” for critical decisions
Prompt Template
Check the logic of the following reasoning or decision:
{reasoning_or_argument}
**STEP 1. Three versions of the analysis:**
Analyze from three angles:
— Angle A: "assumption-centric" — look for hidden assumptions
— Angle B: "evidence-centric" — look for where the conclusion doesn't follow from the facts
— Angle C: "skeptical" — look for unjustified generalizations
**STEP 2. Audit by violation type:**
For each version, check:
□ Circular_Reasoning — the conclusion is already contained in the premise
□ Missing_Assumption — a hidden assumption accepted without justification
□ Unjustified_Inference — the conclusion doesn't follow from the data
□ Invalid_Precondition — a condition is wrong or doesn't apply
□ Contradiction — two statements contradict each other
□ Overgeneralization — a specific case extended to everything
Format: VIOLATION TYPE → WHERE EXACTLY → WHY IT'S A VIOLATION
**STEP 3. Minimal repair:**
For each violation — a targeted fix to that step only.
Don't rewrite what works.
**STEP 4. Bottom line:**
Repaired version: {reasoning_goal} without the violations found.
Placeholders:
- {reasoning_or_argument} — the logic of a decision, a plan, arguments for/against, a thesis
- {reasoning_goal} — what should come out the other end (a decision, an argument, a plan)
🚀 Quick start — paste into the chat:
Here is the SAVER template for checking the logic of reasoning.
Adapt it to my task: {your task}.
Ask me questions to fill in the fields.
[paste the template above]
The LLM will ask which reasoning needs checking and what the end result should be — because the audit needs to know the evaluation criterion and the source material to analyze.
Limitations
⚠️ Subjective judgments: The method works on logic and evidence. For questions of taste, style or values (“this design is beautiful,” “this is the right life choice”), the audit gives weak results.
⚠️ Simple tasks: On easy questions SAVER is overkill — it creates process with no payoff. The method is for tasks where a logical error is costly: strategic decisions, complex analysis, multi-step conclusions.
⚠️ The auditor can be wrong too: The model is checking its own reasoning. On very hard tasks the auditor may miss what the generator missed — a systemic blind spot doesn’t disappear completely.
⚠️ Tokens: The full cycle — generation + audit + repair — is a long prompt. With models that have a short context window, it’s better to split the full cycle into separate requests.
Resources
Verify Before You Commit: Towards Faithful Reasoning in LLM Agents via Self-Auditing Wenhao Yuan, Chenchen Lin, Jian Chen, Jinfeng Xu, Xuehe Wang, Edith Cheuk Han Ngai The University of Hong Kong, Sun Yat-sen University Contact: [email protected]