Apply to my task
arXiv:2603.21362 ★ 79 Mar 22, 2026

AdaRubric: Grade Against Criteria That Actually Fit This Task

Key result

An LLM grades a pitch deck with the same criteria as a high-school essay: structure, logic, completeness. Not because it doesn't know better — but because nobody asked it to pick the right criteria first. AdaRubric lets you get an assessment based on what actually matters for the specific task — not 'grammar and coherence' but 'unit economics with the platform's 30%+ commission factored in'. First prompt: ask it to come up with criteria for this specific task. Second: grade against them in isolation. Isolation is the key: a high marketing score physically can't lift failing unit economics if you grade them separately.

01

TL;DR

By default an LLM grades everything the same way — through a standard set of criteria ("helpfulness", "coherence", "safety"). It doesn't matter what's in front of it: an investor pitch deck or a code debugging session. AdaRubric breaks this pattern with a two-step scheme: first, ask the model to come up with evaluation criteria specifically for the task, then grade against them.

The problem is that the same criteria don't catch different kinds of failure. You can't grade a pitch deck on "grammar and structure" — what matters is unit economics, the competitive landscape, the viability of the business model. If you ask an LLM to "evaluate this", it applies a one-size-fits-all yardstick and gives one-size-fits-all feedback. Worse, if three criteria look good and one critical one is bad, the overall score hides the failure.

AdaRubric solves this in two steps: generate a rubric (5 task-specific dimensions with weights and 5-level criteria), then grade each dimension separately — so high scores on some can't mask a failure on others.

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

Two separate requests in the chat:

STEP 1 (separate prompt): task description →
  the LLM generates 5 quality dimensions
  specific to THIS particular task,
  with weights and 5-level criteria (JSON)

STEP 2 (separate prompt): material + rubric from step 1 →
  the LLM grades each dimension in isolation,
  records failures separately even when the overall score is high,
  outputs a weighted total + a list of critical weaknesses
03

Example in Practice

Task: Jake is a founder building a ghost kitchen (a delivery-only kitchen) in Chicago. He's written a 15-page business plan. He wants an honest assessment before meeting an early-stage investor from a startup accelerator — what will fail, what works, what to watch out for.


Prompt — Step 1 (rubric generation):

Task: evaluate a business plan for opening a ghost kitchen (delivery-only kitchen) 
in Chicago. Target audience: an early-stage investor (accelerator / angel investor). 
The business runs through DoorDash and Uber Eats, focuses on office districts, 
average order $15–25.

Generate an evaluation rubric for this task:

