> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hud.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Read QA results and fix tasks

> Read QA verdicts and findings, follow results across runs and task versions, and turn findings into task fixes.

export const QaMarkLegend = () => {
  const marks = [{
    icon: "qa-agent",
    label: "Star · QA agent",
    tone: "blue",
    meaning: "Identifies QA agents and review actions. It is not a pass or fail result."
  }, {
    icon: "qa-passed",
    label: "Check · Passed",
    tone: "blue",
    meaning: "The QA agent found no problem for its check."
  }, {
    icon: "qa-unknown",
    label: "Question · Unknown",
    tone: "amber",
    meaning: "The QA agent could not decide. Read its findings."
  }, {
    icon: "qa-failed",
    label: "Cross · Failed",
    tone: "red",
    meaning: "The QA agent found a problem. Open the result to see why."
  }];
  return <dl className="qa-mark-legend">
      {marks.map(({icon, label, tone, meaning}) => <div className="qa-mark-entry" key={icon}>
          <dt>
            <span aria-hidden="true" className="platform-guide-icon" data-tone={tone} style={{
    maskImage: `url(/platform/icons/${icon}.svg)`,
    WebkitMaskImage: `url(/platform/icons/${icon}.svg)`
  }} />
            {label}
          </dt>
          <dd>{meaning}</dd>
        </div>)}
    </dl>;
};

Each QA result answers one [QA agent's](/platform/qa-agents) question about one trace or one task
version. Read results in a trace's **QA** view, in the **Quality assurance** section of a task's
**Overview**, and through the QA marks on traces, tasks, and the task grid.

## Verdicts

| Verdict | Meaning |
| - | - |
| **passed** | The QA agent found no problem for its check, or the reward decided the check without an analysis. |
| **failed** | The QA agent found a problem. Its findings say what and where. |
| **unknown** | The QA agent could not decide. Read its summary and findings before trusting the reward. |

A result that has not finished shows **Pending**. A result shows **Error** when the analysis did not
complete and **Cancelled** when it was stopped; neither is a verdict, so run the check again.

## Result marks

<QaMarkLegend />

A trace's mark combines its checks, and a task's mark in the task grid combines its task checks with
the trace checks on its traces. Open a mark to list each check's result, problems first, and
**Copy** them all as JSON.

## Read a result

A result shows its verdict, its confidence, and a summary. **Details** lists its findings. Each
finding has a short summary and a description that can include the root cause, why it matters, a
suggested fix, the finding's own confidence, references to the steps or files it is based on, and,
for **Failure Analysis**, whether the agent, the environment, the grader, or the task is at fault.
The copy icon on a result copies it as JSON.

Each QA agent shows its latest result first, under **Latest**. Earlier results stay below it under
**Past runs**, grouped by the run that started them; QA agents started together form one run. A
task check's result belongs to the task version it reviewed. A new version starts with no
task-check results, and results of earlier versions are labeled **Earlier version**.

Rate a result with the thumbs up or down below it, and add a note if you like. The rating goes to
HUD and helps improve the QA agents.

## Fix what QA finds

A failed check points at what to change:

| Failed check | What to change |
| - | - |
| **Reward Hacking** | Keep tests and graders out of the agent's reach, and grade the outcome rather than something the agent can write. |
| **False Positive** | Make the grader check the result itself: the actual output, exact values, or a stricter rubric criterion. |
| **False Negative** | Accept every correct form of the answer, update stale expected values, and relax brittle formatting checks. |
| **Prompt Alignment** | State every graded requirement in the prompt, or stop grading what the prompt does not ask for. |
| **Failure Analysis** | Read the fault it assigns. A failure caused by the agent is a real result. One caused by the environment, the grader, or the task is a defect to fix. |
| **Task Reward Exploit** | Close the shortcut it describes: hide answers, protect graders, and check the outputs that matter. |
| **Task Failure Analysis** | Fix the task, grader, or environment defect it names. |

Then close the loop:

1. **Fix the task.** Change the prompt, parameters, or rubric on the task page, which saves a new
   [task version](/platform/create-tasks#versions). Fix grading code or tools in the environment and
   [deploy a new build](/platform/environments#follow-a-deployment). For Harbor tasks, fix the task
   directory and [import it again](/platform/harbor-import#import-again).
2. **Keep bad rewards out.** [Invalidate](/platform/evaluations#keep-bad-traces-out-of-the-score)
   traces whose reward measured a defect instead of the model.
3. **Run and review again.** Run the task, then run QA on the new traces, or let
   [automatic QA](/platform/run-qa#automatically) review them.

To hand findings to a teammate or a coding agent, open the task's **Traces** tab and select
**Copy all**. It copies the verdict, confidence, and summary of every completed check on the listed
traces as Markdown.

## Verdicts from HUD reviewers

HUD staff can review a QA result and record their own verdict, with an optional note. That verdict
replaces the QA agent's and keeps its findings, and the next run of the check supersedes it.

## What public viewers see

When a trace is public, or its job's runs are published with a taskset, anyone who can view it also
sees your team's latest result of each trace check: the verdict, summary, confidence, and findings.
Evidence references, notes, errors, and the QA agent's own trace stay private, as do task-check
results and results recorded by other teams.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.