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

# How It Works

> Understand how Ito explores your app and reports bugs on every pull request.

Ito is an AI-powered QA agent that runs in a real browser. When a pull request is opened or updated, Ito automatically tests your app and reports any bugs it finds — directly on the PR, with video evidence and reproduction steps.

Here's what happens from the moment you open a PR to the moment you see results.

## The automated testing pipeline

<Steps>
  <Step title="A pull request is opened or updated">
    When you open a new PR or push new commits to an existing one, GitHub sends a webhook event to Ito. This happens automatically for every PR in any connected repository — no manual triggering required.
  </Step>

  <Step title="Ito receives the webhook">
    Ito picks up the event and queues a new test run. The dashboard immediately reflects the incoming run with a **Running...** status on the PR row.
  </Step>

  <Step title="A test environment is provisioned">
    Ito spins up an isolated test environment for the run. This ensures each PR is tested independently and results aren't affected by other runs happening in parallel.
  </Step>

  <Step title="The AI agent explores your app in a real browser">
    The Ito AI agent opens your app in a real browser and starts exploring it. The agent focuses on user flows affected by the changes in the PR — it clicks through the UI, fills out forms, navigates between pages, and exercises both desktop and mobile scenarios.

    The number of tests the agent runs depends on your configured testing level:

    | Level    | Tests per run | Best for                                  |
    | -------- | ------------- | ----------------------------------------- |
    | Light    | 5–8           | Fast feedback, minimal coverage           |
    | Medium   | 8–12          | Balanced coverage and speed (recommended) |
    | Hardcore | 12–20         | Deep coverage for critical changes        |

    The entire session is recorded as a video.
  </Step>

  <Step title="Bugs are identified and classified">
    When the agent encounters unexpected behavior — an error, a broken flow, a visual regression — it records the finding and classifies it by severity:

    * **Critical** — blocks core functionality or breaks key user flows
    * **High** — impacts important features or significantly degrades the user experience
    * **Medium** — noticeable issues that affect usability but don't block core flows
    * **Low** — minor issues or edge cases with limited user impact

    Ito also checks whether each issue was introduced by the current PR or was already present beforehand, so you can focus on what the PR actually changed.
  </Step>

  <Step title="A bug report is posted as a PR comment">
    If Ito finds issues, it posts a comment directly on the pull request in GitHub. The comment includes a summary of what was found so reviewers have immediate context without leaving GitHub.

    <Note>
      Ito only comments when it finds something. If all tests pass, no comment is posted.
    </Note>
  </Step>

  <Step title="Full results appear in the dashboard">
    The Ito dashboard at [app.ito.ai](https://app.ito.ai) shows the complete picture for every PR:

    * A list of all test cases with pass/fail status
    * A video recording of the full browser session, seekable to the exact moment an issue occurred
    * Step-by-step reproduction instructions for each bug
    * Code analysis pointing to the specific files and line ranges relevant to the finding
  </Step>
</Steps>

## What you get for every run

<CardGroup cols={2}>
  <Card title="Video recording" icon="video">
    A full recording of the browser session. When you select a test case in the dashboard, the video seeks to the exact timestamp where the issue occurred.
  </Card>

  <Card title="Reproduction steps" icon="list-ol">
    A numbered list of actions the agent took to trigger the bug, so you can reproduce it manually or share it with your team.
  </Card>

  <Card title="Code analysis" icon="code">
    A written explanation of why the bug likely occurred, with links to the relevant files and line ranges in your codebase.
  </Card>

  <Card title="Severity ratings" icon="triangle-exclamation">
    Each finding is rated Critical, High, Medium, or Low, so you can prioritize fixes before merging.
  </Card>
</CardGroup>

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Does Ito run on every PR automatically?">
    Yes. Once you connect a repository, Ito monitors it for all pull request events — opens and updates. No manual triggering is needed.
  </Accordion>

  <Accordion title="What does the AI agent actually do?">
    The agent behaves like a QA engineer manually testing your app. It navigates your UI, clicks buttons, fills out forms, and moves through user flows. It uses a real browser, so it exercises your app exactly as a user would — including JavaScript execution, network requests, and rendering.
  </Accordion>

  <Accordion title="Will Ito comment if there are no bugs?">
    No. Ito only posts a PR comment when it finds issues. If all test cases pass, the PR stays comment-free.
  </Accordion>

  <Accordion title="How do I control how many tests Ito runs?">
    Go to **Settings → General** and choose a testing level: Light (5–8 tests), Medium (8–12, recommended), or Hardcore (12–20). See the [testing level settings](/settings/testing-level) for details.
  </Accordion>

  <Accordion title="Can Ito tell if a bug existed before my PR?">
    Yes. Ito tracks whether each failing test case was introduced by the current PR or was already failing. Pre-existing failures are shown separately in the dashboard so you can focus on what your changes actually broke.
  </Accordion>
</AccordionGroup>
