Apply to my task
arXiv:2604.25665 ★ 83 Apr 28, 2026

LLM-ReSum: A Summary the Model Grades and Improves Itself Until It's Good Enough

Key result

Asking a model to "improve the summary" is nearly useless. It doesn't know what exactly is wrong and rewrites at random. LLM-ReSum lets you iteratively improve a summary to the quality you need through explicit self-feedback, with no manual editing and no guesswork. The method splits generation and critique into two separate steps: draft → self-assessment on four criteria (1–5 with a justification) → targeted revision of the weak spots. The loop repeats up to 3 times, until every criterion reaches the threshold. The model finds what it missed on its own and fixes exactly that, without rewriting the good parts.

01

TL;DR

LLM-ReSum is a three-step loop technique: first the model writes a draft summary, then it grades that summary on four criteria (accuracy, completeness, clarity, overall quality) with concrete explanations, then it fixes the weak spots based on that grading. The loop repeats up to 3 times or until every criterion reaches the quality threshold.

When you ask a model to "summarize this," it delivers in one shot whatever it thinks fits. There's no feedback mechanism: it doesn't know what came out badly. The usual result is text that's technically correct but skips key details in places and "fills in" for the source in others. Asking it to "improve this" doesn't help much either, because it's unclear by which criteria to improve.

LLM-ReSum solves this through model self-assessment against specific criteria. The model looks at what it did, scores itself with a justification, and fixes precisely the weak dimensions: not rewriting everything from scratch but correcting specific problems.

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.

02

Method Blueprint

Everything happens in one chat, three requests in a row:

STEP 1 — Draft summary
  Request: "Summarize the document {document}"
  → An initial summary text

STEP 2 — Self-assessment
  Request: "Grade this summary on 4 criteria (1-5)
           + explain each score"
  → Scores for each criterion + concrete explanations

STEP 3 — Revision (if any criterion is < 4)
  Request: "Rewrite the summary, fixing the problems
           in the criteria scored below 4"
  → Improved text

Repeat steps 2-3 up to 3 times OR until all criteria score ≥ 4
If it doesn't converge, return the version with the best minimum scores
03

Example

Task: Ethan is head of product at a fintech startup. An investor sent over a 40-page due diligence report on a competitor. He needs to get the gist across to the team in a 10-minute meeting: a dense summary with nothing important lost.

Prompt (3 sequential requests):

── REQUEST 1 ──
Summarize the following document.
Cover the key facts, conclusions and recommendations.

[report text]

── REQUEST 2 ──
Grade your summary above on four criteria.
For each, give a number from 1 to 5 and an explanation:

1. ACCURACY: are all facts from the original reflected
   correctly? any distortions or assumptions?

2. COMPLETENESS: are all the key ideas, data
   and conclusions from the document covered?

3. CLARITY: is it clear to someone
   who hasn't read the original?

4. OVERALL QUALITY: how well does the summary
   convey the essence of the document as a whole?

Format: [criterion] — [score/5] — [explanation]

── REQUEST 3 ──
Here is the original document and the current summary with scores.

Rewrite the summary, fixing the specific problems
in the criteria scored below 4.
Don't rewrite what's already good.
Focus only on the weak spots.

Result:

The model will show a draft, then an honest self-assessment like "Completeness — 3/5 — skipped the market-share section and didn't mention the key regulatory risk." Then in the third request it will fill in exactly the missing parts. The final summary will be denser and less "hand-wavy" than the first draft.

04

Why It Works

By default, LLMs are bad at self-criticism. When you give a task, the model optimizes for "give a good answer," not "give an honest assessment of my answer." Self-criticism isn't built into an ordinary request.

But models are good at grading against specific criteria. That's a different task: not generating, but checking. When you explicitly set the dimensions (accuracy, completeness, clarity) and ask it to justify each score, the model finds real problems instead of inventing praise.