- 5 key quality dimensions specific to a ghost kitchen 
  at the pre-seed stage (don't write generic "structure" and "grammar")
- For each dimension: a weight (summing to 1.0) + 
  descriptions of levels 1, 3 and 5 with concrete examples

Format — JSON:
{
  "dimensions": [
    {
      "name": "...",
      "weight": 0.X,
      "criteria": {
        "1": "...",
        "3": "...",
        "5": "..."
      }
    }
  ]
}

Prompt — Step 2 (grading):

Use the rubric above to evaluate the business plan:

[paste the text or key sections of the business plan]

Grading rules:
1. Grade each dimension IN ISOLATION from the others
2. If any dimension scores ≤ 2, that's a critical failure: 
   put it in a separate block at the top of the answer, don't bury it in the total
3. Overall score = weighted sum. 
   But show critical failures separately as RED FLAGS — 
   even if the overall score looks acceptable

Answer format:
- 🚨 Critical failures (if any)
- Score for each dimension: points + one sentence on why
- Overall score and the main takeaway

Result:

Step 1 will produce a JSON rubric with 5 dimensions — for example: Unit economics, Operational scalability, Competitive positioning, Delivery-platform dependency risk, Path to profitability. The criteria will be specific: not "a good financial model" but "CAC/LTV calculated with the platform's 30%+ commission factored in, plus sensitivity to changes in the average order".

Step 2 will show the score for each dimension separately. If unit economics fail (score 1–2) while everything else looks fine, it pops up as a red flag at the top instead of drowning in an average of 3.5.

04

Why It Works

The LLM's weakness: When you ask it to evaluate something without clear criteria, the model applies a pattern from training — the set of most common evaluation criteria for similar texts. A business plan gets the same criteria as a short essay: "structure, arguments, logic". The criteria aren't bad — they're just the wrong ones.

The LLM's strength: The model is great at generating task-specific criteria if you ask explicitly. It knows what a good ghost-kitchen business plan should look like — unit economics, platform dependency, operational bottlenecks. The problem was never the knowledge; it's that nobody asked it to pick the right yardstick first.

How the method uses this: The first step "pulls" the right yardstick out into the open by generating the rubric. The second step applies it to each dimension in isolation. Isolation is the key: a high marketing score physically can't "lift" failing unit economics when you grade them separately.

Control levers:

Parameter Effect
Number of dimensions (5 by default) Fewer (3) — faster, for simple tasks; More (7+) — duplication, confusion
Dimension weights You can set them manually in step 1: "unit economics weight at least 0.35"
Critical failure threshold (≤2) Tighten it to ≤3 for high-risk tasks (medicine, law)
Context in step 1 The more precisely the task is described, the more precise the dimensions. Specify the audience, the goal, the constraints
05

Prompt Template

Step 1 — rubric generation:

Task: {task_description_and_context}

Generate an evaluation rubric for this task:
- {number_of_dimensions} key quality dimensions 
  specific to this particular task and its goal
- Do NOT use generic criteria ("structure", "grammar", "completeness") — 
  only what matters specifically here
- For each dimension: a weight (weights sum to 1.0) + 
  descriptions of levels 1 (failure), 3 (acceptable), 5 (excellent) 
  with concrete examples

Format — JSON:
{
  "dimensions": [
    {
      "name": "...",
      "weight": 0.X,
      "criteria": {"1": "...", "3": "...", "5": "..."}
    }
  ]
}

Step 2 — grading:

Use the rubric above. Evaluate:

{material_to_evaluate}

Rules:
1. Grade each dimension in isolation
2. A dimension scoring ≤ {failure_threshold} = critical failure: 
   move it to the top as a separate block
3. Total = weighted sum. 
   RED FLAGS — separately, even if the average score looks fine.

Format: critical failures → score per dimension → total

What to plug in: - {task_description_and_context} — what you're evaluating, for whom, in what context, with what goal - {number_of_dimensions} — 5 by default, 6–7 for complex tasks - {material_to_evaluate} — a text, plan, code, strategy - {failure_threshold} — usually 2, 3 for critical tasks


🚀 Quick start — paste into the chat:

Here is the AdaRubric template — a two-step evaluation with an adaptive rubric. 
Adapt it to my task: {your task}.
Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask what exactly needs evaluating, for which audience, and what the goal is — because without that context it can't generate specific dimensions (instead of "unit economics" you'd get "financial literacy"). It will take the pattern from the template and pick criteria for your specific task.

06

Limitations

⚠️ Simple tasks: Don't use it to check a fact or answer a simple question — two steps add needless overhead where a direct request is enough.

⚠️ Edge cases: The model sometimes misses niche industry criteria that only an expert would know (like "CAPTCHA handling" for web agents or "AML/KYC compliance under the Bank Secrecy Act" for fintech). For high-stakes tasks, explicitly add in step 1: "also include these criteria: [list]".

⚠️ Quality depends on the task description: The fuzzier the context in step 1, the more generic the dimensions. Garbage in, garbage out.

⚠️ Long materials: When evaluating large texts (30+ pages), the model may not keep all the dimensions in context. Better to grade section by section.

07

Resources

AdaRubric: Task-Adaptive Rubrics for LLM Agent Evaluation — Liang Ding, Alibaba Group
Code: github.com/alphadl/AdaRubrics
Benchmarks: WebArena, ToolBench, AgentBench, SWE-bench Lite

Research digest

Key result

An LLM grades a pitch deck with the same criteria as a high-school essay: structure, logic, completeness. Not because it doesn't know better — but because nobody asked it to pick the right criteria first. AdaRubric lets you get an assessment based on what actually matters for the specific task — not 'grammar and coherence' but 'unit economics with the platform's 30%+ commission factored in'. First prompt: ask it to come up with criteria for this specific task. Second: grade against them in isolation. Isolation is the key: a high marketing score physically can't lift failing unit economics if you grade them separately.

Principle

You describe the task and context → the LLM generates 5 specific dimensions with weights and levels ('1 — failure, 3 — okay, 5 — excellent') → you grade the material on each dimension separately and move failures to the top. By default the model grabs the most common pattern from training — a set of criteria that fits most similar texts. It's like a doctor diagnosing every patient with the same standard questionnaire. The first step breaks this pattern: you explicitly ask it to pick the right questionnaire for this specific case — and the model switches to domain knowledge.

Why it works

The LLM knows industry criteria — it just doesn't pull them out without an explicit request. Ask about a ghost kitchen and it'll give you unit economics, delivery-platform dependency, operational bottlenecks. That knowledge was always there. The problem was never the knowledge; it's that the model doesn't switch to it automatically: it takes the path of least resistance and applies a universal template. The first step literally pulls the right yardstick out into the open — and then the second step grades against it instead of the default one. Isolating the dimensions is a separate story. When you grade everything together, high scores on easy criteria mask a failure on a critical one. It's like averaging the temperature of every patient in a hospital: overall 98.6°F, while one patient is burning up. Splitting into isolated blocks keeps that from happening.

