---
title: Checks

sidebar:
  label: Checks
  order: 4
---

Checks define what Metaphor verifies before an agent's work is ready.

With Handoff on, Metaphor creates a checklist based on your task and uses its checks to verify the agent's work before creating a pull request.

## How checks work

When you start a task with Handoff, Metaphor creates a checklist based on your request.

Each check defines something Metaphor should verify in the resulting changes. As the agent works, Metaphor tracks these checks and verifies them before the task moves forward.

If a check fails, Metaphor sends the relevant context back to the agent so it can continue working.

The result is a verification loop:

**Agent works → Metaphor verifies → Follow-up → Agent fixes → Verify again**

The task moves forward once the work passes verification.

<img
  src="/taskResult.png"
  alt="Checklist for a task in Metaphor"
  style={{
    width: "800px",
    maxWidth: "100%",
    display: "block",
    margin: "24px auto 48px",
    borderRadius: "12px",
  }}
/>

## Add your own checks

You can add checks to the checklist when your task has requirements you want Metaphor to verify explicitly.

For example:

- The new loading state uses the existing loading component.
- Existing error handling remains unchanged.
- No backend files are modified.

Your checks become part of the same verification process as the checks Metaphor creates.

This is useful when something matters to the task but might not be obvious from the request alone.

## When a check fails

A failed check doesn't mean you need to start the task again.

Metaphor sends the failure and relevant context back to the agent as a follow-up. The agent can update its work, and Metaphor verifies the result again.

This can continue until the work passes verification.

## Checks and pull requests

When verification passes, Metaphor includes the checklist with the resulting pull request.

This gives you a record of what Metaphor verified before the changes were handed off for review.

:::note
Checks are available when Handoff is on.
:::

Learn more about [Handoff](/handoff).
