Verification agent
Exercise pull request changes locally and publish evidence-backed results.
Overview
Verification agent independently checks the behavior changed by a pull request. It runs the application locally from the pull request's pushed commit, exercises each changed UI or backend behavior, and captures screenshots, recordings, or API responses as evidence.
The result is published to the pull request and the session's Slack thread. It reports one of the verdicts and a status for each claim listed in Results. Inspect keeps one verification comment on the pull request and updates it on each run. Changes without observable behavior, such as docs, tests, or CI configuration, do not produce a verification result.
Results
Each result has one verdict, and each claim it checked has one status. The value is what Verification agent writes to its result.json. The label is how the pull request comment displays it.
| Type | Value | Label | Meaning |
|---|---|---|---|
| Verdict | pass | Passed | At least one claim was verified and none failed. Skipped claims do not change this verdict. |
| Verdict | issues_found | Issues found | At least one claim failed. |
| Verdict | skipped | Skipped | No claim failed, but none could be verified. |
| Verdict | infra_error | Could not run | The product or local environment could not be brought up. |
| Claim status | verified | Verified | The changed behavior was exercised and matched the claim. |
| Claim status | failed | Failed | The changed behavior was exercised and did not match the claim. |
| Claim status | skipped | Skipped | The behavior could not be reached locally, for example because of missing credentials, external services, or fixtures. The claim states why. |
A result can also include an optional not_verified field, shown as Not verified, that briefly summarizes the claims that were skipped.
Set up a repository
Verification agent runs only in repositories that include .inspect/verification/config.yml. To create it, ask Inspect to “set up the Verification agent for this repo” or run /setup-verification-agent. Inspect writes the config and a repository skill that explains how to start the app locally, sign in, and capture evidence. It tests them and then opens a pull request.
skill: .agents/skills/verify-web/SKILL.md
paths:
- 'src/**'
model: auto
instructions: Cover empty and error states for changed screens.skill is required. It is the repository-relative path to the skill that Verification agent follows. The optional paths list limits automatic runs to pull requests that change matching files. Without it, Verification agent decides from the diff. The optional model selects the model Verification agent runs on. The default, auto, uses the session's model. The optional instructions field tells Verification agent what to verify and how thoroughly.
Run verification
Open a session with a pull request, then select Reviews in the session status bar. Select Verification agent to start the first run. If the agent already exists, selecting its row opens that subagent instead. Use Verify again to start a fresh run, or Retry verification after an error.
The agent runs as a subagent in the session's workspace. You can review its activity, but avoid changing files while it verifies because it checks one exact pushed commit.
Verification agent also runs automatically when a session opens a pull request and after every later push to it, including pushes made outside Inspect. Inspect requests each run when GitHub reports the push, and a transcript row marks the request. Pushes to a pull request whose session nobody has used in the last 7 days don't start a run; start one from Reviews instead. A newer push supersedes evidence from an older commit and starts a fresh run.
Run verification from the API
Automations and other integrations can start or rerun Verification agent with an API key. Send POST /api/public/v1/sessions/{session_id}/verification with an optional JSON body of {"repository": "..."}, which is required only when the session has pull requests in more than one repository. Like Verify again, it starts a fresh run on the pull request's current head and works even when automatic verification is off.
A 202 response has a status of started or already_running. A 409 response includes a reason: no_pull_request, not_configured, readonly, no_runtime, or session_predates_verifier. The session owner, or the API key user who created the session, can start a run.
Local verification only
Verification agent runs the repository's local development stack. It does not verify changes against production.
Enable or disable automatic verification
Verification agent is on by default. Turn Run Verification agent on Pull Requests on or off in Settings → Agent.