When to apply

Anywhere you need a structured evaluation of complex material: pitch decks and business plans, product strategies, texts for a specific audience, architecture decisions, project plans. Especially valuable when failing one critical point matters more than the average score — and you don't want it to drown in the total. NOT a fit for simple tasks: checking a fact, answering a short question, evaluating a single metric. Two steps add needless overhead where a direct request is enough.

Mini recipe

1. Describe the task precisely: what you're evaluating, for whom, in what context, with what goal. The more precise, the more specific the dimensions. A fuzzy description gives a fuzzy rubric. 2. Step 1 — request the rubric: `Task: {description}. Generate an evaluation rubric: 5 key quality dimensions specific to this particular task. Do NOT use generic criteria ('structure', 'grammar', 'completeness') — only what matters specifically here. For each dimension: a weight (weights sum to 1.0) + descriptions of levels 1, 3, 5 with concrete examples. Format — JSON.` 3. Step 2 — grade the material: `Use the rubric above. Evaluate: {material}. Rules: grade each dimension in isolation. A dimension scoring ≤ 2 is a critical failure: move it to the top as a separate block. Total = weighted sum, but RED FLAGS separately, even if the average score looks fine.` 4. If the task is high-stakes: in step 1 explicitly add industry criteria the model might not know: `also include these criteria: [list]`. For fintech that might be compliance with a specific regulation; for medicine, clinical protocols. Without a hint the model sometimes misses niche requirements.

Examples

[BAD]: `Evaluate my business plan for a ghost kitchen` [GOOD]: Step 1: `Task: evaluate a business plan for opening a ghost kitchen in Chicago. Target audience — an early-stage investor (accelerator / angel investor). The business runs through DoorDash and Uber Eats, average order $15–25. Generate an evaluation rubric: 5 quality dimensions specific to a ghost kitchen at the pre-seed stage — do NOT write anything generic ('structure', 'grammar'), only what matters specifically here. For each: a weight (sum = 1.0) + descriptions of levels 1, 3, 5 with examples. Format — JSON.` Step 2: `Use the rubric above. Evaluate: [business plan text]. Grade each dimension in isolation. A score ≤ 2 is a critical failure: move it to the top as a separate block. Total = weighted sum, RED FLAGS separately.` Step 1 result: a rubric with dimensions like 'Unit economics with the platform commission factored in', 'Single-sales-channel dependency risk', 'Path to profitability'. Step 2 result: if unit economics fail, it pops up as a red flag at the top instead of drowning in an average of 3.5 across the other points.

In plain words

Models grade your work like lazy teachers at exam time: they have one template in their head for every occasion. Whether you bring Python code or a coffee shop business plan, the model runs it through the same standard filter: "coherent, helpful, safe". That's a fundamental bug in today's LLMs — they can't switch evaluation context. So you get a polite brush-off instead of a deep review, because the model simply doesn't know which "levers" in your text it should be pressing.

It's like going to the doctor with a broken leg, and he checks your blood pressure, tests your eyesight and tells you you're healthy overall. Technically he's right — your basic vitals are fine — but your leg still hurts. Standard evaluation criteria in AI are that same general practitioner who ignores the specifics of your problem because his instructions just say "examine the patient". AdaRubric fixes this by making the model first "become a specialist" and only then look at the task.

The method boils down to two steps: generating an adaptive rubric and then grading. First you ask the model not to evaluate the text, but to draw up a list of criteria that matter for this particular task. If it's an investor pitch, AdaRubric will surface parameters like "realistic unit economics" or "business model scalability". Only once that custom yardstick is ready does the model start measuring. Evaluation accuracy jumps, because the criteria are no longer pulled out of thin air from the training data.

It was tested on tough cases like business plans and code debugging, but the principle is universal. You can plug it into any process where AI acts as the judge: from grading homework to analyzing legal contracts. Instead of hoping the model is "smart enough", you give it clear rails. Generic, keyword-style grading becomes a thing of the past, replaced by precise tuning to context. If you don't set the criteria yourself, the model will grade your work against the internet average — in other words, not at all.

Bottom line: stop asking ChatGPT to just "evaluate the text". First make it spell out exactly which points it'll judge you on, using AdaRubric logic. That turns the model from a polite parrot into a tough expert who spots flaws where the standard filter would have said "excellent". Learn to tune these "yardsticks" to your needs and you'll get real feedback from AI instead of another serving of digital fluff.

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 AdaRubric: Grade Against Criteria That Actually Fit This Task arXiv:2603.21362

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