The loop works because the grade becomes an instruction. Instead of an abstract "improve the text," you get a concrete "here's exactly what's wrong and why." That sharply narrows the room for edits. The model doesn't rewrite the good parts or guess what to improve; it fixes documented problems.

Control levers: - Quality threshold (≥ 4 out of 5) — lower it to 3 if draft quality is good enough. Saves requests - Maximum of 3 iterations — this guards against "semantic drift." After 3 edits the text starts losing touch with the original - 4 criteria — you can cut down to the 2-3 that matter most for your task (for example, just accuracy and completeness) - Grading output format — ask it to add concrete examples of problems with quotes from the text → revisions get more precise

05

Prompt Template

── STEP 1: DRAFT ──

Summarize the following {document_type}.
Cover the key facts, conclusions and {what_matters_for_the_task}.

{text}

── STEP 2: SELF-ASSESSMENT ──

Grade your summary on {number_of_criteria} criteria (1-5).
For each, give a score and a concrete explanation:

{criterion_1}: {criterion_definition}
{criterion_2}: {criterion_definition}
{criterion_3}: {criterion_definition}
{criterion_4}: {criterion_definition}

Format: [criterion] — [score/5] — [what exactly is wrong]

── STEP 3: REVISION ──

Here is the source document and the summary with scores.
Rewrite the summary, fixing the problems in the criteria
scored below {threshold}.
Don't touch anything that scored {threshold} or higher.

What to fill in: - {document_type} — "contract," "research paper," "investment memo" - {what_matters_for_the_task} — "risks and terms," "methodology and conclusions," "key metrics" - {criterion_N} — the four from the study (accuracy, completeness, clarity, overall quality) or your own - {criterion_definition} — a short explanation of what to check - {threshold} — 4 is recommended; 3 is fine for quick tasks


🚀 Quick start — paste into the chat:

Here is the LLM-ReSum template: iterative improvement
of a summary through self-assessment. Adapt it to my task:
{your task}. Ask questions to fill in the fields.

[paste the template above]

The LLM will ask which document needs summarizing and which criteria matter, because without that it doesn't know what to base the grading on.

06

Limitations

⚠️ Long documents: With very long texts (20K+ words) the model can lose the thread by the third iteration. Split the document into meaningful chunks and run the method on each part.

⚠️ Subjective criteria: The method works better for verifiable criteria (factual accuracy, coverage) than for matters of taste (style, tone of voice). "Clarity" is already borderline.

⚠️ Hallucinations during iterations: Every revision carries a risk of "filling in the blanks." The 3-iteration cap isn't arbitrary; it's a safeguard. Don't lift it.

⚠️ Self-assessment ≠ objective assessment: The model may inflate its scores. If the result seems too easy, add "be critical; don't give 4-5 without real grounds" to the prompt.

07

How They Tested It

A team from the University of North Texas started with a diagnosis: they took 14 popular evaluation metrics (ROUGE, BLEU, BERTScore and others) and checked how well they agree with real people's judgments. To do that they assembled 7 datasets from 5 different domains, from short news items to 27,000-word research papers and government documents, with 1500+ human ratings.

The verdict was blunt: ROUGE and BLEU correlate with humans weakly or even negatively. In other words, a high ROUGE score doesn't mean a person will find the summary good. This is especially noticeable for LLM summaries: people prefer fresh phrasing, and ROUGE punishes it for "differing from the reference."

Then they tested LLMs as graders, and models as judges work significantly better than traditional metrics, especially for language quality. An interesting effect: multi-agent grading (several different LLMs grade independently, then the scores are aggregated) is more stable than a single agent, the same mechanism as with several human experts.

The final test of LLM-ReSum ran across three domains. The iterative loop improved accuracy by up to 33% and completeness by up to 39%. In blind comparisons, people preferred the processed summaries in 89% of cases. Importantly, all of this happened without fine-tuning the model: just prompts and loops.

08

Original Text from the Paper

The researchers described the LLM-ReSum algorithm as pseudocode. Here's the exact logic:

Input: Document D, functions f_sum, f_eval, f_refine
       Quality threshold τ, Max iterations T_max
Output: Enhanced summary S*

S[0] ← f_sum(D)          // Generate a draft summary
t ← 0

while t < T_max do:
  q[t], r[t] ← f_eval(D, S[t])   // Evaluate: scores + rationales

  if min(q[t]) ≥ τ then
    return S[t]           // All criteria above threshold: done

  I ← {i | q[t][i] < τ}  // Find the weak dimensions
  F[t] ← feedback({q[t][i], r[t][i]} for i in I)  // Build the feedback
  S[t+1] ← f_refine(D, F[t])  // Refine based on the feedback
  t ← t + 1

return argmax_t' min_i(q[t'][i])  // Return the best version

Context: The researchers ran this through an API, but the logic itself (three kinds of prompts: generation, grading, revision, plus a threshold-based exit condition) can be reproduced by hand in an ordinary chat.

09

Adaptations and Extrapolations

💡 Adaptation for checking any text (not just summaries):

The same loop works for grading and refining a sales proposal, an article, a letter to an investor, a technical spec. Only the criteria change to fit the task.

── GRADING ──

Grade the following {text_type} on these criteria (1-5):

PERSUASIVENESS: how strongly does the text prompt action?
SPECIFICITY: are there facts, numbers, examples?
NO FLUFF: are there unnecessary words that carry no meaning?

For each, give a score and what exactly is wrong.

── REVISION ──

Rewrite the weak spots (score below 4)
without touching what already works.

🔧 Technique: add a step that visualizes the scores

After the self-assessment, ask the model to output the scores as a table. That way the pattern jumps out: which criterion consistently sags across different documents.

After grading, output a table:
| Criterion | Iteration 1 | Iteration 2 | Iteration 3 |
|-----------|-------------|-------------|-------------|
| ...       |             |             |             |

If "Completeness" is always 2-3, your generation prompt compresses too hard. Time to rewrite step one.


🔧 Technique: name the reason for every edit explicitly

In the revision step, add the instruction "for each change, write in parentheses which problem from the grading it fixes." That makes the edits traceable: you can see the link between diagnosis and treatment.

10

Resources

Paper: LLM-ReSum: A Framework for LLM Reflective Summarization through Self-Evaluation (2024)

Authors: Huyen Nguyen (Cigna Group / Evernorth Health Services), Haoxuan Zhang, Yang Zhang, Haihua Chen, Junhua Ding — University of North Texas

Benchmark: PatentSumEval, an annotated dataset for evaluating summaries of patent documents

Evaluation platform: APPEN (https://client.appen.com)

Metrics mentioned: ROUGE, BLEU, BERTScore, MoverScore, SummaC, QuestEval

Research digest

Key result

Asking a model to "improve the summary" is nearly useless. It doesn't know what exactly is wrong and rewrites at random. LLM-ReSum lets you iteratively improve a summary to the quality you need through explicit self-feedback, with no manual editing and no guesswork. The method splits generation and critique into two separate steps: draft → self-assessment on four criteria (1–5 with a justification) → targeted revision of the weak spots. The loop repeats up to 3 times, until every criterion reaches the threshold. The model finds what it missed on its own and fixes exactly that, without rewriting the good parts.

Principle

For a model, generating and grading are different modes of work. In generation mode it optimizes for "give a good answer." In grading mode it checks against given dimensions. Spell out four criteria and the model switches into auditor mode instead of author mode. It finds real problems ("skipped the market-share section," "paraphrased the conclusion inaccurately") instead of boilerplate praise. A score with a justification becomes a precise instruction for revision. Instead of a vague "improve it," you get a concrete "Completeness — 3/5 — the risks section is missing."

Why it works

By default an LLM optimizes for "give a good answer," not "grade honestly." Those are different tasks, and the model doesn't mix them. When you provide specific criteria and require a justification for each score, it can't get away with a generic "looks good." A score with a justification turns into a precise instruction for revision, and the task narrows sharply. Instead of guessing what to improve, there's a list of documented problems. The 3-iteration cap isn't arbitrary: after the third edit the text starts losing touch with the original and "embellishments" creep in. It's a protective ceiling, not a suggestion.

When to apply

Summarizing long documents → especially contracts, investment reports and research papers, when you can't miss a single key fact and need controllable accuracy. Works well when the criteria are verifiable: factual accuracy, coverage. NOT suited for short texts (under a page); the iterations are overkill. Works worse on taste-based criteria like style or tone, where the model inflates scores because there's no objective reference point.

Mini recipe

1. First request, the draft: ask for a summary and say what it must cover: `Summarize this. Cover the key facts, conclusions and risks. [text]` 2. Second request, self-assessment: ask it to grade strictly on four criteria (1–5) with an explanation for each score: `Grade your summary. For each criterion, a number and a concrete explanation: Accuracy (are all facts correct?), Completeness (are all key ideas covered?), Clarity (clear without the original?), Overall quality. Format: [criterion] — [score/5] — [what exactly is wrong]` 3. Third request, revision: ask it to fix only the weak spots: `Rewrite the summary: fix the problems in the criteria scored below 4. Don't touch anything that scored 4 or higher` 4. Repeat steps 2–3 up to 3 iterations, or until all criteria reach 4. If it hasn't converged after three rounds, take the version with the best minimum scores 5. Optional: add `"be critical; don't give 4-5 without real grounds"` to the self-assessment request. Otherwise the model sometimes inflates its scores

Examples

[BAD]: `Summarize this report and make it better` [GOOD]: Three requests in a row. First `Summarize this. Cover the key facts, conclusions and risks. [text]`, then `Grade the summary on 4 criteria (1–5) with an explanation: Accuracy, Completeness, Clarity, Overall quality. Format: [criterion] — [score/5] — [what exactly is wrong]`, then `Rewrite the summary: fix only the criteria scored below 4, leave the rest alone`

In plain words

Language models work on a "blurt it out and move on" principle: they spit out text in one go and never look back to check whether they just wrote nonsense. The problem is that a model always wants to look like the teacher's pet, so it optimizes its answer to merely look right rather than actually be right. The LLM-ReSum method breaks that habit by making the model work in a reflective loop: write a draft, switch on the inner critic, and only then deliver the clean copy.

It's like writing an important email to your boss at 3 a.m. Normally you just hit "send" and blush at the typos in the morning. With LLM-ReSum you first dump your stream of consciousness, then splash cold water on your face, reread the text through the eyes of a grumpy editor, and only then fix the screwups. Technically it's the same work, but the result is night and day, because you added a stage of deliberate filtering.

All the magic rests on three steps run inside a single chat. First the model writes a draft summary, then it rips that draft apart on four points: accuracy, completeness, clarity and overall quality. It doesn't just give itself grades; it writes specific complaints: "got the numbers wrong here" or "dropped an important conclusion there." If a score falls below the threshold, the model goes for a second or third lap until the text is in shape.

This method is a lifesaver for anyone who has to squeeze a 40-page investor report into a five-minute talk for the team. Plain ChatGPT may throw out half the important data simply because it "felt like it." But when you make it check itself with LLM-ReSum, it drags into the light the details it missed the first time. The principle is universal: it works for legal documents, technical specs and even long email threads, anywhere the cost of an error in a summary is too high.

Bottom line: stop taking the model at its word on the first try; it gets lazy and hallucinates. Use the three-step self-assessment loop to squeeze maximum quality out of the model. Either you spend an extra 30 seconds on iterations, or you get pretty but useless fluff and filler. Whoever builds reflection into their prompts gets senior-level analysis; everyone else keeps cleaning up after a dumb bot.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on LLM-ReSum: A Summary the Model Grades and Improves Itself Until It's Good Enough arXiv:2604.25665

Sign in to apply this study New accounts get 50 free credits.